基于单片机的计算器-Protuse仿真及源代码.pdfVIP

基于单片机的计算器-Protuse仿真及源代码.pdf

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

刘言·1990liuyan@163.com ·2009.12 基于单片机的计算器 刘言 编程语言用的是C语言。要做好计算器,这里用的是AT89S52单片机,拥有8KB 程序 存储空间。 实现功能: 1、一定数值范围内的加减乘除、开方、倒数运算,能计算小数、负数,以及记忆功能。 2、时钟功能,能直接用键盘上的数字键设置时间,一定时间内无操作能自动显示时间。 3、闹铃功能及可控制的按键声音。 基本思路:::: 每按一个按键,单片机做出一个反应。 计算的过程实际上就是对以下对象进行操作: 比如2+4=6。 写程序时脑中要时常想着这张图片,弄清除现在该对哪个对象进行操作。 比如: 用h1,h2,h3,h4分别存放 数1、符号、数2、结果,刚开始输入时是对h1进行操作, 将输入的数存入h1 内,当按下一个”+”,用h2 存放”+”代表的值,再次输入数字时就是对 h3进行操作,最后按下等号就是将h1+h3的值赋给h4,并清空h1、h2、h3。 但如果最后不是按下的等号,而是又按下了一个运算符号呢?这是就要想我们用计算器 时这样操作是希望干什么,我们是希望将上一个运算结果接着用在下一个运算中,这时就不 将h1+h2赋给h4了,而是赋给h1。假设又一次按下的是”-”,判断h2的值得知前一次按下 的是加号,于是执行h1=h1+h3;,并将这次按下的减号存入h2。于是就构成了“上次运算结 果(h1)”减(h2)“等着输入的数(h3)”,又处于上面第一次运算按下”+”时的状态了。 像这样就可以无限计算下去,直到按下等号,将最终结果存入h4,整个计算结束。 硬件电路: -1- 大学生电子实验室 /bbs/ 刘言·1990liuyan@163.com ·2009.12 数码管用的是两个共阳极的四连体。S8550为PNP 型三极管,发射极接VCC,集电极 接数码管公共端,基极通过电阻接单片机IO 口,这里是P2 口。低电平时导通。 P2口与三极管基极之间的电阻这里用的是10K的,估计600~60K都行,用的越大越省 电,对亮度几乎没有影响。对亮度影响大的是P0口与数码管之间的电阻,这里用的510K。 -2- 大学生电子实验室 /bbs/ 刘言·1990liuyan@163.com ·2009.12 键盘是普通的矩阵按键。(4*7) 程序设计: 1、计算部分: 计算流程如下: 这里输入一个符号指的是“加减乘除”任意一个。 前面说过,用分别用两个变量存输入的数,一个变量符号,一个变量结果。比如 h1、 -3- 大学生电子实验室 /bbs/ 刘言·1990liuyan@163.com ·2009.12 h2、h3、h4。 输入的数是存到h1还是h3中,就要判断h2的值,若h2=0,存入h1中,反之存入h3 中,h2=0表示没有输入符号。 最后一个运算结果很特殊,与之前的运算结果是用不同的变量来存放的,基本思路中提 到过,之前的是存在h1 中用来参与紧接着的运算。按了等号之后是存在h4 中,清空h1, h2,h3等待再一次全新的运算。 输入一个数时显示输入的那个数,数入一个符号时是显示h1中的数,即参与运算在这 个符号之前的数。按了等号后显示h4中的数。 在这里说一下数码管显示,定义一个有8个值的数组,如x[8],这八个数分别对应每个 数码管,扫描中就是让P0口分别等于这8个数,这样改变x[8]中的值就能改变数码

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档