任务实施
一、任务分析
本任务中的计算器是以80C51单片机为核心构成的简易计算器系统。该系统通过单片机控制,实现实时扫描4*4键盘进行按键检测,并把检测数据和计算结果存储下来,显示在LED数码管上,可实现清零。
整个系统可分为4个主要功能模块:实时键盘扫描、数据存储和计算、LED数码管显示、清零。
整个计算器系统的工作过程为:
首先初始化参数,送LED低位显示“0”,功能键位不显示;然后扫描键盘看是否有键输入,若有,读取键码。判断键码是数字键、清零键还是“+”“-”“*”“/”,是数值键则送LED显示并保存数值,是清零键则做清零处理,是功能键又判断是“=”、清零,还是运算键,若是“=”则计算最后结果并送LED显示,若是运算键则保存相对运算程序的首地址,若是清零键则跳转回初始化阶段使所有值清零。
矩阵键盘键号如图5-3-3所示,位置码见表5-3-1。
表5-3-1 矩阵键盘的位置码


图5-3-3 矩阵键盘键号
二、程序设计
主函数流程图如图5-3-4所示。
键盘扫描程序流程图如图5-3-5所示。
显示程序流程图如图5-3-6所示。

图5-3-4 主函数流程图

图5-3-5 键盘扫描程序流程图

图5-3-6 显示程序流程图
参考程序:

(https://www.daowen.com)




三、电路仿真
1.绘制电路图
打开Proteus软件,建立“简易计算器的制作与实现”文件,放置元器件。所需元器件见表5-3-2。绘制完成的电路图如图5-3-7所示。
表5-3-2 元件清单


图5-3-7 绘制电路图
2.编写程序
打开Keil软件,新建“简易计算器”工程文件,新建“jisuanqi.c”文件,编写程序并生成hex文件。编写完成的程序如图5-3-8所示。

图5-3-8 编写程序
3.电路仿真
双击单片机,打开“Edit Component”对话框,加载hex文件。单击“仿真”按钮,仿真电路,并观看仿真结果。加法运算15+20=35,仿真结果如图5-3-9所示。

图5-3-9 仿真结果

仿真视频
通过仿真发现,能实现4位整数以内的加、减、乘、除运算功能。但是在除法运算中,不能整除的时候,结果只能显示整数。