ImageVerifierCode 换一换
格式:DOC , 页数:17 ,大小:536KB ,
资源ID:9905335      下载积分:8 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(基于51单片机的数字电压表设计《单片机原理与应用》课程设计说明书大学论文.doc)为本站上传会员【可****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于51单片机的数字电压表设计《单片机原理与应用》课程设计说明书大学论文.doc

1、武汉理工大学《单片机原理与应用》课程设计说明书 1.1数字电压表介绍 数字电压表简称DVM,数字电压表基本原理是将输入的模拟电压信号转化为数字信号,再进行输出显示。而A/D转换器的作用是将连续变化的模拟信号量转化为离散的数字信号,器基本结构是由采样保持,量化,编码等几部分组成。因此AD转换是此次设计的核心元件。输入的模拟量经过AD转换器转换,再由驱动器驱动显示器输出,便得到测量的数字电压。 本次自己的设计作品从各个角度分析了AD转换器组成的数字电压表的设计过程及各部分电路的组成及原理,并且分析了数模转换进而使系统运行起来的原理及方法。通过自己的实践提高了动手能力,也只有亲历亲为才能收获掌

2、握到液晶学过的知识。其实也为建立节约成本的意识有些帮助。本次设计同时也牵涉到了几个问题:精度、位数、速度、还有功耗等不足之处,这些都是要慎重考虑的,这些也是在本次设计中的收获。 1.3 本次设计要求 本次设计的作品要求制作数字电压表的量程为0到10v,由于用到的模数转换芯片是ADC0809,设计系统给的供电电压为+5v,所以能够测量的电压范围为-0.25v到5.25v之间,但是一般测量的直流电压范围都在这之上,所以采用电阻分压网络,设计的电压测量范围是0到25v之间,满足设计要求的最大量程5v的要求。同时设计的精度为小数点后三位,满足要求的两位小数的精度,在不考虑AD芯片的量化误差的前提下

3、此次设计的精度能够满足一般测量的要求。 2单片机和AD相关知识 2.1 51单片机相关知识 51单片机是对目前所有兼容intel 8031指令系统的单片机的统称。该系列单片机的始祖是intel的8031单片机,后来随着技术的发展,成为目前广泛应用的8为单片机之一。单片机是在一块芯片内集成了CPU、RAM、ROM、定时器/计数器和多功能I/O口等计算机所需要的基本功能部件的大规模集成电路,又称为MCU。51系列单片机内包含以下几个部件: 一个8位CPU;一个片内振荡器及时钟电路; 4KB的ROM程序存储器; 一个128B的RAM数据存储器; 寻址6

4、4KB外部数据存储器和64KB外部程序存储空间的控制电路; 32条可编程的I/O口线; 两个16位定时/计数器; 一个可编程全双工串行口; 5个中断源、两个优先级嵌套中断结构。51系列单片机如下图: 图1 51单片机引脚图 2.2 AD转换器相关知识 ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式AD转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。 (1)主要特性:    1)8路输入通道,8位A/D转换器,即分辨率为8位。    2)具有转换起停控制端。    3)转

5、换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)     4)单个+5V电源供电    5)模拟输入电压范围0~+5V,不需零点和满刻度校准。    6)工作温度范围为-40~+85摄氏度    7)低功耗,约15mW。 (2)内部结构 ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。 图2 ADC0909引脚 3 数 字电压表系统设计 3.1系统设计框图 此次设计的是数字电压表,要求

6、的电压范围是0~5v,而设计扩展的量程为0~25v。系统设计主要包括四个部分:分别是电源模块、AD模数转换部分、51单片机最小系统部分、1602液晶显示部分。首先由单片机初始化ADC0809模数转换芯片和1602液晶显示,当外接被测电压后,ADC0809将模拟电压信号转换为数字信号输入到单片机的I/O口,通过单片机处理后将电压的大小显示在1602液晶上面。如下是本次设计作品的框图: 图3 系统框图 3.2 单片机电路 单片机最小系统如下图所示,各个引脚都已经标出,而且四个I/O口都已经用排阵引出,方便外接I/O扩展用。 图4 单片机最小系统

7、 3.3 ADC采样电路 由于ADC0809是带地址锁存的模数转换器件,ADDA、ADDB、ADDC为模拟通道选择,编码为000~111分别选中IN0~IN7。ALE为地址锁存信号,其上升沿锁存ADDA、ADDB、ADDC的信号,译码后控制模拟开关,接通八路模拟输入中相应的一路。CLK为输入时钟,为AD转换器提供转换的时钟信号,典型工作频率为640KHz。START为AD转换启动信号,正脉冲启动ADDA~ADDC选中的一路模拟信号开始转换。OE为输出允许信号,高电平时候打开三态输出缓存器,是转换后的数字量从D0~D7输出。EOC为转换结束信号,启动转换后EOC变为低电平,转换完成后EOC编程

8、高电平。 图5 ADC模数转换 3.4显示电路 以下是1602液晶引脚的接线图,中间没有接线的为数据控制端口。 1602字符型通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线 VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样: 图6 1602引脚图 3.5供电电路和参考电压 由于此次系统的芯片工作电压为+5v,所以用常用的三端稳压器LM317和LM337构成的电源系统供电,其中ADC0809要提供一个准确的参考电源才能正常的工作,而LM317正好能够达到要求。 图7 系统供电部分 3.6 数字电压表系统电路原理图 如

9、下是此次数字电压表系统的总原理图,其中的连线用网络标号表示出来,省去了连线的麻烦,而且是总图的可读性增强。 图8 数字电压表总原理图 4 软件设计 4.1 系统总流程图 此次设计的数字电压表系统比较简单,就设置了一个量程为0~25v,所以没有用到按键控制,也没有其他的功能,因此程序比较简单,在输入模拟信号时采用电阻分压,最终的采样输入电压只有实际输入电压的十分之一,所以在编写程序中要编写一段数据调整程序,如下为系统总流程图: 开始 结束 初始化 AD采样量化 液晶显示 图9 系统流程图 4.2 程序代码 /********电压表********/ #inclu

10、de #include//库函数头文件,代码中引用了_nop_()函数 /*ADC初始定义*/ sbit start=P3^0; //转换开始控制 sbit oe=P3^2; //输出允许控制 sbit eoc=P3^1; //转换结束信号 sbit clock=P3^3; //转换时钟 sbit P0_2=P0^2; //蜂鸣器 sbit P0_5=P0^5; sbit P0_6=P0^6; sbit P0_7=P0^7; /*1602液晶初始定义*/ sbit RS=P0^0; //读控制 sbit RW=P

11、0^3; //写控制 sbit E=P0^1; //使能端 unsigned char da0,da1,da2,da3,da4; unsigned int temp; unsigned int d1,d2,d3; unsigned char dat; //数字电压量 unsigned char lcdd[]="0123456789"; void lcd_w_cmd(unsigned char com); //写命令函数 void lcd_w_dat(unsigned char dat); //写数据函数 void display(unsigned char dat

12、); //显示函数 unsigned char lcd_r_start(); //读状态函数 void int1(); //LCD初始化函数 void delay(unsigned char t); //可控延时函数 void delay1(); //软件实现延时函数,5个机器周期 /*显示函数部分*/ void display(unsigned char dat) { temp=5*dat; //量程扩大五倍 da0=temp/51/10; //十位 da1=temp/51%10; //个位 d1=temp%51; d1=

13、d1*10; da2=d1/51; //十分位 d2=d1%51; d2=d2*10; da3=d2/51; //百分位 d3=d2%51; d3=d3*10; da4=d3/51; //千分位 lcd_w_cmd(0x0c); //设置光标不显示、不闪烁 delay(20); lcd_w_cmd(0xc0); //第二行起始显示地址0x80 delay(20); delay(2); lcd_w_dat('V'); //显示字符串‘volatage is’ lcd_w_dat('o'); lcd_w_dat('l')

14、 lcd_w_dat('a'); lcd_w_dat('t'); lcd_w_dat('a'); lcd_w_dat('g'); lcd_w_dat('e'); lcd_w_dat(' '); //显示电压的大小 lcd_w_dat(lcdd[da0]); //十位 lcd_w_dat(lcdd[da1]); //个位 lcd_w_dat('.'); //小数点 lcd_w_dat(lcdd[da2]); //十分位 lcd_w_dat(lcdd[da3]); //百分位 lcd_w_dat(

15、lcdd[da4]); //千分位 lcd_w_dat('V'); //单位 } /*主函数*/ void main() { P0_2=1; //关蜂鸣器 P0_5=P0_6=P0_7=0; //选择000第一通道 int1(); //LCD初始化 while(1) { start=0; start=1; //获得上升沿复位 start=0; //获得下降沿启动转换,同时ALE开锁存 do { clock=~clock; //时钟信号 }

16、 while(eoc==0); //等待转换结束,eoc=1结束 oe=1; //三态锁存缓冲器打开 dat=P1; //数字电压信号输出 oe=0; //三态锁存缓冲器关闭 display(dat); } } /*延时函数*/ void delay(unsigned char t) { unsigned char j,i; for(i=0;i

17、 _nop_(); _nop_(); _nop_(); } /*LCD初始化函数*/ void int1() { lcd_w_cmd(0x3c); // 设置工作方式 lcd_w_cmd(0x0c); // 设置光标 lcd_w_cmd(0x01); // 清屏 lcd_w_cmd(0x06); // 设置输入方式 lcd_w_cmd(0x80); // 设置初始显示位置 } /*LCD读状态函数*/ //返回值:返回状态字,最高位D7=0,LCD控制器空闲;D7=1,LCD控制器忙 unsig

18、ned char lcd_r_start() { unsigned char s; RW=1; //RW=1,RS=0,读LCD状态 delay1(); RS=0; delay1(); E=1; //E端时序 delay1(); s=P2; //从LCD的数据口读状态 delay1(); E=0; delay1(); RW=0; delay1(); return(s); //返回读取的LCD状态字 } /*LCD写命令函数*/ void

19、 lcd_w_cmd(unsigned char com) { unsigned char i; do { // 查LCD忙操作 i=lcd_r_start(); // 调用读状态字函数 i=i&0x80; // 与操作屏蔽掉低7位 delay(2); } while(i!=0); // LCD忙,继续查询,否则退出循环 RW=0; delay1(); RS=0; // RW=0,RS=0,写LCD命令字 delay1(); E=1;

20、 //E端时序 delay1(); P2=com; //将com中的命令字写入LCD数据口 delay1(); E=0; delay1(); RW=1; delay(255);; } /*LCD写数据函数*/ void lcd_w_dat(unsigned char dat) { unsigned char i; do { // 查忙操作 i=lcd_r_start(); // 调用读状态字函数 i=i&0x80; // 与操作屏蔽掉低7位

21、delay(2); } while(i!=0); // LCD忙,继续查询,否则退出循环 RW=0; delay1(); RS=1; // RW=1,RS=0,写LCD数据 delay1(); E=1; // E端时序 delay1(); P2=dat; // 将dat中的显示数据写入LCD数据口 delay1(); E=0; delay1(); RW=1; delay(255); } 5 数字电压表电路仿真 5.1 仿真总图 为了验证此次设计原理图的正确性,在制作实物之前用专业软件做

22、了仿真,在Proteus软件中设置AT89C51单片机的晶振频率为12 MHz。本电路EA接高电平,没有扩展片外ROM。如下图是此次系统仿真的总原理图部分: 图8 仿真总图 通过用protues软件的仿真发现此次设计的系统原理图能够实现电压的正确测量,而且电压的误差较小,1602液晶屏能够正确显示出测量出来的结果。 5.2 仿真结果显示 如下图为此次仿真的测量电压的结果的截图: 图9 仿真结果显示 6 系统性能分析 通过理论分析和电路仿真,现在对此次课程设计的数字电压表系统设计结果进行总结。通过仿真我们可以看到仿真结果和理论分析是相符合的,也即此次设计的系统能够在一定的条

23、件下达到课程设计目的,实现对外接电压的测量,电路结构简单,但是可以看出在系统的稳定性及可靠性方面做得不够。具体体现在以下几个方面: (1)数字电压表系统中对于外界被测电压的变化反应不够灵敏,变化比较慢,主要是因为ADC模数转换芯片的转换速率不够; (2)数字电压表系统测量的外界电压不够准确,跟用示波器或者高精度的电压表测量的结果有偏差,主要是因为ADC芯片的位数不够; (3)而且ADC的参考电压不准确也会造成测量结果的不准确; (4)另外很重要的影响因素是因为AD芯片的测量输入电压最大为5v,而设计的是25v,量程扩大了五倍,运用的是电阻分压网络,如果用精密电阻可以做到很高的精度,而设

24、计中用的是5%误差的碳膜电阻,温度系数高,而且不稳定,这是很重要的一个影响因素。 针对上述问题,理论上可以用一下方法进行改进: (1)在换用高精度的ADC芯片能够改善测量精度的问题,一般用12位AD既能满足要求; (2)制作高精度电压参考源,通过提高ADC模数转换芯片的参考电压的精度来提高测量的电压精度; (3)运用高精度的金属膜电阻构成分压网络,能够最大限度提高精度; (4)通过查阅书籍可以找到ADC0809的误差系数和碳膜电阻的温度系数,然后在编程的时候进行软件的补偿和参数校正,能够最优化的用软件来补偿硬件的误差问题,这个在编程思想中是很重要的。 虽然时间紧迫,最终按照仿真成功

25、的原理图焊接实物,并调试,调试成功!而且在老师的指点下,使系统得到了最大优化的提高。 7 心得体会 通过与同学的讨论与认真计算设计分析所完成的,课程设计的任务是设计、组装并调试一个数字电压表测量系统。需要我们综合运用单片机等课程的知识,通过查阅资料、方案论证与选定;设计和选取电路和元器件;分析指标及讨论,完成设计任务。 在这次课程设计中,我学会了怎样去根据课题的要求去设计电路和调试电路。动手能力得到很大的提高。从中我发现自己并不能很好的熟练去使用我所学到的高频电路知识。在以后学习中我要加强对使用电路的设计和选用能力。但由于电路比较简单、定型,而不是真实的生产、科研任务,所以我

26、们基本上能有章可循,完成起来并不困难。把过去熟悉的定型分析、定量计算逐步,元器件选择等手段结合起来,掌握工程设计的步骤和方法,了解科学实验的程序和实施方法。这对今后从事技术工作无疑是个很好的训练。通过这种综合训练,我们可以掌握电路设计的基本方法,提高动手组织实验的基本技能,培养分析解决电路问题的实际本领,为以后毕业设计和从事电子实验实际工作打下基础。 同时也让我充分认识到自己的空想与实践的差别,认识莫眼高手低,莫闭门造车,知识都在不断更新和流动之中,而扎实的基础是一切创造的源泉,只有从本质上理解了原理,才能更好的于疑途寻求柳暗花明,实现在科学界的美好畅游和寻得创造的快乐。 还有就是每次在组

27、团做试验都会感觉特别的充实,我们可以按照自己设计的电路去完成,老师也不是死板的要求我们怎么怎么,而是给了我们尽可能大的自己决定的余地,这次的元器件都是按照我们设计出来的电路参数给定的,而且每位老师都很耐心的为我们解决试验中所出现的问题,最后真心的感谢老师对我们课程设计的建议和帮助,我们才得以圆满的完成这次课程设计! 参考文献 [1]李群芳,张士军,黄建.单片微型计算机与接口技术. 北京:电子工业出版社,2008 [2]李群芳.单片机原理接口与应用.北京:清华大学出版社,2005 [3]张迎新.单片微型计算机原理、应用及接口技术.北京:国防工业出版社,1999 [4]高峰.单片微机应用系统设计及使用技术.北京:机械工业出版社,2007 [5]彭伟.单片机c语音程序设计实例基于protues仿真.北京:电子工业出版社,2007 16

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服