利用单片机与DS1302制作电子时钟Word文件下载.docx

上传人:b****4 文档编号:7357735 上传时间:2023-05-08 格式:DOCX 页数:29 大小:285.01KB
下载 相关 举报
利用单片机与DS1302制作电子时钟Word文件下载.docx_第1页
第1页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第2页
第2页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第3页
第3页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第4页
第4页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第5页
第5页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第6页
第6页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第7页
第7页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第8页
第8页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第9页
第9页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第10页
第10页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第11页
第11页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第12页
第12页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第13页
第13页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第14页
第14页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第15页
第15页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第16页
第16页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第17页
第17页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第18页
第18页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第19页
第19页 / 共29页
利用单片机与DS1302制作电子时钟Word文件下载.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

利用单片机与DS1302制作电子时钟Word文件下载.docx

《利用单片机与DS1302制作电子时钟Word文件下载.docx》由会员分享,可在线阅读,更多相关《利用单片机与DS1302制作电子时钟Word文件下载.docx(29页珍藏版)》请在冰点文库上搜索。

利用单片机与DS1302制作电子时钟Word文件下载.docx

是用单片机的可编程定时器。

利用单片机部的定时计数器进行中断定时,配合软件延时实现时分秒的计时。

该方案节省硬件成本,但程序设计较复杂。

显示方案:

一个良好的显示模块对一个系统非常重要,所有操作结果和计时结果,都要通过显示模块来显示出来。

同时显示模块提供了良好的人机交互平台。

常用的显示模式有LED7段数码管显示、点阵显示和液晶显示。

液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以与影象稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。

但由于液晶其成本偏高。

在使用时,不能有静电干扰,否则易烧坏液晶的显示芯片。

鉴于LED7段数码管成本低,也比较容易实现的特点,最终确定使用共阳极数码管来显示。

1.4设计任务与要求

任务:

设计一个可调时与日期显示的电子时钟

要求:

1、用DS1302来实现对时间的计算

2、用7段LED来显示时间

3、加独立式键盘来进行调时

二、电子时钟软件和硬件设计

2.1硬件电路设计

2.1.1工作原理

此电子时钟可显示的时间围为:

2000年1月1日0点至2100年12月31日23时59分。

此时钟在正常计时模式下具有自动调整每月的天数的变化,并用接电池对时间保持。

时间为24小时至。

接通电源对时间进行调整,按定时设置键确定被修改位的值。

用时钟芯片记忆当前时间并保持,待下次接通电源无须调整能正确显示当前时间。

定时设置:

菜单按键,松开按键时有效

此按键实现闹铃功能,设定一个时间,此时四位数码管第四位的小数点亮起,表示有闹铃设置;

当闹铃是可按此键结束闹铃。

时、分调整:

加一键,松开按键有效

当定时设置键选中要修改的位时,如分(分闪烁时),按此键可以使分的值从当前值开始加一,加至60时变为00(59过后即显示00,不显示60);

而时则在加至24时变为00(23过后即显示0,不显示24);

日在加至32时变为00(即31过后即显示0,不显示32);

月在加至13时变为00(即12过后即显示0,不显示13);

年在至2100时变为2000(即2099过后即显示2000,不显示2100)

日期显示:

年、月显示键,松开按键有效

按下此键松开后,显示为日期,5秒后自动返回时间显示。

2.1.2单元模块电路

1独立按键模块

系统有四个独立按键,分别接至单片机P1.4、P1.5、P1.6、P1.7口。

2显示模块

本系统显示模块电路由四个PNP三极管和一个四位一体7段LED数码管组成。

PNP三极管用来驱动数码管。

3复位电路模块

复位电路主要的功能是使整个系统初始化,在每次上电时系统自动初始化。

使CPU与其他功能部件处于一个确定的初始状态,并从这个状态开始工作,单片机应用程序必须以此作为设计的前提。

4时钟芯片模块

DS1302时钟芯片是本系统实现高精度计时的关键。

利用DS1302时钟芯片独立于单片机来计时,在提高计时进度的同时也提高了整个系统的抗干扰能力。

DS1302通过SCLK、I/O、RES端口和单片机AT89C51进行通信。

SCLK接至单片机P1.1口,在读写操作时给DS1302提供相应的时钟脉冲;

I/O接至P1.2用来传送所有的数据;

RES接至单片机P1.3上用来控制单片机与时钟芯片间的数据传送的开始与结束。

DS1302的工作原理与使用方法见附录Ⅰ。

5主控模块

主控模块的核心组成部分是单片机AT89C51,承担着所有操作任务的调控与分派工作。

6闹钟模块

闹铃模块由蜂鸣器和蜂鸣器的驱动组成。

在有闹铃发生的时候,蜂鸣器的驱动电路驱动蜂鸣器发声,产生闹铃的效果。

2.1.3元器件清单

元件名称

规格型号

数量(个)

单片机

AT89S51

1

时钟芯片

DS1302

4位一体的共阳LED显示器

7SEG-MPX4-CA-BLUE

按键

BUTTON

3

电阻

2K

4

排阻

4.7K

三极管

PNP

10K

10

2.2软件设计

2.2.1程序设计流程

Y

N

NY

YNN

Y

N

三、电路调试

各程序模块具有一定的独立性,因此可以先调试模块,在模块功能都能实现的前提下,再调试总程序,这样能快捷地检查判断硬件或软件上的问题。

调试结果与解决办法如下:

1.测试DS读写模块时,从LED显示能正确写入与读取当前时间,但DS1302的工作情况不太理想,主要表现在实时时间稍微偏快。

DS1302时钟的产生基于外接的晶体振荡器,振荡器的频率为32768HZ,该晶振通过引脚X1、X2直接连接至DS1302,即DS1302是依靠外部晶振与其部的电容配合来产生时钟脉冲,由于DS1302在芯片本身已经集成了5pF的电容。

所以,为了获得稳定的可靠的时钟,必须选用具有5pF负载电容的晶振。

然而,许多人在选用晶振时仅仅注意了晶振的额定频率值,而忽视了晶振的负载电容大小,甚至连许多经销商也不能提供所售晶振的负载电容,所以即使在使用中选用了符合32768Hz的晶振,但如果该晶振的负载电容与DS1302提供的5pF不一致时,就会影响晶振的起振或导致振荡频率的偏移。

2.测试显示模块时,数码显示管全亮显示“8.8.8.8.”而不是预设”的初值。

利用Proteus软件仿真,发现仿真显示正常,再检查硬件,发现段码位选线与P0口接线错误。

按原理图重新焊接后能正常显示。

3.测试蜂鸣模块时,没有时间显示一直保持蜂鸣,不能返回主程序。

重新检查程序再次赋值给DS1302和闹钟时实物正常工作,证明现有程序语法和逻辑上没有错误。

从赋值过的数字中找规律,发现当DS初值的“分”个位为9而闹钟的“分”为0时,蜂鸣出现错误。

查阅DS的显示有关资料,由于DS的数据是BCD码形式读取,因此“X9”的数据加1后为“*0”;

但程序所用为十六进制,“X9”加1后为“*A”,所以当DS刚到达闹钟时间准备蜂鸣时,程序中用INC指令对“分”加1后只达到“*A”,与DS一分钟后读取到的“*0”一直不相等,程序无法向下执行,也就是无法同步显示当前时间以与关闭蜂鸣。

解决办法:

进入蜂鸣状态时,先对比是否是个位为9的数据,是则按照BCD码形式直接赋值为“*0”到暂存区,再加1;

否则直接用INC指令加1。

不断读取DS“分”的数据与暂存区数据比较,相等则表示满一分钟,关闭蜂鸣。

修改程序后该模块运行正常。

4.测试调整模块,进入中断时,按键后有时出现显示错乱,按键失灵,出现连续加减的情况。

有了蜂鸣模块的前例,增加了数据个位为9时的处理程序;

分析出现连续加减可能是因为消抖延时不够,造成程序误判断为按键连击,因此增大延时时间。

修改程序后该模块正常运作。

5.综合总程序测试,各部分功能运作正常,但是实际硬件与软件结合后没有达到达到任务要求,此次设计失败。

四、心得体会

五、参考文献

[1]51单片机应用从零开始欣编著清华大学2008

[2]单片机原理与接口技术(第三版)朝青编著

航空航天大学2008

[3]51单片机C语言教程郭天祥编著电子工业2009

附录Ⅰ:

DS1302时钟芯片的工作原理和使用方法

1、DS1302的基本组成和工作原理

DS1302的管脚排列与描述如下图与表所示:

2、DS1302部寄存器

CH:

时钟停止位bit7=1,12小时模式

CH=0振荡器工作允许bit7=0,24小时模式

CH=1振荡器停止寄存器2的第5位:

AM/PM定义

WP:

写保护位AP=1下午模式

WP=0寄存器数据能够写入AP=0上午模式

WP=1寄存器数据不能写入DS:

二极管选择位

TCS:

涓流充电选择DS=01选择一个二极管

TCS=1010使能涓流充电DS=10选择两个二极管

TCS=其它禁止涓流充电寄存DS=00或11,即使TCS=1010,充电

器2的第7位12/24小时标志功能也被禁

3、DS1302使用说明与注意的问题

DS1302的控制字如表1所示。

控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。

位6如果为0,则表示存取日历时钟数据;

为1则表示存取RAM数据。

位5~1(A4~A0)指示操作单元的地址。

最低有效位(位0)如果为0,则表示要进行写操作;

为1表示进行读操作。

控制字节总是从最低位开始输入/输出。

表1DS1302控制字

时钟暂停:

秒寄存器的位7定义位时钟暂停位。

当它为1时,DS1302停止振荡,进入低功耗的备份方式,通常在对DS1302进行写操作时(如进入时钟调整程序),停止振荡。

当它为0时,时钟将开始启动。

AM-PM/12-24小时方式:

小时寄存器的位7定义为12或24小时方式选择位。

它为高电平时,选择12小时方式。

在此方式下,位5为第二个10小时位(20~23h)。

DS1302的晶振选用32768Hz,电容推荐值为6pF。

因为振荡频率较低,也可以不接电容,对计时精度影响不大。

附录Ⅱ:

程序清单

SecondEQU41H

MinuteEQU42H

HourEQU43H

DayEQU44H

MonthEQU45H

WeekEQU46H

YearLEQU47H

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOVSP,#5FH

MOVR0,30H

MOVR2,#30H

MOVA,#00H

LP0:

MOVR0,A

INCR0

DJNZR2,LP0

LCALLDISPLAY

MOV41H,#00H;

启动时钟工作.秒分时日月星期年

MOV42H,#00H;

分单元

MOV43H,#01H;

时单元

MOV44H,#18H;

日单元

MOV45H,#07H;

月单元

MOV46H,#04H;

星期单元

MOV47H,#0DH;

年后两位单元

MOV52H,#00H

MOV53H,#00H

CLR30H

SETB31H

LCALLSet1302

LP1:

LCALLGet1302

MOV40H,41H

LP11:

LCALLGET1302

MOVA,41H

CJNEA,40H,LP2

LJMPLP21

LP2:

CPL30H

LJMPLP11

LP21:

31H,LP22;

31H=0,定时报警

LCALLDSBJ

LP22:

LCALLKEYSCAN

MOVDPTR,#TAB

MOVA,30H

RLA

ADDA,30H

JMPA+DPTR

TAB:

LJMPLP11;

无按键

LJMPTSSZ;

定时设置

LJMPSJY;

时加1

LJMPFJY;

分加1

LJMPRQXS;

日期显示

TSSZ:

CPL31H

TSSZ0:

P1.4,TSSZ1

LCALLTSDISPLAY

SJMPTSSZ0

TSSZ1:

JNB31H,TSSZ00;

31H=1,定时关闭;

31H=0,定时设置

TSSZ00:

MOV51,#20H

TSSZ10:

MOV50H,#00H

TSSZ11:

P1.5,TSSZ3;

定时时设置

MOVA,53H

ADDA,#01H

DAA

CJNEA,#24H,TSSZ2

TSSZ2:

MOV53H,A

TSS1:

JNBP1.5,TSS1

TSSZ3:

LCALLTSDISPLAY;

定时显示

P1.4,TSSZ11

JNBP1.4,$

MOV51H,#20H

TSSZF0:

TSSZF1:

P1.6,TSSZF3;

定时分设置

MOVA,52H

CJNEA,#60H,TSSZF2

TSSZF2:

MOV52H,A

TSF1:

JNBP1.6,TSF1

TSSZF3:

P1.4,TSSZF1

DSBJ:

CJNEA,43H,DSBJ1

CJNEA,42H,DSBJ1

MOV50H,#06H

DSBJ0:

CLRP1.3

SETBP1.3

LCALLD2MS

DJNZ50H,DSBJ0

SETB31H

DSBJ1:

RET

SJY:

MOVA,43H;

时加1处理

CJNEA,#24H,SJY0

SJY0:

MOV43H,A

LCALLSET1302

SJY1:

P1.5,SJY2

SJMPSJY1

SJY2:

FJY:

MOVA,42H;

分加1处理

CJNEA,#60H,FJY0

FJY0:

MOV42H,A

FJY1:

P1.6,FJY2

SJMPFJY1

FJY2:

LJMPLP11

RQXS:

LCALLRQDISPLAY

RQXS1:

P1.7,RQXS2

LCALLRQDISPLAY

SJMPRQXS1

RQXS2:

MOVR3,#00H

RQXS3:

DJNZR3,RQXS3

KEYSCAN:

PUSHACC

MOV30H,#00H

ORLP1,#0F0H

MOVA,P1

SWAPA

ANLA,#0FH

ACC.0,K1

MOV30H,#01H

SJMPKEYEND

K1:

ACC.1,K2

MOV30H,#02H

K2:

ACC.2,K3

MOV30H,#03H

K3:

ACC.3,KEYEND

MOV30H,#04H

KEYEND:

POPACC

KEYPLAY:

MOVR5,#04H

MOVR0,#42H;

51H为秒,52H分,53H为时,54H为日,55H为月

MOVR3,#08H

DIS2:

MOVDPTR,#TABLE

MOVA,R0

MOVCA,A+DPTR

MOVP0,A

MOVA,R3

MOVP2,A

ANLA,#0F0H

RRA

MOVR3,A

DJNZR5,DIS2

CLRP2.0

DISPLAY:

PUSHPSW

MOVDPTR,#TABLE

MOVR1,#42H

MOVA,R1

MOVC,31H;

有定时设置则在分钟个位显示点

MOVACC.7,C

MOVP2,#0FEH;

实物值

;

MOVP2,#08H;

仿真值

MOVP2,#00H

MOVP2,#0FDH

MOVP2,#04H

MOVR1,#43H

MOVC,30H

MOVP2,#0FBH;

MOVP2,#02H

MOVP2,#0F7H;

MOVP2,#01H

POPPSW

RQDISPLAY:

PUSHACC;

MOVR1,#44H

MOVP2,#0FDH;

MOVR1,#45H

MOVP2,#01H

TSDISPLAY:

MOVR1,#52H

MOVR1,#53H

MOVP2,#02H

D2MS:

MOVR6,#02H

DL1:

MOVR5,#249

DL2:

NOP

DJNZR5,DL2

DJNZR6,DL1

RET

TABLE:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

;

DS1302时间处理程序

******************************/公司名称:

模块名称:

DS1302.asm

功能:

实时时钟模块时钟芯片型号:

说明:

程序设计:

设计时间:

2006.11.03

版本号:

20061103

*******************************

T_CLKBitP1.1;

实时时钟时钟

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2