基于51系列单片机及DS1302时钟芯片的电子时钟Proteus仿真_报告

合集下载

基于51单片机的电子时钟设计

基于51单片机的电子时钟设计

基于51单片机的电子时钟设计
摘要:本文论述了基于51单片机的电子时钟设计,包括硬件设计与软件编程。

其中,硬件设计包括基本指示灯、DS1302时钟芯片等的选择与连接,时钟电路、晶振电路的设计等。

软件编程包括时钟显示的实现,时钟校准、闹钟等功能的实现等。

本设计具有精度高、操作简便、易于实现等特点,可广泛应用于各种场合。

关键词:51单片机;电子时钟;硬件设计;软件编程
前言
随着人们生活水平的提高,电子时钟已经成为人们生活中必不可少的物品,目前市场上各种类型的电子时钟层出不穷。

本文以51单片机为基础,设计了一款高精度、易于操作的电子时钟,采用DS1302时钟芯片作为时钟驱动芯片,实现了时钟的准确显示、校准、闹钟等功能。

硬件设计
硬件设计主要包括控制器、时钟驱动、显示装置以及电源。

本设计采用了AT89C51单片机作为控制器,一块DS1302时钟芯片作为时钟驱动,LED数字管作为显示装置。

同时,本设计采用了USB供电方式,其电源电压为5V。

软件编程
软件编程主要包括时钟显示、时钟校准、闹钟功能的实现等。

时钟显示采用了动态显示方式,实现了时间的精确定位。

同时,本设计还具有时钟校准功能,在程序接通时,可自动对时钟进行校准,保证时钟的精确度。

此外,本设计还具有设置闹钟的功能,用户可在指定时间响起闹钟。

结论本文以51单片机为基础,设计了一款高精度、易于操作的电子时钟。

通过对硬件设计、软件编程的设计与实现,使得该产品能够准确显示时间,保证了时钟的稳定性,满足了时间的要求,目前已
得到广泛应用。

作息时间控制器(基于51单片机和DS1302的时钟).

作息时间控制器(基于51单片机和DS1302的时钟).

课程设计(论文)题目:作息时间控制器院(系):电子工程与自动化学院专业:测控技术与仪器学生姓名:吉哲学号: 0900820413指导教师:徐翠锋职称:讲师2012年12月27日摘要本次作息时间控制器设计是采用AT89S52单片机作为系统的核心元件,在其最小系统基础上与DS1302时钟芯片配合,四个独立按键控制,六位七段数码管显示,无源蜂鸣器发声。

单片机最小系统作为核心处理和控制单元;时钟芯片用来实现实时时间的精准输出和闹钟信息的存储,并可用纽扣电池供电以保持时间的连续运行;独立按键用于进行时间及闹钟的设定;数码管用于显示时间及闹钟信息;蜂鸣器用于在达到设定的时间后进行及时提醒。

关键词:时间控制;AT89S52;单片机;DS1302;时钟芯片;闹铃;定时报警AbstractThis work and rest time controller design is to use AT89S52 SCM as the core of the system components, in its minimum system with DS1302 clock chip based on coordination, four independent key control, six seven period of digital tube display, passive buzzer sound. Single chip microcomputer minimum system as the core processing and control unit; Clock chip to realize real-time time accurate output and alarm information storage, and use button batteries to keep continuous operation time, Independent key for time and alarm clock Settings; Digital tube is used to display the time and alarm information; Buzzer to reach a set time for timely remind.Key words:Time control; AT89S52 devices; SCM; DS1302; Clock chip; Alarm; Timing alarm目录引言 (1)1 课程设计任务及要求 (1)2 硬件设计 (1)2.1 总体设计思路及系统框图 (1)2.2 中央处理控制器 (2)2.3 晶振电路 (3)2.4 时钟信号产生电路 (3)2.5 显示电路 (4)2.6 控制电路 (6)2.7 闹铃电路 (8)2.8 电源及下载电路 (8)3 程序设计 (9)3.1 主程序流程图 (9)3.2 按键扫描程序流程图 (9)3.3 响铃扫描程序 (10)4 制板、组装与调试 (11)4.1 PCB制作 (11)4.2 制作PCB板流程 (11)4.3 调试 (11)5 方案总结 (11)心得体会 (12)谢辞 (13)参考文献 (14)附录 (15)引言时间是人类生活必不可少的重要元素,从古至今它都扮演着一个非常重要的角色。

基于单片机及时钟芯片DS1302的电子时钟设计

基于单片机及时钟芯片DS1302的电子时钟设计

基于单片机及时钟芯片DS1302的电子时钟设计一、概述二、电子时钟的基本原理电子时钟是一种以单片机为核心的智能电子产品,采用数字电路来显示时间。

电子时钟的核心部件是一个定时器,通过周期性的计数来确定时间,然后再将计数器的结果通过数码管等显示装置进行显示。

除此之外,电子时钟还需要一个能够准确计时的时钟芯片,如本文所使用的时钟芯片DS1302。

三、电子时钟的设计方法本文设计的电子时钟采用AT89C52单片机和时钟芯片DS1302,并通过外围的驱动电路和数码管来实现时间的显示。

该电子时钟具有以下特点:1.可进行24小时制和12小时制的切换:电子时钟可以通过按键实现24小时制和12小时制的切换,可按需选择。

2.自动夏令时判断:电子时钟可自动识别夏令时,并根据设定值进行切换,方便易用。

3.温度显示:电子时钟的DS1302时钟芯片自带温度探测器,可实现温度的实时显示。

本文所设计的电子时钟的硬件设计方案如下:1.主控芯片:采用AT89C52单片机2.显示装置:采用数码管进行时分秒的显示,共4位数码管。

3.时钟芯片:采用DS1302时钟芯片,保证时间的准确性。

5.电源:采用开关电源或锂电池供电。

锂电池供电时,电子时钟可实现断电后不重置的功能。

1.初始化:在电子时钟启动时,需要对各个模块进行初始化,如DS1302时钟芯片的读写口、数码管和按键都需要进行初始化。

2.频率切换:按下切换按键后,电子时钟的频率从24小时制切换到12小时制。

3.设定夏令时:按下设定按键后,可以进行夏令时设定。

设定值以秒为单位存储,在夏季过渡期改变时,只需修改设定值即可。

5.时间的显示:通过程序将DS1302时钟芯片中的时间读出并在数码管上显示,实现实时显示的功能。

五、总结本文设计的基于单片机及时钟芯片DS1302的电子时钟,可通过按键实现24小时制和12小时制的切换、自动夏令时判断、温度显示等多种功能,实现了电子时钟的多种要求和需求。

该设计方案具有简单实用、成本低廉、易于维护等优点,可广泛应用于各个领域。

单片机DS1302时钟的Protues仿真

单片机DS1302时钟的Protues仿真

单片机DS1302时钟的Protues仿真作者:缐磊王毓谦来源:《卷宗》2019年第18期摘要:本文利用单片机和DS1302时钟芯片设计一个简易的时钟装置,阐述了该装置的硬件组成、软件实现、程序流程图及程序说明,并在在Protues仿真软件中进行仿真。

仿真结果表明该电子钟具有工作可靠、结构简单的特点,有很大的扩展空间。

關键词:DS1302;Protues;单片机;时钟一般情况下,可通过单片机的定时器功能模拟一个简单的电子时钟,但是此种方法不仅时间误差大,耗费单片机的内部资源,而且不可保存时间,一旦系统断电,时钟及恢复到复位值。

本文选用专门的时钟芯片DS1302,仿真设计结构简单,调试方便,成本低,设计开发周期短,有很大的扩展空间。

1 时钟芯片DS1304简介DS1302是美国 DALLAS公司推出的一种高性能、低功耗、带RAM的低功耗实时时钟芯片,它可以对年、月、日、周、日、时、分、秒进行计时,并能够对每月的天数和闰年的天数进行自动调整,时钟可以采用24小时制,也可以采用12小时制。

DS1302功耗很低,保持数据和时钟信息时功率小于1uW,在没有电源供电的情况下,可以工作长达10年的时间。

具体各管脚功能如下:X1和X2为晶振接入引脚,接入的晶振为32.768kHz;SCLK为串行时钟引脚;I/O为数据输入与输出引脚;CE为复位引脚;VCC1和VCC2为点源供电引脚,且VCC1为主电源,VCC2为备份点源,当VCC2>VCC1+0.2V时,由VCC2向DS1302供电,否则由VCC1供电。

DS1302与单片机等微处理器接口时,可以采用简单的同步串行工作方式,仅需要三个口线与单片机相连:1)CE管脚、2)I/O管脚、3)串行时钟SCLK管脚。

DS1302内部有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码,其日历、时间寄存器及其控制字如表1所示。

此外DS1302内部还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。

基于51单片机和时钟芯片DS1302的数字时钟设计2

基于51单片机和时钟芯片DS1302的数字时钟设计2

基于51单片机和DS1302数字时钟硬件总体设计说明书编制单位:*****作者:*****版本:V1.0发布日期:2011-2-12目录一、引言-----------------------------------------------11.1编写目的-----------------------------------------11.2背景---------------------------------------------11.3参考资料-----------------------------------------1二、总体设计--------------------------------------------32.1设计与运行环境------------------------------------32.2硬件功能描述--------------------------------------3三、数字钟软件和硬件设计-------------------------------33.1 硬件电路设计-------------------------------------33.1.1电源---------------------------------------33.1.2独立按键模块-------------------------------33.1.3显示模块------------------------------------43.1.4复位电路模块--------------------------------43.1.5时钟芯片模块--------------------------------53.1.6主控模块------------------------------------53.1.7闹铃模块------------------------------------6 3.2软件设计--------------------------------------------63.2.1程序设计流程图-------------------------------63.2.2 源程序--------------------------------------8四、数字钟制作过程中遇到的问题-------------------------19五、总结-----------------------------------------------20附录Ⅰ:DS1302时钟芯片的工作原理和使用方法-----------22 附录Ⅱ:如何利用软件减小的计时误差--------------------25一、引言1.1编写目的为了进一步熟悉51单片机的编程以及学习数字钟的相关设计方法,在老师的指导下我们进行了本次数字钟的设计。

51单片机_DS1302时钟芯片_共阴数码管_时钟实例【中为电子科技工作室.】

51单片机_DS1302时钟芯片_共阴数码管_时钟实例【中为电子科技工作室.】
read_dat |= 0x80; rtcCK = 1; _nop_(); rtcCK = 0; _nop_(); } return read_dat; }
Page: 3
E:\Demo\Keil3\IS_EB51M_V100_DEMO\12时钟\ds1302.c
//================DS1302读数据函数================// uchar Ds1302Read(uchar read_addr) {
void Ds1302Write(uchar write_addr, uchar write_dat)
{
rtcCE = 0;
rtcCK = 0;
Ds1302WriteByte(write_addr);
//先写地址
Ds1302WriteByte(write_dat);
//再写数据
rtcCK = 0;
rtcCE = 0;
CkntDisplay(ckntSeg[hourL],ckntDig[2]); CkntDisplay(ckntSeg[hourH],ckntDig[3]); }
if(isSetHour == 1) {
blinkHour++; if(blinkHour < 250) {
CkntDisplay(ckntSeg[hourL],ckntDig[2]); CkntDisplay(ckntSeg[hourH],ckntDig[3]); } else if((blinkHour >= 250) && (blinkHour < 500)) { CkntDisplay(ckntSeg[hourL],ckntDig[4]); CkntDisplay(ckntSeg[hourH],ckntDig[4]); } else

基于51单片机的实时时钟芯片DS1302


K_on LED1 LED2 LED3CLK LED4IO RST
BIT P3.0 BIT P3.3 BIT P3.4 BIT P3.5 BIT P3.7 BIT P3.1
;闹铃输出 ;DS1302
SECOND EQU 60H
;60H 秒
;61h 分
;62h 时
;63h 日
;64h 月
;65h DAY
;200Us ; ;display LED
MOV R2,#00H
;
MOV R3,#00H
;
MOV TMOD,#12H MOV TL1,#0e5H MOV TH1,#0BeH MOV TH0,#3FH MOV TL0,#3FH SETB ET0 SETB ET1 setb pt0 SETB TR0 SETB TR1 SETB IT0 SETB EX0 CLR PX0 ;LCALL SET1302 MOV R1,#0C1H acall T_6061 MOV 6AH,A MOV R1,#0C3H ACALL T_6061
;定时到时,显示闪
MOV C,07H MOV acc.7,C ;秒灯闪
段表
mov dptr,#tab2
MOV ANL MOV MOV SWAP ANL
A,61H A,#0FH B,A A,61H A A,#0FH
MOVC A,@A+DPTR
烁 MOV P1,A CLR LED3CLK LCALL DL2M SETB LED3CLK
MOV A,62H ANL A,#0FH MOV B,A MOV A,62H SWAP A ANL A,#07H MOVC A,@A+DPTR MOV P1,A CLR LED1 LCALL DL2M SETB LED1 MOV A,B MOVC A,@A+DPTR

基于proteus的51单片机仿真实例八十一、实时时钟芯片DS1302应用

基于proteus的51单片机仿真实例八十一、实时时钟芯片DS1302应用实例标签: proteus单片机芯片时钟实例2010-02-25 16:561、DS1302引脚排列:如下图引脚说明:1)Vcc1:后备电源,VCC2:主电源。

在主电源关闭的情况下,也能保持时钟的连续运行。

DS1302由Vcc1或Vcc2两者中的较大者供电。

当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。

当Vcc2小于Vcc1时,DS1302由Vcc1供电。

2)X1、X2:振荡源,外接32.768kHz 晶振。

3)RST:复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。

RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。

当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。

如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。

上电运行时,在Vcc>2.0V之前,RST必须保持低电平。

只有在SCLK为低电平时,才能将RST置为高电平。

4)I/O为串行数据输入输出端(双向)。

5)SCLK为时钟输入端。

2、 DS1302的控制字节DS1302 的控制字如下图所示。

控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。

3、数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。

同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。

DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见数据手册。

基于MCS-51和DS1302时钟电路设计

基于MCS-51和DS1302时钟电路设计摘要随着现代科技的快速发展,时间的不断流逝,从观太阳、摆钟到现在的电子时钟,人类凭借非凡的智慧不断研究又创造出新的纪录。

美国Dallas公司推出了一种具有涓细电流充电能能力的低功耗实时时钟芯片DS1302,可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。

本设计采用AT89C51单片机作为控制器,功耗小,电压可选用4.5-5.5V供电。

用8位数码管显示年月日也比较直观。

再运用Proteus仿真平台将硬件电路和软件程序结合起来测试验证,最终完成时钟电路设计。

综上所述本文对时钟电路设计的研究具有读取方便、显示直观、功能多样、电路简单、成本低廉优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

关键字:时钟,单片机,DS1302,Proteus目录摘要 (I)目录 (II)1 绪论 (1)1.1课题研究背景 (1)1.2 课题研究的目的与意义 (1)1.3 课题主要研究内容 (1)2 系统设计方案 (2)2.1 单片机芯片选择 (2)2.2 显示模块的选择 (3)2.3 时钟模块的选择 (3)3 硬件电路设计 (3)3.1 电路结构框图 (3)3.2 单片机最小系统设计 (4)3.3 时钟模块电路设计 (5)3.4 显示模块电路设计 (8)4 软件程序设计 (9)5 仿真系统设计 (10)结论 (12)致谢 (13)参考文献 (14)1 绪论1.1课题研究背景万年历在我国已有一千多年的历史,相传为商朝的万年所创,为纪念他的功绩而将该历法命名为“万年历”。

万年历古时通称时宪书或通书,是按照某一特定历法的推算法则编排年、月、日、节气等以供查考的工具书,是人类创造的文化成果之一。

据文学记载,历书大约在距今1100多年前,就已经在中国出现了。

帝制年代,它是皇帝的“垄断品”,所以历书又叫“皇历”。

但真正古老的历书产生于唐顺宗永贞元年(公元805年),之后又包含干支、月令、节气以及各种忌日、星相吉凶、符咒、卜卦等内容。

利用单片机及DS1302制作电子时钟

单片机原理及应用——基于Proteus仿真设计报告课程名:利用单片机及DS1302制作电子时钟专业:班级:学号:姓名:设计时间:一、简介这是一种“基于单片机和DS1302的电子时钟”(简称“电子时钟”)。

单片机为控制核心,DS1302为应用广泛且走时准确的时钟芯片。

二、功能与操作1.功能(1)时钟功能:动态显示时、分、秒。

(2)调时功能:可依据标准时钟调校时间。

(3)因DS1302接有辅助纽扣电池,即使电源断电也能准确计时数年。

2.操作(1)上电后时钟开始计时并显示。

(2)调时。

按下“调时”按键,则进入调校时间状态,可依次调校时、分、秒。

三、技术要点1.时钟芯片DS1302的应用(1)DS1302的简介DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM 的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。

DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。

(2)DS1302的电路图2.应用中的几个小问题(1)子程序必须满足三线通信的时序要求。

单片机晶振频率不同,相应的子程序中的延时也要调整。

否则,运行结果可能出现错误。

(2)注意LED数码管动态扫描显示程序的设计及单片机晶振频率的选择。

否则,会因LED数码管数量多而导致显示闪烁或不正确。

所以在程序设计中,应使动态扫描频率大于视觉暂留频率,要考虑避免出现串显现象。

四、元件清单五、原理图六、程序SCLK EQU P3.2IO EQU P3.3RST EQU P3.4JIA1 EQU P3.6 ;"加一"口TSH EQU P3.7 ;"调时间"口HOUR DATA 62HMINTUE DATA 61HSECOND DATA 60HDS1302_ADDR DATA 32HDS1302_DATA DATA 31HORG 0HMOV SP,#70HLCALL DELY1MOV DS1302_ADDR,#8EH ;允许写1302MOV DS1302_DATA,#00HLCALL WRITEMOV DS1302_ADDR,#81H ;从1302读秒LCALL READANL A,#7FH ;启动1302振荡器MOV DS1302_ADDR,#80HMOV DS1302_DATA,ALCALL WRITEMOV 20H,#0 ;调整时标识单元MOV 21H,#0FH ;调整时工作单元MAIN1: JB TSH,MAIN2F ;按调时键往下执行MOV DS1302_ADDR,#81H ;从1302读秒LCALL READORL A,#80H ;停1302振荡器MOV DS1302_ADDR,#81HMOV DS1302_DATA,ALCALL WRITESSS: LCALL DISP ;显示JNB TSH,SSS ;等待调键盘弹起MOV 20H,#8 ;设置调"时"标志SSS3: JNB TSH,FFF ;按调时键转调"分"LCALL DISP ;显示JB JIA1,SSS3 ;按"加一"键往下执行SSS2: LCALL DISP ;显示JNB JIA1,SSS2 ;等待"加一"键弹起MOV R7,HOURMOV HOUR,ACJNE A,#24H,SSS1 ;不等于24时转MOV HOUR,#0 ;等于24时归零SSS1: MOV DS1302_ADDR,#84H ;将"时"写入1302 MOV DS1302_DATA,HOURLCALL WRITEMOV R0,HOUR ;"时"分离LCALL DIVIDEMOV 44H,R1MOV 45H,R2SJMP SSSMAIN2F: LJMP MAIN2FFF: NOP ;调"分"LCALL DISP ;显示JNB TSH,FFF ;等待调时键弹起MOV 20H,#4 ;置调"分"标志FFF3: JNB TSH,MMM ;安调时键转调"秒"LCALL DISP ;显示JB JIA1,FFF3 ;若按"加一"键往下执行FFF2: LCALL DISP ;显示JNB JIA1,FFF2 ;等待"加一"键弹起MOV R7,MINTUELCALL JIAYI ;"分"加一MOV MINTUE,ACJNE A,#60H,FFF1 ;不等于60转MOV MINTUE,#0 ;等于60则归零FFF1: MOV DS1302_ADDR,#82H ;将"分"写入1302 MOV DS1302_DATA,MINTUELCALL WRITEMOV R0,MINTUELCALL DIVIDE ;"分"分离MOV 42H,R1MOV 43H,R2SJMP FFF3MMM: LCALL DISP ;显示JNB TSH,MMM ;若按调时键则转调"秒"MOV 20H,#2 ;置调"秒"标志MMM3: JNB TSH,MAIN3 ;按调时键退出调时LCALL DISP ;显示JB JIA1,MMM3 ;按"加一"键往下执行MMM2: LCALL DISP ;显示JNB JIA1,MMM2 ;等待"加一"键弹起MOV R7,SECONDMOV SECOND,ACJNE A,#60H,MMM1 ;不等于60转MOV SECOND,#0MMM1: ORL SECOND,#80HMOV DS1302_ADDR,#80H ;写"秒"MOV DS1302_DATA,SECONDLCALL WRITEANL SECOND,#7FHMOV R0,SECONDLCALL DIVIDE ;"秒"分离MOV 40H,R1MOV 41H,R2SJMP MMM3MAIN3: LCALL DISP ;显示JNB TSH,MAIN3 ;等待调时键弹起MOV 20H,#0MOV 21H,#0FHMOV DS1302_ADDR,#81H ;读"秒"LCALL READANL A,#7FH ;启动1302振荡器MOV DS1302_ADDR,#80HMOV DS1302_DATA,ALCALL WRITELJMP MAIN1MAIN2: MOV P1,#0 ;读时分秒并显示MOV DS1302_ADDR,#85H ;读"时"LCALL READMOV HOUR,DS1302_DATAMOV DS1302_ADDR,#83H ;读"分"LCALL READMOV MINTUE,DS1302_DATAMOV DS1302_ADDR,#81H ;读"秒"LCALL READMOV SECOND,DS1302_DATAMOV R0,HOUR ;"时"分离LCALL DIVIDEMOV 44H,R1MOV 45H,R2MOV R0,MINTUE ;"分"分离LCALL DIVIDEMOV 42H,R1MOV 43H,R2MOV R0,SECOND ;"秒"分离LCALL DIVIDEMOV 40H,R1MOV 41H,R2LCALL DISPLJMP MAIN1DISP: NOPMOV P1,40H ;显示"秒"低位JNB 01H,MIAOLMOV A,21HRL AMOV 21H,ACJNE A,#78H,MIAO1MIAO1: JC MIAOLCLR P2.4CLR P2.5SJMP FENMIAOL: SETB P2.5LCALL DELY1CLR P2.5LCALL DELY2MOV P1,41H ;显示"秒"高位SETB P2.4LCALL DELY1CLR P2.4LCALL DELY2FEN: MOV P1,42H ;显示"分"低位JNB 02H,FENLMOV A,21HRL AMOV 21H,ACJNE A,#78H,FEN1FEN1: JC FENLCLR P2.2CLR P2.3SJMP SHIFENL: SETB P2.3LCALL DELY1CLR P2.3LCALL DELY2MOV P1,43H ;显示"分"高位SETB P2.2LCALL DELY1CLR P2.2LCALL DELY2SHI: MOV P1,44H ;显示"时"地位JNB 03H,SHILMOV A,21HRL AMOV 21H,ACJNE A,#78H,SHI1SHI1: JC SHILSJMP SHI2SHIL: SETB P2.1LCALL DELY1CLR P2.1LCALL DELY2MOV P1,45H ;显示"时"高位SETB P2.0LCALL DELY1CLR P2.0LCALL DELY2SJMP SFMSHI2: CLR P2.0CLR P2.1SFM: RETDELY1: MOV R7,#5 ;晶振12MHz,延时2.58ms DELY11: MOV R6,#0DJNZ R6,$DJNZ R7,DELY11RETDELY2: MOV R7,#1 ;晶振12MHz,延时0.52ms DELY21: MOV R6,#0DJNZ R6,$DJNZ R7,DELY21RETDELY3: MOV R7,#40 ;晶振12MHz,延时8x2.58ms DELY31: MOV R6,#0DJNZ R6,$DJNZ R7,DELY31RETJIAYI: MOV A,R7ADD A,#1DA ARETDIVIDE: MOV A,R0 ;分离子程序ANL A,#0FHMOV R1,AMOV A,R0SWAP AANL A,#0FHMOV R2,ARET;以下为DS1302在单片机晶振频率为4MHz时的串行通信子程序WRITE: CLR SCLK ;1302写子程序SETB RSTMOV A,DS1302_ADDRMOV R4,#8WRITE1: RRC ACLR SCLKMOV IO,CSETB SCLKDJNZ R4,WRITE1CLR SCLKMOV A,DS1302_DATAMOV R4,#8WRITE2: RRC ACLR SCLKMOV IO,CSETB SCLKDJNZ R4,WRITE2CLR RSTRETREAD: CLR SCLK ;1302读子程序SETB RSTMOV A,DS1302_ADDRMOV R4,#8READ1: RRC ANOPMOV IO,CSETB SCLKCLR SCLKDJNZ R4,READ1MOV R4,#8READ2: CLR SCLKMOV C,IORRC ASETB SCLKDJNZ R4,READ2MOV DS1302_DATA,ACLR RSTRETEND七、总结通过这次设计与仿真,让我对PROTEUS仿真有了一定的了解,其中也碰见了许多不会用的,后来经过网上查阅懂得了怎么使用,如,画总线工具在什么地方,怎么使用这个东西来画总线,怎么画网络标号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录摘要一、引言 (1)二、基于单片机的电子时钟硬件选择分析 (2)2.1主要IC芯片选择 (2)2.1.1微处理器选择 (2)2.1.2 DS1302简介 (4)2.1.3 DS1302引脚说明 (4)2.2电子时钟硬件电路设计 (5)2.2.1时钟电路设计 (6)2.2.2整点报时功能 (7)三、Protel软件画原理图 (8)3.1系统工作流程图 (8)3.2原理图 (9)四、proteus软件仿真及调试 (9)4.1电路板的仿真 (9)4.2软件调试 (9)五、源程序 (10)六、课设心得 (13)七、参考文献 (13)基于单片机电子时钟设计摘要电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时钟精确、体积小、界面友好、可扩展性能强等特点,被广泛应用于生活和工作当中。

另外,在生活和工农业生产中,也常常需要温度,这就需要电子时钟具有多功能性。

本设计主要为实现一款可正常显示时钟/日历、带有定时闹铃的多功能电子时钟。

本文对当前电子钟开发手段进行了比较和分析,最终确定了采用单片机技术实现多功能电子时钟。

本设计应用AT89C52芯片作为核心,6位LED数码管显示,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能。

这种实现方法的优点是电路简单,性能可靠,实时性好,时间精确,操作简单,编程容易。

该电子时钟可以应用于一般的生活和工作中,也可通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。

关键词:电子时钟;多功能;AT89C52;时钟日历芯片一、引言时间是人类生活必不可少的重要元素,如果没有时间的概念,社会将不会有所发展和进步。

从古代的水漏、十二天干地支,到后来的机械钟表以及当今的石英钟,都充分显现出了时间的重要,同时也代表着科技的进步。

致力于计时器的研究和充分发挥时钟的作用,将有着重要的意义。

1.1 多功能电子时钟研究的背景和意义20世纪末,电子技术获得了飞速的发展。

在其推动下,现代电子产品几乎渗透到了社会的各个领域,有力的推动和提高了社会生产力的发展与信息化程度,同时也使现代电子产品性能进一步提升,产品更新换代的节奏也越来越快。

时间对人们来说总是那么宝贵,工作的忙碌性和繁杂容易使人忘记当前的时间。

然而遇到重大事情的时候,一旦忘记时间,就会给自己或他人造成很大麻烦。

平时我们要求上班准时,约会或召开会议必然要提及时间;火车要准点到达,航班要准点起飞;工业生产中,很多环节都需要用时间来确定工序替换时刻。

所以说能随时准确的知道时间并利用时间,是我们生活和工作中必不可少的[1]。

电子钟是采用电子电路实现对时、分、秒进行数字显示的计时装置,广泛应用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品。

由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。

诸如定时自动报警、0按时自动打铃、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。

因此,研究数字钟及扩大其应用,有着非常现实的意义。

1.2 电子时钟的功能电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时间精确、体积小、界面友好、可扩展性能强等特点,被广泛应用于生活和工作当中。

当今市场上的电子时钟品类繁多,外形小巧别致。

也有体型较大的,诸如公共场所的大型电子报时器等。

电子时钟首先是数字化了的时间显示或报时器,在此基础上,人们可以根据不同场合的要求,在时钟上加置其他功能,比如定时闹铃,万年历,环境温度、湿度检测,环境空气质量检测,USB扩展口功能等。

本设计电子时钟主要功能为:1.具有时间显示和手动校对功能,24小时制;2.具有年、月、日显示和手动校对功能;3.具有整点报时功二、基于单片机的电子时钟硬件选择分析考虑单片机货源充足、价格低廉,可软硬件结合使用,能够较方便的实现系统的多功能性,故采用单片机作为本设计的硬件基础。

2.1主要IC芯片选择2.1.1微处理器选择目前在单片机系统中,应用比较广泛的微处理器芯片主要为8XC5X系列单片机。

该系列单片机均采用标准MCS-52内核,硬件资源相互兼容,品类齐全,功能完善,性能稳定,体积小,价格低廉,货源充足,调试和编程方便,所以应用极为广泛。

例如比较常用的AT89C2052单片机,带有2KB Flash可编程、可擦除只读存储器(E2PROM)的低压、高性能8位CMOS微型计算机。

拥有15条可编程I/O引脚,2个16位定时器/计数器,6个中断源,可编程串行UART通道,并能直接驱动LED输出。

仅仅是为了完成时钟设计或者是环境温度采集设计,应用AT89C2052单片机完全可以实现。

但是将两种功能结合在一片单片机上,就需要更多的I/O引脚,故本设计采用具有32根I/O引脚的AT89C52单片机。

AT89C52单片机是一款低功耗,低电压,高性能CMOS 8位单片机,片内含4KB(可经受1000次擦写周期)的FLASH可编程可反复擦写的只读程序存储器(EPROM),器件采用CMOS工艺和ATMEI公司的高密度、非易失性存储器(NURAM)技术制造,其输出引脚和指令系统都与MCS-52兼容。

片内的FLASH存储器允许在系统内可改编程序或用常规的非易失性存储器编程器来编程。

因此,AT89C52是一种功能强,灵活性高且价格合理的单片机,可方便的应用在各个控制领域[6]。

AT89C52具有以下主要性能:1.4KB可改编程序Flash存储器;2.全静态工作:0——24Hz;3.128×8字节内部RAM;4.32个外部双向输入/输出(I/O)口;5.6个中断优先级;2个16位可编程定时计数器;6.可编程串行通道;7.片内时钟振荡器。

此外,AT89C52是用静态逻辑来设计的,其工作频率可下降到0Hz,并提供两种可用软件来选择的省电方式——空闲方式(Idle Mode)和掉电方式(Power Down Mode)。

在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。

在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内RAM中的内容,直到下一次硬件复位为止。

图2.1 AT89C52芯片PDIP封装引脚图AT89C51为适应不同的产品需求,采用PDIP、TQFP、PLCC三种封装形式,本系统采用双列直插PDIP封装形式。

2.1.2 DS1302简介DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。

实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。

工作电压宽达2.5~5.5V。

采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。

有主电源和备份电源双引脚,而且备份电源可由大容量电容(>1F)来替代。

需要强调的是,DS1302需要使用32.768KHz的晶振。

2.1.3 DS1302引脚说明1 2图2.2 DS1302芯片引脚图其的引脚功能参照表2.1。

表2.1 DS1302引脚功能说明引脚号名称功能1 V CC1 备份电源输入2 X1 32.768KHz晶振输入3 X2 32.768KHz晶振输出4 GND 地5 RST 控制移位寄存器/复位6 I/O 数据输入/输出7 SCLK 串行时钟8 V CC2 主电源输入2.2电子时钟硬件电路设计电子闹钟至少要包括秒信号发生器、时间显示电路、按键电路、供电电源、闹铃指示电路等几部分。

硬件电路框图参照图2.3。

该系统使用AT89C51单片机作为核心,通过读取时钟日历芯片DS1302数据,完成此电子时钟的主要功能——时钟。

使用比较通用的8段共阳数码管,做7位显示,分别显示时、分、秒。

图2.3 多功能电子时钟硬件系统框图键盘是为了完成时钟/日历的校对和日历/温度的显示功能。

由于此电子时钟要求具有闹铃功能,所以设计有闹铃电路,进行声音响铃。

整个电路使用了两种电源,+5V电源将为整个电路供电。

而+3V电源仅作为DS1302的备用电源。

当+5V电源被切断后,DS1302启用+3V电源,可以保持DS1302继续工作。

当+5V 电源恢复供电,LED依旧显示当前时间,而不会因为断电使系统复位到初始化时间,避免了重新校时的麻烦。

2.2.1时钟电路设计系统时钟应用了实时时钟日历芯片DS1302,其连接如图2.4。

该硬件电路设计简单,抗干扰能力强。

如图,AT89C51单片机P1.7直接接DS1302的RST端,上电后,AT89C51的P1.7脚自动输出高电平。

P1.5作为串行时钟接口,P1.6作为时钟数据的I/O。

DS1302采用双电源供电,平时由+5V电源供电,当+5V掉电之后,由图中BT1(+3V备用电池)供电。

特别需要注意X1和X2两端连接的晶振Y1,该晶振频率为32.768KHz。

Y132.768KHzBT1BATTER YVC C11X12X23GND 4VC SCL I RU2DS 1302图2.4 系统时钟电路2.2.2整点报时功能采用蜂鸣器闹铃结构简单,控制方便,但是发出的闹铃声音单一。

也可以在编程的时候编写一段音乐程序,待闹铃时间到时,调用该音乐程序给扬声器,便响起音乐。

不过该方法只能做一些简单音乐,并且音乐程序会占用很多单片机存储资源。

还有一种方法是采用录音放音芯片1420做闹铃,先对录放音设备录入一段音乐,当到设定时间时,单片机控制录放音设备放音。

采用录放音电路,铃声可以是预先设定的一段自己喜欢的音乐,符合电器设备人性化的要求。

且1420芯片可以分段录音,还具有语音报时功能。

另外,也可以购置一块音乐集成电路,加置在单片机和蜂鸣器之间,当单片机连接闹铃电路的管脚送出高电平时,音乐集成电路会给蜂鸣器特定脉冲,使蜂鸣器发声。

此类集成电路体积较小,使用方便,不足的是音乐简单、单一。

闹铃的闹钟不是本设计中的重点,故采用最简单的方法,占用单片机一根I/O口P1.7,中间用PNP型三极管S9012连接P1.7和蜂鸣器。

当P1.7引脚为低电平时,S9012的发射极和集电极导通,使蜂鸣器发声。

当响铃标志位为“1”时,P1.7送一定频率脉冲,使蜂鸣器U11发出声音。

如图2.5R8 P2.010K图2.5 闹铃电路1、Protel软件画原理图3.1系统工作流程图3.2原理图四、proteus软件仿真及调试4.1电路板的仿真利用keil软件编写源程序。

相关文档
最新文档