- 1、本文档共76页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
任务10.1 数字电压表的设计 能够将模拟量转换成数字量的器件称为模/数(A/D)转换器。 ADC0809有8个模拟量输入通道IN0~IN7,在某一时刻,模拟开关只能与一路模拟量通道接通,对该通道进行A/D转换。 8路模拟开关与输入通道的关系如表所示。 IN7~IN0:模拟量输入通道。 ADDA、ADDB、ADDC:地址线。 ALE:地址锁存允许信号。 START:转换启动信号。 D7~D0:数据输出线。 OE:输出允许信号。 CLK:时钟信号。 EOC:转换结束状态信号。 Vcc:+5V电源。 GND:为地。 Vref+、Vref-:参考电压。 ADC0809的转换时钟CLK由单片机的ALE提供。 ADC0809工作时的时序关系如图所示。 1.任务要求 用AT89C51和ADC0809设计一只简单的数字电压表,可以测量0~+5V的电压,并将测得的电压数值显示在4位共阴极的数码管上,要求测量精度为0.01V,即保留两位小数。 2.任务分析 要实现本任务的要求,ADC0809是作为读取模拟电压值的A/D转换芯片,在其输入通道IN3上接入被测电压就可以了。由于ADC0809的供电电压是+5V,所以其输入通道只能输入0~+5V的电压,正好与任务要求符合,我们可以用一只简单的可调电阻,其一端接+5V,一端接地,中间的可调脚接入ADC0809的IN3,只要滑动电阻的可调脚,IN3上就能输出不同的电压值,通过ADC0809A/D转换成数字量后送入AT89C51的P3口,AT89C51再将接收到的电压值的数字量还原为模拟量显示在数码管上。 由于0~+5V的模拟电压值转换为8位数字11111111(0~255),一个数字量单位的电压值是5V/255,将数字量还原为模拟量时只要将P3口读取的数值乘以5V/255就可以了。我们可以用T0的定时中断为ADC0809提供CLK信号。 3.任务设计 (1)器件的选择 根据任务的要求和分析,采用AT89C51作为CPU,ADC0809作为A/D转换芯片,一只可调电阻用来获取不同的电压,一只4位的共阴极数码管显示电压,包括AT89C51工作的外围电路,设计所用器件清单如表所列。 (2)硬件原理图设计 (3)软件程序设计 源程序如下: //*************************************************************************** //宏定义 #includereg51.h #define uchar unsigned char #define uint unsigned int //*************************************************************************** //数码管码表 uchar code LEDData[ ]={ 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; //ADC0809控制脚定义 sbit OE=P1^0; sbit EOC=P1^1; sbit ST=P1^2; sbit CLK=P1^3; //*************************************************************************** //延时1ms子程序 void DelayMS(uint x) { uchar i; while(x--) for(i=0; i120; i++); } //*************************************************************************** //显示转换结果子程序 void Display(uchar d) { float a; uint b; a = d*5/255; //计算出电压模拟量值 b = a*100+0.5 ; //保留两位小数,四舍五入 P2=0xF7; //数码管第4位显示个位数 P0= LEDData[ b%10]; DelayMS(5); P0=0x00; P2=0xFB; //数码管第3位显示十位数 P0= LEDData[ b%100/10]; De
您可能关注的文档
最近下载
- 第20课 五四运动与中国共产党的诞生必修中外历史纲要上 (2).pptx VIP
- 久谦-中信产业基金第三方物流及快递投资目标筛选项目 v3.6-20120118.pptx VIP
- 《景观生态学》全套教学课件.ppt
- 幼儿园公开招聘教职员工简章.pdf
- 2023年财务分析题库完整版.doc
- CJJ∕T 135-2009 (2023年版) 透水水泥混凝土路面技术规程.pdf
- 第二章第五节 跨学科实践:制作隔音房间模型-人教版2024物理八年级上学期.pptx
- [股市论谈]53万打天下(53万实盘帐户天天更新).t
- 第9课 创新增才干-【中职专用】2024年中职思想政治《哲学与人生》金牌课件(高教版2023·基础模块).pptx VIP
- 纲要(上)第20课 五四运动与中国共产党的诞生课件(共23张PPT).pptx VIP
文档评论(0)