单片机-课程设计简易计算器.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文档。上传文档
查看更多
目 录 中文摘要.........................................................................................................Ⅰ 英文摘要.........................................................................................................Ⅱ 1 任务及要求 2 1.1设计任务 2 1.2 设计要求 2 2 设计思想 2 2.1 硬件设计思想 2 2.2 软件设计思想 2 3 电路原理与电路图 3 3.1 电路原理 3 3.2 电路原理图 3 4 流程图与算法描述 3 4.1 流程图 4 4.2 算法描述 5 5 仿真结果 6 5.1 仿真结果 6 6 设计总结 11 6.1 设计体会 11 参考文献 12 致谢 12 附录 13 1 任务及要求 1.1设计任务 设计一个4×4的键盘的简易计算器和LED数码管的显示电路的Proteus仿真及汇编程序设计。 1.2 设计要求 1、2、3、Proteus 7仿真工作的全过程。 4、5、4×4矩阵式键盘程序识别原理,掌握4×4矩阵式键盘按键的设计方法。 2 设计思想 2.1 硬件设计思想 用单片机的并行口P1连接4×4矩阵键盘,并以单片机的P1.0-P1.7各管脚作输入线,以单片机的P2.0-P2.7和P0.0—P0.7各管脚作输出线,在数码管上显示每个按键 “0-9”的序号。键盘中对应按键的序号排列如图(1)所示。数字0、1、2、3接X0;4、5、6、7接X1;8、9、10、11接X2;12、13、14、15接X3。即16个按钮空接,即十六个键一端低电平,另一端接高电平;当按下任意一个按钮时显示对应数字。 该系统可以实现四则运算,当分别按下2个数字,再按任意一个功能键即可实现相应的运算。 2.2 软件设计思想 整个程序可以实现十进制内的加减乘除,其中包含了延时子程序(去抖动),加法、减法、除法、乘法等子程序。 (1)按键的识别 判断键盘上有无按键闭合,先判断行线X0—X3输出低电平“0”,然后判断列线Y0—Y3的状态,若为全1,即列线全为高电平,说明键盘上没有按键闭合,若Y0—Y3不全为1,说明有键按下。 (2)消抖处理 当判断有键按下后,需要进行消除抖动,这里使用了软件方法即程序中采用时间延时0.5秒,待信号稳定后再判别键盘的状态,若有键按下,则再进行键号的计算。 (3)判别键号 先判断行线X0—X3是否有输出低电平“0”,若有键按下,则相应的列线也为低电平“0”,例如行线X1输出为低电平“0”,且列线Y2为低电平,即X1与Y2相交的键被按下,进行键号=行号*4+列号 的计算。 (4)显示结果 显示器接高电频,左边显示器接P0,右边显示接P2,当按下一个数字时右显示器显示相应的数字,按第2个数字时左边显示器显示相应数字;当进行除法运算时,除的的数据要看接口P0.7接高还是低电频,低电频则结果为几点几,为高电频则几十几。其它运算直接看数据即可。 3 电路原理与电路图 3.1 电路原理 单片机最小系统。一个AT89C51单片机做为控制电路,运用其P0、P1口来控制数码管和键盘,通过P0和P2口来显示键值(0~9)3.2 电路原理图 图3.1 电路原理图 4 流程图与算法描述 4.1 流程图 图4.1 主函数流程图 图4.2 延时子程序流程图 4.2 算法描述 1、设计一个延时子程序,延时0.5s。本程序通过两个DJNZ的语句来实现。延时程序的代码段如下: DELAY:MOV R7,#100D DEL1:MOV R6,#250D DEL2:MOV R5,#10D DJNZ R5,$ DJNZ R6,DEL2 DJNZ R7,DEL1 RET 2、仅实现十进制的加减乘除运算。CJNE是判断两个数是否相等,不想等则转移,代码段如下: M0:CJNE R1,#10D,M1 LJMP L1 M1:CJNE R1,#11D,M2 LJMP L1 M2:CJNE R1,#12D,M3 LJMP L1 M3:CJNE R1,#13D,M4 LJMP L1 M4:CJNE R1,#14D,M5 LJMP L1 M5:CJNE R1,#15D,M6 LJMP L1 M6:RET ;返回重新按入新的键号 5仿真结果 5.1 仿真结果 1、加

文档评论(0)

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

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

1亿VIP精品文档

相关文档