APP下载

基于单片机的多功能万年历的设计与实现

2015-11-28张治海

山西电子技术 2015年5期
关键词:按键时钟单片机

张治海

(山西省广播电视局228 台,山西 太原 030001)

在现代社会快节奏的生活状态下,人们对时间观念更加注重。目前,许多人都在使用电子时钟,但大多数电子时钟只显示时间,功能比较单一,无法满足广大消费者的需求,功能多样的电子万年历应运而生。

多功能电子万年历除能够清晰准确地显示信息,还应当根据需求随时对日期、时间、星期、温度、闹钟进行设置。应当具有数据直观显示、功能多样、成本低廉等特点。

1 系统方案

按照预期想要实现的功能,硬件系统以AT89C52 芯片作为主控核心,它的大部分功能与AT89C51 相同,不同的部分是,它内部存储空间为8 KB ROM。

电源模块:使用电压值为6 V 的干电池,为了得到稳定电压,所以需要将电源系统稳压器LDO 将电源稳压成5 V的电源,这种方案设计简单,设备轻便,方便携带。

按键控制模块:采用独立按键,程序处理简单,可大大节省CPU 资源。

时钟模块:采用时钟芯片DS1302,它的性能相对较高,可自动实现年、月、日、星期、时、分、秒的计数,精度及准确度都较高。

温度采集模块:采用温度传感器DS18B20,被测的温度可以直接读出,显示直观清晰。编程简单,使用电压范围比较大,可操作性强,分辨率和精确度也都比较高[1]。

显示模块:采用LCD1602 显示,功率损耗低,价格便宜,显示内容丰富。可直接与单片机接口,硬件操作简单。

2 硬件设计

硬件设计主要在Proteus 仿真,设计采用Proteus 的ISIS,进入仿真主界面,找到要仿真的元件,将各模块的元件按电路连接后,设置参数,编写程序。

2.1 主控芯片AT89C52 与最小系统

AT89C52 单片机的最小系统分为复位电路和晶振电路两部分。

1)复位电路

考虑到设计要求,复位电路集上电自动复位和手动复位于一体。

时钟电路进入工作状态,当高电平的时间大约超出2 us的时候,就需要是单片机复位,该操作是系统自动实现的[2]。手动复位则要通过一个按键就可以实现,在程序运行时,若出现问题,如程序计数器PC 没有按照预计的功能运行,即程序“跑飞”、死机或死循环等现象,手动复位就可以恢复正常了。其电路设计如图1 所示。

图1 复位电路

2)时钟振荡电路

考虑系统运行速度,可用12 MHz 的石英晶振,并使用两个小电容作为微调电容,可以大大提高电路的运行速度[3]。

2.2 时钟芯片DS1302 接口设计

DS1302 最主要的功能是实时显示时间,具有高性能、低功耗的优点。在工作时需要先进行初始化,否则不能正常运行。它是3 线的串行接口,占用的引脚相对较少,在内部集成可以编程的时钟日历,操作者可以根据自己对功能的需求,在单片机上进行设置。可以使用外部电源和备份电源双电源供电,当外部电源能源耗尽时,可以使用备份电源使时钟芯片继续运作。

当单电源与电池供电时,VCC1 提供低电源。当双电源供电时,VCC2 是主电源,VCC1 是备份电源。DS1302 在工作前必须进行初始化,要将SCLK 端置“0”,RST 端置“1”,这样SCLK 才能得到脉冲信号。控制字的位1 至位5 是操作单元的地址。DS1302 进行读写数据时,位7 必须置1。至于位6,对时间进行读写时,CK=0,对程序进行读写时RAM=1。进行读操作时,位0 置1;进行写操作时,位0 置0。

2.3 温度芯片DS18B20 接口设计

温度采集采用温度传感器DS18B20,它的测量精度较高,便于数据采集,更加符合设计要求。DS18B20 温度传感器由美国DALLAS 半导体公司生产,相比较于传统的热敏电阻等其他这类元件,它可以直接显示被测温度,还可以根据实际情况的要求,编写简单的程序来实现读数方式为9-12位的数字值[4]。温度传感器接口电路如图2 所示。

图2 温度传感器DS18B20 接口电路

2.4 闹钟模块接口设计

通过三极管来控制蜂鸣器,三极管导通蜂鸣器响,三极管截止蜂鸣器不响,闹钟模块电路图如图3 所示。

图3 蜂鸣器电路

2.5 LCD 接口电路设计

管脚3 用于调节LCD1602 的灰度。4、5、6 是控制管脚,控制LCD1602 写入或读出指令。7 至14 是数据口与P0 连接,将数据传送到LCD1602 中。LCD1602 与单片机的接口电路如图4 所示。

图4 LCD1602 与单片机接口电路

2.6 按键模块设计

按键电路由四个轻触开关组成,用按键来对时间进行调整,还可以实现设置闹钟的功能。电路右端接地,另一端接单片机的端口。把按键按下时,与它对应的端口就会转变成低电平。通过检测低电平,可以找到对应按下的按键,就可以及时作出对应的操作。

3 软件设计

整个软件系统采用C51 编程,主要实现:时间数据的采集、温度的采集、闹铃的设置、按键的识别处理、LCD 的驱动等。

编程软件采用Keil uVision4,是51 系列单片机C 语言软件开发系统。Keil C51 软件能够提供大量的库函数,把高级语言翻译成单片机能识别的语言,生成目标代码的效率较高,语句紧凑,容易理解[5]。

软件总体设计流程图如图5 所示。

当接通电源开始工作后,程序从main()函数开始运行,随后对温度模块、时间模块和显示模块进行初始化。DS18B20 必须先与单片机芯片达成通信协议,完成初始化并取得通信后,启动温度测量程序,测量过程完成后,发出温度转换指令,从而便可将温度转化成数字模式进行显示读取;同时DS1302 将读取时分秒星期以及年月日寄存器然后通过液晶显示实时时间、星期及日期;键盘电路中按键可对实时日历时钟进行调整;进行显示时要对标志位赋初值,随后进入循环中运行按键扫描程序和液晶显示程序。

图5 总设计流程图

3.1 时间采集

采用时间芯片DS1302 对时间进行采集时,必须对系统初始化。设置时间后,看是否对时间进行调整,若时间需要调整,则调整时间后才能显示,读取时间;若不需要调整,则可以直接显示并读取时间。

3.2 温度采集

DS18B20 单线通信的功能要求,需要分时完成,确保一定的时延控制。否则,不能进行读写控制。系统对温度采集,开始必须进行初始化,对温度进行写操作,要对温度采样,然后复位。再进行初始化,存储温度数据,对温度进行读操作就完成了。

3.3 液晶显示模块

LCD1602 在工作时,要进行初始化操作。LCD1602 有以下几个基本时序:

1)读状态:RS=L,RW=H,E=H

2)写指令:RS=L,RW=L,D0~D7=指令码,E=高脉冲

3)读数据:RS=H,RW=H,E=H

4)写数据:RS=H,RW=L,D0~D7=数据,E=高脉冲

3.4 闹钟模块

将要设置的闹钟时间写入存储器,当前时间与设置的时间一致时,闹铃就会响;当前时间与设置的时间不一致时,闹铃不响。

3.5 独立按键模块

设计中识别按键采用查询法,程序简单。系统中含有命名为SET、UP、DOWN、OUT/STOP 四个调整按键。SET、OUT/STOP 两个按键是否按下在主函数里面查询,由SET 键来激活UP、DOWN 键的功能。这样设计,CPU 的工作量大大减少。OUT/STOP 是多功能键,当OUT/STOP 是响铃停止功能时,SET 键未被按下,当OUT/STOP 是退出调整模式的功能时,SET 按下。

4 系统实现

编程器Genius G540 在联机时将Keil uVision4 编写的程序烧写到AT89C52 主控芯片中。步骤如下[6]:

1)启动Keil 编程软件,新建工程,选择与单片机型号相匹配的CPU(该设计使用的是AT89C52),再新建文件,扩展名为“.c”。

2)在建好的文件中用C 语言编写程序。

3)对编写好的C 程序进行编译,确定无误后,生成HEX文件。

4)把单片机固定在G540 编程精灵上,用数据线将编程器和计算机相连。

5)启动G540 编程软件,选择使用的CPU 型号,首先对单片机进行擦除,然后加载HEX 文件,再通过查空、编程、比较、加密等步骤,完成程序的烧写。

5 总结

论文分别从硬件方面和软件方面,对基于单片机的多功能万年历设计作了详细论述。

在设计的整个过程中,硬件方面主要设计了AT89C52单片机的最小系统;设计了DS1302 接口电路实现时钟设置,设置了具体时间;设计了DS18B20 接口电路显示温度;整个设计成果在LCD 液晶显示。软件主要设计了闹铃程序、温度采集程序、以及LCD 显示程序;系统的调试主要是通过一块AT89C52 开发板,再借助于Keil4、单片机仿真软件Proteus 7 Professional 来实现。

[1]张萌.单片机应用系统开发综合实例[M].北京:清华大学出版社,2007.

[2]楼然苗.单片机课程设计指导[M].北京:北京航空航天大学出版社,2007.

[3]林志琦,郎建军.基于Proteus 的单片机可视化软硬件仿真[M].北京:北京航空航天大学出版社,2006.

[4]马忠梅.单片机C 语言应用程序设计[M].北京:北京航天航空大学出版社,2007.

[5]肖炎根,舒望.基于实时钟芯片的电子万年历的设计[J].电子技术,2007(3) :91-94.

[6]王越明.电子万年历的设计[J].黑龙江科技信息,2004(8) :18-22.

[7]陈明荧.8051 单片机课程设计实训教程[M].北京:清华大学出版社,2003.

[8]何立民.单片机高级教程[M].北京:北京航空航天大学出版社,2003.

[9]鲁刚强.基于液晶显示器的单片机系统设计[J].科技资讯,2008(35) :22-23.

猜你喜欢

按键时钟单片机
别样的“时钟”
基于有限状态机的按键检测程序设计
古代的时钟
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
有趣的时钟
一种多方向导光按键结构设计
时钟会开“花”
Microchip推出两个全新PIC单片机系列