电子计算器是一种方便地进行加减乘除和科学运算的工具。其基本构造就是有一个多个按键的键盘和一个能够显示数字的显示器。结合本章学习的内容,本节带领读者设计一个简单的电子计算器雏形,从中让读者学习到模块化设计的好处和实际电子产品的软件设计过程。
【例5-9】硬件电路如图5-13所示。要求编写一个简单的加法计算器,能实现10000以内的两数加法运算。数值、加号、等号通过图5-13中小键盘相应的按键输入。
图5-13 简单计算器电路原理图
电路图在光盘位置:“\Example\Chapter5\S057\sch\kb16seg74ok.dsn”。
程序分析
●本例要求编写加法计算器,其计算步骤如下。
1)通过小键盘输入一个数。边输入边显示。
2)按下“+”按键后保存此数,然后清空显示,等待第二个数的输入。
3)第二个数输入完毕后按“=”按键来获得计算结果并显示。
●由以上步骤可知,需要解决的问题有两个。
1)如何实现把一个按键转换成相应的数字或符号?源函数只能获得扫描码,要把扫描码转换成相应的数字或符号还需要改进键盘模块源程序,让不同的扫描码对应不同的键值,用二维数组即可实现。
2)如何实现边输入边显示?根据人类使用计算器习惯先输入的是高位,所以每次把原数据乘以10后加上用户输入数值就得到了当前数值,然后调用数码管显示函数即可。
设计过程(www.daowen.com)
1)用MPLAB新建项目S057,语言工具选择为“HI-TECH Universal Toolsuite”,保存在“C:\S057”文件夹下。
2)新建keyboard.h文件并加入项目中,其内容如下所示。
3)新建keyboard.c文件并加入项目中,其内容如下所示。
4)新建main.c文件并加入项目中,其内容如下所示。
5)为了使用数码管显示函数和延时函数,还需要delay.h、delay.c、seg74.h、seg74.c4个文件。其内容与前文中的两个同名模块完全相同,读者可以直接将4个模块相关文件从前文项目文件夹复制到当前项目文件夹下,并在MPLAB中把这4个模块文件分别加入到当前项目中使用。
6)按以上要求完成输入后编译项目。成功后用调试工具Proteus VSM加载kb16seg74ok.dsn来运行程序。先输入一个数,如22,然后按“+”号按键,屏幕清空。再输入另外一个数,如33,然后按“=”按键来计算结果,屏幕会显示55。按“C”按键清零,等待下一次输入。
本程序需要学习的是如何把扫描码转换为键值,还有就是计算器的计算逻辑。希望读者能在此基础上实现加减乘除四则运算,乃至小数运算。通过这种程序的编写和调试过程能迅速增强初学者的逻辑思维和编程调试能力。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。