基于单片机的电子时钟设计毕业论文设计.docx

上传人:b****3 文档编号:11605876 上传时间:2023-06-01 格式:DOCX 页数:20 大小:116.85KB
下载 相关 举报
基于单片机的电子时钟设计毕业论文设计.docx_第1页
第1页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第2页
第2页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第3页
第3页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第4页
第4页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第5页
第5页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第6页
第6页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第7页
第7页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第8页
第8页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第9页
第9页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第10页
第10页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第11页
第11页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第12页
第12页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第13页
第13页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第14页
第14页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第15页
第15页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第16页
第16页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第17页
第17页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第18页
第18页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第19页
第19页 / 共20页
基于单片机的电子时钟设计毕业论文设计.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的电子时钟设计毕业论文设计.docx

《基于单片机的电子时钟设计毕业论文设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子时钟设计毕业论文设计.docx(20页珍藏版)》请在冰点文库上搜索。

基于单片机的电子时钟设计毕业论文设计.docx

基于单片机的电子时钟设计毕业论文设计

 

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

摘要:

随时代的发展,生活节奏的加快,人们的时间观念愈来愈强;随自动化、智能化技术的发展,机电产品的智能度愈来愈高,用到时间提示、定时控制的地方也会愈来愈多,因此,设计开发数字时钟具有良好的应用前景。

由于单片机价格的低成本、高性能,在自动控制产品中得到了广泛的应用。

本设计利用Atmel公司的AT89S52单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用汇编语言进行软件编程,并用实验板进行演示、验证。

在介绍本单片机的发展情况基础上,说明了本设计实现的功能,以及实验板硬件情况,并对各功能电路进行了分析。

主要工作放在软件编程上,用实验板实现时间、日期、定时及它们的设定功能,详细对软件编程流程以及调试进行了说明,并对计时误差进行了分析及校正,提出了定时音与显示相冲突问题及解决方案。

实验证明效果良好,可以投入使用。

关键词:

单片机;AT89S52;电子时钟;汇编语言

1绪论

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

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

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

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

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

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

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

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

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

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

2整体设计方案

2.1数字时钟方案

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

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

方案一:

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

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

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

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

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

方案二:

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

原理为:

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

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

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

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

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

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

2.2数码管显示方案

方案一:

静态显示。

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

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

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

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

方案二:

动态显示。

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

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

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

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

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

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

3数字钟的硬件设计

3.1总体设计

3.1.1系统说明

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

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

3.1.2系统框图

显示部分

控制部分

单片机(AT89S51)

按键S2

复位电路

电源部分

直流电源4.5V

6个七段共阴极数码管

显示秒,分钟及小时位

位选部分

6个PNP三极管(9012)

图3-1

3.2模块设计

3.2.1电源部分

图3-2

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

3.2.2复位电路

图3-3

 

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

3.2.3程序下载接口

图3-4

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

3.2.4位选部分

图3-5

 

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

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

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

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

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

3.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口输出段码对各个显示位来说都是相同的。

 

3.2.6控制部分

图3-7

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

AT89S51提供以下标准功能:

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

如图3-7所示,AT89S51有40引脚,双列直插(DIP)封装,所用引脚功能如下:

1.VCC——运行时加+4.5V

2.GND——接地

3.XTAL1——振荡器反相放大器及内部时钟发生器的输入端

4.XTAL2——振荡器反相放大器的输出端

5.RST——复位输入,高电平有效,在晶振工作时,在RST引脚上作用2个机器周期以上的高电平,将使单片机复位。

WDT溢出将使该引脚输出高电平,设置SFTAUXR的DISRTO位(地址8EH)可打开或关闭该功能。

DISRTO位缺省为RESET输出高电平打开状态。

6.EA/VPP——片外程序存储器访问允许信号。

欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地),如果EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。

7.P1口,P2口——P1,P2是一组带内部上拉电阻的8位双向I/O口。

运行时通过P1口控制驱动电路的工作,将数据送到数码管,显示相应的段码,为了达到减少功耗或满足端口对最大电流的限制,应加上一限流电阻。

P2.0——P2.5口控制数码管的位选,使六个数码管轮流显示数据,等于1时位选三极管导通,等于0时位选三极管截止。

8.无自锁开关——(S2-P3.7)开关接相应引脚P3.7,当开关按下时,相应引脚为低电平0,断开时引脚为高电平1。

4系统仿真

图4-1

图4-2

5数字钟的软件设计

5.1程序流程图

主程序开始

设定定时器常数,开中断

显示时间

到1秒?

Y

N

T0中断

现场保护

重装定时器初值

满20次否?

满24小时否?

满60秒否?

满60分否?

恢复现场

时值加1

时缓冲单元清零

秒值加1

分缓冲单元清零

秒缓冲单元清零

分值加1

结束

Y

N

Y

Y

Y

N

N

N

图5-1

图5-2

时钟调整程序

关闭显示,省电状态

分钟闪烁,调时状态

分值加1

按键S2时间t>1

时值=24?

按键S2时间t<0.5

按键S2时间t<0.5

时钟闪烁,调时状态

分值=60?

分值清零

时值加1

时值清零

返回显示

S2是否按下

N

N

N

Y

Y

N

N

Y

Y

图5-3

5.2源程序

;;;;;;;;;;;;;;;;;;;;;;;;

;;中断入口程序;;

;;;;;;;;;;;;;;;;;;;;;;;;

;

ORG0000H;程序执行开始地址

LJMPSTART;跳到标号START执行

ORG0003H;外中断0中断程序入口

RETI;外中断0中断返回

ORG000BH;定时器T0中断程序入口

LJMPINTT0;跳至INTTO执行

ORG0013H;外中断1中断程序入口

RETI;外中断1中断返回

ORG001BH;定时器T1中断程序入口

LJMPINTT1;跳至INTT1执行

ORG0023H;串行中断程序入口地址

RETI;串行中断程序返回

;;;;;;;;;;;;;;;;;;;;;;;;

;;主程序;;

;;;;;;;;;;;;;;;;;;;;;;;;

;

START:

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

MOVR7,#0BH

;clrP3.7;

CLEARDISP:

MOV@R0,#00H;

INCR0;

DJNZR7,CLEARDISP;

MOV20H,#00H;清20H(标志用)

MOV7AH,#0AH;放入"熄灭符"数据

MOVTMOD,#11H;设T0、T1为16位定时器

MOVTL0,#0B0H;50MS定时初值(T0计时用)

MOVTH0,#3CH;50MS定时初值

MOVTL1,#0B0H;50MS定时初值(T1闪烁定时用)

MOVTH1,#3CH;50MS定时初值

SETBEA;总中断开放

SETBET0;允许T0中断

SETBTR0;开启T0定时器

MOVR4,#14H;1秒定时用初值(50MS×20)

START1:

LCALLDISPLAY;调用显示子程序

JNBP3.7,SETMM1;P3.7口为0时转时间调整程序

SJMPSTART1;P3.7口为1时跳回START1

SETMM1:

LJMPSETMM;转到时间调整程序SETMM

;;;;;;;;;;;;;;;;;;;;;;;

;;闪动调时程序;;

;;;;;;;;;;;;;;;;;;;;;;;

;T1中断服务程序,用作时间调整时调整单元闪烁指示

INTT1:

PUSHACC;中断现场保护

PUSHPSW;

MOVTL1,#0B0H;装定时器T1定时初值

MOVTH1,#3CH;

DJNZR2,INTT1OUT;0.3秒未到退出中断(50MS中断6次)

MOVR2,#06H;重装0.3秒定时用初值

CPL02H;0.3秒定时到对闪烁标志取反

JB02H,FLASH1;02H位为1时显示单元"熄灭"

MOV72H,76H;02H位为0时正常显示

MOV73H,77H;

MOV74H,78H;

MOV75H,79H;

INTT1OUT:

POPPSW;恢复现场

POPACC;

RETI;中断退出

FLASH1:

JB01H,FLASH2;01H位为1时,转小时熄灭控制

MOV72H,7AH;01H位为0时,"熄灭符"数据放入分

MOV73H,7AH;显示单元(72H-73H),将不显示分数据

MOV74H,78H;

MOV75H,79H;

AJMPINTT1OUT;转中断退出

FLASH2:

MOV72H,76H;01H位为1时,"熄灭符"数据放入小时

MOV73H,77H;显示单元(74H-75H),小时数据将不显示

MOV74H,7AH;

MOV75H,7AH;

AJMPINTT1OUT;转中断退出

;;;;;;;;;;;;;;;;;;;;;

;;显示程序;;

;;;;;;;;;;;;;;;;;;;;;

;显示数据在70H-75H单元内,用六位LED共阳数码管显示,P0口输出段码数据,P3口作

;扫描控制,每个LED数码管亮1MS时间再逐位循环。

DISPLAY:

MOVR1,#70H;指向显示数据首址

MOVR5,#0FEH;扫描控制字初值

PLAY:

MOVA,R5;扫描字放入A

MOVP2,A;从P2口输出

MOVA,@R1;取显示数据到A

MOVDPTR,#TAB;取段码表地址

MOVCA,@A+DPTR;查显示数据对应段码

MOVP1,A;段码放入P0口

LCALLDL1MS;显示1MS

INCR1;指向下一地址

MOVA,R5;扫描控制字放入A

JNBACC.5,ENDOUT;ACC.5=0时一次显示结束

RLA;A中数据循环左移

MOVR5,A;放回R5内

AJMPPLAY;跳回PLAY循环

ENDOUT:

SETBP2.5;一次显示结束,P2口复位

MOVP1,#0FFH;P0口复位

RET;子程序返回

TAB:

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

;1MS延时程序,LED显示程序用

DL1MS:

MOVR6,#14H

DL1:

MOVR7,#19H

DL2:

DJNZR7,DL2

DJNZR6,DL1

RET

;20MS延时程序,采用调用显示子程序以改善LED的显示闪烁现象

DS20MS:

ACALLDISPLAY

ACALLDISPLAY

ACALLDISPLAY

RET

;延时程序,用作按键时间的长短判断

DL1S:

LCALLDL05S

LCALLDL05S

RET

DL05S:

MOVR3,#20H;8毫秒*32=0.196秒

DL05S1:

LCALLDISPLAY

DJNZR3,DL05S1

RET

END;程序结束

 

6调试与功能说明

6.1元件特性

表6-1AT89S51功能特性:

  ·兼容MCS-51指令系统

·4k可反复擦写(>1000次)ISPFlashROM

  ·32个可编程I/O口

·4.0-5.5V工作电压范围

  ·2个16位可编程定时/计数器

·全静态工作模式:

时钟频率0-33MHz

  ·全双工UART串行中断口线

·128x8bit内部RAM

  ·6个中断源

·低功耗空闲和掉电模式

  ·中断唤醒省电模式

·3级程序加密锁

  ·看门狗(WDT)电路

·掉电标识和快速编程特性

6.2设计总结

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

◆功能介绍:

1.显示XX:

XX:

XX时间

2.时间可调:

调整键(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),返回到正常显示状态。

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

1.下载线插接说明:

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

2.电源线插接说明:

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

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

◆调试要点:

首先确保各器件的完好性,其次检测各芯片的电源线和地线是否接触良好,然后焊接器件,接好电源用万用表检测各电源端、地端的状态是否正常。

检查无误后插上AT89S51并烧写一简易的程序,观察电路是否能协同工作。

最后烧写工作程序,根据显示现象调试程序直至成功。

上电运行时,数码管开始显示00:

00:

00,时钟开始走时。

◆制作心得:

在这次课程设计的调试过程中,我遇到很多问题,如:

由于跳转指令出错,导致整个程序在运行时进入死循环,修改时没有根据流程盲目查找原因浪费许多时间,又由于考虑不周,时钟显示29:

89。

该电路缺少整点报时及闹钟功能,由于能力和时间问题只能到此为止,很是遗憾,但在查找资料的过程中学到了许多,同时在协作过程中增进同学间的友谊。

参考文献

[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].高等教育出版社

致谢

历时将近两个月的时间终于将这篇论文写完,在论文的写作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。

尤其要强烈感谢我的论文指导老师,她对我进行了无私的指导和帮助,不厌其烦的帮助进行论文的修改和改进。

另外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。

在此向帮助和指导过我的各位老师表示最中心的感谢!

感谢这篇论文所涉及到的各位学者。

本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。

感谢我的同学和朋友,在我写论文的过程中给予我了很多素材,还在论文的撰写和排版等过程中提供热情的帮助。

由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指正。

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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