实用电子钟的设计探讨.docx
- 文档编号:23482992
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:17
- 大小:56.94KB
实用电子钟的设计探讨.docx
《实用电子钟的设计探讨.docx》由会员分享,可在线阅读,更多相关《实用电子钟的设计探讨.docx(17页珍藏版)》请在冰豆网上搜索。
实用电子钟的设计探讨
实用电子钟的设计探讨
摘要:
系统的设计电路是以AT89C52单片机为核心控制器,其外围电路主要包括时钟模块、键盘模块、液晶显示模块和跑表与重要日子倒计时模块。
这种电子钟不仅具有了一般电子钟的基本功能,并且具有以下功能:
闹钟时间设置,非接触式关闭闹铃,显示年月日,跑表,对重要日子倒计时等一系列功能。
其中使用串行时钟芯片PCF8563,实现时间和闹钟的显示设置功能。
通过键盘和汉显液晶提示可方便地校对时钟和设置闹钟时间,利用单片机中断系统完成跑表与倒计时,采用光电传感器实现非接触闹钟止闹功能。
整个系统使用单片机C51语言进行编程[1][2],实现其设计的各项功能。
关键字:
单片机PCF8563液晶C51语言
1.前言
电子钟已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
随着技术的发展,人们已不再满足于钟表原先简单的报时功能,希望出现一些新的功能,诸如日历的显示、闹钟的非接触式止闹、跑表功能、重要日期倒计时显示等,以带来更大的方便,而所有这些,又都是以数字化的电子时钟为基础的。
因此,研究实用电子钟及其扩展应用,有着非常现实的意义,具有很大的实用价值。
由于数字集成电路技术的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
虽然现在市场上已有现成的电子钟集成电路芯片出售,价格便宜,使用也灵活,如可以随意设置时、分、秒的输出,改变显示数字的大小等,并且由于集成电路技术的发展,特别是MOS集成电路技术的发展,使电子钟具有体积小、携带方便,但是这里介绍的实用电子钟可以满足使用者的一些特殊要求,输出方式灵活、功耗低、计时准确、性能稳定、维护方便等优点。
实用电子钟是一个时间控制系统,既能作为一般的时间显示器,也可作为一个定时控制器,驱动负载或显示信息,同时可以根据需要扩展其功能。
在此项目的设计研究过程中需综合运用所学的模拟电子技术、数字电子技术、单片机原理与应用、EDA等课程的知识,掌握实用电子钟的设计、组装与调试方法,利用现代的EDA、单片机等新电子技术以及现代的设计手段,系统地培养了综合设计、操作调试、故障处理的能力,达到综合素质以及创新能力的提高。
2.系统总体设计
2.1系统工作过程
系统上电自检后,实时实现小时、分钟、秒以及日历的显示和闹钟开关等指示信息的显示,通过按键可实现校对时间、设置闹钟时间、整点报时功能以及进行跑表和对重要日子倒计时的设定和显示。
当闹钟时间到时,单片机通过晶体管、蜂鸣器来实现声报警。
采用光电开关实现非接触式止闹的功能。
2.2系统总体设计框图
根据题目设计要求,要求实现时间和闹钟的显示及设定、跑表、重要日子倒计时、非接触式止闹等功能。
针对此要求,本系统由以下几个模块构成,系统总体设计框图如图1所示:
3.2模块方案论证与选择
3.2.1时钟模块
方案一:
基本门电路搭建
用基本门电路来实现时钟发生器,电路结构复杂,故障系数大,不易调试。
方案二:
由单片机实现时钟功能
单片机内部具有定时器,可方便实现定时功能。
通过计算可知,使定时器每25ms产生一次中断,当产生40次中断后秒单元将加一,以此类推,从而实现时、分、秒的走时,并加以显示。
但由于系统晶振误差、温漂、中断响应时间的不确定性及定时器重新装载时间常数所带来的误差,决定它不能用来作为时钟的时间基准。
方案三:
专用时钟芯片
目前市场上已有很多实时时钟芯片。
如DS12887、DS1302、PCF8563、X1227等,芯片内都集成了时钟/日历功能,给时钟系统设计带来很多方便。
因此计时功能以选专用时钟芯片为宜,时钟模块采用方案三来实现。
在系统硬件设计时,串行总线接口较并行总线接口较为方便,系统设计选用了PHILIPS公司的串行接口总线实时时钟芯片PCF8563作为计时芯片。
3.2.2键盘模块
方案一:
采用独立式按键电路
每个键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。
但是当按键较多时占用单片机的I/O数目较多。
方案二:
采用阵列式键盘
此类键盘是采用行列扫描方式,当按键较多时可以降低占用单片机的I/O口数目。
由于本系统采用的是4×4键盘,I/O接口线较多,所以采用方案二。
键盘接口电路用HD7279A。
它具有串行接口,其接口和外围电路比较简单,占用口线少;可同时连接多达64键的键盘矩阵;内部含有译码器,可直接接受BCD码。
所有这些特点都使得键盘模块电路设计简单,且编程比较容易。
3.2.3显示模块
方案一:
使用多个数码管显示[4]。
LED数码管是利用二极管发光显示数字和字母,具有亮度大、接口设计比较容易,价格相对较便宜等优点。
但是由于它工作电流较大、不能显示汉字,显示的信息量有限,若在此
题目中应用就会受到很大的限制。
方案二:
采用液晶显示。
液晶特别是具有汉字显示功能的液晶显示器,来实现显示功能,不仅可以实现基本的显示信息,而且可以显示丰富的符号指示信息以及文字指示信息,信息量丰富且直观易懂。
而且液晶显示有功耗低,体积小,重量轻,寿命长,不产生电磁辐射污染等优点。
系统采用方案二,设计选用OCM4×8C。
3.2.4止闹功能
方案一:
采用按下止闹按钮实现接触式止闹。
一般钟表都具有闹钟功能,定时时间到,便自动启动闹钟,发出铃声、音乐声以提醒人们,再由人按下止闹按钮停止闹钟工作,此方案缺点是操作起来不是很方便。
方案二:
采用声音控制实现非接触止闹功能。
此方案的优点是操作方便,但由于声控存在灵敏度的问题,在现场条件差的环境中,外界噪声对正常声音信号带来的干扰,也比较容易引起误动作。
方案三:
采用光电开关实现非接触止闹功能,因为光电开关利用物体对红外线的反射,可检测到物体的有无,方便有效,人体只需要靠近传感器20CM以内就可产生信号,完成止闹功能。
系统的止闹模块设计采用方案三,光电开关实现非接触式止闹。
4.系统模块设计
4.1时钟接口电路设计
本电子钟系统的重要部分在于时钟和闹钟功能模块,这里选用串行日历时钟芯片PCF8563。
与采用并行总线与单片机进行数据通信的时钟芯片相比,PCF8563与单片机的连线大为减少,极大的节省了单片机的系统资源。
时钟芯片与单片机的接口电路[5]如图2所示。
PCF8563是PHILIPS公司推出的一款工业级内含I2C总线接口功能的具有极低功耗的多功能时钟/日历芯片。
PCF8563的多种报警功能、定时器功能、时钟输出功能以及中断输出功能能完成各种复杂的定时服务,甚至可为单片机提供看门狗功能。
内部时钟电路、内部振荡电路、内部低电压检测电路(1.0V)以及两线制IC总线通信方式,不但使外围电路极其简洁,而且也增加了芯片的可靠性。
同时每次读写数据后,内嵌的字地址寄存器会自动产生增量。
当然作为时钟芯片,PCF8563亦解决了2000年问题。
因而,PCF8563是一款性价比较高的时钟芯片,它已被广泛用于电表、水表、气表、移动电话、传真机、便携式仪器以及电池供电的仪器仪表等产品领域。
介绍时钟芯片
P1.2P1.3P1.4P3.2
4.2键盘接口电路设计
在设计键盘接口电路[6]时,我们使用HD7279A键盘控制器来扫描4×4的16键键盘,单片机通过中断方式从HD7279A读出键码,接口电路如图4所示:
图4键盘接口电路
HD7279A是比高公司生产的单片具有串行接口、可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时可连接多达64键的键盘矩阵,一片即可完成LED显示及键盘接口的全部功能。
它和微处理器之间采用串行接口,其接口和外围电路比较简单,且占用口线较少,因此可以提高单片机的效率和节省系统资源。
加之它具有较高的性能价格比,因而在微型控制器、智能仪表、控制面板和家用电器等领域获得了日益广泛的应用。
HD7279A的管脚排列如图5所示。
HD7279A的管脚描述如表5所示。
HD7279A的主要特点如下:
带有串行接口,无需外围元件便可直接驱动LED;
各位可独立控制译码/不译码、消隐和闪烁等属性;
具有(循环)左移/(循环)右移指令;
具有段寻址指令,可方便地用来控制独立的LED图5HD7279A的管脚图
显示管;
64键键盘控制器内含去抖动电路。
4.3液晶显示电路设计
由于本系统信息显示量大,所以我们选用OCM4×8C中文模块的液晶显示器。
它内含GB231216×16点阵国标以及简体汉字和ASCII码即可实现文本显示。
此外,OCM中文模块系统液晶显示器也可用作一般的点阵圆形显示器,并实现汉字、ASCII码,点阵圆形和变化曲线的同屏显示,此适合我们的需要。
接口电路如图6说明见表7所示。
该模块具有2.7~5.5V的宽工作电压范围,且具有睡眠、正常及低功耗工作模式,可满足系统各种工作电压及便携式仪器低功耗的要求。
液晶模块显示负电压,也由模块提供,从而简化了系统电源设计。
模块同时还提供LED背光显示功能。
除此之外,模块还提供了画面清除、游标显示/隐藏、游标归位、显示打开/关闭、显示字符闪烁、游标移位、显示移位、垂直画面旋转、反白显示、液晶睡眠/唤醒、关闭显示等操作指令。
OCM4×8C中文模块不需初始化,设置初始化的工作都在上电时自动完成,实现了“即插即用”,其用户硬件接口采用REQ/BUSY握手协议,简单可靠。
该晶体显示器采用请求/答应握手协议,BUSY高电平有效,表示OCM忙,不能接受命令;BUSY=0时,表示OCM空闲。
同时REQ=1时通知OCM处理当前数据线上的数据。
这是一种双向通讯
4.4AT89C52单片机电路[5]
AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8Kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元。
功能强大的AT89C52单片机适合于许多较为复杂控制应用场合。
AT89C52的主要性能参数:
·P0口:
P0口是一组8位漏极开路型双向I/O口,图9AT89C52引脚
也即地址/数据总线复用作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路。
对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
·P1口:
P1是一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部输入(P1.0/T2)和输入(P1.1/T2EX),参见表9:
表9P1.0和P1.1的第二功能引脚号
功能特性
P1.1
T2(定时/计数器2外部计数脉冲输入),时钟输出
P1.1
T2EX(定时/计数2捕获/重装载触发和方向控制)
4.5.2跑表程序流程图
跑表程序的流程图如图11所示。
图11跑表程序的流程图YNY分位+1秒位清0时位+1分位清0返回60分到N显示跑表时间NYNY第一次按下E键跑表初始化T0中断服务程序重置T0定时初值百分秒位+11秒到秒位+1,百分秒清060秒到
16
4.10系统软件主要设计流程
4.10.1综述
软件系统在本设计中尤其重要,基本功能大部分是由软件完成的,发挥功能的关键控制部分同样需要软件的密切配合才能顺利实现。
鉴于软件设计的复杂性和规模性,我们采用KEIL编译器支持的C语言编程,放弃了效率高但可读性不强的汇编语言。
整个软件系统采用模块化的程序设计方法,共分为时间设定、闹铃设定、跑表设定和重要日子倒计时四个部分。
软件系统的主要特点是整个过程完全在键盘的控制之下,实现了完全的友好的人机交互功能。
主程序通过判断键盘的输入情况调用不同的子程序。
子程序的功能实现也是在键盘的配合之下完成的。
此系统完成的主要功能有:
时间、日期设定与显示,闹铃设定,整点报时,跑表的启动/停止/保持显示/清除,对重要日子倒计时显示。
4.10.2系统软件流程图
系统软件流程图如图18所示。
总的流程图
5.系统测试
5.1测试及制作中所用仪器
COS5020型双踪模拟示波器
VC8045II数字万用表
SK1731SL2A直流稳压电源
伟福E6000/L仿真器
联想商用微机
烙铁等
5.2测试结果
(1)时钟功能的测试
①上电复位后,液晶显示初始设定的时间及日期,画面如图19所示:
20
05
年
05
月
01
日
星
期
日
12
时
01
分
00
秒
闹
钟
关
1.[资料介绍]
在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响。
为了更好的利用我们自己的时间,我们必须对时间有一个度量,因此产生了钟表。
钟表的发展是非常迅速的,从刚开始的机械式钟表到现在普遍用到的数字式钟表,即使现在钟表千奇百怪,但是它们都只是完成一种功能——计时功能,只是工作原理不同而已,在人们的使用过程中,逐渐发现了钟表的功能太单一,没有更大程度上的满足人们的需求。
因此在这里,我想能不能把一些辅助功能加入钟表中去。
在此设计中所设计的钟表不但具有普通钟表的功能,它还能实现额外的功能:
世界时、农历显示。
本系统采用了以广泛使用的单片机技术为核心,软硬件结合,使硬件部分大为简化,提高了系统稳定性,并采用LED显示电路、键盘电路,使人机交互简便易行,此外结合音乐闹铃电路、看门狗和供电电路。
本方案设计出的万年历可以显示日期时间、世界时、农历,设置闹铃功能。
[目录]
1.引言
2.系统的总体设计
3.硬件设计
4.软件设计
5.安装与调试
6.总结
7.参考文献
[原文]
1.引言
万年历是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,但是所有这些,都是以钟表数字化为基础的。
因此,研究万年历及扩大其应用,有着非常现实的意义。
市场上有许多电子钟的专用芯片如:
LM8363、LM8365等,但它们功能单一,电路连接复杂,不便于调试制作!
但是考虑到用单片机配合时钟芯片,可制成功能任意的电子钟,而且可以做到硬件简单、成本低廉。
所以本系统采用了以广泛使用的单片机AT89C51技术为核心,配合时钟芯片DS1302。
软硬件结合,使硬件部分大为简化,提高了系统稳定性,并采用LED显示电路、键盘电路,使人机交互简便易行,此外结合音乐闹铃电路、看门狗和供电电路。
本方案设计出的数字钟可以显示时间、设置闹铃功能之外。
本设计中我重点研究实现了单片机+时钟芯片这种模式的万年历,从原理上对单片机和时钟芯片有了深一步的认识,这些基本功能完成后,在软件基础上实现世界时,农历功能。
本设计在很多场合都能用到,可以把此万年历装在镜框中或其它工艺品中,以便更加实用。
2.系统的总体设计
2.1硬件设计
2.1.1主要硬件器件
系统所需主要器件有:
专用时钟芯片DS1302,单片机8051芯片,DM74LS245芯片,74LS164芯片,数码管。
各部分的功能:
(1)DS1302 实时时钟芯片。
X1.X2引脚接32.768KHz晶振,当复位端RST置1时,在SCLK时钟脉冲作用下从串行输入/输出端口I/O脚串行输入/输出数据。
其中,输出时时钟下降沿有效;输出时上升沿有效。
本方案通过读写DS1302内部7个读/写寄存器,得到所需时间,读写的时间单字节两位BCD形式。
......
[参考资料]
[1]沈德金、陈粤初等编著,MCS-51系列单片机接口电路与应用程序实例,北京:
北京航空航天大学出版社,1991年4月
[2]王永军、从玉珍主编,数字逻辑与数字系统,北京:
电子工业出版社,1999年8月。
[3]HowardM.Berlin,GuidetoCMOSBasics,Circuits,&Experiments HowardM.Berlin,Ltd
[4]童本敏等编,标准集成电路数据手册,北京:
电子工业出版社
[5]中国电子网
[6]马忠梅,籍顺心,张凯,等.单片机的C语言应用程序设计[M].北京:
北京航空航天大学出版社,2001,143-164.
用户函数
//函数功能:
初始化DS1302;
voidrtc_init()
{unsignedchartemp_data;
DS1302_RST=0; //设置DS1302_RST脚为低电平;
_nop_();_nop_();
DS1302_SCLK=0; //设置DS1302_SCLK为低电平;
write_ds1302(0x8e,0); //将控制寄存器设置为0,去掉写保护;
write_ds1302(0x90,0xa6);//writetotricklechargerregisterwith10100110;
//1010表示使能第10个滴流充电器;
//01表示在VCC1和VCC2之间接入一个二极管;
//10表示在VCC1和VC2之间接入两个并联的电阻;
temp_data=read_ds1302(0x81);//readsecondregister;
if((temp_data&0x80)!
=0)write_ds1302(0x80,0);
write_ds1302(0x8e,0x80); //将控制寄存器设置为0x80,添加写保护;
}
*********主函数
voidmain(void)
{
get_ytime();
if(table2[0]==0x11)
{
;
}
else
{
ds1302_init(); //调用DS1302初始化函数
set_time(); //调用设置时间函数
set_ytime(); //调用设置标志函数
}
DS1302_RST = 1; //使能DS1302
time_write_1(0x90); //充电命令
time_write_1(0xa5); //打开充电二级管一个二级管串联一个2K电阻
DS1302_RST = 0; //复位DS1302
LCD_init();
while
(1)
{
get_time(); //调用取时间函数
disp_time();
}
8脚接3.6V电子!
在很多单片机系统中都要求带有实时时钟电路,如最常见的数字钟、钟控设备、数据记录仪表,这些仪表往往需要采集带时标的数据,同时一般它们也会有一些需要保存起来的重要数据,有了这些数据,便于用户后期对数据进行观察、分析。
本小节就介绍市面上常见的时钟芯片DS1302的应用。
DS1302是美国DALLAS公司推出的一款高性能、低功耗、带内部RAM的实时时钟芯片(RTC),也就是一种能够为单片机系统提供日期和时间的芯片。
通过本小节的学习,我们将会把RTC相关的一些技术粗略介绍一下,然后介绍DS1302与单片机之间的软硬件应用。
DS1302时钟芯片简介
DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与单片机进行通信。
实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位决定采用24或12小时时间格式。
DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需三根I/O线:
复位(RST)、I/O数据线、串行时钟(SCLK)。
时钟/RAM的读/写数据以一字节或多达31字节的字符组方式通信。
DS1302工作时功耗很低,保持数据和时钟信息时,功耗小于1mW。
DS1302的内部结构
DS1302的外部引脚功能说明如图3所示:
图3DS1302封装图
X1,X2
32.768kHz晶振引脚
GND
地
RST
复位
I/O
数据输入/输出
SCLK
串行时钟
VCC1
电池引脚
VCC2
主电源引脚
DS1302的内部结构如图4所示,主要组成部分为:
移位寄存器、控制逻辑、振荡器、实时时钟以及RAM。
虽然数据分成两种,但是对单片机的程序而言,其实是一样的,就是对特定的地址进行读写操作。
图4DS1302的内部结构图
DS1302含充电电路,可以对作为后备电源的可充电电池充电,并可选择充电使能和串入的二极管数目,以调节电池充电电压。
不过对我们目前而言,最需要熟悉的是和时钟相关部分的功能,对于其它参数请参阅数据手册。
DS1302的工作原理
DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。
数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。
时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。
DS1302的寄存器和控制命令
对DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。
日历、时间寄存器及控制字如表1所示:
寄存器名称
7
6
5
4
3
2
1
0
1
RAM/CK
A4
A3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实用 电子钟 设计 探讨
![提示](https://static.bdocx.com/images/bang_tan.gif)