현재 위치 - 주공해몽공식사이트 - 랜덤 번호 뽑기 점술 - 단일 칩 코스 디자인, 디지털 온도계.

단일 칩 코스 디자인, 디지털 온도계.

1 ..? 실험 임무?

조정 가능한 저항기는 아날로그 온도 입력으로 전압 값을 조정하는 데 사용됩니다. 온도가 30 C 미만이면 긴 경고음과 광경보가 발생하고, 온도가 60 C 를 초과하면 짧은 경고음과 광경보가 발생합니다. 측정 온도 범위는 0-99 ℃입니다.

2.? 도식 회로도

(그림) 그림을 참조하십시오.

3.? 시스템 보드의 하드웨어 케이블 연결?

A)? 8 셀 플랫 케이블을 사용하여 단일 칩 마이크로 컴퓨터 시스템 영역의 P 1.0-P 1.7 을 동적 디지털 디스플레이 영역의 ABCDEFGH 포트에 연결합니다. -응?

B)? 8 셀 케이블을 사용하여 단일 칩 마이크로 컴퓨터 시스템 영역의 P2.0-P2.7 과 동적 디지털 디스플레이 영역의 s 1s 2s 3s 5s 6s 7s 8 을 연결합니다. -응?

C)? 단일 칩 마이크로 컴퓨터 시스템 영역의 P3.0 을 모듈 변환 모듈 영역의 ST 터미널에 와이어로 연결합니다. -응?

D)? 와이어로 단일 칩 시스템 영역의 P3. 1 을 모듈 변환 모듈 영역의 OE 터미널에 연결합니다. -응?

E)? 단일 칩 마이크로 컴퓨터 시스템 영역의 P3.2 를 모듈 변환 모듈 영역의 EOC 터미널에 와이어로 연결합니다. -응?

F)? 단일 칩 마이크로 컴퓨터 시스템 영역의 P3.3 을 모듈 변환 모듈 영역의 CLK 터미널에 와이어로 연결합니다. -응?

G)? A/D 변환 모듈 섹션의 터미널 A2A 1A0 을 와이어로 전원 모듈 섹션의 터미널 GND 에 연결합니다. -응?

H)? A/D 변환 모듈 섹션의 IN0 터미널을 와이어를 사용하여 3 방향 조정 가능 전압 모듈 영역의 VR 1 터미널에 연결합니다. -응?

나)? 8 셀 케이블을 사용하여 단일 칩 마이크로 컴퓨터 시스템 영역의 P0.0-P0.7 을 아날로그-디지털 변환 모듈 영역의 터미널 d0d 1 2d 3d 4d 6d 7 에 연결합니다. -응?

J)? 단일 칩 마이크로 컴퓨터 시스템 영역의 P3.6 및 P3.7 을 각각 8 방향 LED 지시등 모듈 영역의 L 1 및 L2 에 와이어로 연결합니다. -응?

K)? 단일 칩 마이크로 컴퓨터 시스템 영역의 P3.5 를 오디오 확대 모듈 영역의 SPK 에 와이어로 연결합니다. 항구에서. -응?

L)? SPK 를 "오디오 확대 모듈" 영역에 넣으시겠습니까? 오디오 스피커를 바깥쪽으로 연결합니다. -응?

4.c 언어 소스 코드

# 포함? & ltAT89X52. H>

서명되지 않았습니까? 샤일? 코드? Dispbitcode [] = {0xfe,0xfd,0xfb,0xf7,

0xef, 0xdf, 0xbf, 0x7f };;

서명되지 않았습니까? 샤일? 코드? Dispcode [] = {0x3f,0x06,0x5b,0x4f,0x66,

0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x00};

서명되지 않았습니까? 샤일? Dispbuf[8]={ 10, 10, 10, 10,/kloc

서명되지 않았습니까? 샤일? Dispcount

서명되지 않았습니까? 샤일? Getdata

서명되지 않았습니까? Int? 온도;

서명되지 않았습니까? 샤일? 나;

Sbit? St = P3 0;

Sbit? Oe = P31;

Sbit? Eoc = P3 2;

Sbit? Clk = P3 3;

Sbit? Led1= P3 6;

Sbit? Led 2 = P3 7;

Sbit? Spk = P3 5;

비트? Lowflag

비트? Highflag

서명되지 않았습니까? Int? 분류: cnta

서명되지 않았습니까? Int? Cntb

비트? Alarmflag

무효화? 기본 (부적합)

{

ST = 0;;

OE = 0;;

Tmod = 0x12;

Th0 = 0x216;

Tl0 = 0x216;

Th1= (65536-500)/256;

Tl1= (65536-500)% 256;

Tr1=1;

Tr0 =1;

Et0 =1;

Et1=1;

Ea =1;

St =1;

ST = 0;;

While( 1)

{

If((lowflag== 1)? & amp& amp(highflag==0))

{

Led1= 0;

Led 2 =1;

}

그렇지 않으면요? If((highflag== 1)? & amp& amp? (lowflag==0))

{

Led1=1;

Led 2 = 0;;

}

기타

{

Led1=1;

Led 2 =1;

}

}

}

무효화? T0(void)? 끊어? 1? 사용할까요? 0

{

CLK = ~ CLK;;

}

무효화? T 1(void)? 끊어? 3? 사용할까요? 0

{

Th1= (65536-500)/256;

Tl1= (65536-500)% 256;

If(EOC== 1)

{

Oe =1;

Getdata = P0

OE = 0;;

Temp = getdata * 25

Temp = temp/64;;

I = 6;;

Dispbuf [0] =10;

Dispbuf [1] =10;

Dispbuf [2] =10;

Dispbuf [3] =10;

Dispbuf [4] =10;

Dispbuf [5] =10;

Dispbuf [6] = 0;

Dispbuf [7] = 0;

While(temp/ 10)

{

Dispbuf [I] = temp%10;

Temp = temp/10;

I++;+;

}

Dispbuf [I] = temp;

If(get data & lt;; 77) 을 참조하십시오

{

Lowflag =1;

Highflag = 0;

}

그렇지 않으면요? If(get data & gt;; 153)

{

Lowflag = 0;

Highflag =1;

}

기타

{

Lowflag = 0;

Highflag = 0;

}

St =1;

ST = 0;;

}

P1= dispcode [dispbuf [dispcount]];

P2 = dispbitcode [dispcount];

Dispcount++;

If(dispcount==8)

{

Dispcount = 0;;

}

If((lowflag== 1)? & amp& amp? (highflag==0))

{

Cnta++;+;

(cnta==800) 인 경우

{

Cnta = 0;;

Alarmflag = ~ alarmflag

}

If(alarmflag== 1)

{

SPK = ~ SPK;;

}

}

그렇지 않으면요? If((lowflag==0)? & amp& amp? (highflag== 1))

{

CNT b++;+;

(cntb==400) 인 경우

{

Cntb = 0;;

Alarmflag = ~ alarmflag

}

If(alarmflag== 1)

{

SPK = ~ SPK;;

}

}

기타

{

Alarmflag = 0;

Cnta = 0;;

Cntb = 0;;

}

}