欢迎光临散文网 会员登陆 & 注册

趣味单片机新玩法-自己动手做个简单计算器

2021-05-28 12:25 作者:想啥_做啥  | 我要投稿

电子爱好者的乐趣,想啥做啥,😄😄;不受拘束的想象力加上强大的动手能力,我们几乎能做绝大部分东西,下面我们来一起简单的”小试牛刀“,做个计算器耍耍。

使用到的东西元器件:4*4矩阵键盘,1602液晶模块,arduino uno开发板,220Ω电阻


1602液晶模块连接注意的引脚:
VCC: 液晶模块供电正极
LED+:背光灯正极连接电源正极VCC
LED-:背光灯负极通过220Ω限流电阻连接负极GND
VO:设置液晶偏置电压连接至GND
RW:读写模式引脚,我们这里只要写,所以R/W接GND
GND:液晶模块供电负极

我们来看下实际运行效果:

矩阵键盘A,B,C,D分别代表 +,-,X,/; " * "代表清除," # "号代表" = "

代 码 部 分:

代码解释:

我们这里用了arduino自带的液晶库#include <LiquidCrystal.h>和按键库#include <Keypad.h>
这样我们只要将重心挪到计算器核心的算法开发上就好了。

定义四线驱动1602的引脚:

按键行和列符号定义:

按键行和列引脚定义:

按键符号与行列引脚关联:

第一个部分运算字符输入处理:

加法处理部分:

减法处理部分:

乘法处理部分:

除法处理部分:除法里面还做了除0非法操作:

清除计算处理:

另外还有第二个数据字符输入处理:


我们输入第一个数据字符串后,如果检测到有输入运算符,那么就直接进入到第二个数据字符串里面,一直到有输入“=”符号,输出计算结果,并跳出当前计算;注意到每个数据字符串里面还做了数据转换,将字符转换为十进制数。

大家可以思考下?

我们看到里面的数据定义都是long型的,如果超过long型所能表达的最大数据会出现什么情况?又该如何处理?大家可以尝试去完善下。

另外我们这里面基本上都是调用arduino的库函数在处理,如果放到51单片机上或者其它单片机上,那么又该如何操作?这些函数大家都可以大胆的去尝试实现。


趣味单片机新玩法-自己动手做个简单计算器的评论 (共 条)

分享到微博请遵守国家法律