欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    本科毕业设计-单片机--数字电压表的仿真设计.doc

    • 资源ID:93374098       资源大小:2.47MB        全文页数:22页
    • 资源格式: DOC        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    本科毕业设计-单片机--数字电压表的仿真设计.doc

    单片机系统课程设计 提供全套毕业论文,各专业都有单片机系统课程设计题目名称: 数字电压表的仿真设计 专业班级: 测控1201班 学生姓名: 学 号: 201223030121 指导教师: 成绩:评语:指导老师签名: 日期: 单片机系统课 程 设 计课程设计名称: 数字电压表的仿真设计 专 业 班 级 : 测控1201班 学 生 姓 名 : 学 号 : 201223030121 指 导 教 师 : 课程设计地点: 31 号楼 课程设计时间: 2014-12-92014-12-20 单片机系统 课程设计任务书学生姓名刘萌萌专业班级测控1201班学号201223030121题 目数字电压表的仿真设计课题性质工程设计课题来源自拟指导教师郭广灵主要内容(参数)该数字电压表是利用单片机C51与ADC0808设计一个数字电压表,将模拟信号05V之间的电压值转换成数字量信号,以两位数码管显示,并通过虚拟电压表观察ADC0808模拟量输入信号的电压值,LED数码管实时显示相应的数值量。任务要求(进度)第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。第5-6天:软件设计,编写程序。第7-8天:程序调试。第9-12天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确。主要参考资料【1】单片微型计算机原理及接口技术审查意见系(教研室)主任签字: 年 月 日 目录一 系统概述11.1 课题设计的目的.11.2 课程设计内容11.3 课程设计实现的目标1二 设计方案12.1总体设计思路12.2 数字电压表的PROTEUS软件仿真电路设计2三、 数字电压表的程序设计33.1 程序流程图33.2 程序编译设计4四 数字电压表的软件设计54.1 数字电压表的硬件电路54.2 C51单片机和数码管显示电路的接口设计74.3 A/D转换电路的接口设计7五 数字电压表的系统仿真调试7六 设计心得8参考文献9附录110附录211一 系统概述1.1 课题设计的目的.1、通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。2、通过定时闹钟控制系统的设计,掌握定时/计数器、中断的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力。1.2 课程设计内容   1.  由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK是接在AT89S51单片机的P3.3端口上,也就是要求从P3.3输出CLK信号供ADC0809使用。因此产生CLK信号的方法就得用软件来产生了。2.由于ADC0809的参考电压VREFVCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值(D/256*VREF)1.3 课程设计实现的目标利用单片机C51与ADC0808设计一个数字电压表,将模拟信号05V之间的电压值转换成数字量信号,以两位数码管显示,并通过虚拟电压表观察ADC0808模拟量输入信号的电压值,LED数码管实时显示相应的数值量。二 设计方案2.1总体设计思路 按系统功能要求,决定控制系统采用AT89C51单片机,A/D转换采用ADC0808。系统除能确保实现要求的功能以外还可以方便的进行其功能的扩展。本文采用AT89C51作为核心元件,AT89C51是一个低功耗,高性能的CMOS 8位单片机。数字电压表电路组成框图如图2-1所示。 单 片 机 芯 片 模 拟 转 换 译 码 器 数 码 管 显 示 模 拟 被 测 电 压 程序处理 驱动数码管 数字量 图2-1 系统组成框图 本设计中需要用到的电路有电源电路、模/数转换电路、单片机控制电路、显示电路等。设计中需要用到的芯片有AT89C51单片机、ADC0808、74LS74、LED数码管等。2.2 数字电压表的PROTEUS软件仿真电路设计 待测电压输入信号在ADC0808芯片承受的最大工作电压范围内,经过模/数转换电路实现A/D转换,通过单片机控制电路进行程序数据处理,然后通过七段译码/驱动显示电路实现数码管显示输入电压。硬件电路原理图如图2-2所示。图2-2 PROTEUS软件仿真电路图三、 数字电压表的程序设计3.1 程序流程图系统上电状态,初始化ADC0808的启动地址,数码管显示关闭,开始启动A/D转换。等待启动结束后,将ADC0808的0号通道模拟量输入信号转换输出的数字量结果通过数码管动态显示的方式显示到三位数码管上。根据设计要求结合硬件电路,在输入模拟信号时采用电阻分压,最终的采样输入电压只有实际输入电压的十分之一,所以在编写程序中要编写一段数据调整程序,其中还应注意硬件显示电路采用了动态扫描显示,在动态扫描显示方式中,动态扫描的频率有一定的要求,频率太低,数码管LED将会出现闪烁现象,通常数码管点亮时间间隔一般均取5ms左右为宜,这就要求在编写程序时,使其点亮并保持一定的时间。总结以上分析,程序流程图如图3-1,图3-2所示。主程序 初始化,驱动A/D转换 数码管LED显示 延时20ms 取 段 码 结 束 图3-1 主程序流程图开 始 地 址 指 针 设 置 取 段 码 段 码 左 移 一 位 输 出 一 位 段 码 输 出 一 个 移 位 脉 冲 取 段 码 结束 Y 图3-2 LED数码显示程序流程图3.2 程序编译设计 数字电压表由主程序,定时器中断子程序和显示子程序等组成。在KEIL软件中进行程序设计,如图3-3所示 图3-3 用KEIL软件编译和生成HEX文件 主程序主要包括初始化程序,A/D转换程序,数值转换程序组成。初始化程序对显示存储区清零,同时设置定时器初值,工作方式和中断允许。数值转换程序的功能是将A/D转换后的数字量转换成可供显示的十进制非压缩BCD码,存入30H33H中,用KEIL软件编译程序和生成HEX文件。四 数字电压表的软件设计4.1 数字电压表的硬件电路数字电压表的硬件电路图由单片机最小系统,ADC0808数据采集电路和四位一体的共阳极显示电路构成,如图4-1所示。ADC0808数据采集电路的D0D7端与P1口相连,通道选择端ADDA,ADDB,ADDC直接接地,因此该电路道固定为INO。时钟信号CLOCK,启动信号START,转换结束信号EOC及输出允许信号OE分别接至P2.4P2.7端。共阳极显示电路的位选线接至P2.0P2.3,段落接至P0口,AT89C51单片机的输出端口不足以驱动共阳极动态显示电路,可加三极管放大电路或74LS224,74LS373等集成芯片进行驱动。图4-1 数字电压表仿真图在软件中找到所需要的元件即可制作硬件电路图,数字电压表仿真电路元件清单如表4-1所示。表4-1 数字电压表元件清单序号元件名称规格数量151单片机AT89C51个2晶振12个3起振电容陶瓷电容个4复位电容,电解电容个5复位电容电阻个6转换器个7电阻,若干8可调电阻个9数码管共阳极四位一体数码管个4.2 C51单片机和数码管显示电路的接口设计利用单片机C51与ADC0808设计一个数字电压表,将模拟信号05V之间的直流电压值转换成数字量信号0FF,以两位数码管显示。Proteus软件启动仿真,当前输入电压为2.5V,转换成数字值为7FH,用鼠标指针调节电位器RV1,可改变输入模/数转换器ADC0808的电压,并通过虚拟电压表观察ADC0808模拟量输入信号的电压值,LED数码管实时显示相应的数值量。在Proteus软件中设置AT89C51单片机的晶振频率为12MHz。本电路EA接高电平,没有扩展片外ROM。4.3 A/D转换电路的接口设计 A/D转换器采用集成电路ADC0808。ADC0808具有8路模拟量输入信号IN0IN7(15脚、2628脚),地址线C、B、A(2325脚)决定哪一路模拟输入信号进行A/D转换,本电路将地址线C、B、A均接地,即选择0号通道输入模拟量电压信号。22脚ALE为地址锁存允许控制信号,当输入为高电平时,对地址信号进行锁存。6脚START为启动控制信号,当输入为高电平时,A/D转换开始。本电路将ALE脚与START脚接到一起,共同由单片机的P2.0脚和WR脚通过或非门控制。7脚EOC为A/D转换结束信号,当A/D转换结束时,7脚输出一个正脉冲,此信号可作为A/D转换是否结束的检测信号或向CPU申请中断的信号,本电路通过一个非门连接到单片机的P3.2脚。9脚OE为A/D转换数据输出允许控制信号,当OE脚为高电平时,允许读取A/D转换的数字量。该OE脚由单片机的P2.0脚和RD脚通过或非门控制。l0脚CLOCK为ADC0808的实时时钟输入端,利用单片机30引脚ALE的六分频晶振频率得到时钟信号。数字量输出端8个接到单片机的P0口。 量 五 数字电压表的系统仿真调试画出硬件接线图,可省略动态扫描显示驱动电路,但必须对源程序位选线状态做适当调试。PROTEUS仿真电路图如图5-1所示,晶振电路和复位电路可省略。将KEIL软件编译并生成的HEX文件加载到AT89C51单片机中,运行结果如图2.2-3所示。将“数字电压表.HEX”文件加入PROTEUS中,进行虚拟仿真,然后双击AT89C51单片机芯片,可以打开元件编辑对话框,选取目标代码文件“数字电压表.HEX”。全速启动仿真,用鼠标单击可调电阻两端“+”“-”控制点,观察LED数码管的显示数值。调节可调电阻的大小,数码管的显示值会随之发生变化,如图5-1a和5-1b所示。 图5-1a图5-1b 图5-1 数字电压表的仿真图六 设计心得首先,我想说的是,在做成这个数字电压表之后,瞬间感觉真的好有成就感。在为期两个星期的单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。使之不断地战胜别人,超越前人。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。这个设计过程中,我经历了无数次失败,但我知道人就是要在失败中成长,否则怎么能成才。就比如,自己对实际生活中的交通秩序的不了解给整个设计带来的困扰,真想要就此罢休,然而,就在想要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。于是,我坚持了下来。当然最终,这个设计很成功,主要体现在,这一整个系统,参考多了多本资料书,程序由自己独立完成,与用汇编语言制作定时闹钟控制系统程序相比,简单易读,结构清楚,层次分明。但我深知单片机还有更深奥的知识,我将继续学习单片机及其编程语言,尽量去学习汇编语言锻炼思维能力。还有,我感觉我们的这个专业对社会真的是太有用了,无形之中给自己打了一针安心剂,我一定会努力学习单片机的。参考文献1 张俊谟. 单片机中级教程原理与应用M.北京:北京航天航空大学出版社,2006:67.2 何立民. 单片机高级教程应用与设计M.2版. 北京:北京航天航空大学出版社,2007:2.3 刘振忠. 数字电压表发展概况和原理:电压-频率(VF)变换式积分型数字电压表J.电讯工程,1998(2):39-42.4 王幸之. 单片机应用系统抗干扰技术M.北京:北京航空航天大学出版社,2000.5 吴金戌,沈庆阳,郭庭吉. 单片机实践与应用M.北京:清华大学出版社,2002.6 张志良,马彪. 单片机原理与控制技术M.北京:机械工业出版社,2001.7 沈任元,吴勇. 常用电子元器件简明手册M.北京:机械工业出版社,2004.8 沙占友. 新型数字电压表原理与应用M.北京:机械工业出版社,2006.9 谢自美. 电子线路设计实验测试M.武汉:华中科技大学出版社,2000.10 曲娜,程凤琴,周鹏. 基于51单片机的舵机控制信号的设计J.中国科技信息,2010,21(63):137.11 刘敏娜,潘宏侠,王乔. 基于C51单片机的数字电压表仿真设计J.山西电子技术,2011(2):4647,64.12 徐毅,赵龙,王海峰. 基于单片机的新型数字电压表设计J.河南科技2010,11(下):4445.附录1电路原理图 电路原理图附录2C语言源程序 #include <AT89X52.H> unsigned char code dispbitcode=0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f; unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00; unsigned char dispbuf8=10,10,10,10,10,0,0,0; unsigned char dispcount; unsigned char getdata; unsigned int temp; long int i; 代替原来的unsigned char i; sbit ST=P30; sbit OE=P31; sbit EOC=P32; sbit CLK=P33;   void main(void) ST=0; OE=0; ET0=1; ET1=1; EA=1; TMOD=0x12; TH0=216; TL0=216; TH1=(65536-5000)/256; TL1=(65536-5000)%256; TR1=1; TR0=1; ST=1; ST=0; while(1) if(EOC=1) OE=1; getdata=P0; OE=0; i=getdata*196;dispbuf5=i/10000; i=i%10000; dispbuf6=i/1000;i=i%1000; dispbuf7=i/100;/*原来的:temp = getdata * 235;temp=temp/128;i=5;dispbuf0=10;dispbuf1=10;dispbuf2=10;dispbuf3=10;dispbuf4=10;dispbuf5=0;dispbuf6=0;dispbuf7=0;while(temp/10) dispbufi=temp%10;temp=temp/10;i+;dispbufi=temp; */ ST=1; ST=0;   void t0(void) interrupt 1 using 0 /定时器0  中断服务 CLK=CLK;   void t1(void) interrupt 3 using 0 /定时器1  中断服务 TH1=(65536-6000)/256; TL1=(65536-6000)%256; P1=dispcodedispbufdispcount; P2=dispbitcodedispcount; if(dispcount=5) P1=P1 | 0x80; dispcount+; if(dispcount=8) dispcount=0; 17

    注意事项

    本文(本科毕业设计-单片机--数字电压表的仿真设计.doc)为本站会员(可****阿)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开