简易数字钟的单片机课程设计.docx

上传人:b****2 文档编号:2157464 上传时间:2023-05-02 格式:DOCX 页数:26 大小:323.35KB
下载 相关 举报
简易数字钟的单片机课程设计.docx_第1页
第1页 / 共26页
简易数字钟的单片机课程设计.docx_第2页
第2页 / 共26页
简易数字钟的单片机课程设计.docx_第3页
第3页 / 共26页
简易数字钟的单片机课程设计.docx_第4页
第4页 / 共26页
简易数字钟的单片机课程设计.docx_第5页
第5页 / 共26页
简易数字钟的单片机课程设计.docx_第6页
第6页 / 共26页
简易数字钟的单片机课程设计.docx_第7页
第7页 / 共26页
简易数字钟的单片机课程设计.docx_第8页
第8页 / 共26页
简易数字钟的单片机课程设计.docx_第9页
第9页 / 共26页
简易数字钟的单片机课程设计.docx_第10页
第10页 / 共26页
简易数字钟的单片机课程设计.docx_第11页
第11页 / 共26页
简易数字钟的单片机课程设计.docx_第12页
第12页 / 共26页
简易数字钟的单片机课程设计.docx_第13页
第13页 / 共26页
简易数字钟的单片机课程设计.docx_第14页
第14页 / 共26页
简易数字钟的单片机课程设计.docx_第15页
第15页 / 共26页
简易数字钟的单片机课程设计.docx_第16页
第16页 / 共26页
简易数字钟的单片机课程设计.docx_第17页
第17页 / 共26页
简易数字钟的单片机课程设计.docx_第18页
第18页 / 共26页
简易数字钟的单片机课程设计.docx_第19页
第19页 / 共26页
简易数字钟的单片机课程设计.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

简易数字钟的单片机课程设计.docx

《简易数字钟的单片机课程设计.docx》由会员分享,可在线阅读,更多相关《简易数字钟的单片机课程设计.docx(26页珍藏版)》请在冰点文库上搜索。

简易数字钟的单片机课程设计.docx

简易数字钟的单片机课程设计

1系统设计

1.1框图设计

基于AT89S51单片机数字钟由电源电路、单片机主控电路、按键控制电路和蜂鸣器等几部分组成,系统框图如下:

 

1.2知识点

本项目需要通过学习和查阅资料,了解和掌握以下知识。

1.+5V电源原理及设计。

2.单片机复位电路工作原理及设计。

3.单片机晶振电路工作原理及设计。

4.按键电路的设计。

5.驱动电路74LS04的特性及使用。

6.蜂鸣器及其驱动电路的设计。

7.数码管的特性及其使用。

8.AT89S51单片机引脚。

9.单片机汇编语言及程序设计。

 

2硬件设计

2.1电路原理

基于AT89S51单片机数字钟电路原理图如附录所示。

按下P1.0口按键,若按下时间小于1S,则进入省电状态(数码管不亮,时钟不停);否则进入调分状态,等待操作,此时计时器停止走动。

当再按下P1.0口按键时,若按键时间小于0.5S,则时间加1min;若按下时间大于0.5S,则进入小时调整状态。

按下P1.1按键时,可进行减1调整。

在小时调整状态下,当按键按下的时间大于0.5S时,退出时间调整状态,时钟从0S开始计时。

在正常时钟状态下,若按下P1.1口按键,则进行时钟/秒表功能的转换,秒表中断计时程序启动,显示地址改为60H,LED将显示秒表计时单元60H-65H中的数据。

按下P1.2口的按键开关,可实现秒表清零、秒表启动、秒表暂停功能;当再按下P1.1口按键时,关闭T1秒表中断计时,显示首址又改为70H,恢复正常时间的显示功能。

2.2元件清单

元件名称

型号

数量

用途

元件名称

型号

数量

用途

单片机

AT89S51

1

控制核心

电阻

10kΩ

4

按键电路

晶振

12MHz

1

晶振电路

按键

4

电容

30pF

2

数码管

8段6位

1

显示电路

电解电容

10uF/10V

1

复位电路

电阻

500Ω

8

电阻

10kΩ

1

电阻

4.7kΩ

1

蜂鸣器及其驱动电路

按键

1

蜂鸣器

DC5V

1

电源

+5V/0.5A

1

提供+5V电源

三极管

9015

1

基于AT89S51单片机数字钟的元件清单如下表。

 

3软件设计

3.1程序流程图

1.主程序流程图如图1-1所示。

2.秒计时程序。

秒计时由定时器T0完成,流程图如图1-2所示。

3.秒表、调时指示程序。

秒表、调时由定时器T1完成,其流程图如图1-3所示。

 

 

3.2程序清单

DISBEGEQU30H

CALBEQUP1.7

TIMCONEQU2FH

ORG0000H

LJMPMAIN

ORG0003H

RETI

ORG000BH

LJMPINTT0

ORG0013H

RETI

ORG001BH

LJMPINTT1

ORG0023H

RETI

TAB:

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

I_TAB:

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

DLY1M:

MOVR6,#14H

DL_LOOP:

MOVR7,#19H

DL_LOOP1:

DJNZR7,DL_LOOP1

DJNZR6,DL_LOOP

RET

DLY20M:

CLRCALB

LCALLD_II_PLAY

LCALLD_II_PLAY

LCALLD_II_PLAY

SETBCALB

RET

DL_LOOPS:

LCALLDL05S

LCALLDL05S

RET

DL05S:

MOVR3,#20H

DL05S1:

LCALLD_II_PLAY

DJNZR3,DL05S1

RET

 

CTIME:

MOVA,#10H/整点报时

MOVB,79H

MULAB

ADDA,78H

MOVTIMCON,A

CLOOP:

LCALLDLY20M

LCALLDL_LOOPS

LCALLDL_LOOPS

LCALLDL_LOOPS

DJNZTIMCON,CLOOP

CLR08H

MAIN:

MOVR0,#00H/主程序

MOVR7,#80H

MLOOP:

MOV@R0,#00H

INCR0

DJNZR7,MLOOP

MOV20H,#00H

MOV7AH,#0AH

MOVTMOD,#11H

MOVTL0,#0B0H

MOVTH0,#3CH

MOVTL1,#0B0H

MOVTH1,#3CH

SETBEA

SETBET0

SETBTR0

MOVR4,#14H

MOVDISBEG,#70H

MLOOP1:

LCALLD_II_PLAY

JNBP1.0,T_SETSC

JNBP1.1,DLY5

JNBP1.2,FUNBT

JNBP1.3,TSET

JB08H,CTIME

AJMPMLOOP1

FUNBT:

LJMPDLY6

 

TSET:

LCALLDLY20M/闹铃时间设定程序,按P1.3进入设定

JBP1.3,MLOOP1

TS_LOOP:

JNBP1.3,TS_LOOP

JB05H,CLRBELL

MOVDISBEG,#50H

MOV50H,#0CH

MOV51H,#0AH

MINCHG:

SETBEA

LCALLD_II_PLAY

JNBP1.2,DLY1

JNBP1.0,DLY3

JNBP1.3,DLY

AJMPMINCHG

CLRBELL:

CLR05H

CLRCALB

AJMPMLOOP1

DLY:

LCALLDLY20M

JBP1.3,MINCHG

LJMPDLY8

T_SETSC:

LJMPR_SETTIM

DLY1:

LCALLDLY20M

JBP1.2,MINCHG

DLY2:

LCALLD_II_PLAY

JNBP1.2,DLY2

CLREA

MOVR0,#53H

LCALLADD_1

MOVA,R3

CLRC

CJNEA,#60H,ADD_M

ADD_M:

JCMINCHG

ACALLCLR_H

AJMPMINCHG

DLY3:

LCALLDLY20M

JBP1.0,MINCHG

DLY4:

LCALLD_II_PLAY

JNBP1.0,DLY4

CLREA

MOVR0,#53H

LCALLSUB_M

LJMPMINCHG

DLY5:

LCALLDLY20M/秒表功能/时钟转换程序,按P1.1进行功能转换

JBP1.1,T_MLOOP1

JNBP1.1,$

CPL03H

JNB03H,DIS_SET

MOVDISBEG,#60H

MOV60H,#00H

MOV61H,#00H

MOV62H,#00H

MOV63H,#00H

MOV64H,#00H

MOV65H,#00H

MOVTL1,#0F0H

MOVTH1,#0D8H

SETBTR1

SETBET1

T_MLOOP1:

LJMPMLOOP1

DIS_SET:

MOVDISBEG,#70H

CLRET1

CLRTR1

T_MLOOP11:

LJMPMLOOP1

DLY6:

LCALLDLY20M/秒表暂停/清零功能程序,按P1.2暂停或清零,

JBP1.2,T_MLOOP11P1.1退出秒表,回到时钟计时

T_EST11:

JNBP1.2,T_EST11

CLRET1

CLRTR1

T_EST22:

JNBP1.1,DLY5

JBP1.2,T_EST21

LCALLDLY20M

JBP1.2,T_EST22

T_EST55:

JNBP1.2,T_EST51

MOV60H,#00H

MOV61H,#00H

MOV62H,#00H

MOV63H,#00H

MOV64H,#00H

MOV65H,#00H

T_EST33:

JNBP1.1,DLY5

JBP1.2,T_EST31

LCALLDLY20M

JBP1.2,T_EST33

T_EST44:

JNBP1.2,T_EST41

SETBET1

SETBTR1

AJMPMLOOP1

T_EST411:

LCALLD_II_PLAY/以下为键等待释放时显示不会熄灭用

AJMPT_EST11

T_EST21:

LCALLD_II_PLAY

AJMPT_EST22

T_EST31:

LCALLD_II_PLAY

AJMPT_EST33

T_EST41:

LCALLD_II_PLAY

AJMPT_EST44

T_EST51:

LCALLD_II_PLAY

AJMPT_EST55

INTT0:

PUSHACC/1S计时程序;T0中断服务程序

PUSHPSW

CLRET0

CLRTR0

MOVA,#0B7H

ADDA,TL0

MOVTL0,A

MOVA,#3CH

ADDCA,TH0

MOVTH0,A

SETBTR0

DJNZR4,I_INT0

A_DDS:

MOVR4,#14H

CPL07H

MOVR0,#71H

ACALLADD_1

MOVA,R3

CLRC

CJNEA,#60H,A_DDM

A_DDM:

JCI_INT0

ACALLCLR_H

MOVR0,#77H

ACALLADD_1

MOVA,R3

CLRC

CJNEA,#60H,A_DDH

A_DDH:

JCI_INT0

ACALLCLR_H

LCALLDLY20M

SETB08H

MOVR0,#79H

ACALLADD_1

MOVA,R3

CLRC

CJNEA,#24H,RSTART

RSTART:

JCI_INT0

ACALLCLR_H

I_INT0:

MOV72H,76H

MOV73H,77H

MOV74H,78H

MOV75H,79H

LCALLBELL

POPPSW

POPACC

SETBET0

RETI

INTT1:

PUSHACC/闪动调试程序/秒表从能程序;T1中断服务程序

PUSHPSW

JB03H,R_ADDS

MOVTL1,#0B0H

MOVTH1,#3CH

DJNZR2,I_INT1

MOVR2,#06H

CPL02H

JB02H,FLASH0

MOV72H,76H

MOV73H,77H

MOV74H,78H

MOV75H,79H

I_INT1:

POPPSW

POPACC

RETI

FLASH0:

JB01H,FLASH1

MOV72H,7AH

MOV73H,7AH

MOV74H,78H

MOV75H,79H

AJMPI_INT1

FLASH1:

MOV72H,76H

MOV73H,77H

MOV74H,7AH

MOV75H,7AH

AJMPI_INT1

R_ADDS:

CLRTR1

MOVA,#0F7H

ADDA,TL1

MOVTL1,A

MOVA,#0D8H

ADDCA,TH1

MOVTH1,A

SETBTR1

MOVR0,#61H

ACALLADD_1

CLRC

MOVA,R3

JZR_ADDM

AJMPI_INT01

R_ADDM:

ACALLCLR_H

MOVR0,#63H

ACALLADD_1

MOVA,R3

CLRC

CJNEA,#60H,R_ADDH

R_ADDH:

JCI_INT01

LCALLCLR_H

MOVR0,#65H

ACALLADD_1

I_INT01:

POPPSW

POPACC

RETI

ADD_1:

MOVA,@R0/加1子程序

DECR0

SWAPA

ORLA,@R0

ADDA,#01H

DAA

MOVR3,A

ANLA,#0FH

MOV@R0,A

MOVA,R3

INCR0

SWAPA

ANLA,#0FH

MOV@R0,A

RET

SUB_M:

MOVA,@R0/分减1子程序

DECR0

SWAPA

ORLA,@R0

JZSUB_M1

DECA

SUB_M11:

MOVR3,A

ANLA,#0FH

CLRC

SUBBA,#0AH

SUB_M111:

JCSUB_M110

MOV@R0,#09H

SUB_M10:

MOVA,R3

INCR0

SWAPA

ANLA,#0FH

MOV@R0,A

RET

SUB_M1:

MOVA,#59H

AJMPSUB_M11

SUB_M110:

MOVA,R3

SUB_H:

MOVA,@R0/时减1子程序

DECR0

SWAPA

ORLA,@R0

JZSUB_H1

DECA

SUB_H11:

MOVR3,A

ANLA,#0FH

CLRC

SUBBA,#0AH

SUB_H111:

JCSUB_H110

MOV@R0,#09H

SUB_H10:

MOVA,R3

INCR0

SWAPA

ANLA,#0FH

MOV@R0,A

RET

SUB_H1:

MOVA,#23H

AJMPSUB_H11

SUB_H110:

MOVA,R3

CLR_H:

CLRA/清零程序;对即使单元复零用

MOV@R0,A

DECR0

MOV@R0,A

RET

 

R_SETTIM:

CLRET0/时钟时间调整程序

CLRTR0

LCALLDL_LOOPS

LCALLDLY20M

JBP1.0,SLEEP

MOVR2,#06H

MOV70H,#00H

MOV71H,#00H

SETBET1

SETBTR1

SET_2:

JNBP1.0,SET_1

SETB00H

SET_4:

JBP1.0,SET_3

LCALLDL05S

LCALLDLY20M

JNBP1.0,R_SETHH

MOVR0,#77H

LCALLADD_1

MOVA,R3

CLRC

CJNEA,#60H,SET_LOOP

SET_LOOP:

JCSET_4

LCALLCLR_H

CLRC

AJMPSET_4

SLEEP:

SETBET0

SETBTR0

SET_LOOP1:

JBP1.0,SET_LOOP1

LCALLDLY20M

JBP1.0,SET_LOOP1

SET_LOOP2:

JNBP1.0,SET_LOOP2

LJMPMLOOP1

R_SETHH:

CLR00H

SETB01H

SET_LOOP3:

JNBP1.0,SET_5

SET_6:

JBP1.0,SET_7

LCALLDL05S

LCALLDLY20M

JNBP1.0,STOP

MOVR0,#79H

LCALLADD_1

MOVA,R3

CLRC

CJNEA,#24H,C_YHH

C_YHH:

JCSET_6

LCALLCLR_H

AJMPSET_6

STOP:

JNBP1.0,STOP1

LCALLDLY20M

JNBP1.0,STOP

CLR01H

CLR00H

CLR02H

CLRTR1

CLRET1

SETBTR0

SETBET0

LJMPMLOOP1

SET_1:

LCALLD_II_PLAY

AJMPSET_2

SET_3:

LCALLD_II_PLAY

JNBP1.1,DLY7

AJMPSET_4

SET_5:

LCALLD_II_PLAY

AJMPSET_LOOP3

SET_7:

LCALLD_II_PLAY

JNBP1.1,DLY7B

AJMPSET_6

STOP1:

LCALLD_II_PLAY

AJMPSTOP

DLY7:

LCALLDLY20M/分减1程序

JBP1.1,SET_41

DLY7_M:

JNBP1.1,DLY7_M

MOVR0,#77H

LCALLSUB_M

LJMPSET_4

SET_41:

LJMPSET_4

DLY7B:

LCALLDLY20M/时减1程序

JBP1.1,SET_61

DLY7_H:

JNBP1.1,DLY7_H

MOVR0,#79H

LCALLSUB_H

LJMPSET_6

SET_61:

LJMPSET_6

D_II_PLAY:

MOVR1,DISBEG/显示程序

MOVR5,#0FEH

PLAY:

MOVA,R5

MOVP2,A

MOVA,@R1

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

MOVA,R5

JBACC.2,D_LOOP

CLRP0.7

D_LOOP:

JBACC.4,D_LOOP1

CLRP0.7

D_LOOP1:

LCALLDLY1M

INCR1

MOVA,R5

JNBACC.5,CLOSE

RLA

MOVR5,A

MOVP0,#0FFH

AJMPPLAY

CLOSE:

MOVP2,#0FFH

MOVP0,#0FFH

RET

SD_II_PLAY:

MOVR1,DISBEG/上电显示子程序

MOVR5,#0FEH

I_PLAY:

MOVA,R5

MOVP2,A

MOVA,@R1

MOVDPTR,#I_TAB

MOVCA,@A+DPTR

MOVP0,A

MOVA,R5

LCALLDLY1M

INCR1

MOVA,R5

JNBACC.5,CLOSES

RLA

MOVR5,A

AJMPI_PLAY

CLOSES:

MOVP2,#0FFH

MOVP0,#0FFH

RET

DLY8:

LCALLD_II_PLAY/闹铃时间设定程序中的时调整程序

JNBP1.3,DLY8

MOV50H,#0AH

MOV51H,#0CH

R_BTIM:

SETBEA

LCALLD_II_PLAY

JNBP1.2,DLY12

JNBP1.0,DLY14

JNBP1.3,DLY9

JNBP1.1,DLY10

AJMPR_BTIM

DLY9:

LCALLDLY20M

JBP1.3,R_BTIM

DLY8M:

LCALLD_II_PLAY

JNBP1.3,DLY8M

MOVDISBEG,#70H

LJMPMLOOP1

DLY10:

LCALLDLY20M

JBP1.1,R_BTIM

DLY11:

LCALLD_II_PLAY

JNBP1.1,DLY11

CPL05H

JNB05H,R_BTIM11

MOV50H,#00H

AJMPR_BTIM

R_BTIM11:

MOV50H,#0AH

AJMPR_BTIM

DLY12:

LCALLDLY20M

JBP1.2,R_BTIM

DLY13:

LCALLD_II_PLAY

JNBP1.2,DLY13

CLREA

MOVR0,#55H

LCALLADD_1

MOVA,R3

CLRC

CJNEA,#24H,A_DDH33N

A_DDH33N:

JCR_BTIM

ACALLCLR_H

AJMPR_BTIM

DLY14:

LCALLDLY20M

JBP1.0,R_BTIM

DLY15:

LCALLD_II_PLAY

JNBP1.0,DLY15

CLREA

MOVR0,#55H

LCALLSUB_H

LJMPR_BTIM

BELL:

JNB05H,BBELL/闹铃判断子程序

MOVA,79H

CJNEA,55H,BBELL

MOVA,78H

CLRC

BELL_1:

CJNEA,54H,BBELL

MOVA,77H

CLRC

CJNEA,53H,BBELL

MOVA,76H

CLRC

BELL_2:

CJNEA,52H,BBELL

JNB07H,BBELL

CLRCALB

RET

BBELL:

SETBCALB

RET

END

 

小结

为期两周的单片机数字钟课程设计结束了,在这两周里我和我的组员们运用单片机的知识完成了简易数字钟电路的设计,这使我对单片机这门课程有了更深一步的了解。

当我知道我要做数字钟这个课题时,起初感觉还是很有难度的,很怕自己做不好或者是做不出来。

在这两周的时间里,我去图书馆查阅大量资料,每当遇到不懂的问题或者困难时,我都会虚心向田老师请教。

就在这种不懈的努力下,我和我的组员终于完成了简易数字钟的单片机课程设计。

我们小组采用了单片机汇编语言完成了具有计时功能、秒表功能、整点报时功能以及分时调整功能的单片机简易数字钟课程设计.该设计的可靠性高,成本低,易操作,通用性强,通过键盘可以进行定时、校时。

总之,进一步加深了我对单片机这门学科的了解,,充分锻炼了我的个人能力,并培养了我的团队配合能力。

本次课程设计让我体会到了只有付出才会有收获,只有平日认真的学习,在关键的时刻才不会捉襟见肘,应用时的捉襟见肘让我认识到了自己学习知识基础上的不足,每一门专业基础课都是我们手中不可替代的武器,只有把他们有机联系起来才有可能实现一个完整的系统。

 

致谢

在这为期两周的单片机课程设计的时间里,在同学和老师的帮助下,我顺利完成了简易数字钟的单片机课程设计,这使我将理论知识付诸实践中,学到了许多课本上学不到的知识,更让我对单片机这门课程有了更深一步的了解。

通过这次课程设计,我懂得了理论与实际相结合是很重要的,光有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,把理论运用于实践,在实践中更好的理解与掌握理论,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到了一些问题,但经过自己的不懈努力及指导教师的指点,还是一一得到了解决,同时在设计的过程中也发

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

当前位置:首页 > 求职职场 > 简历

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

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