基于51单片机的智能计算器

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yyqx_where/article/details/82712896

        其实,说智能也不算智能,就是在计算器上加上了日历、时钟和温度显示而已。具体用到的也是51很基础的模块,一个键盘,一个1602,温度显示那块用到了DS18B20,硬件调试的部分也很少,主要是代码的书写。

功能简介:

1、打开电源时,显示欢迎字样

2、计算器功能

3、日历及时钟功能

4、温度实时测量

然后用代码依次实现各个功能

刚开始只用矩阵键盘来控制计算器的时候是很简单的,定义一个数组,确定每个键盘所对应的符号或数字,然后用列检测法确定按键是否按下,并将其显示在1602上。我设置的键盘包括数字键(0-9)、符号键(+-、*、/),清除键和等号键。

附上矩阵键盘的电路图:

     

其中4*4矩阵键盘分别表示

                                               1,   2,    3,    +,

                                                4,   5,    6,     -,

                                                7,   8,    9,     *,

                                                 0=off ,   /,

最开始只能做整数运算,后来我又定义了浮点型的数据,并且扩宽了加减运算的范围,整个计算器就比较完整了。

实现计算器的功能后,我开始加上日历及时钟的功能。先给年月日时分秒初始化一个值,并设置最大值,将前两行矩阵键盘作为调节日历及时钟的按键,s1,s2,s3分别用来调节时分秒,s5,s6,s7分别用来调节年月日,按下键后进行相应的加一操作,并使用定时器进行计时,若加到我们设定的最大值时,则置为0,并且令前一位加一。

紧接着是加上温度显示,我采用的DS18B20模块,工作原理图如下:

温度分辨率如下:

利用DS18B20对外界温度进行检测,并将温度以一定的格式显示在1602上。

最后也是最关键的是设置功能模式的切换,切换键大致如下:

K1=0时,表示选择时间显示功能

K2=0时,表示选择温度显示功能

K3=0时,表示选择计算器功能

按下相应的切换键即表示选择相应的功能。

 

展开阅读全文

没有更多推荐了,返回首页