基于AT90S8535单片机的电子万年历挂钟系统设计
2012-07-12广东省工商高级技工学校肖春花
广东省工商高级技工学校 肖春花
基于AT90S8535单片机的电子万年历挂钟系统设计
广东省工商高级技工学校 肖春花
设计中选用高性能低功耗的AVR架构单片机AT90S8535作为系统的控制核心,并采用高集成度的实时时钟芯片SD2303和DS1722温度传感器来处理时间和温度检测任务,能实现实时时间和温度的检测和显示。AT90S8535单片机带有SPI接口,能非常便利地实现和DS1722的通信。在设置闹铃时,程序会对所设置时间的合理性进行检测,任何不合理的时间设置将关闭闹铃功能。
电子万年历;DS1722温度传感器;AT90S8535单片机;实时时钟芯片SD2303
1.引言
电子万年历在家庭居室、学校、车站和广场的使用越来越广泛,给人们的生活、学习、工作带来了极大的方便。电子万年历具有信息量大、直观清晰、经济实用等优点,正成为家庭、商场、公共场所等新的消费热点,具有重要的开发价值。
2.应用系统设计
2.1 系统方案设计
本设计选用高性能低功耗的AVR架构单片机AT90S8535作为系统的控制核心,并选用高集成度的实时时钟芯片SD2303和DS1722温度传感器来处理时间和温度检测任务。AT90S8535单片机带有SPI接口,能非常便利地实现和DS1722的通信[1]。在与实时时钟芯片SD2303通信时采用了模拟IIC总线的方式。芯片SD2303能自动产生1秒时钟基准信号,且自带日期及闰年调整功能,计时精度和集成度非常高,这样使设计变得非常的简单。
2.2 应用系统结构设计
根据电子万年历挂钟的功能要求和选定的方案设计,设计出如图1-1所示的控制系统结构。
2.3 设备选型
本设计采用Atmel公司的高性能低功耗的AVR单片机AT90S8535作为控制系统的核心。表1-2是万年历挂钟设计具体的设备选型表[2]。
2.4 控制面板设计
控制面板即万年历挂钟外形图。如图1-2所示。
在万年历挂钟的控制面板上设置有16个数码管,分别用于显示年、月、日、星期、温度、时和分。显示格式如下:
年:4位数码管显示年,如2009表示2009年。
月:2位数码管显示月,如01表示1月份。
日:2位数码管显示日,如31表示31日。
星期:1位数码管显示星期,如7表示星期日。
温度:3为数码管显示温度,如H28表示+28℃,L05表示-5℃。
时:2位数码管显示时,如23表示23点。
分:2为数码管显示分,如59表示59分。
为了进行时间设定和闹钟设定,在控制面板下方设置有7个键,分别为“时间设置”键、“闹钟设置”键、“+”键、“-”键、“上一位”键、“下一位”键和“确定”键,其功能如下所述。
当需要设置时间时,按下“时间设置”键,这时万年历停止计时并将时间清零,在年的最高位上的小数点点亮表示进行年最高位设置,用户可以通过“+”或者“-”来调整数字,调整完后按“下一位”,则年的最高位小数点熄灭而次高位小数点点亮,用户按照上述方法设置次高位……直到时间设置完。注意,温度不可以设置。设置完后按“确定”键,用户设定值将存储进入单片机并开始以此时间计时。
表1-2 设备选型表
当需要设置闹铃时,按下“闹铃设置”键,这时万年历挂钟仍继续计时而面板上的时间将全部显示为0,同时时间的小时高位小数点点亮,用户按照时间设定的方式设置闹钟的时和分,按下“确定”键后,闹铃被存储进单片机。当万年历挂钟走到设定的闹铃时间时,蜂鸣器发出报警声。
闹铃的设置时间可以通过按“闹铃设置”键来查看,任何不符合走时的闹铃设置将关闭闹铃功能。如设置“60时20分”将关闭闹铃功能。这时取消闹铃功能的一种方法。
3.硬件电路设计
3.1 电子万年历挂钟的硬件设计电路(如图1-3所示)
AT90S8535单片机是AT90系列AVR单片机中内容接口丰富、功能齐全、性价比较高的产品。
3.2 实时时钟电路设计[3-4]
SD2303是深圳威帆公司一种具有内置晶振、支持两线串行接口的高精度实时时钟芯片。该系列芯片可保证时钟精度为±5ppm(在25±1℃下),即年误差小于2.5分钟;该芯片内置时钟精度调整功能,可以在很宽的范围内校正时钟的频率偏差,能以最小分辨率3.052ppm来进行校正,通过与温度传感器的结合可以设定适应温度变化的调整值,实现在宽温范围内高精度的计时功能;内置电池、串行NVSRAM,其中内置的一次性电池可保证在外部掉电情况下时钟使用寿命超过5年,内置串行NVSRAM为非易失性SRAM,擦写次数可达100亿次。该系列芯片可满足对实时时钟芯片的各种需要,是高精度实时时钟的理想选择。它与AT90S8535单片机的连接可从图1-3中可看出。
图3-1 主程序流程
图3-2 按键检测和处理程序流程
3.3 温度检测电路设计
DS1722是美国MAXIM公司的一款API/三线串行接口的数字温度传感器,无需外围元件即可完成对环境温度的检测。它可以通过Motorola公司倡导的SPI总线或者三线串口方式同处理器进行通信。通信方式由用户选择。它的测温范围为-55℃~120℃,精度为±2℃。DS1722提供8~12位的可编程转换值,即分辨率从1.0℃~0.0625℃。温度值直接以数字形式输出。DS1722可以工作在单次转换和自由(连续)转换模式下。当工作在单次转换模式下时,每启动一次转换,DS1722便将采集到的温度数据存储在寄存器里面;当工作于自由转换模式下时,DS1722连续采集温度数据,并将最近一次的采集数据存储起来。它与AT90S8535单片机的连接也可从图1-3中可看出[5]。
3.4 显示电路设计
按照图1-2设计的控制面板,万年历挂钟需要显示16位的年、月、日、周、时、分和温度数据。为了合理利用AT90S8535的I/O口,显示电路设计采用了一片4-16线译码器驱动ULN2803来控制数码管的显示。
3.5 键盘及闹铃电路设计[6]
万年历挂钟需要通过键盘完成时间校准和闹钟设置等任务。为简化设计,这里采用了独立式键盘输入数据,如图2-17所示。AT90S8535的PC3~PC0在程序中设置为上拉输入,这样,在没有按键按下时这些I/O口为高电平输入,当有按键按下时,对应的I/O口被拉低,检测I/O口电平状态即可判断按键按下与否。报警电路采用I/O通过三极管驱动蜂鸣器实现。
4.软件设计
万年历挂钟系统控制程序从功能上来说包含系统初始化程序、实时时钟日历芯片的读写程序、温度传感器芯片的读写程序、键盘和显示程序及其他一些辅助事务处理程序。以上这些程序被安排在一个文件中。
4.1 主程序设计
主程序主要完成系统初始化(包括I/O口初始化、SD2303芯片的初始化和DS1722芯片的初始化)、按键检测和处理、时钟数据的读取和显示、温度数据的读取和显示以及根据条件判断是否需要进行定时报警等工作,以完成人机交互的功能[7]。系统主程序的流程图如图3-1所示。
4.2 按键检测和处理程序
按键检测和处理程序为用户设置时间和闹铃提供人机接口。万年历挂钟提供7个独立式的按键接口,通过采集按键的电平状态来检测按键的按下与否。在按键检测程序中提供了延时防抖功能。按键检测程序只有在检测到“时间设置”键或者“闹铃设置”键被按下后方进入处理程序。处理程序结束的条件为检测到“确认”键被按下[8]。
按键检测程序通过点亮数码管的小数点提示正在进行设置的是哪一位数据。处理程序提供了对闹铃时间设置的合法性检测,而不提供对时间设置的合法性检测。只有合法的闹铃时间设置方能启动闹铃功能,任何非法的闹铃时间设置将关闭闹铃功能。按键检测和处理的程序流程如图3-2所示[9]。
4.3 系统集成与测试
万年历挂钟系统的测试分为4部分:AT90S8535主机电路测试、键盘显示电路的测试、实时时钟电路的测试和温度检测电路的测试。对各部分的测试应该编制各自的测试程序[10]。
完成单片机电路测试后,首先应该进行按键和数码管的显示测试。在万年历挂钟的设计中采用了16位数码管的动态显示和7位独立的按键设计。在主程序中给出了显示和按键检测的程序,我们可以根据此编写测试程序。需要注意的是,由于按键没有接上拉电阻,在编写测试程序时必须将接按键的I/O口设置为带上拉的输入方式,这样才能保证按键状态的正确检测。设计中采用的是共阴型数码管,我们必须修改显示程序才能正确显示数据。
5.结论
本次设计中选用高性能低功耗的AVR架构单片机AT90S8535作为系统的控制核心,并选用高集成度的实时时钟芯片SD2303和DS1722温度传感器来处理时间和温度检测任务;万年历挂钟能实现实时时间和温度的检测和显示。通过设置的7个独立的按键来调整时间和设置闹铃,利用16个七段LED数码管显示。
SD2303具有内置晶振、支持两线串行接口的高精度实时时钟芯片。该系列芯片可保证时钟精度为±5ppm(在25±1℃下),即年误差小于2.5分钟。通过与温度传感器的结合可以设定适应温度变化的调整值,实现在宽温范围内高精度的计时功能;DS1722温度传感器的测温范围为-55℃~120℃,精度为±2℃。DS1722提供8~12位的可编程转换值,即分辨率从1.0℃~0.0625℃。温度值直接以数字形式输出,方便的应用于工农业以及日常生活的各个方面。
[1]阎石.数字电子技术基础(第五版)[M].高等教育出版社,2006.
[2]张萌,和湘,江斌.单片机应用系统开发综合实例[M].清华大学出版社,2007.
[3]张军.AVR单片机应用系统开发典型实例[M].中国电力出版社,2005.
[4]宋吉和.C语言程序设计(第二版)[M].中国石油大学出版社,2006.
[5]郑锋,王巧芝,程丽平,张清鹏.51单片机典型应用工发范例大全[M].中国铁道出版社,2011.
[6]陈杰.高职院校单片机课程教学改革探讨[J].中国校外教育,2008(11):143.
[7]李淑萍.高职单片机课程实验教学改革初探[J].职业教育研究,2011(6):131-132.
[8]陈杰.基于Proteus软件的彩灯控制器仿真设计[J].职业教育研究,2008(7):148.
[9]沈鸿星.LED交通信号灯控制系统的硬件设计[J].电子工程师,2004(03).
[10]查振亚,叶向阳.智能交通灯控制系统[J].华中理工大学学报,1997,25(2):63-65.
AT90S8535 microcontroller based on the electronic calendar clock system design
Xiao Chunhua
Guangdong Province business senior technical school 512200 China
Design of high performance and low power consumption AVR architecture AT90S8535 MCU as the core of the control system,and the use of high integrated degree,real-time clock chip SD2303 and DS1722 temperature sensor to the processing time and temperature detection task,can realize the real time and the temperature detection and display.AT90S8535 microcontroller with SPI interface,can be very convenient to achieve and DS1722 communication.In the setting of an alarm when a program on the setting time,the rationality of the inspection,any unreasonable time setting off the alarm function.
calendar;DS1722 temperature sensor;AT90S8535 single chip;real-time clock chip SD230