单片机时钟表设计最终版本.docx

上传人:b****8 文档编号:10288530 上传时间:2023-02-09 格式:DOCX 页数:21 大小:222.18KB
下载 相关 举报
单片机时钟表设计最终版本.docx_第1页
第1页 / 共21页
单片机时钟表设计最终版本.docx_第2页
第2页 / 共21页
单片机时钟表设计最终版本.docx_第3页
第3页 / 共21页
单片机时钟表设计最终版本.docx_第4页
第4页 / 共21页
单片机时钟表设计最终版本.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

单片机时钟表设计最终版本.docx

《单片机时钟表设计最终版本.docx》由会员分享,可在线阅读,更多相关《单片机时钟表设计最终版本.docx(21页珍藏版)》请在冰豆网上搜索。

单片机时钟表设计最终版本.docx

单片机时钟表设计最终版本

单片机时钟表设计

摘要:

单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。

单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。

由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。

这次毕业设计通过对它的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。

关键词:

单片机;AT89S

 

引言

时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。

怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?

这就要求人们不断设计出新型时钟。

现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。

在一个单片机应用系统中,时钟有两方面的含义:

一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:

一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:

DS1302,DS12887,X1203等都可以满足高精度的要求。

本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89S51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。

1方案论证与比较

1.1数字时钟方案

数字时钟是本设计的最主要的部分。

根据需要,可利用两种方案实现。

方案一:

本方案采用Dallas公司的专用时钟芯片DS12887A。

该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。

为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。

当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。

而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。

方案二:

本方案完全用软件实现数字时钟。

原理为:

在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。

利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。

该方案具有硬件电路简单的特点。

但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。

而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。

基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。

1.2数码管显示方案

方案一:

静态显示。

所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。

该方式每一位都需要一个8位输出口控制。

静态显示时较小的电流能获得较高的亮度,且字符不闪烁。

但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。

方案二:

动态显示。

所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。

利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。

显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。

调整参数可以实现较高稳定度的显示。

动态显示节省了I/O口,降低了能耗。

从节省I/O口和降低能耗出发,本设计采用方案二。

2系统设计

2.1总体设计

2.1.1系统说明

利用单片机(AT89S51)制作简易电子时钟,由六个LED数码管分别显示小时十位、小时个位、分钟十位、分钟个位、秒钟十位、秒钟个位。

6个PNP管(9012)分别控制六个数码管的亮灭,一个按键用于时间调整。

2.1.2系统框图

图3-1

2.2模块设计

2.2.1电源部分

图3-2

如图3-2所示,从外部引入4.5V的直流电,为单片机、复位电路提供电源。

2.2.2复位电路

图3-3

如图3-3所示,复位电路主要由型号为1N4148的二极管,型号为10UF/16V的电解电容,型号为104的瓷片电容,10K的电阻以及按键S1构成,S1接芯片的相应引脚RST,当开关按下时引脚RST为高电平1,断开时引脚为低电平0。

2.2.3程序下载接口

图3-4

如图3-4所示,由AT89SISP构成的两排十针下载口,板图上有一个小方框,为1号引角;下载线的凸口为正方向,凸口的右侧边的第一个插孔为1号引角。

2.2.4位选部分

图3-5

图3-5为位选电路,三极管的集电极接数码管的公共端,当P2口对应的引脚输出高电平时三极管导通,对应的数码管显示数据。

这样,在同一时刻,6位LED中只有选通的那1位显示出字符,而其他5位则是熄灭的。

同样,在下一时刻,只让下一位的位选线处于选通状态,而其他个位的位选线处于关闭状态,在段码线上输出将要显示字符的段码,则同一时刻,只有选通位显示出相应的字符,而其他各位则是熄灭的。

如此循环下去,就可以使各位显示出将要显示的字符。

虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但由于LED的余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,则可以造成多位同时亮的假象,达到同时显示的效果。

2.2.5数码管的连接电路

图3-6

图3-6为数码管的引脚图,每位的段码线(a,b,c,d,e,f,g,dp)分别与1个8位的锁存器输出相连,由AT89S51控制组合0-9十个数据,如令其显示1则b,c引脚(即2,3引脚)送高电平,此时数码管显示1。

由于各位的段码线并联,8位I/O口输出段码对各个显示位来说都是相

2.2.6控制部分

图3-7

AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4Kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。

AT89S51提供以下标准功能:

4K字节Flash闪速存储器,128字节内部RAM,32I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

3原理图与PCB图

图4-1

图4-2

4软件设计

4.1程序流程图

4.2源程序

表5-1P1口对应段码及数值:

显示数字

P1.7

P1.6

P1.5

P1.4

P1.3

P1.2

P1.1

P1.0

16进制代码

dp

g

f

e

d

c

b

a

0

0

0

1

1

1

1

1

1

3FH

1

0

0

0

0

0

1

1

0

06H

2

0

1

0

1

1

0

1

1

5BH

3

0

1

0

0

1

1

1

1

4FH

4

0

1

1

0

0

1

1

0

66H

5

0

1

1

0

1

1

0

1

6DH

6

0

1

1

1

1

1

0

1

7DH

7

0

0

0

0

0

1

1

1

07H

8

0

1

1

1

1

1

1

1

7FH

9

0

1

1

0

1

1

1

1

6FH

ORG0000H

LJMPSTART

ORG0003H

RETI

ORG000BH

LJMPINTT0

ORG0013H

RETI

ORG001BH

LJMPINTT1

ORG0023H

RETI

START:

MOVR0,#70H;清70H-7AH共11个内存单元

MOVR7,#0BH

;clrP3.7

CLEARDISP:

MOV@R0,#00H

INCR0

DJNZR7,CLEARDISP

MOV20H,#00H

MOV7AH,#0AH

MOVTMOD,#11H

MOVTL0,#0B0H

MOVTH0,#3CH

MOVTL1,#0B0H

MOVTH1,#3CH

SETBEA

SETBET0

SETBTR0

MOVR4,#14H

START1:

LCALLDISPLAY

JNBP3.7,SETMM1

SJMPSTART1

SETMM1:

LJMPSETMM

INTT0:

PUSHACC

PUSHPSW

CLRET0

CLRTR0

MOVA,#0B7H

ADDA,TL0

MOVTL0,A

MOVA,#3CH

ADDCA,TH0

MOVTH0,A

SETBTR0

DJNZR4,OUTT0

ADDSS:

MOVR4,#14H

MOVR0,#71H

ACALLADD1

MOVA,R3

CLRC

CJNEA,#60H,ADDMM

ADDMM:

JCOUTT0

ACALLCLR0

MOVR0,#77H

ACALLADD1

MOVA,R3

CLRC

CJNEA,#60H,ADDHH

ADDHH:

JCOUTT0

ACALLCLR0

MOVR0,#79H

ACALLADD1

MOVA,R3

CLRC

CJNEA,#24H,HOUR

HOUR:

JCOUTT0

ACALLCLR0

OUTT0:

MOV72H,76H

MOV73H,77H

MOV74H,78H

MOV75H,79H

POPPSW

POPACC

SETBET0

RETI

INTT1:

PUSHACC

PUSHPSW

MOVTL1,#0B0H

MOVTH1,#3CH

DJNZR2,INTT1OUT

MOVR2,#06H

CPL02H

JB02H,FLASH1

MOV72H,76H

MOV73H,77H

MOV74H,78H

MOV75H,79H

INTT1OUT:

POPPSW

POPACC

RETI

FLASH1:

JB01H,FLASH2

MOV72H,7AH

MOV73H,7AH

MOV74H,78H

MOV75H,79H

AJMPINTT1OUT

FLASH2:

MOV72H,76H

MOV73H,77H

MOV74H,7AH

MOV75H,7AH

AJMPINTT1OUT

ADD1:

MOVA,@R0

DECR0

SWAPA

ORLA,@R0

ADDA,#01H

DAA

MOVR3,A

ANL

MOV@R0,A

MOVA,R3

INCR0

SWAPA

ANLA,#0FH

MOV@R0,A

RET

CLR0:

CLRA

MOV@R0,A

DECR0

MOV@R0,A

RET

SETMM:

cLRET0

CLRTR0

LCALLDL1S

JBP3.7,CLOSEDIS

MOVR2,#06H

SETBET1

SETBTR1

SET2:

JNBP3.7,SET1

SETB00H

SET4:

JBP3.7,SET3

LCALLDL05S

JNBP3.7,SETHH

MOVR0,#77H

LCALLADD1

MOVA,R3

CLRC

CJNEA,#60H,HHH

HHH:

JCSET4

LCALLCLR0

CLRC

CLOSEDIS:

SETBET0

SETBTR0

CLOSE:

JBP3.7,CLOSE

LCALLDISPLAY

JBP3.7,CLOSE

WAITH:

JNBP3.7,WAITH

LJMPSTART1

SETHH:

CLR00H

SETHH1:

JNBP3.7,SET5

SETB01H

SET6:

JBP3.7,SET7

LCALLDL05S

JNBP3.7,SETOUT

MOVR0,#79H

LCALLADD1

MOVA,R3

CLRC

CJNEA,#24H,HOUU

HOUU:

JCSET6

LCALLCLR0

AJMPSET6

SETOUT:

JNBP3.7,SETOUT1

LCALLDISPLAY

JNBP3.7,SETOUT

CLR01H

CLR00H

CLR02H

CLRTR1

CLRET1

SETBTR0

SETBET0

LJMPSTART1

SET1:

LCALLDISPLAY

AJMPSET2

SET3:

LCALLDISPLAY

AJMPSET4

SET5:

LCALLDISPLAY

AJMPSETHH1

SET7:

LCALLDISPLAY

AJMPSET6

SETOUT1:

LCALLDISPLAY

DISPLAY:

MOVR1,#70H

MOVR5,#0FEH

PLAY:

MOVA,R5

MOVP2,A

MOVA,@R1

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP1,A

LCALLDL1MS

INCR1

MOVA,R5

JNBACC.5,ENDOUT

RLA

MOVR5,A

AJMPPLAY

ENDOUT:

SETBP2.5

MOVP1,#0FFH

RET

TAB:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

DL1MS:

MOVR6,#14H

DL1:

MOVR7,#19H

DL2:

DJNZR7,DL2

DJNZR6,DL1

RET

DS20MS:

ACALLDISPLAY

ACALLDISPLAY

ACALLDISPLAY

RET

DL1S:

LCALLDL05S

LCALLDL05S

RET

DL05S:

MOVR3,#20H

DL05S1:

LCALLDISPLAY

DJNZR3,DL05S1

RET

END

 

5结束语

本设计能够很准确的走时,并能够通过硬件对时钟进行时间调整。

显示XX:

XX:

XX时间。

时间可调:

调整键(S2)按下时间小于1秒(t<1s),关闭显示(省电)。

调整键(S2)按下(t>0.5s)分钟位闪亮,此时按下S2键(t<0.5s)该个位数值加1,当加到9时,再按下S2键则该个位显示0,分钟十位加1。

继续按下调整键(S2)(t>0.5s)时钟位闪亮,此时按下S2键(t<0.5s)该个位数值加1,当加到9时再按下加S2键则该个位显示0,时钟十位加1。

继续按下调整键(S2)(t>0.5s),返回到正常显示状态。

下载线和电源线插接说明:

1.下载线插接说明:

两排十针下载口,板图上都有一个小方框,为1号引角;下载线的凸口为正方向,凸口的右侧边的第一个插孔为1号引角,这一点一定要切记,不然的话程序下载不进去。

2.电源线插接说明:

电池盒的红线为正,黑线为负。

板子所留出来的电源插口用VCC(表示电源正)和GND(表示电源负)标明。

 

参考文献

[1]于海生.微型计算机控制技术[M].清华大学出版社.1999-6

[2]孙涵芳.MCS-51系列单片机原理及应用[M].北京航空航天大学出版社.1996-4

[3]黄正谨.综合电子设计与实践[M].东南大学出版社.2002-3

[4]杨欣等.电子设计从零开始[M].清华大学出版社.2005-10

[5]谢嘉奎.电子线路[M].高等教育出版社.2003-2

[6]夏路易,石宗义.电路原理图与电路设计教程Protel99SE[M].北京希望电子出版社.2002

[7]王毓银.数字电路逻辑设计[M].高等教育出版社.2004-2

[8]邱关源.电路[M].高等教育出版社.2003-2

 

致谢

谢谢王老师给我们这次机会,谢谢组员的合作,通过这次试验,让我知道要想做好每件事,都需要自己的努力,以及整个团队的协作,谢谢我的同学的帮助,使我尽快的完成了我的课程设计。

在这次课程设计中,我有了太多的感慨,从中也学到了挺多

 

目录

摘要1

关键词1

引言2

1方案论证与比较2

1.1数字时钟方案2

1.2数码管显示方案3

2系统设计4

2.1总体设计4

2.1.1系统说明4

2.1.2系统框图4

2.2模块设计4

2.2.1电源部分4

2.2.2复位电路5

2.2.3程序下载接口5

2.2.4位选部分6

2.2.5数码管的连接电路7

2.2.6控制部分8

3原理图与PCB图8

4软件设计10

4.1程序流程图10

4.2源程序12

5结束语18

参考文献19

致谢20

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

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1