0809利用实验台上的ADC0809做A/D转换器,实验箱上的电位器提供模拟电压信号输入,编制程序,将模拟量转换成数字量,用数码管显示模拟量转换的结果。
PORT
EQU 0CFA0H
CSEG AT 0000H
LJMP START
CSEG AT 4100H
START: MOV DPTR,#PORT
;启动通道0
MOVX @DPTR,A
MOV R0,#0FFH
LOOP1: DJNZ R0,LOOP1
;等待中断
MOVX A,@DPTR
MOV R1,A
DISP:
MOV A,R1
;从R1中取转换结果
SWAP A
;分离高四位和低四位
ANL A,#0FH
;并依次存放在50H到51H中
MOV 50H,A
MOV A,R1
ANL A,#0FH
MOV 51H,A
LOOP:
MOV DPTR,#0CFE9H
;写显示RAM命令字
MOV A,#90H
MOVX @DPTR,A
MOV R0,#50H
;存放转换结果地址初值送R0
MOV R1,#02H
MOV DPTR,#0CFE8H
;8279数据口地址
DL0:
MOV A,@R0
ACALL TABLE
;转换为显码
MOVX @DPTR,A
;送显码输出
INC R0
DJNZ R1,DL0
SJMP DEL1
TABLE: INC A
MOVC A,@A+PC
RET
DB
3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB
7FH,6FH,77H,7CH,39H,5EH,79H,71H
DEL1:
MOV R6,#255
;延时一段时间使显示更稳定
DEL2:
MOV R5,#255
DEL3:
DJNZ R5,DEL3
DJNZ R6,DEL2
LJMP START
;循环
END