数字时钟.docx

上传人:b****6 文档编号:13662062 上传时间:2023-06-16 格式:DOCX 页数:16 大小:80.30KB
下载 相关 举报
数字时钟.docx_第1页
第1页 / 共16页
数字时钟.docx_第2页
第2页 / 共16页
数字时钟.docx_第3页
第3页 / 共16页
数字时钟.docx_第4页
第4页 / 共16页
数字时钟.docx_第5页
第5页 / 共16页
数字时钟.docx_第6页
第6页 / 共16页
数字时钟.docx_第7页
第7页 / 共16页
数字时钟.docx_第8页
第8页 / 共16页
数字时钟.docx_第9页
第9页 / 共16页
数字时钟.docx_第10页
第10页 / 共16页
数字时钟.docx_第11页
第11页 / 共16页
数字时钟.docx_第12页
第12页 / 共16页
数字时钟.docx_第13页
第13页 / 共16页
数字时钟.docx_第14页
第14页 / 共16页
数字时钟.docx_第15页
第15页 / 共16页
数字时钟.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字时钟.docx

《数字时钟.docx》由会员分享,可在线阅读,更多相关《数字时钟.docx(16页珍藏版)》请在冰点文库上搜索。

数字时钟.docx

数字时钟

宁波理工学院

题目基于单片机的数字时钟          

姓名

学号

专业班级

指导教

学院

完成日期2012年5月18日

 

 

基于单片机的数字时钟

摘要

数字钟是一种用数字电路技术实现时、分、秒的装置,与机械时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的应用。

从数字钟的发展上看,主要向小型化、多功能化发展。

本次作业我们主要用到单片机来设计一个数字时钟。

数字时钟一般由振荡器、分频器、计数器、译码器、显示器等几部分组成,这些都是数字电路中应用最广的基本电路,这些我们都可以通过单片机软件设计。

本文主要介绍通过51单片机及数码管的结合,来实现数字时钟的工作。

 

一、概述

1.由单片机AT89C51芯片和动态数码显示管为核心,辅以必要的电路,构成一个数字时钟。

(74LS245芯片组成)。

2.时钟显示方式为:

时-分-秒。

时钟计时周期为24小时,显满刻度为“23时59分59秒”。

3.具有校时功能。

设置有三个按键,分别对时、分、秒进行调整校对。

也能对时钟进行清零。

二、设计思想及原理图

数字时钟主要由AT89C51、显示模块、控制模块和计时运算模块四大部分组成。

其中,控制模块和计时运算模块主要对时、分、秒的数值显示和调整进行操作,并且秒计算到60时,自动清零并向分进1;分计算到60时,自动清零并向时进1;时计算到24时,自动清零。

这样,就形成了循环计时,显示模块主要用来显示当前计数值。

AT89C51是整个设计的核心,主要用来产生定时中断,传输数据和控制各部件工作。

三、硬件设计

图1:

晶体振荡器电路

1.按键电路

此块设计中,采用三个独立的按键来作为数字时钟的调时控制。

三个按键分别控制时钟的时(H_SET)、分(M_SET)、秒(S_SET),通过按键的按下来对其进行置数。

按键按一下,数值加1。

电路如图3所示。

 

2.驱动电路

这里采用74LS245芯片来驱动数码显示管的显示。

74LS245是8路同相三态双向总线收发器,可双向传输数据。

在这里把它的A口作为输入端,接收来自单片机的信号,B口作为输出端,把信号送入显示器的段选端。

3.数码管显示器

7SEG-MPX8-CC-BLUE是共阴极数码管显示器,显示模块需要实时显示当前的时间,显示时、分、秒需要6个数码管,另需两个数码管来显示横杠,因此总共需要8个数码管。

时值的十位和个位分别显示在第一个和第二个数码管,分值的十位和个位分别显示在第四个和第五个数码管,秒值的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横杠。

由于是多位数码管的显示,所以采用动态扫描的方法进行显示。

这里采用7SEG-MPX8-CC-BLUE共阴极数码管显示器,其和驱动电路的连接如图4所示。

图4:

驱动数码显示电路图

 

4.整体电路

以AT89C51单片机为核心,加上电源、按键电路、驱动电路和数码显示器组成了数字时钟的整体结构。

单片机的管脚分配如下表所示,整体电路如图5所示。

AT89C51的管脚

外围电路接口

P0.0~P0.7

74LS245芯片的管脚A0~A7

P1.0

S_SET按键

P1.1

M_SET按键

P1.2

H_SET按键

P3.0~P3.7

数码管显示器的管脚1~8

单片机的管脚分配表

图5:

整体电路图

四、软件系统设计

数字时钟的程序设计主要包括这几个部分:

主程序、按键处理子程序、定时器中断服务程序、显示子程序和延时子程序。

各部分的流程图6如下所示。

1.主程序流程图

 

 

图6:

主程序流程图

2.按键处理流程图

N

NY

N

Y

图7:

按键处理流程图

 

汇编程序

S_SETBITP1.0;数字钟秒控制位

M_SETBITP1.1;分钟控制位

H_SETBITP1.2;小时控制位

SECONDEQU30H

MINUTEEQU31H

HOUREQU32H

TCNTEQU34H

ORG00H

SJMPSTART

ORG0BH

LJMPINT_T0

START:

MOVDPTR,#TABLE

MOVHOUR,#0;初始化

MOVMINUTE,#0

MOVSECOND,#0

MOVTCNT,#0

MOVTMOD,#01H

MOVTH0,#(65536-50000)/256;定时50毫秒

MOVTL0,#(65536-50000)MOD256

MOVIE,#82H

SETBTR0

;****************************************************

;判断是否有控制键按下,是哪一个键按下

A1:

LCALLDISPLAY

JNBS_SET,S1

JNBM_SET,S2

JNBH_SET,S3

LJMPA1

S1:

LCALLDELAY;去抖动

JBS_SET,A1

INCSECOND;秒值加1

MOVA,SECOND

CJNEA,#60,J0;判断是否加到60秒

MOVSECOND,#0

LJMPK1

S2:

LCALLDELAY

JBM_SET,A1

K1:

INCMINUTE;分钟值加1

MOVA,MINUTE

CJNEA,#60,J1;判断是否加到60分

MOVMINUTE,#0

LJMPK2

S3:

LCALLDELAY

JBH_SET,A1

K2:

INCHOUR;小时值加1

MOVA,HOUR

CJNEA,#24,J2;判断是否加到24小时

MOVHOUR,#0

MOVMINUTE,#0

MOVSECOND,#0

LJMPA1

;****************************************************

;等待按键抬起

J0:

JBS_SET,A1

LCALLDISPLAY

SJMPJ0

J1:

JBM_SET,A1

LCALLDISPLAY

SJMPJ1

J2:

JBH_SET,A1

LCALLDISPLAY

SJMPJ2

;***********************************************

;定时器中断服务程序,对秒,分钟和小时的计数

INT_T0:

MOVTH0,#(65536-50000)/256

MOVTL0,#(65536-50000)MOD256

INCTCNT

MOVA,TCNT

CJNEA,#20,RETUNE;计时1秒

INCSECOND

MOVTCNT,#0

MOVA,SECOND

CJNEA,#60,RETUNE

INCMINUTE

MOVSECOND,#0

MOVA,MINUTE

CJNEA,#60,RETUNE

INCHOUR

MOVMINUTE,#0

MOVA,HOUR

CJNEA,#24,RETUNE

MOVHOUR,#0

MOVMINUTE,#0

MOVSECOND,#0

MOVTCNT,#0

RETUNE:

RETI

;******************************************

;显示控制子程序

DISPLAY:

MOVA,SECOND;显示秒

MOVB,#10

DIVAB

CLRP3.6

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP3.6

MOVA,B

CLRP3.7

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP3.7

CLRP3.5

MOVP0,#40H;显示分隔符

LCALLDELAY

SETBP3.5

MOVA,MINUTE;显示分钟

MOVB,#10

DIVAB

CLRP3.3

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP3.3

MOVA,B

CLRP3.4

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP3.4

CLRP3.2

MOVP0,#40H;显示分隔符

LCALLDELAY

SETBP3.2

MOVA,HOUR;显示小时

MOVB,#10

DIVAB

CLRP3.0

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP3.0

MOVA,B

CLRP3.1

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP3.1

RET

TABLE:

DB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

DELAY:

MOVR6,#10

D1:

MOVR7,#250

DJNZR7,$

DJNZR6,D1

RET

END

 

五、调试与功能说明

1.功能说明

走时:

默认为走时状态,按24小时制分别显示“时—分—秒”,有2个“—”动态显示,时间会按实际时间以秒为基本单位走时。

打开数字时钟时,时间是从“00—00—00”开始计时的。

走时调整:

按S-SET键对秒进行调整,按一下加一秒,按到59秒时再按一下,秒显示自动清零;

按M-SET键对分进行调整,按一下加一分,按到59分时再按一下,分显示自动清零;

按H-SET键对时进行调整,按一下加一小时,按到23小时时再按一下,时显示自动清零。

2.数字时钟运行结果

(一)启动时显示结果:

(二)时钟正常走时:

3.系统时钟误差分析

本次设计的单片机电子钟系统中,其误差主要来源包括晶体频率误差,定时器溢出误差,延迟误差。

晶体频率产生震荡,容易产生走时误差;定时器溢出的时间误差,本应这一秒溢出,但却在下一秒溢出,造成走时误差;延迟时间过长或过短,都会造成与基准时间产生偏差,造成走时误差。

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

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

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

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