导读:本文讲述了一种基于单片机的AD转换实验,通过使用AD转换芯片的数据手册,可以编程实现串口或并口数据传输。文章介绍了如何使用单片机模拟各种串口的通讯方式,并提供了应用实例的单片机列表。此外,还描述了如何通过锁存器从总线中扩展出IO口,以连接AD转换芯片的AD2引脚。如下为ad转换实验单片机,单片机如何读取串行AD转换结果的文章内容,供大家参考。
查看所用AD转换芯片的数据手册,根据数据手册的使用方法编程就可以了
不管串口或者并口,一般数据手册上都会有应用实例的
单片机可以模拟各种串口的通讯方式,只是编程的问题,当然要根据使用芯片而定
现在有很多单片机自己就带有AD转换功能
如果电平匹配,且单片机有并行io口或者足够的gpio,直接接到单片机的io口上就行,单片机程序直接就能独到
否则就用锁存器从总线里扩展出来一个io口用来接ad
接线:p3.6接srd
p3.7接swr
p3.0接pin
p3.1接clk
ad0809的clk接脉冲
cs接8000h的译码电路程序:ad0809xdata8000h
org0000h
ajmpmain
org0030h
main:movdptr,#8000h
mova,#01h
movx@dptr,a
calldelay
movxa,@dptr
movr0,a
calldisp
calldelay
calldelay
calldelay
ajmpmaindisp:mova,r0
anla,#00001111b
acalldsend
mova,r0
swapa
anla,#00001111b
acalldsend
ret
dsend:movdptr,#tab
movca,@a+dptr
movsbuf,a
jnbti,$
clrti
retdelay:movr4,#250
delay1:movr5,#250
djnzr5,$
djnzr4,delay1
ret
tab:db03h;0
db9fh;1
db25h;2
db0dh;3
db99h;4
db49h;5
db41h;6
db1fh;7
db01h;8
db09h;9
db11h;灭
db11h
db0c1h
db63h
db85h
db61h
db71h
db00h
end
stequp3.7
eocequp3.6
oeequp3.5
baiequ30h
shiequ31h
geweiequ32h
org0000h
movdptr,#0fef8h;ad转换in0通道地址
mova,#00h
movx@dptr,a;启动ad转换
start:clrst
setbst
clrst
jnbeoc,$
setboe
mov30h,p2
clroe
mova,30h
movb,#100
divab
loop:movbai,a
movshi,b
mova,shi
movb,#10
divab
movshi,a
movgewei,b
mova,bai
movp1,a
clrp3.2
lcalldelay
setbp3.2
mova,shi
movp1,a
clrp3.1
lcalldelay
setbp3.1
mova,gewei
movp1,a
clrp3.0
lcalldelay
setbp3.0
sjmpstart
delay:movr6,#5
d1:movr7,#200
djnzr7,$
djnzr6,d1
ret
end
这是我编的程序,可以用,你只用0通道的话那就把那个通道选择的三个引脚全接地就是了movdptr,#0fef8h;ad转换in0通道地址
mova,#00h
movx@dptr,a;启动ad转换
这个是启动转换的语句
以上的程序是实现,电位器调节过程中,数码管从0到255变化
adc0809要工作得在单片机的ale脚上接个四分频的器件,不然adc0809是不会工作的qq:77254708
AD转换就是模拟数字转换模拟量是自然界存在的量,例如流量温度等特点是连续变化,例如从室温20
℃25℃之间存在着无数的温度点,数字量非自然界存在的量,特点是非连续变化有固定的变化间隔
1,A是模拟信号的意思,D是数字信号的意思,就是模拟转换成数字信号,A模拟量比如电流电压等信号量,在自然界中纯在的是连续的无穷尽的值,一切数值的描述都是相对精度和约等于表示
2,D数字量数学意义上确定的量,8位与16位既然数学意义上的确定,就纯在一个计算精度,8位简单的理解为八个9,16位就简单的理解为16个9但是,在计算机计算过程中,尤其是硬件逻辑,是2进制计算,也就是说8位表示2的八次方的值域,而16就是2的16次方
3,对于采样,就是这个芯片,在单位时间内,能完成的转换次数精度,当然就是更容易理解了,就是能够分辨的最小模拟里单位
单片机的说明文档上有,首先要看一下ADC_CONTR这个寄存器
它决定着ADC电源开启转换速度选择哪个通道启动与停止转换是否完成
程序如下:
ADC_CONTRADC_CONTR|0X80;//10000000开启转换电源
Delay1ms(1);//延时,等待内部电源稳定
P1M0P1M0|0X07;//设置p1.0P1.1p1.3所在通道为开/漏模式也可以提前配置好
P1M1P1M1|0X07;
ADC_CONTR0xe0;//11100000开启P1.0通道开始转换
Delay25us(10);//延时一端时间,使输入电压达到稳定
ADC_DATA0x00;//清A/D转换结果寄存器
ADC_LOW20x00;
ADC_CONTR|0x08;//ADC_START1,开始转换
while(!(ADC_CONTRamp;0x10));//0001,0000等待A/D转换结束
temp1ADC_DATA;//读取转换结果
temp2ADC_LOW2;
advaluetemp1*4+temp2;//advalue是最终结果
其余两路转换略
还没有评论,快来抢沙发吧!
最新发现
相关资讯
ad转换实验单片机,单片机如何读取串行AD转换结果
导读:本文讲述了一种基于单片机的AD转换实验,通过使用AD转换芯片的数据手册,可以编程实现串口或并口数据传输
2024-02-19 02:52:26
option快捷键,option键是哪一个
最常见的方法是同时按下Ctrl+Alt+Del组合键,不过如果在windows95/98下不小心接连按了两次键,可能会导致Windows系统重新启动,假如此时还未保存数据的话,恐怕就欲哭无泪了XP修改了这个BUG而是在任务管理器上添加了关机和重新启
2024-02-19 02:52:14
1固态硬盘接口,固态硬盘是什么接口
常见的固态硬盘接口:
2024-02-19 02:49:56
cad怎么产生g代码,CAD图生成G代码
7,通过以上全部步骤,就可以在三维cad中望3d中快速地输出符合我们需要的机床g代码文件三维cad中望3d易学易用的操作界面,让整个操作过程非常直观,高效,cnc工程师无需花费太多精力,便能快速掌握cam的加工技巧
2024-02-19 02:49:38
linuxgcc损坏,linux自己写的静态库gcc报错
(这个好像应该把-static去了也可以吧-gt
2024-02-19 02:48:22
新闻热榜
热门游戏
精彩专题