一:硬件仿真图
分别为8位数码管和4位数码管
注意:本仿真案例有偿提供,请点击文章最下方的阅读原文,查看仿真图和程序下载地址。本仿真仅供参考,如有需要修改电路和程序,请联系管理员有偿修改。当然,如果你动手能力强,完全可以按照本文提供的电路图和程序源码自行搭建。
硬件部分比较简单,当键盘按键按下时它的那一行、那一列的端口为低电平。因此,只要扫描行、列端口是否都为低电平就可以确定是哪个键被按下。
本计算器是以80C51单片机为核心构成的简易计算器系统。该系统通过单片机控制,实现对4*4键盘扫描进行实时的按键检测,并把检测数据和计算结果存储下来,显示在LED数码管上,并可实现清零。
整个系统主要可分为四个主要功能模块:
功能模块一:实时键盘扫描;
功能模块二:数据存储和计算;
功能模块三:LED数码管显示;
功能模块四:清零
整个计算器系统的工作过程为:首先初始化参数,送LED低位显示“0”,功能键位不显示。然后扫描键盘看是否有键输入,若有,读取键码。判断键码是数字键、清零键还是“+” 、“—” 、“*” “/” ,是数值键则送LED显示并保存数值,是清零键则做清零处理,是功能键则又判断是“=”、清零、还是运算键,若是“=”则计算最后结果并送LED显示,若是运算键则保存相对运算程序的首地址,若是清零键则跳转回初始化阶段使所有值清零。
二、主程序流程图
程序的主要思想是:将按键抽象为字符,然后就是对字符的处理。将操作数分别转化为字符串存储,操作符存储为字符形式。然后调用compute()函数进行计算并返回结果。具体程序及看注释还有流程图。
三:键盘扫描程序流程图
四:显示程序流程图
五:程序源码
#include