多功能电子时钟系统设计.docx
《多功能电子时钟系统设计.docx》由会员分享,可在线阅读,更多相关《多功能电子时钟系统设计.docx(58页珍藏版)》请在冰豆网上搜索。
多功能电子时钟系统设计
多功能电子时钟系统设计
学院名称:
专业:
班级:
姓名:
学号:
指导教师姓名:
刘晓杰俞洋
2013年12月
多功能电子时钟系统设计
摘要
在快节奏的当今社会,时间是一个很重要的工具,为了更高效率的完成工作,为了社会的进步与发展,把握和控制时间更是尤为重要。
人们对数字钟的要求也越来越高,多功能数字钟不管在性能还是在样式上都发生了质的变化。
数字钟的设计方法有许多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等等。
这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,并便于功能的扩展。
但这里为了学习数字电路,包括对组合逻辑电路与时序电路的学习,采用中小规模集成电路组成数字钟。
因此本系统采用单片机作为数字钟的核心控制器,读取时钟芯片的值,并通过显示器显示出来,而且,可以通过按键电路给单片机执行信号,实现正常显示,时钟校准和秒表的切换。
采用AT89S52作为主控单片机,时钟模块选用DS1302作为时钟芯片,显示模块选用LCD1602,设置部分选用按键电路。
本设计是以单片机为核心,附加必要的外围电路,通过编写C语言将存储在DS1302芯片中的年、月、日、时、分、秒,经过串行输入到单片机内部,对其进行数制的转换在DS1602上显现出来。
关键词:
LCD160;DS1302;STC89C52;电子钟
Multifunctionelectronicclocksystemdesign
Abstract
Withthefast-paceddevelopmentofsociety,timebecomesaessentialtoolwhichtobeusedinourdailyroutine,inordertocompletetheworkmoreefficiently,inordertoaccelerateprogressanddevelopmentofsociety,itisparticularlyimportanttograspandcontrolthetime.multi-functionaldigitalclockregardlessofthestyleorperformanceonbothaqualitativechange.DigitalclockdesignTherearemanyways,forexample,canbecomposedofsmallandmedium-scaleintegratedcircuitselectronicbell;alsobeusedwithadedicatedchipelectronicclockdisplaycircuitanditsperipheralcircuitrequiredelectronicbell;chipcanalsobeusedtoimplementelectronicbellandsoon.Thesemethodshavetheirowncharacteristics,includingtheuseofelectronicclockwithMCUprogrammingflexibility,functionalityandeaseofexpansion.Buthereinordertolearndigitalcircuits,includingcombinationallogiccircuitsandsequentialcircuitsofstudy,usingsmallandmediumscaleintegratedcircuitsdigitalclock.Therefore,thesystemusestheMCUasthecorecontrollerdigitalclock,clockchiptoreadthevaluesdisplayedbythedisplay,andcanbeperformedthroughthekeysignaltothemicrocontrollercircuittoachievenormaldisplay,clockandstopwatchcalibrationswitch.UsingAT89S52microcontrollerasthemasterclockmoduleselectionastheDS1302clockchip,displaymoduleselectionLCD1602,settingpartoftheselectionkeycircuit.
Thisdesignisamicrocontrollerasthecore,theadditionalnecessaryperipheralcircuits,throughthepreparationoftheClanguagewillbestoredintheDS1302chipyear,month,day,hour,minute,second,throughtheserialinputtotheinternalmicrocontroller,itsnumbersystemconversionapparentontheDS1602.
Keywords:
LCD1602;DS1302;STC89C52;Clock
前言
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此越来越广泛地应用各个领域。
本次电子系统实训是以单片机(STC89C52)为核心,时钟芯片DS1302,LCD1602XI显示部分构成。
具体介绍了应用Protues的ISIS软件进行单片机系统的电子时钟设计与仿真的实现方法。
该方法既能准确验证所设计的系统是否满足技术要求,又能提高系统设计的效率和质量,降低开发成本,具有推广价值。
随着现在通信的发展,移动通信,网络技术,多媒体技术在嵌入式系统中的应用,单片机从4位,8位,16位到32位,其发展历程一直受到广大电子爱好者的极大关注。
单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列,推动着单片机技术的创新进步。
然而传统的单片机系统开发除了需要购置如仿真器,编程器,示波器等价格不菲的电子设备外,开发过程也较为繁琐。
单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面,其调试过程一般分为软件调试,硬件调试,硬件测试,系统调试3个过程。
如果采用单片机系统的虚拟仿真软件-Protues,则不用制作具体的电路板也能够完成以上工作。
第1章绪论
1.1课题的意义和目的
在快节奏的当今社会,时间更是一个很重要的工具,为了更高效率的完成工作,为了社会的进步与发展,把握和控制时间更是尤为重要。
电子时钟是利用电子技术构成时钟功能的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的寿命,因此现在越来越得到广泛的使用。
现在的电子时钟具有显示、校准、闹钟这些传统机械时钟所具有的功能,另外还具有正点音乐报时、温湿度测量、秒表等新的功能,更加的使用并且生活化。
因此我们将设计一个多功能电子时钟系统。
课题的研究内容
设计制作一台以控制器为核心的多功能电子时钟系统。
课题的任务和要求
1.系统具有3种工作模式状态(正常时钟显示模式、系统校准模式、秒表计时模式);系统所有功能,能够通过上位PC机对其操作修改与实时动态显示(PC主机端可利用高级语言进行人机界面设计);
2.在正常时钟显示模式时,时钟具有显示年、月、日、时、分、秒的功能;
3.在正常时钟显示模式时,系统具有整点报时的功能,在离整点前10秒时,自动发出鸣叫声,步长1秒,每间隔1秒鸣叫一次,前4响是低音,后1响为高音,共鸣叫5次,最后1响结束时为整点。
高音频率为1KHz;
4.在系统校准模式时,系统具有快速校准时间的功能;
5.在秒表计时模式时,可兼做比赛时间记录表。
秒表记时的精度为0.1秒,由3个键分别控制秒表的启动、清零、记录功能,可连续记录3组时间,并能够显示记录时间;
6.系统显示器采用LCD液晶显示器1602或其它显示器件,并采用键盘对相关数据进行设置与操作。
第2章系统方案设计
2.1系统方案设计
2.1.1系统方案设计
方案一:
用单片机为核心完成多功能电子时钟的各种功能,由时钟芯片来提供及时方式,再通过蜂鸣器报时,通过键盘来定时,修改时间,实现秒表的启停和存储,通过显示器来显示时间。
示意框图如图2-1所示。
图2-1由单片机构成的多功能电子时钟框图
方案二:
以FPGA为核心来实现多功能电子时钟的功能,以模块化,自上而下的方式来编写程序,然后由时钟芯片来提供及时方式,再通过蜂鸣器报时,闹钟,通过键盘来定时,修改时间,实现秒表的启停和存储,通过显示器来显示时间。
示意框图如图2-2所示。
图2-2由FPGA构成的多功能电子时钟框图
2.2方案的选择与论证
2.2.1方案的比较与论证
以上两个方案都可以实现多功能电子时钟的功能要求。
其中方案一灵活性大,便于修改,成本低,但是经常会有死机情况,重启会复位,需要重新设置时间。
方案二使用的是模块化的编写方法,外围电路要求较简单,不会因为掉电后重启就需要重置信息,但是成本高,固化后难以修改。
所以相比较而言,选择成本较低的,便于修改的方案一。
第3章系统各模块的硬件设计
3.1单片机控制模块
3.1.1单片机的介绍
单片机是指一个集成在一块芯片上的完整计算机系统。
尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:
CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机也被称为微控制器,是因为它最早被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
早期的单片机都是8位或4位的。
其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。
此后在8031上发展出了MCS51系列单片机系统。
基于这一系统的单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。
随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。
目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。
而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
下面重点介绍STC89C52:
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
STC89C52RC单片机:
8K字节程序存储空间;512字节数据存储空间;内带2K字节EEPROM存储空间;可直接使用串口下载;AT89S52单片机:
8K字节程序存储空间;256字节数据存储空间;没有内带EEPROM存储空间;单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端.图3-1为STC89C52的管脚图。
图3-1单片机STC89C52引脚图
引脚功能简介:
单片机的40个引脚大致可分为4类:
电源、时钟、控制和I/O引脚。
1、电源
(1)VCC—芯片电源,接5V;
(2)VSS—接地端;
2、时钟
XTAL1、XTAL2:
晶体振荡电路反相输入和输出端。
3、控制线
(1)ALE/PROG:
地址锁存允许/片内EPROM编程脉冲
ALE功能:
用来锁存P0口送出的低8位地址
PROG功能:
片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
(2)PSEN:
外ROM读选通信号。
(3)RST/VPD:
复位/备用电源。
RST(Reset)功能:
复位信号输入端。
VPD功能:
在VCC掉电情况下,接备用电源。
(4)EA/Vpp:
内外ROM选择/片内EPROM编程电源。
EA功能:
内外ROM选择端
Vpp功能:
片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
4、I/O线
89C52共有4个8位并行I/O端口:
P0口、P1口、P2口、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
P0:
经上拉电阻后作为液晶模块的数据输入端。
P3.5作为LCD1602的RS端
P3.4作为LCD1602的RW端
P3.3作为LCD1602的EN端
P3.7作为蜂鸣器的输出端
P1.0作为DS1302的CLK端
P1.1作为DS1302的IO端
P1.2作为DS1302的RST端
P1.3~P1.5作为按键选择端
P2.0键盘电路的输入端
3.1.3单片机晶振模块设计
单片机晶振的作用是为系统提供基本的时钟信号。
没有晶振,就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。
单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行。
单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。
—个机器周期包括12个时钟周期。
因为我们选择了12MHZ晶振,它的时钟周期是1/12us,它的一个机器周期是12×(1/12)us,也就是1us。
电路设计如下图3-2所示:
图3-2单片机晶振电路
3.1.4单片机复位电路设计
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
单片机系统的复位方式有:
手动按钮复位和上电复位。
我们采用的是上电复位,通电后回到初始化。
电路如下图3-3所示:
图3-3单片机复位电路
3.2时钟电路DS1302
3.2.1DS1302简介
DS1302是由美国DALLAS公司推出的一种低功耗、高性能的实时时钟芯片,实时时钟可提供年、月、日、时、分和秒的调整,一个月的30天与31天可以自动调整,且具有闰年的自动补偿功能。
此款时钟芯片附加31字节的静态RAM,用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。
工作电压2.5~5.5V。
采用主电源和备用电源的双电源供电,并且可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。
DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广
范应用于多个领域。
时钟电路如下图3-4所示:
图3-4DS1302时钟电路
3.2.2DS1302引脚介绍
Vcc1:
主电源;Vcc2:
备份电源。
当Vcc2>Vcc1+0.2V时,由Vcc2
向DS1302供电,当Vcc2SCLK:
串行时钟,输入,控制数据的输入与输出;
I/O:
三线接口时的双向数据线;
RST为复位引脚,在读、写数据期间,必须为高,
X1X2为32867Hz晶振管脚,为芯片提供时钟脉冲。
引脚图如下3-5所示:
图3-5DS1302引脚图
图3-6DS1302内部结构框图
3.2.3DS1302工作原理
DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置“0”,接着把RST端置“1”,最后才给予SCLK脉冲。
DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。
对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。
位1至位5指操作单元的地址。
位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。
控制字节总是从最低位开始输入/输出的。
DS1302的日历、时间寄存器内容:
“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。
“WP”是写保护位,在任何的对时钟和RAM的写操作之前,“WP”必须为0。
当“WP”为1时,写保护位防止对任一寄存器的写操作。
DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置“0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如图5所示。
表2为DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。
对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。
位1至位5指操作单元的地址。
位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。
控制字节总是从最低位开始输入/输出的。
表6为DS1302的日历、时间寄存器内容:
“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。
“WP”
是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。
当“WP”为1时,写保护位防止对任一寄存器的写操作。
3.2.4DS1302的使用方法介绍
(1)DS1302的控制字节
DS1302的控制字如表所示。
控制字节最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始传输
表3-1DS1302控制字
1
RAM
A4
A3
A2
A1
A0
RD
CK
WR
(2)数据输入输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
其读写时序如下图3-6示
图3-6DS1302读写时序
(3)DS1302寄存器
DS1302中与时间、日期有关的寄存器共有12个,其中7个存放数据的格式为BCD码格式,其读写地址如下表所示
表3-2DS1302寄存器说明表
读寄存器
写寄存器
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
范围
81H
80H
CH
10秒
秒
00--59
83H
82H
10分
分
00--59
85H
84H
12
0
10
时
时
0--23
24
AM/PM
1--12
87H
86H
10日
日
1--31
89H
88H
10月
月
1--12
8BH
8AH
0
0
0
0
0
周
1--7
8DH
8CH
10年
年
00--99
8FH
8EH
WP
0
0
0
0
0
0
0
――
第一行秒寄存器,CH为时钟暂停标志位,该位为1时时钟停止,该位为0时时钟运行。
第二行分寄存器,bit0~bit6表示分钟数,因采用BCD编码,所以低四位最大能表示的数字为9,计数满向高三位进1。
第三行时寄存器,12/24用来定义DS1302小时的运行模式,12小时模式下bit5为1表示PM下午,bit5为0表示AM上午。
第八行控制寄存器,bit7是写保护位WP,当WP为1时,写保护位可防止对任一寄存器的写操作,在任何的对时钟和RAM的写操作之前,WP位必须为0
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。
DS1302与RAM相关的寄存器分为两类:
一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
3.3按键控制模块
采用独立式按键,因为独立式按键的电路配置灵活,软件简单,每个按键只占用一根I/O接口线,并且用的数量不多,所以采用独立式按键。
大概要采用8个按键分别命名为K0到K7,K1键是每种模式的退出,然后都是正常显示时钟时间,K3进入校准模式,此时K4表示秒、分、时的切换。
K0是进入