其实,说智能也不算智能,就是在计算器上加上了日历、时钟和温度显示而已。具体用到的也是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时,表示选择计算器功能
按下相应的切换键即表示选择相应的功能。