请教一个关于AD转换器的程序问题,必须用汇编语言
发布网友
发布时间:2022-04-23 10:26
我来回答
共1个回答
热心网友
时间:2023-10-11 11:01
给你一个AD转换子程序,转换结果注释了,你自己根据需要改下就行了。
你的仿真图中,ADS7825的控制脚看不清,你根据自己的仿图改一下引脚定义就行了。
引脚定义为
BYTE BIT P1.2 ;ADS7825定义引脚
BUSY BIT P1.3
CS BIT P1.4
RC BIT P1.5
转换子程序如下:
;**********AD转换子程序**********
ADSConvert: ;通道选择在R6中
MOV A , #0FCH
ADD A , R6
MOV P1, A ;P1口选择模拟量输入通道
CLR CS
CLR RC
SETB RC
JNB BUSY,$ ;等待转换结束
CLR BYTE ;先读高8位
MOV adnumh,P0 ;从P0口读出高8位,放在adnumh中,自己改成30H或32H
SETB BYTE ;后读低8位
MOV adnuml,P0 ;从P0口读出低8位,放在adnuml中,自己改成31H或33H
SETB CS
RET ;转换结束在adnumh,adnumh中
最后要说明一点,ADS7825输入的模拟电压范围是正负10V的,不知你的仿真图的电压是多少?
还有,读出的数据结果是16位的带符号数,即模拟电压是负时,转换的结束是负数。电压是正时,转换结果是正数。你要处理好正负数的显示。追问稍等我明天或后天再仔细看看,请留下您邮箱,如果我有问题会问您的,我现在有点别的急事要忙,谢谢