标题:
单片机八位 A/D 转换汇编源码
[打印本页]
作者:
赵子龙OL
时间:
2019-6-20 20:55
标题:
单片机八位 A/D 转换汇编源码
上周自己写的单片机八位 A/D 转换汇编源码 欢迎大家参考!
一、 实验目的
1 .掌握 ADC0809 与 与 89C51 的接口方法。
2 .采用定时与查询方法读取 A/D 转换结果,并将转换数据存于片内RAM 中。
3. 通过实验了解单片机如何进行数据采集。
4. 掌握如何用 8255 的 的 PA 口输出转换好的数字量到发光二极管显示。
1 .定时方式采集 0 通道
ORG 0000H
AJMP MAIN
MAIN: MOV DPTR,#9003H ;8255 控制字地址
MOV A,#82H ; 方式 0 ,PA ,PC 输出,PB 输入
MOVX @DPTR, A
MOV DPTR, #8000H
MOV A, #00H
MOVX @DPTR, A ;动 启动 A/D
MOV R2, #40H ; 延时
DLYY: DJNZ R2, DLYY ;等待转换结果
MOVX A, @DPTR ;
MOV R6,A ; 转换结果至 R6 中 中
MOV R1, #100 ; 二极管显示转换的结果
DLY:
MOV DPTR,#9000H ;Port A 地址
MOVX @DPTR,A
DJNZ R1, DLY ; 延时
AJMP MAIN
END
2 .查询方式采集 0 通道 时 (此时 EOC 引脚和 P1.0
ORG 0000H
AJMP MAIN
MAIN:
MOV DPTR,#9003H;8255 控制字地址
MOV A,#82H ; 方式 0 ,PA ,PC 输出,PB 输入
MOVX @DPTR, A
MOV DPTR,#8000H
MOV A,#00H
MOVX @DPTR, A ; 启动 A/D
LOOP1:
MOV P1,#0FFH
MOVA,P1
ANLA,#01H; 查询 EOC 状态,高电平转换结束
JNZ DIS
AJMP LOOP1
DIS: MOVX A,@DPTR
MOV R6,A; 转换结果至 R6 中 中
MOV R1, #100 ; 二极管显示转换的结果
DLY:
MOV DPTR,#9000H ;PortA 地址
MOVX @DPTR,A
DJNZ R1, DLY ; 延时
AJMP MAIN
END
3. 中断方式采集 0 通道
ORG 0000H
AJMP MA
ORG 0003H
AJMP RAI
ORG 0100H
MA:SETB IT0
SETB EA
SETB EX0
MOV DPTR,#9003H;8255 控制字地址
MOV A,#82H ; 方式 0 ,PA ,PC 输出,PB 输入
MOVX @DPTR, A
QD:MOV DPTR, #8000H ;0809
MOV A, #00H
MOVX @DPTR, A ;动 启动 A/D
SJMP $
ORG 013FH
RAI:MOV DPTR, #8000H
MOVX A, @DPTR ; 读入结果
MOV R6,A ; 转换结果至 R6 中 中
MOV R1, #100 ; 二极管显示转换的结果
DLY:
MOV DPTR,#9000H ;PortA 地址
MOVX @DPTR,A
DJNZ R1, DLY ; 延时
MOV DPTR, #8000H ; 启动 A/D
MOV A, #00H
MOVX @DPTR, A
RETI
END
复制代码
作者:
admin
时间:
2019-6-21 03:37
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1