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

2020-10-28 科技 75阅读
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
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com