基于单片机实现多功能数字钟的系统设计
2009-06-22盛蒙蒙葛亦斌邱烨马栋
盛蒙蒙 葛亦斌 邱 烨 马 栋
[摘要]多功能数字钟的系统采用AT89552单片机作为控制系统的核心,模型采用单片机作为主控制器,利用DSl302时钟芯片计算当前的秒、分、时、日、月、年。通过1602液晶屏友好的人机界面将结果完美的呈现给用户。为可以灵活的设置时间,增加4x4键盘模块通过键盘扫描可以对当前的时间随意设置,除此又增加秒表、闹钟、生日提醒和整点提醒的功能。为具有更高的实用价值,通过DS18820来显示当前温度,并伴有温度报警功能。利用键盘模块对预设的温度报警上下限进行设置。由于该系统具有时间显示、闹钟、秒表等完整功能,有很高的利用价值。
[关键词]温度报警单片机c语言实时时钟
中图分类号:TP2文献标识码:A文章编号:1971--7597(2009)1020035--01
一、引言
数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,广泛用于个人家庭、车站、码头、办公室等公共场所,已成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体与振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、通断动力设备以及各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有若非常现实的意义。
二、工作原理
系统的结构框架最主要的部分是中间的主控模块部分,时间的计算由DS1302芯片完成,通过简单的串行接口与单片机进行通信。温度测量由0S18820温度传感器完成。传感器的测量结果由于是以数字信号形式输出,可以直接送给单片机处理。单片机在接到数据后,一方面将时间日期通过1602显示出来,另一方面通过对键盘的扫描来确定哪个键按下,随即掉转到该键对应功能模块界面。
三、硬件电路设计
该系统主要由以下五部分组成:主控制器、温度测量及报警部分、键盘扫描部分、实时时钟部分和液晶显示部分等,下面对这几个部分的具体的器件选择及连接电路做具体的介绍。
(一)主控制器AT89S52。在该监测器中起到总控作用的是AT89S52单片机,它是ATMEL公司生产的低电压、高性能的CMOS8位单片机,工作电压4.0v到5.5v,拥有8K字节FLASH存储器和256字节片内RAM,全静态时钟范围从0~33MHz。它的最大方便之处室支持在系统编程ISP,可进行高达1000次擦写,节约设计成本。单片机的口线中,P2和P3用于液晶显示电路,P1口用于键盘的扫描电路。P2也用于DSl302~]DSISB20的连接电路。
(二)温度测量及报警部分。温度测量在本系统中起到一个扩展的作用,传统的方式是采用热电偶或热电阻,但是硬件软件调试复杂,且成本高。这里选择了美国DALLAS公司生产的单总线式数字温传感器DSISB20。该传感器可实现9-12位的温度读数,温度测量范围为:-55℃~+125℃,测温分辨率高达0.0625℃。将结果转换成串行数字信号。由于采用单总线结构,一个18820有唯一的标号,节约了口线资源。报警部分比较简单,主要是一个蜂鸣器,通过程序验证后温度超过上下限时,就输出一个高电平导通三极管,蜂鸣器有电流流过既可以报警。
报警部分主要还要取决于软件的设计能否准确将不同时刻的数据进行准确对比。
(三)键盘、显示部分。键盘扫描电路采用4x4键盘模块,因为涉及的功能比较多所以采用矩阵式键盘模块,并且考虑到当功能需要增加时,按键相应的也要增加,利用矩阵式键盘仅对软件稍做修改即可而不用增加口线,利于扩展。
为了能够提供一个更为良好的显示界面,该设计选用带背光的LCDl602点阵式字符型显示器。该显示器专门用于显示字母、数字及符号等,它集成了HD44780控制器,是一个液晶组件。显示容量为16×2个字符,芯片工作电压;4.5~5.5v,最佳工作电压5.0V,总共有16个引脚,11条指令。它的另一大优点就是功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。
(四)实时时钟部分。DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒分时日日期月年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通LOAM/PM指示决定采用24或12小时格式。DSl302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:1、RES(复位):2、I/O(数据线);3、SCLK(串行时钟)。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。Ds1302工作时功耗很低保持数据和时钟信息时功率小于1mw。
四、软件设计
为利于该设计的多功能的实现和更高的编程效率。采用c语言进行编程[3]。为实现编程结构清晰,采用各个模块单独编程,最后实现各个模块的综合连接。主程序的框架由键盘扫描程序构成,各个功能模块程序嵌入到各个按键的子程序中,通过对按键的不断扫描来确定跳转到哪个功能模块。对于键盘模块,采用扫描法循环扫描。对于温度显示则利用18820的控制字要求严格编写,DSl302的程序也按照芯片的规格要求编写。对于扩展的秒表功能,则利用系统时钟的延时ls功能实现,闹钟、生日提醒和温度报警的上下限设置则通过全局变量来设置初始值,利用按键可以增减。
五、调试与分析
(一)硬件调试。在硬件方面,由于电路不是很复杂,所以焊接起来不是很难,容易出现问题的地方在于焊接是否出现虚焊,跳线是否接实,管脚是否连接正确等。
(二)软件调试。在keil51编译器下进行程序编译及仿真调试时,应分段并以子程序为单位逐个进行,最后可结合硬件实时调试。
六、结束语
随着电子技术在不断进步,机械式时钟已经被淘汰,取而代之的是具有高度准确性和具有更长的使用寿命等优点的数字时钟。我们应尽量考虑到人的因素,增强时钟的实用性和操作性,为使用者提供切实的方便,营造一种舒适的生活氛围。所以,在设计的时候,应该从多面、多角度去考虑问题,而且应该进一步提高时钟的质量,并尽可能的增加一些使用的功能。