单片机电子计算器设计报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机电子计算器设计报告

目录 一.设计任务和要求 2 1.1概要 2 1.3 设计要求 2 二.硬件设计 3 2.1总设计思路 3 2.2 总原理图 3 2.3最小系统 4 三.软件设计 5 3.1 主程序 5 3.2 显示程序设计(程序见附录) 7 3.3键盘识别程序设计(程序见附录) 8 3.4运算程序设计(程序见附录) 11 四.Keil调试与仿真 13 4.1 keil的使用方法 13 五.总电路图 14 六. 总结 15 七.参考文献 16 附录A 17 程序清单 17 附录B 28 元器件清单 28 附录C 29 实物图 29 一.设计任务和要求 1.1概要 简易计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 1.2设计任务 本次课程设计,我们选择的课题是单片机数字计算器硬软件设计 ,设计任务为: 1.扩展4*4键盘,其中10个数字,5个功能键,1个清零 2.强化对于电路的焊接 3.使用五位数码管接口电路 4.?完成十进制的四则运算(加、减、乘、除); 5.?实现结果低于五位的连续运算; 6.?使用keil 软件编写程序,使用汇编语言; 7.?最后用ptoteus模拟仿真; 8.学会对电路的调试 1.3 设计要求 单片机课程设计既要让我们巩固课本学到的理论,还要学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,数字计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高对单片机的兴趣,同时学习查阅资料、参考资料的方法。 通过实践更好的了解单片机,巩固了键盘扫描,数码管,等一系列单片机的知识。本次设计我们需要AT89C51芯片,要充分理解各个管脚的用途;还是用了两个四位一体的共阳极的数码管,要知道其位控和字控的引脚位置;还用了4*4的键盘;采用手电复位。 而我的设计任务是计算器的软件部分,硬件部分参见同组的人。 二.硬件设计 2.1总设计思路 本设计是一个实现加、减、乘、除的计算器,它的硬件主要由四部分组成,一个AT89C51单片机芯片,两个四位一体的共阳极的数码管,一个4*4的键盘,一个排阻(10K)做P0口的上拉电阻(接线图再总电路图),它可以实现结果低于65535的加、减、乘、除运算。 首先.显示部分,让P2口做位扫描,P0口做段码输出,设置一个单元用来记录输入数字的位数,这样可以不用循环扫描每一位,而是根据输出位数判断扫描哪些位。如当显示1234时,不用在向高四位送入11H,也不需要熄灭的代码了。调用显示程序时先选通第一位(最低位),送出代码1,然后判断是否显示完毕,(通过记录数字个数单元的内容减一是否得0来判断),如没显示完则显示下一位,如显示完则跳出。 其次是设计键盘扫描程序,这里采用4*4矩阵键盘,通过软件识别,行和列可接在同个端口上,也可接在不同端口上,本设计行接在P3口的高四位,列接在P1口的低四位,通过循环扫描行,读取列的数据判断是否有键按下,如果有则调用按键识别程序识别是哪个键,执行相应的操作,按键识别是根据按键时得到的列代码与行代码组合,来判断是哪个键的。按键识别后,如果是数字键则直接放入数码管显示缓冲区,如果再次有数字键按下,则应将缓存区的数字向高位移一位,将刚输入的数放入最低位,并且记录按键次数,每输入一个键值都调用显示程序显示出来,如果是运算符,则执行相应的运算,然后在调用显示程序显示结果。 最后是运算程序的加入,运算程序很简单,只要把+、-、*、/分别做成模块,用到时即可调用,本设计的难点是键盘识别和数值显示,因为这里边涉及到键盘输入的数值在内部要转换成10进制运算,运算结果要转换成各个位的显示数字输出。 2.2 总原理图 2.3最小系统 手动复位: 由电容串联电阻构成系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位晶振电路: 典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作) 单片机:一片AT89S51/52或其他51系列兼容单片机 特别注意:对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行 三.软件设

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档