要求:通過(guò)并行模擬數(shù)字轉(zhuǎn)換器芯片ADC0809,測(cè)試模擬電壓并且顯示(0-5V)。 實(shí)驗(yàn)箱上“串并轉(zhuǎn)換數(shù)碼管顯示”區(qū)提供了四個(gè)8段數(shù)碼管顯示電路,采用靜態(tài)方式顯示。數(shù)碼管是由74LS164串并轉(zhuǎn)換后輸出得到。當(dāng)74LS164有數(shù)據(jù)輸入時(shí),發(fā)來(lái)一個(gè)時(shí)鐘74LS164數(shù)據(jù)向下一段轉(zhuǎn)移。若滿(mǎn)8個(gè)時(shí)鐘則點(diǎn)亮一個(gè)8段數(shù)碼管,然后發(fā)生位移,數(shù)據(jù)向下一位數(shù)碼管傳送,即串行輸入的數(shù)據(jù)可依次在4個(gè)數(shù)碼管上顯示。數(shù)碼管上顯示實(shí)時(shí)溫度值。 實(shí)驗(yàn)箱“數(shù)模轉(zhuǎn)換”區(qū)提供ADC0809電路。 參考接線(xiàn): (1) 把AD0809的零通道09IN0孔用連線(xiàn)接至模擬信號(hào)發(fā)生器的VIN孔。 (2)AD0809的片選信號(hào)CS09孔接“譯碼器”YC2(0A000-0AFFFH)孔。 (3)“脈沖源”中的0.5MHZ孔連AD0809的CLOCK孔。 (4)CLK -- P1.1;DIN -- P1.2 數(shù)碼管的顯示碼: uint8 LED_Table[16]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0x3e, 0xe0, 0xfe,0xe6,0xee,0x3e,0x9c,0x7a, 0x9e,0x8e};
匯編代碼: 程序代碼 LED_0 EQU 30H LED_1 EQU 31H LED_2 EQU 32H ADC EQU 35H CLOCK BIT P2.4 ST BIT P2.5 EOC BIT P2.6 OE BIT P2.7 ORG 00H SJMP START ORG 0BH LJMP INT_T0 START: MOV LED_0, #00H MOV P2, #0FFH MOV LED_1, #00H MOV LED_2, #00H MOV DPTR, #TABLE MOV TMOD, #02H MOV TH0, #245H MOV TL0, #00H MOV IE, #82H SETB TR0 WAIT: CLR ST SETB STH CLR ST JNB EOC, $ SETB OE MOV ADC, P1 CLR OE MOV A, ADC MOV B, #51 DIV AB MOV LED_2, A MOV A, B MOV B, #5 DIV AB MOV LED_1, A MOV LED_0, B LCALL DISP SJMP WAIT INT_T0: CPL, CLOCK RETI DISP: MOV A, LED_0 MOVC A, @A+DPTR CLR P2.3 MOV P0, A LCALL DELAY SETB P2.3 MOV A, LED_1 MOVC A,@A+DPTR CLR P2.2 MOV P0, A LCALL DELAY SETB P2.2 MOV A, LED_2 MOVC A, @A+DPTRL CLR P2.1 ORL A, #80H MOV P0, A LCALL DELAY SETB P2.1 RET DELAY: MOV R6, #10 D1: MOV R7, #250 DJNZ R7, $ DJNZ R6, D1 RET TABLE: DB 3FH, 06H, 5BH, 4FH, 66H DB 6DH, 7DH, 07H, 7FH, 6FH END
|