要求:通过并行模拟数字转换器芯片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
|