AD转换实验
;8255的A、B、C口和控制口地址分别是FF20H,FF21H,FF22H和FF23H
;0809的地址是FF80H,FF87
ORG 0000H
LJMP SE11
ORG 05A0H
SE11: MOV SP,#53H
MOV P2,0FFH
MOV A,#81H ;8255的A、B口方式0的输出,C口低4位输入
MOV DPTR,#0FF23H ;显示用8255的控制字地址
MOVX @DPTR,A
MOV 7EH,#00H ;存储要显示的0
MOV 7DH,#08H ;存储要显示的8
MOV 7CH,#00H ;存储要显示的0
MOV 7BH,#09H ;存储要显示的9
MOV 7AH,#10H ;初始时对应着熄灭数据。用于保存A/D转换数据
MOV 79H,#10H ;显示缓冲区初值 LO18: LCALL SSEE ;显示
MOV A,#00H
MOV DPTR,#0FF80H ;0809的的地址
MOVX @DPTR,A ;选择0809的0通道采样
MOV R7,#0FFH ;延时
LO17: DJNZ R7,LO17
MOVX A,@DPTR ;取出采样值
MOV R0,#79H ;显示缓冲区最低位地址送R0
LCALL PTDS ;保存采样到的数据
SJMP LO18 ;采样值送显示缓冲区 ;――――――――――――储存数据程序―――――
ORG 05D0H
PTDS: MOV R1,A ;拆送显示缓冲区
ACALL PTDS1 ;转入保存采样值的低4位
MOV A,R1 ;继续,保存采样值的高4位
SWAP A
PTDS1: ANL A,#0FH ;屏蔽A中高4位
MOV @R0,A ;保存
INC R0
RET
;――――――――――――显示程序―――――
ORG 0D50H
SSEE: SETB RS1 ;换工作区
MOV R5,#05H ;显示次数计数器 SSE2: MOV 30H,#20H ;保存位选代码,#20H的反码对应左面第一个LED管
MOV 31H,#7EH ;保存显示缓冲区首地址
MOV R7,#06H ;显示位数计数器
SSE1: MOV R1,#20H ;#20H对应8255的A口地址,用于位选,P2口已经为高
MOV A,30H
CPL A ;取反
MOVX @R1,A ;字位送入
MOV R0,31H
MOV A,@R0 ;取出要显示数字的二进制数
MOV DPTR,#DDFF
MOVC A,@A+DPTR ;取字形代码
MOV R1,#21H ;#21H对应8255的B口地址,用于输出字形代码
MOVX @R1,A ;字形送入
MOV A,30H ;右移显示的位选值修改
RR A ;右移
MOV 30H,A
DEC 31H ;修改缓存地址,即要显示内容的地址
MOV A,#0FFH
MOVX @R1,A ;关显示
DJNZ R7,SSE1 ;六位显示完了吗,
DJNZ R5,SSE2 ;5次显示完了吗,
CLR RS1 ;清除工作区选择
RET
DDFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH
END
本文档为【AD转换实验 】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。