基于单片机的同步电子时钟设计.docx
- 文档编号:20100490
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:72
- 大小:185.58KB
基于单片机的同步电子时钟设计.docx
《基于单片机的同步电子时钟设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的同步电子时钟设计.docx(72页珍藏版)》请在冰豆网上搜索。
基于单片机的同步电子时钟设计
基于单片机的同步电子时钟设计
摘要
单片计算机既单片微型计算机。
由RAM,ROM,CUP构成,定时,计数和多种接口与一体的微型控制器。
他体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
而51/52系列单片机是各单片机中最为典型和最有代表性的一种。
这次毕业设计通过对它的学习,应用,从而达到学习,设计的能力。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。
数字钟的精度、稳定度远远超过老式机械钟。
本设计使用单片机AT89C52以AT89C52芯片为核心,DS1302为时钟芯片,实现在LCD上显示日期、时间,通过两个键来实现自动同步和手动同步,在实现各功能时LCD进行相应显示,时间同步成功时蜂鸣器响。
通过软硬件结合达到最终目的。
关键词:
单片机,数字钟,DS1302,LCD,C语言
SYNCHRONOUSELECTRONICCLOCKDESIGN
BASEDONSCM
ABSTRACT
Amonolithiccomputerissinglechipmicrocomputer.ByRAM,ROM,CUP,timing,countingandmultipleinterfacesandtheintegrationofthemicrocontroller.Hehastheadvantagesofsmallvolume,lowcost,strongfunction,widelyusedinsmartindustries,andindustrialautomation.And51SeriesSCMisthemosttypicalandthemostrepresentativeone.Thegraduationdesignthroughthestudy,application,toachievethestudy,designability.
SCMmodulearethemostcommondigitalclock,adigitalclockisakindofdigitalcircuittechnologyimplementation,minutesandsecondstimingdevice,andthemechanicalclockcomparedwithhigheraccuracyandintuitive,andwithoutamechanicaldevice,hasmorelongerservicelife,soithasbeenwidelyused.Adigitalclockisadoptingdigitalcircuitimplementationof"hour""points"and"second"digitaldisplaytimerdevice.Adigitalclockprecision,stabilitythanoldmechanicalclock.
Thisdesignusesa12MHZcrystaltoconnectwiththemachineAT89C52,takesAT89C52chipsascore,DS1302chipisusedasthelockchip,weareabletoshowdate,timeandfixthetime,onLCD.Wecanuse5keytoconstitutedate,adjusttime,enactthebellandsetthecountdowntimer.Whentheelectriccarryingouteachfunction,theLCDshowsthetightfunction.Whenthealarmclockandthecountdowntimerwerereached,thevoicebegins.ThesoftwarepartisrealizedbyClanguage.Itwasdividedintotoshow,delay,adjust,makebell,infixedtime,andadjustdateetc.part.Wegettheendpurposecombiningthesoftwareandthehardware.
KEYWORDS:
SCM,digitalclock,DS1302,LCD,Clanguage
第1章设计要求与方案选择
§1.1设计目的
设计一种有线连接的可以实现主机同从机通过串行口协议来达到时间同步的同步电子时钟,加深对所学专业知识的认识,提高分析、解决工程实际问题的能力,提高对单片机的应用能力,提高收集文献、资料的能力,从而达到综合运用所学的专业知识进行电子产品设计、制作与调试的能力。
§1.2设计要求
基本功能:
(1)同步电子时钟的主机时间能与从机时间保持同步
(2)可以显示年月日时分秒
(3)可以实现调时功能
(4)具有定时闹钟功能
(5)具有复位功能
(6)做出实物
§1.3各模块方案选择与论证
根据设计要求,系统可分为单片机模块,液晶显示模块,按键模块,晶振模块,外部时钟控制模块,复位模块,闹铃模块。
单片机模块:
采用型号为AT89C52的单片机。
因为:
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可提供许多较复杂系统控制应用场合。
设计一种有线连接的可以实现主机同从机通过串行口协议来达到时间同步的同步电子时钟,加深对所学专业知识的认识,提高分析、解决工程实际问题的能力,提高对单片机的应用能力,提高收集文献、资料的能力,从而达到综合运用所学的专业知识进行电子产品设计、制作与调试的能力。
gps模块就是gps信号接收器,它是一个可以用无线蓝牙或有线方式和电脑或手机连接,将它接收到的gps信号传递给电脑或手机中的gps软件进行处理。
GPS即全球定位系统(GlobalPositioningSystem)。
简单地说,这是一个由覆盖全球的24颗卫星组成的卫星系统。
这个系统可以保证在任意时刻,地球上任意一点都可以同时观测到4颗卫星,以保证卫星可以采集到该观测点的经纬度和高度,以便实现导航、
第2章GSP模块
§2.1GPS介绍
本设计采用AT89C52单片机芯片配合DS1302时钟芯片为主构成的主机和从机以有线连接而达到时间同步的电子时钟。
文中设计了一个显时、调时、定时闹钟以及时间同步功能的电子钟。
电子钟使用12MHz晶振与DS1302时钟芯片相连接,通过晶振为时钟芯片提供最为基本的脉冲信号的方法实现了在时钟芯片中的计时作用,再经过单片机的编程作用,而达到在LCD液晶屏上显示年月日时分秒,并可以调时、定时,在定时时间到时有蜂鸣器报警。
设计通过主机和从机的配合作用,采用在主机和从机之间用有线连接,签订串行口协议,而实现主机和从机的时间同步功能。
该电子钟设有同步(P3.3),闹铃(P3.4),选定(P3.5),加(P3.6),减(P3.7)等五个基本按键。
每按一下同步按键可以使主机与从机时间达到同步,按下闹铃键,在达到定时时间时有蜂鸣器报警,按下选定键可以选定年月日时分秒的每一位,再按加、减键,而达到调时效果。
§2.2系统硬件描述
基于单片机系统的同步电子时钟基本结构框架如图2-1所示:
图2-1系统基本结构框图
该系统所需要的器件包括单片机AT89C52芯片两块,时钟芯片DS1302两块,液晶显示屏LCD1602一块,蜂鸣器一个,12MHz的晶振两个,排针排线若干组,电容电阻若干导线若干,按钮七个。
§2.3系统软件描述
系统程序实现三部分功能:
一、实现年、月、日、时、分、秒的显示和设置;二、实现主机和从机之间的时间同步。
如图2-2所示:
图2-2功能整体流程框图
§2.4设计流程和预期结果
该设计的主要流程如下:
首先阅读大量参考文献,进行设计方案的确定,然后在Protues上进行原理图的绘制和修改,在电器检查无误的情况下,购买所需要的元器件(元器件应该考虑裕量)。
接着把元器件焊接到各个功能电路的模块上,并结合程序进行调试。
最后将各个功能的电路程序组合起来,然后再进行总体调试直到成功。
本设计能达到以下结果:
(1)显示年、月、日、时、分、秒,并能通过按键设置。
(2)可以定时闹钟,定时时间达到时,蜂鸣器报警。
(3)可以通过按键来实现主机和从机的时间同步。
第3章系统硬件电路设计与实现
§3.1硬件芯片介绍
§3.1.1单片机AT89C52
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
兼容MCS51指令系统·8k可反复擦写(>1000次)FlashROM
·32个双向I/O口·256x8bit内部RAM
·3个16位可编程定时/计数器中断·时钟频率0-24MHz
·2个串行中断·可编程UART串行通道
·2个外部中断源·共6个中断源
·2个读写中断口线·3级加密位
·低功耗空闲和掉电模式·软件设置睡眠和唤醒功能
AT89C52P为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。
功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。
主要管脚有:
XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。
RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。
VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。
P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。
P0口
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表1。
Flash编程和程序校验期间,P1接收低8位地址。
引脚号
功能特性
P1.0
T2,时钟输出
P1.1
T2EX(定时/计数器2)
表1
P2口
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。
Flash编程或校验时,P2亦接收高位地址和一些控制信号。
P3口
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
RST
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1
振荡器反相放大器的及内部时钟发生器的输入端。
XTAL2
振荡器反相放大器的输出端。
定时器0和定时器1:
AT89C52的定时器0和定时器1的工作方式与AT89C51相同。
定时器2
定时器2是一个16位定时/计数器。
它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器T2CON(如表3)的C/T2位选择。
定时器2有三种工作方式:
捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON的控制位来选择。
定时器2由两个8位寄存器TH2和TL2组成,在定时器工作方式中,每个机器周期TL2寄存器的值加1,由于一个机器周期由12个振荡时钟构成,因此,计数速率为振荡频率的1/12。
在计数工作方式时,当T2引脚上外部输入信号产生由1至0的下降沿时,寄存器的值加1,在这种工作方式下,每个机器周期的5SP2期间,对外部输入进行采样。
若在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为0,则在紧跟着的下一个周期的S3P1期间寄存器加1。
由于识别1至0的跳变需要2个机器周期(24个振荡周期),因此,最高计数速率为振荡频率的1/24。
为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次。
自动重装载(向上或向下计数器)方式
当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器T2CON(见表5)的DCEN位(允许向下计数)来选择的。
复位时,DCEN位置“0”,定时器2默认设置为向上计数。
当DCEN置位时,定时器2既可向上计数也可向下计数,这取决于T2EX引脚的值,参见图5,当DCEN=0时,定时器2自动设置为向上计数,在这种方式下,T2CON中的EXEN2控制位有两种选择,若EXEN2=0,定时器2为向上计数至0FFFFH溢出,置位TF2激活中断,同时把16位计数寄存器RCAP2H和RCAP2L重装载,RCAP2H和RCAP2L的值可由软件预置。
若EXEN2=1,定时器2的16位重装载由溢出或外部输入端T2EX从1至0的下降沿触发。
这个脉冲使EXF2置位,如果中断允许,同样产生中断。
定时器2的中断入口地址是:
002BH——0032H。
当DCEN=1时,允许定时器2向上或向下计数,如图6所示。
这种方式下,T2EX引脚控制计数器方向。
T2EX引脚为逻辑“1”时,定时器向上计数,当计数0FFFFH向上溢出时,置位TF2,同时把16位计数寄存器RCAP2H和RCAP2L重装载到TH2和TL2中。
T2EX引脚为逻辑“0”时,定时器2向下计数,当TH2和TL2中的数值等于RCAP2H和RCAP2L中的值时,计数溢出,置位TF2,同时将0FFFFH数值重新装入定时寄存器中。
当定时/计数器2向上溢出或向下溢出时,置位EXF2位。
波特率发生器
当T2CON(表3)中的TCLK和RCLK置位时,定时/计数器2作为波特率发生器使用。
如果定时/计数器2作为发送器或接收器,其发送和接收的波特率可以是不同的,定时器1用于其它功能,如图7所示。
若RCLK和TCLK置位,则定时器2工作于波特率发生器方式。
波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2翻转使定时器2的寄存器用RCAP2H和RCAP2L中的16位数值重新装载,该数值由软件设置。
在方式1和方式3中,波特率由定时器2的溢出速率根据下式确定:
方式1和3的波特率=定时器的溢出率/16
定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式(C/T2=0)。
定时器2作为波特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器周期(1/12振荡频率)寄存器的值加1,而作为波特率发生器使用时,在每个状态时间(1/2振荡频率)寄存器的值加1。
波特率的计算公式如下:
方式1和3的波特率=振荡频率/{32*[65536-(RCP2H,RCP2L)]}式中(RCAP2H,RCAP2L)是RCAP2H和RCAP2L中的16位无符号数。
定时器2作为波特率发生器使用的电路如图7所示。
T2CON中的RCLK或TCLK=1时,波特率工作方式才有效。
在
波特率发生器工作方式中,TH2翻转不能使TF2置位,故而不产生中断。
但若EXEN2置位,且T2EX端产生由1至0的负跳变,则会使EXF2置位,此时并不能将(RCAP2H,RCAP2L)的内容重新装入TH2和TL2中。
所以,当定时器2作为波特率发生器使用时,T2EX可作为附加的外部中断源来使用。
需要注意的是,当定时器2工作于波特率器时,作为定时器运行(TR2=1)时,并不能访问TH2和TL2。
因为此时每个状态时间定时器都会加1,对其读写将得到一个不确定的数值。
然而,对RCAP2则可读而不可写,因为写入操作将是重新装载,写入操作可能令写和/或重装载出错。
在访问定时器2或RCAP2寄存器之前,应将定时器关闭(清除TR2)。
可编程时钟输出
定时器2可通过编程从P1.0输出一个占空比为50%的时钟信号,如图8所示。
P1.0引脚除了是一个标准的I/O口外,还可以通过编程使其作为定时/计数器2的外部时钟输入和输出占空比50%的时钟脉冲。
当时钟振荡频率为16MHz时,输出时钟频率范围为61Hz—4MHz。
当设置定时/计数器2为时钟发生器时,C/T2(T2CON.1)=0,T2OE(T2MOD.1)=1,必须由TR2(T2CON.2)启动或停止定时器。
时钟输出频率取决于振荡频率和定时器2捕获寄存器(RCAP2H,RCAP2L)的重新装载值,公式如下:
输出时钟频率=振荡器频率/{4*[65536-(RCP2H,RCP2L)]}
在时钟输出方式下,定时器2的翻转不会产生中断,这个特性与作为波特率发生器使用时相仿。
定时器2作为波特率发生器使用时,还可作为时钟发生器使用,但需要注意的是波特率和时钟输出频率不能分开确定,这是因为它们同使用RCAP2L和RCAP2L。
UARTAT89C52的UART工作方式与AT89C51工作方式相同。
中断
AT89C52共有6个中断向量:
两个外中断(INT0和INT1),3个定时器中断(定时器0、1、2)和串行口中断。
所有这些中断源如图9所示。
这些中断源可通过分别设置专用寄存器IE的置位或清0来控制每一个中断的允许或禁止。
IE也有一个总禁止位EA,它能控制所有中断的允许或禁止。
注意表5中的IE.6为保留位,在AT89C51中IE.5也是保留位。
程序员不应将“1”写入这些位,它们是将来AT89系列产品作为扩展用的。
定时器2的中断是由T2CON中的TF2和EXF2逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是TF2或EXF2产生中断,而由软件清除中断标志位。
定时器0和定时器1的标志位TF0和TF1在定时器溢出那个机器周期的S5P2状态置位,而会在下一个机器周期才查
询到该中断标志。
然而,定时器2的标志位TF2在定时器溢出的那个机器周期的S2P2状态置位,并在同一个机器周期内查询到该标志。
时钟振荡器
AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图10。
外接石英晶体
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 同步 电子 时钟 设计