一、任务说明
本设计是一个实现加、减、乘、除的计算器,它的硬件主要由四部分组成,一个
AT89C51 单片机芯片,一个八位共阳极的数码管,一个四乘四的键盘,一个排阻做 P0
口的上拉电阻,它可以实现结果低于 65535 的加、减、乘、除运算。
采用动态显示,由八位共阳极数码管通过 P0 口,P2 口与单片机相连,数码管的
A,B,C,D,E,F,G,DP 分别依次与单片机的 P0.0—P0.7 相连,P0 口做为字码控制端,数
码管的 1,2,3,4,5,6,7,8 各引脚分别与单片机的 P2.0—P2.7 相连,P2 口做
为数码管的位控制端,动态显示是每次数码管只显示一位,由于人的视觉停留是 0.05
到 0.2 秒之间,当数码管依次点亮各个位时,使循环的频率高于人的视觉停留时间,
人们就会认为数码管是同时点亮的,就可以达到动态显示的效果。
采用 4*4 键盘。采用软件识别键值并执行相应的操作,键盘的第 0 行到第 3 行依
次与单片机的 P3.4—P3.7 管脚相连,键盘的第 0 列到第 3 列依次与单片机的
P1.0—P1.3 管脚相连,程序运行时依次扫描各行,查询是否有键按下,如果有则进入
键盘识别处理程序,实现相应的运算,然后通过数码管输出结果,如果没有按键就调
用显示程序显示一个 0,等待按键按下,在进入按键扫描程序。这样循环执行。
基本功能如下:
1.计算器可显示 8 位数字,开机运行时,只有数码管最低位显示为“0”,其余
位全部不显示;
2.第一次按下时,显示“D1”;第二次按下时,显示“D1D2”;第三次按下时,
显示“D1D2D3”,8 个全显示完毕,再按下按键下时,给出“嘀”提示音,并且输入
的第九个数不接收,仍然显示原来的八位数;
3.可以对计算结果小于 65535 的两个无符号数进行+、-、*、/运算,并显示计
算结果,如果输入的预计算的数超过 65535,则运算时报错,显示“ERROR”,如果结
果超过 65535 仍然报错,显示“ERROR”,以提示使用者输入错误,应清零后在从新
输入。
4.运算时,如果输入错了可按清零键清零,重新输入数据,运算过程中,如果运
算的表达式是加、减、乘、除混合运算,可以连续运算,不需按等号键,运算规则是
从左到右,不区分运算等级,即+、-、*、/认为是同级别的运算。
评论0
最新资源