电子钟专周报告Word格式文档下载.docx

上传人:b****4 文档编号:17867478 上传时间:2022-12-11 格式:DOCX 页数:26 大小:426.23KB
下载 相关 举报
电子钟专周报告Word格式文档下载.docx_第1页
第1页 / 共26页
电子钟专周报告Word格式文档下载.docx_第2页
第2页 / 共26页
电子钟专周报告Word格式文档下载.docx_第3页
第3页 / 共26页
电子钟专周报告Word格式文档下载.docx_第4页
第4页 / 共26页
电子钟专周报告Word格式文档下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

电子钟专周报告Word格式文档下载.docx

《电子钟专周报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《电子钟专周报告Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。

电子钟专周报告Word格式文档下载.docx

1.整体设计

此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:

显示电路用8个共阴数码管分别显示,小时、分钟和秒,通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。

单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计。

电路的总体设计框架如下:

2.分块设计

模块电路主要分为:

输入部分、输出部分,复位。

2.1输入部分

输入信号主要是各种模式选择和调整信号,由按键开关提供。

以下为输入部分样:

在本实验中主要用用P3口输入按键信号,还用到了特殊的P0口。

对于P0口,由于其存在高阻状态,为了实现开关功能,给其添加上拉电阻,具体如下图所示:

2.2输出部分

本电路的输出信号为7段数码管的位选和段选信号,闹铃脉冲信号,提示灯信号。

本实验的数码管是共阴的,为了防止段选信号不能驱动数码管,故在P1口连接上拉电阻后,再送段选信号,以提高驱动,位选信号直接从P2口接入,如下图:

闹铃由P1.0端输出,模块如下:

各模块拼接组合,电路总体设计图如下:

B.程序设计

B.1程序总体设计

本实验用汇编程序完成.

NO

YES

结合电路图,程序设计的整体思路为:

接通电源,数码管显示时,分,秒。

并且走时显示LED灯每隔1秒改变一次明暗,此为正常工作模式。

以下为在该工作方式下模式选择的按键方式:

1.按4开始计时,秒表开始,停止

2.按1调整秒,按4继续计时

3.按2调整分,按4继续计时

4.按3调整时,按4继续计时

5.按5设置闹钟时间,再按5回复原有时间,闹铃声停止

6.按6所有设置清零

B.2程序主要模块

B.2.1不加扩展功能

主程序开始

显示时间

按1

2

按3

按4

5

6

调秒

调分

调时

开始

暂停、继续

清零

按5

是否有调

主程序

程序清单:

;

12M晶振20100114调试完成0315修改20110303注释

STRTEQUP2.6

STPEQUP2.7

CLRREQUP3.0

SECEQUP3.5

MINEQUP3.6

HOUREQUP3.7

ORG00H

SJMPMAIN

ORG0BH

AJMPT0INT0

ORG30H

MAIN:

MOVSP,#60H

MOVR4,#20

MOVTMOD,#01H

MOVTH0,#03CH;

#9EH12M晶振时定时初值取#3CB0H,还可细调,如TL=#0B7H,可以更准

MOVTL0,#0B0H;

#58H

SETBET0

SETBEA

;

MOV28H,#12

kS:

LCALLDISP;

秒调整按键

JBSEC,KM

LCALLDISP

JNBSEC,$-3

AJMPSINC

kM:

JBMIN,KH;

分调整按键

JNBMIN,$-3

AJMPMINC

KH:

JBHOUR,K1;

时调整按键

JNBHOUR,$-3

AJMPHINC

SINC:

INC26H;

秒调整

MOVA,26H

CJNEA,#60,SINC0

MOV26H,#0

SINC0:

AJMPKS

MINC:

INC27H;

分调整

MOVA,27H

CJNEA,#60,MINC0

MOV27H,#0

MINC0:

AJMPKM

HINC:

INC28H;

时调整

MOVA,28H

CJNEA,#24,HINC0

MOV28H,#0

HINC0:

AJMPKH

k1:

开始键

JBSTRT,K2

JNBSTRT,$-3

AJMPSTART

k2:

JBSTP,K3;

暂停键

JNBSTP,STOP

K3:

JBCLRR,KS

JNBCLRR,CLEAR;

清零键

START:

SETBTR0;

AJMPK1

STOP:

CLRTR0;

暂停

AJMPK2

CLEAR:

MOVA,#0

MOV26H,A

MOV27H,A

MOV28H,A

DISP:

MOVB,#10

DIVAB

MOV20H,B;

余数(秒个位数)

MOV21H,A;

商(秒十位数)

MOV22H,B;

余数(分个位数)

MOV23H,A;

商(分十位数)

MOV24H,B;

余数(时个位数)

MOV25H,A;

商(时十位数)

MOVA,20H;

秒个位

ACALLSEG7

MOVP0,A

CLRP2.0

ACALLDLY

SETBP2.0

MOVA,21H;

秒十位

CLRP2.1

SETBP2.1

MOVA,22H;

分个位

SETBP0.7

CLRP2.2

SETBP2.2

MOVA,23H;

分十位

ACALLSEG7

CLRP2.3

SETBP2.3

MOVA,24H;

时个位

CLRP2.4

SETBP2.4

MOVA,25H;

时十位

CLRP2.5

SETBP2.5

RET

T0INT0:

MOVTH0,#03CH;

#9EH;

定时中断子程序。

重装定时常数

MOVTL0,#0B0H;

#58H

DJNZR4,T0INTR;

50msX20=1S,未满20次,跳出中断子程序

1S,秒存储单元内数+1

CJNEA,#60,T0INTR;

未满60S,跳出中断。

MOV26H,#0;

满60S,秒单元清零

分+1

CJNEA,#60,T0INTR

INC28H

CJNEA,#24,T0INTR

T0INTR:

RETI

DLY10:

MOVR3,#30

D0:

DJNZR3,D0

RET

DLY:

MOVR7,#2

D1:

MOVR6,#40

DJNZR6,$

DJNZR7,D1

SEG7:

INCA

MOVCA,@A+PC

DB03FH;

0共阴

DB006H;

1

DB05BH;

DB04FH;

3

DB066H;

4

DB06DH;

DB07DH;

DB007H;

7

DB07FH;

8

DB06FH;

9

END

总体电路图:

加上整点提醒,响1S,闹铃响3S,定时整点总程序如下:

STRTEQUP2.6

STPEQUP2.7

CLRREQUP3.0

SECEQUP3.5

MINEQUP3.6

HOUREQUP3.7

ORG00H

AJMPMAIN

ORG0BH

AJMPT0INT

ORG1BH

AJMPT1INT

ORG30H

MOVSP,#60H

MOVR4,#20

MOVTMOD,#11H

MOVTH0,#03CH;

#9EH定时初值取#3CB0H,还可细调如TL=#0B7H,可以更准

MOVTL0,#0B0H;

MOVTH1,#0FEH

MOVTL1,#0CH

SETBEA

SETBET0

SETBET1

ACALLDISP

ACALLALARM

JBSEC,KM;

JNBSEC,$-2

AJMPSINC

JBMIN,KH;

JNBMIN,$-2

AJMPMINC

JBHOUR,K1;

JNBHOUR,$-2

AJMPHINC

JB7FH,SINC_A

INC26H;

MOVA,26H

CJNEA,#60,SINC0

MOV26H,#0

AJMPSINC0

SINC_A:

INC36H;

闹秒调整

MOVA,36H

MOV36H,#0

JB7FH,MINC_A

INC27H;

MOVA,27H

CJNEA,#60,MINC0

MOV27H,#0

MINC_A:

INC37H;

闹分调整

MOVA,37H

MOV37H,#0

AJMPKM

JB7FH,HINC_A

INC28H;

MOVA,28H

CJNEA,#24,HINC0

MOV28H,#0

HINC_A:

INC38H;

闹时调整

MOVA,38H

MOV38H,#0

AJMPKH

ACALLDISP;

JBSTRT,K2

JNBSTRT,$-2

AJMPSTART

JBSTP,K3;

JNBSTP,$-2

AJMPCL_AL

JBCLRR,KS0

JNBCLRR,CLEAR;

KS0:

AJMPKS

CPLTR0;

开始/暂停

SETB7DH;

7DH为开始键按下标志,此作为允许闹铃标志

AJMPK1

CL_AL:

CPL7FH;

7FH作时钟和闹铃标志位

AJMPK2

CLRTR0;

MOVA,#0

MOV26H,A

MOV27H,A

MOV28H,A

MOV36H,A

MOV37H,A

MOV38H,A

JB7FH,DISP_A

MOV29H,26H;

秒送秒显示缓存

MOV2AH,27H

MOV2BH,28H

AJMPDISP1

DISP_A:

MOV29H,36H

MOV2AH,37H

MOV2BH,38H

DISP1:

MOVA,29H

MOVB,#10

DIVAB

MOV20H,B;

MOV21H,A;

MOVA,2AH

MOV22H,B;

MOV23H,A;

MOVA,2BH

MOV24H,B;

MOV25H,A;

MOVA,20H;

ACALLSEG7

MOVP0,A

CLRP2.0

ACALLDLY

SETBP2.0

MOVA,21H;

CLRP2.1

SETBP2.1

MOVA,22H;

SETBP0.7

CLRP2.2

SETBP2.2

MOVA,23H;

ACALLSEG7

CLRP2.3

SETBP2.3

MOVA,24H;

CLRP2.4

SETBP2.4

MOVA,25H;

CLRP2.5

SETBP2.5

RET

ALARM:

JNB7DH,RT;

开始键未按下跳出

MOVA,28H;

开机时,时分秒都为0,跳出

JZAL0M

AJMPALARM1

AL0M:

JZAL0S

AL0S:

JZRT

ALARM1:

比较小时

CJNEA,38H,AL;

不等返回,相等,转分钟比较

MOVA,27H;

比较分钟?

CJNEA,37H,AL

MOVA,26H;

比较秒

CJNEA,36H,AL

AJMPALARM2;

转闹铃

AL:

整点提醒

JZRT;

小时不是00,判分是不是00

JNZRT;

分不是00,跳出

JNZRT

AJMPALARM3;

秒不为00,跳出。

为00,整点提醒

ALARM2:

闹铃3S

SETBTR1

MOVR0,#0

AJMPRT

ALARM3:

整点提醒1S

SETBTR1

MOVR0,#2

RT:

T0INT:

MOVTL0,#0B0H

DJNZR4,T0INTR;

INCR0;

响铃时间

CJNEA,#60,T0INTR;

MOV26H,#0;

CJNEA,#60,T0INTR

INC28H

CJNEA,#24,T0INTR

RETI

T1INT:

CPLP1.0

CJNER0,#3,T1RTI;

闹铃时间设为5秒

CLRTR1;

关闹铃

T1RTI:

MOVR7,#20

MOVR6,#25

DJNZR6,$

DJNZR7,$-4

INCA

MOVCA,@A+PC

DB03FH;

DB006H;

DB05BH;

DB04FH;

DB066H;

DB06DH;

DB07DH;

DB007H;

DB07FH;

DB06FH;

END

C.程序调试及仿真

2利用Proteus仿真实验过程截图:

普通时间显示模式仿真图,表示:

2点过2分11

设置闹钟2分钟

整点报时

五.实验总结及感想

一分耕耘,一分收获。

只有亲自用实践来验证这句话,在能得其要领。

经过这次单片机课程设计,我从一个单片机实践的门外汉,已经越升为略知一二的新手。

虽然还有很多有关单片机的应用有待学习,但万变不离其宗,只要深入了解单片的原理,全部知识点,各个细节,一切设计皆有可能。

刚开始的时候完全不知道怎么做,毕竟我们学单片机的时间不长,这学期开的课我在整体思路模糊的情况下,在网上大量收集资料,各种与电子时钟相关的文章,我阅读了不少。

从中找到了不少对我有帮助,以及在老师的帮助下慢慢的思路开始清晰。

通过和同组同学细心的推敲下,慢慢的对设计有了信心。

对资料有了一定的积累后我们开始了我们的设计,一点点的写程序修改再修改,慢慢的错误减少直到正确。

然后开始画图,慢慢的修改,直到仿真成功。

成功的那时候真的很开心。

实验中遇到了不少问题,接下来总结一下,共同探讨。

1.开始写程序时由于对汇编语言有的指令不熟悉导致很多错误,经过老师指导及翻书查询把错误找出来,对症下药。

感觉到自己知识学得不牢靠,再以后的学习中严格要求自己。

2.按键问题。

我们的设计中,功能选择是通过按键开关实现的。

在仿真中发现,调整数值时,有时按键反应太快,按一次,跳了几下,使设置时间,。

但是仿真多了之后,找到了按键(实际上是按鼠标)的节奏,对按键的掌控力提高了不少。

3.P0口开关问题。

P0口比较特殊,它存在高阻态,要使其输入不是高电平就是低电平,就要接上拉电阻,给其高电平输入。

4.对画电路图有一定的难度。

主要是对元件不熟,不知道该选什么。

还有就是对元件的英文不知道,有的只有慢慢一个个找。

比如在选择的过程中,第一次没注意显示屏是共阴还是共阳,选了个共阳的没仿真出来,经过查找原因换了个共阴的就可以了。

以上就是实验中遇到的主要问题,基本上都找到了相应的解决之道。

整个实验的过程就是一个解决问题的过程,每天都解决一些问题,我的实验也就解决了,当然结果不重要,功利化的追求结果,会使人浮躁,还是享受那份疑难迎刃而解的快感吧!

附件:

A.Proteus电路图

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

当前位置:首页 > 高中教育 > 数学

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

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