用ADC0809做A⼀D转换器,编制程序,将模拟量变成数字量,并用数码管显示其结果。

用汇编语言。
2024-12-01 22:53:20
推荐回答(1个)
回答1:

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