(完整word版)基于proteus的AT89C51单片机实现计算器的加减乘数开方等功能.doc
基于 Proteus 的 AT89C51 单片机实现计算器的加减乘数开方等功能 本设计是一个实现加、减、乘、除的计算器,硬件主要由四部分组成:一个 AT89C51 单片机芯片,一个八位共阳极的数码管,一个四乘四的键盘,一个排阻做 P0 口的上拉电阻。该计算器可以实现结果低于 65535 的加、减、乘、除运算,采用动态显示,通过八位共阳极数码管和单片机的 P0 口、P2 口相连,实现显示功能。 计算器的基本功能包括: 1. 显示 8 位数字,开机运行时,只有数码管最低位显示为“0”,其余位全部不显示。 2. 第一次按下时,显示“D1”;第二次按下时,显示“D1D2”;第三次按下时,显示“D1D2D3”,8 个全显示完毕,再按下按键下时,给出“嘀”提示音,并且输入的第九个数不接收,仍然显示原来的八位数。 3. 可以对计算结果小于 65535 的两个无符号数进行+、-、*、/运算,并显示计算结果,如果输入的预计算的数超过 65535,则运算时报错,显示“ERROR”,如果结果超过 65535 仍然报错,显示“ERROR”,以提示使用者输入错误,应清零后在从新输入。 4. 运算时,如果输入错了可按清零键清零,重新输入数据,运算过程中,如果运算的表达式是加、减、乘、除混合运算,可以连续运算,不需按等号键,运算规则是从左到右,不区分运算等级,即+、-、*、/认为是同级别的运算。 在设计计算器时,需要考虑到显示程序的设计,该程序应是动态显示,可以通过两种思路实现:(1)让 P2 口做位扫描,P0 口做段码输出,在调用显示程序时,P2 口循环选通数码管每一位的,P0 口也依次循环输出相对应位的代码。(2)让 P2 口做位扫描,P0 口做段码输出,设置一个单元用来记录输入数字的位数,这样可以不用循环扫描每一位,而是根据输出位数判断扫描哪些位。 在 Proteus 仿真中,需要设计一个流程图,包括显示程序设计、键盘识别程序设计、运算程序设计和风鸣器程序设计等。在键盘识别程序设计中,需要使用 4*4 键盘,采用软件识别键值并执行相应的操作,键盘的第 0 行到第 3 行依次与单片机的 P3.4—P3.7 管脚相连,键盘的第 0 列到第 3 列依次与单片机的 P1.0—P1.3 管脚相连。 在设计计算器时,需要注意到键盘识别、显示程序设计、运算程序设计等方面的考虑,通过 Proteus 仿真,可以验证计算器的功能是否正确,并对计算器的设计进行优化。





剩余33页未读,继续阅读





























- 粉丝: 783
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源



评论0