要求:通過并行模擬數字轉換器芯片ADC0809,測試模擬電壓并且顯示(0-5V)。 實驗箱上“串并轉換數碼管顯示”區提供了四個8段數碼管顯示電路,采用靜態方式顯示。數碼管是由74LS164串并轉換后輸出得到。當74LS164有數據輸入時,發來一個時鐘74LS164數據向下一段轉移。若滿8個時鐘則點亮一個8段數碼管,然后發生位移,數據向下一位數碼管傳送,即串行輸入的數據可依次在4個數碼管上顯示。數碼管上顯示實時溫度值。 實驗箱“數模轉換”區提供ADC0809電路。 參考接線: (1) 把AD0809的零通道09IN0孔用連線接至模擬信號發生器的VIN孔。 (2)AD0809的片選信號CS09孔接“譯碼器”YC2(0A000-0AFFFH)孔。 (3)“脈沖源”中的0.5MHZ孔連AD0809的CLOCK孔。 (4)CLK -- P1.1;DIN -- P1.2 數碼管的顯示碼: 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
|