ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:244.60KB ,
资源ID:22913904      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22913904.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计数字电压表大学毕设论文Word文件下载.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计数字电压表大学毕设论文Word文件下载.docx

1、1、王迎旭等.单片机原理及及应用. 2版.机械工业出版社,20122、胡汉才.单片机原理及其接口技术.3版.清华大学出版社,2010.3、戴灿金.51单片机及其C语言程序设计开发实例.清华大学出版社,2010目 录1 总体方案设计 1 1.1设计要求 1 1.2设计思路 1 1.3总设计框图 22 硬件电路设计 2 2.1 总硬件电路设计 2 2.2 单片机控制模块设计 2 2.3 AD转换模块设计 3 2.4 LCD显示模块 53 软件设计 5 3.1 主程序设计 6 3.2 A/D转换程序设计 64 调试 8 4.1 显示结果 8 4.2 误差分析 85 总结 96 参考资料 107 附录

2、 101 总方案设计1.1设计要求 本课题要求以MCS-51系列单片机为核心,设计一个数字电压表。(1)采用串行A/D转换模块或者并行A/D转换模块能对多路电压信号进行采样并使用LED或者液晶显示器进行显示;(2)具有轮流显示功能(3)能够通过键盘对采样通道进行选择(4)其它功能1.2设计思路基于AT89C51单片机来设计。 用ADC0808芯片做为A/D转换器,与单片机的接口为P1口和P2口的高四位引脚。 电压的输出显示采用LCD1602液晶显示器显示 通过按键选择通道1.3总设计框图利用AD转换器对输入电压进行采集并传输给单片机,得到相应的数字量,再按数字量与模拟量成正比关系运算得到对应的

3、模拟电压值,然后把模拟值通过显示器显示出来,另外可以通过按键选择通道。然后通过单片机与液晶显示器LCD1602连接,最终显示液晶显示器上。图1 设计总框图根据系统的功能要求,控制系统采用AT89C52单片机,A/D转换器采用ADC0808。ADC0808是8位的A/D转换器。当输入电压为5.00V时,输出的数据值为255(0FFH),因此最大分辨率为0.0196V(5/255)。ADC0808具有8路模拟量输入端口,通过3位地址输入端能从8路中选择一路进行转换。如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8路输入电压进行测量。显示器采用LCD显示器,显示效果好。按键可只设定一个,

4、用于选择显示的当前通道。2 硬件电路设计2.1总硬件电路设计数字电压表具体硬件电路如图附录A所示。其中,显示器LCD1602的数据线与89C 51的P0口相连,RS与P1.7相连,R/与P1.6相连,E端与P1.5相连。按键只设定了一个K1,与AT89C52的P1.0,用于进行通道选择,当按下一次,通道加1,显示下一个通道。ADC0808 的数据线D0D7与AT89C51的P2口相连,地址输入端ADDA、ADDB、ADDC与AT89C51的P3口的低3位P3.0、P3.1、P3.2相连,地址锁存控制端ALE和启动信号START连接在一起与P3.7相连,数据输出允许控制端OE与P3.6相连,转换

5、结束信号EOC与P1.3相连。ADC0808的时钟信号输入端CLOCK与P1.4相连,而P1.4由定时/计数器0控制,每10(s取反一次,则CLOCK的时钟周期为20(s,频率为50KHz,满足ADC0808的时钟要求。参考电压VREF+接+5V电源,参考电压VREF-接地,则当输入电压为5.00V时,输出的数据值为255(0FFH),当输入电压为0V时,输出的数据值为0(00H),最大分辨率为0.0196V(5/255)。2.2 单片机控制模块设计单片机控制模块的作用是为控制各单元电路的运行并完成数据的换算或处理,主要由单片机、时钟电路、复位电路组成。时钟电路单片机工作的时间基准是由时钟电路

6、提供的,在单片机的XTAL1和XYAL2两个管脚接一只晶振及两只电容就构成了单片机的时钟电路,电路中电容器C1和C2对振荡频率有微调作用,通常取(3010pF)石英晶体选择11.0592MHz。时钟电路如图2所示。图2 时钟电路 复位电路单片机的RST管脚为主机提供了一个外部复位信号输入口。复位信号是高电平有效,高电平有效的持续时间为2个机器周期以上。单片机的复位方式为上电复位方式。复位电路如图3所示。 图3 复位电路2.3 AD转换模块设计逐次逼近型A/D转换器ADC0808属于直接型A/D转换器,它能把输入的模拟电压直接转换为输出的数字代码,而不需要经过中间变量。ADC0808简介ADC0

7、808精度为8位,CMOS器件,不仅包括一个8位的逐次逼近型的ADC部分,而且还提供一个8通道的模拟多路开关和通道寻址逻辑,因而有理由把它作为简单的“数据采集系统”。利用它可直接输入8个单端的模拟信号分时进行A/D转换,在多点巡回检测和过程控制、运动控制中应用十分广泛。外部引脚图及引脚功能ADC0808的外部引脚如图4所示。图4 ADC0808外部引脚图IN0IN7:8路模拟量输入。A、B、C:3位地址输入,2个地址输入端的不同组合选择八路模拟量输入。ALE:地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。D0D7:八位数据输出线,A/D转换结果由这8根线传

8、送给单片机。OE:允许输出信号。当OE=1时,即为高电平,允许输出锁存器输出数据。START:启动信号输入端,START为正脉冲,其上升沿清除ADC0808的内部的各寄存器,其下降沿启动A/D开始转换。EOC:转换完成信号,当EOC上升为高电平时,表明内部A/D转换已完成。AD转换模块设计集成摸数转换芯片ADC0808实现的A/D转换电路如图5所示,被测信号由ADC0808模拟输入端输入,完成A/D转换后送入单片机,经相应处理后送出显示。图5 AD转换电路2.4 LCD显示模块LCD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。字符显示是

9、根据需要显示基本字符。本设计采用的是字符型显示。系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个汉字。3 软件设计根据需要,可将系统软件按照功能划分为4个模块,分别是主程序模块、A/D转换模块、液晶显示模块、中断服务程序模块,各模块的功能关系如图6所示。编写系统软件时,可首先编写各模块的底层驱动程序,而后是系统联机调试,编写上层主程序。图6 系统软件框图3.1主程序设计START选择ADC0808的

10、转换通道设置定时器,提供时钟信号N启动A/D转换Y输出转换结果数值转换显示 图7 主程序流程图 整个主程序就是在A/D转换,数据处理及显示程序循环执行。整个程序流程框图如图7所示。启动ADC0808对模拟量输入信号进行转换,通过查询P1.3引脚来确定转换是否完成,若完成则把数据通过P2端口读入,经过数据处理后在LCD1302上显示。3.2 A/D转换程序设计 程序开始执行后首先通过手动控制拨码开关来选择8路模拟通道的一路进行模数转换。接着启动一次A/D转换,通过判断转换结束状态信号EOC是否为1来判断A/D转换是否结束。EOC=1,则表示A/D转换结束,否则EOC=0,则表示正在进行A/D转换

11、。接着输出允许信号OE=1,输出转换后的数据,就完成了一次A/D转换,程序返回到数据处理模块。只要手动控制模拟通道就可以不停的循环进行模数转换。开始设置模拟输入口启动转换 N输出数值处理图8 A/D转换程序流程图4 调试4.1显示结果1.当输入电压为0V时显示结果如图所示,测量误差为0V。图9 输入电压为+0V时,LCD显示结果2.当输入电压为+1.65V时,显示结果如图所示,测量误差为0.1V。图10 输入电压为+1.65V时,LCD显示结果3.当输入电压为+3.85V时,显示结果如图所示,测量误差为0.1V。图11 输入电压为+3.84V时,LCD显示结果4.当输入电压为+5V时,显示结果

12、如图所示,测量误差为0V。图12 输入电压为+5.00V时,LCD显示结果4.2误差分析通过以上仿真测试结果可以得到数字电压表与实际电压对比表格,如表1所示:表1 数字电压表与实际输入电压对比测试表输入电压值/V电压表测量值/V绝对误差/V0.000.510.500.011.232.182.173.000.260.254.004.375.00因为单片机AT89C51为8位处理器,当输入电压为5.00V时,ADC0808输出数据值为255(FFH),因此单片机最高的数值分辨率为0.0196V(5/255)。这就决定了电压表的最高分辨率只能到0.0196V,从上表可看到,测试电压一般以0.01的幅

13、度变化。而且数字电压表测得的值基本上比实际输入值偏小0-0.01V。5 总结 本设计以AT89C51单片机为控制核心,通过集成摸数转换芯片ADC0808将被测信号转换成数字信号,经单片机内部程序处理后,由液晶显示器LCD1602显示测量结果。 仿真测试表明,系统性能良好,测量读数稳定易读、更新速度合理,直流电压测量范围为0.005.00V,最小分辨率为0.0196V,满足任务书指标要求。但是,该系统也存在一定程度的不足,例如数字电压表测量结果误差还比较大,输出量可用平均值算法改善,使测量准确度更高。 通过本次课程设计的锻炼,我学到了很多有关仪表的设计方法与工作原理。在设计的过程中,出现了很多错

14、误,这让我明白了,对总体的把握固然重要,但对于一个实际的系统,很难在设计之初就把握所有细节,设计任何一个系统都需要耐心逐步去发现和解决问题。在寻求解决困难的过程中,激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。总体来说,这次实习使我受益匪浅。在摸索该如何设计电路使之实现所需功能的过程中,特别有趣,培养了我的设计思维。通过两个星期的学习让我把书本上的知识转换成实际可操作的东西,让我体会到成功的喜悦和快乐。6 参考资料7附录附录A 数字电压表原理图:图13 数字电压表原理图附录B程序清单: #include #include intrins.h#define uchar uns

15、igned char #define uint unsigned int sbit RS=P17; sbit RW=P16;sbit EN=P15;sbit ST=P37;sbit OE=P36;sbit EOC=P13;sbit CLK=P14;sbit key1=P10; uchar data chnumber; /存放当前通道号uchar disbuffer4=0,.,0,0; /定义显示缓冲区uchar data ad_data8=0,0,0,0,0,0,0,0; /0808的8个通道转换数据缓冲区uint temp;/检查忙函数void fbusy() P0 = 0xff; RS =

16、 0; RW = 1; EN = 1; EN = 0; while(P0 & 0x80) /使能端EN高电平有效,能读取lcd内存储单元的值 /写命令函数void wc51r(uchar j) fbusy(); RW = 0; P0 = j;/写数据函数void wc51ddr(uchar j) fbusy(); /读状态; RS = 1;void init() /初始化函数wc51r(0x01); /清屏wc51r(0x38); /使用8位数据,显示两行,使用5*7的字型wc51r(0x0c); /显示器开,光标开,字符不闪烁wc51r(0x06); /字符不动,光标自动右移一格/*0808

17、转换子函数*/test()uchar m;for (m=0;m8;m+) P3=m; /送通道地址 ST=0;_nop_();ST=1;ST=0;/锁存通道地址启动转换 _nop_(); while (EOC=0); /等待转换结束 OE=1;ad_datam=P2;OE=0; /读取当前通道转换数据,当OE=1时输出允许,OE=0时输出禁止/*延时函数*void delay(uint i) /延时函数uint y,j;for (j=0;ji;j+)for (y=0;y0xff;y+);/定时器/计数器T0产生0808的时钟void T0X(void)interrupt 1 using 0 C

18、LK=CLK;void main(void)uchar i;SP=0X50;TMOD=0x02;TH0=246;TL0=246;ET0=1;EA=1;TR0=1;delay(10);init();wc51r(0x81); /写入显示缓冲区起始地址为第1行第1列wc51ddr(A); /D / R:wc51r(0xC0); /写入显示缓冲区起始地址为第2行第1列V /第2行第1列显示字母 V /第2行第2列显示字母 AL /第2行第3列显示字母 LU /第2行第4列显示字母 UE /第2行第5列显示字母 E /第2行第6列显示字母 :while(1) test(); /调用ADC0808转换程序

19、8个通道转换一次 if (key1=0) while(key1=0); chnumber+;if (chnumber=8)chnumber=0;/有键按下,当前通道地址加1 temp=ad_datachnumber; /取出当前通道值,转换成电压值所对应的字符 temp=(temp*100)/51; disbuffer0=temp/100+0x30; temp=temp%100; disbuffer2=temp/10+0x30; disbuffer3=temp%10+0x30; wc51r(0x88); wc51ddr(chnumber+0x30); wc51r(0xc8); /显示当前通道 for (i=0;i4;i+) wc51ddr(disbufferi);电气信息学院课程设计评分标准环节项目评价优良中及格不及格实践环节(70%)1、设计方案合理性与创造性2、开发板焊接及其调试完成情况3、硬件设计或软件编程完成情况4、硬件测试或软件调试结果*5、解决问题能力及答辩情况6、纪律和出勤情况设计报告(30%)1、 设计报告内容完整、规范,2、 图纸正确、清晰,3、 设计步骤规范、正确,4、 设计结果可行综合评价课程设计成绩评定为:优 良 中 及格 不及格 指导老师签名:_ 日 期:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1