欢迎来到天天文库
浏览记录
ID:58585790
大小:581.61 KB
页数:7页
时间:2020-10-18
《AT89C51单片机AD转换器接口实验.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、班级电科081班姓名龚浪学号080712110073实验名称电脑时钟程序实验指导教师马光喜理学院时间:2011年月日,.实验十一A/D转换器接口实验一.实验目的⑴熟悉单片机与A/D转换芯片的接口方法。⑵了解A/D转换芯片的转换性能及编程方法。⑶通过实验了解单片机如何进行数据采集。二.实验内容利用电位器提供模拟量输入,输入到0809的IN3输入端,编制程序,将模拟量转换成数字量,并在数码管显示出来。三.实验步骤1.在Proteus中画出实验电路ADC0808转换原理电路3.进入KeilC51组合软件的操作环境,编辑源程序并进行编译;4.设置Proteus与KeilC51之间的连接;;.
2、.,.5.程序设计(1)进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P1端口读入,经过数据处理之后经P0口从数码管上显示。(2)进行A/D转换之前,要启动转换的方法:CBA=011选择第三通道Start的正脉冲(start从0→1→0)起动AD转换,本程序中用P2^0控制。(3)本程序用C语言编写,代码如下://EXP11#includesbitstart=P2^0;//控制起动转换信号sbitfinish=P2^1;//转换结束标志sbitale=P2^2;//地址锁存信号#defineaddressP3//地址口#def
3、inedateP1//数据口#definedispP0//显示口voidtransform();//AD转换函数voidmain(){start=0;while(1)transform();//循环调用AD转换函数}//**********************//AD转换函数//**********************voidtransform(){start=1;//正脉冲起动AD转换;..,.start=0;address=0x3f;//送地址给AD转换ale=1;//锁存地址while(1)//等待转换结束{if(finish==1)//转换完成{disp=date;/
4、/取走数据ale=0;//撤消地址锁存信号break;//跳出循环进行下一次AD转换}}}6.运行、调试程序和结果检查⑴采用单步,设置断点等方法,态观察程序走向是否正确。⑵连续运行程序,数码管上显示当前采集的电压转换的数字量,调节变位器RV1可看到数码管显示数据发生变化。数码管应显示的理论值为Vin*1/256。①Vin=0V,Vo=Vin/5V*0xff=0,仿真值如下图所示:;..,.②Vin=1V,Vo=Vin/5V*0xff=0x33,仿真值如下图所示:③Vin=2V,Vo=Vin/5V*0xff=0x66,仿真值如下图所示:;..,.④Vin=3V,Vo=Vin/5V*0x
5、ff=0x99,仿真值如下图所示:⑤Vin=5V,Vo=Vin/5V*0xff=0xff,仿真值如下图所示:;..,.6.本实验应注意的问题(1)注意ADC0808芯片工作时的时序配合ADC0808工作时,CPU首先向其发送一个起动信号,即在start端输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。随后发送地址信号,并用ALE的高电平将地址锁存,此后ADC转换器开始转换,A/D转换结束后将在EOC端输出一个高电平(转换期间一直为低电平)。可利用此信号去控制数据输出允许信号OE,使其打开输出三态门,让CPU读取数据,这样换就完成了一轮转。
6、(2)注意ADC0808能识别的最大电压值ADC0808为8位数字量输出,分辨率为1/256。因此当输入商端的变化小于满值电压的1/256时,ADC转换器将无法识别。;..
此文档下载收益归作者所有