单片机简易数字电子钟设计.docx

上传人:b****5 文档编号:7478039 上传时间:2023-01-24 格式:DOCX 页数:19 大小:225.80KB
下载 相关 举报
单片机简易数字电子钟设计.docx_第1页
第1页 / 共19页
单片机简易数字电子钟设计.docx_第2页
第2页 / 共19页
单片机简易数字电子钟设计.docx_第3页
第3页 / 共19页
单片机简易数字电子钟设计.docx_第4页
第4页 / 共19页
单片机简易数字电子钟设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

单片机简易数字电子钟设计.docx

《单片机简易数字电子钟设计.docx》由会员分享,可在线阅读,更多相关《单片机简易数字电子钟设计.docx(19页珍藏版)》请在冰豆网上搜索。

单片机简易数字电子钟设计.docx

单片机简易数字电子钟设计

单片机课程设计报告

数字电子钟设计

 

姓名:

古名壬

专业:

10级电气自动化

班级:

电气二班

学号:

1040632209

指导老师:

朱星华老师

完成时间:

2012-6-17

 

一、前言

随着电子技术的发展,单片机技术的日趋成熟,在我们的生活中,随处可见单片机的身影,在控制领域,单片机也因其精确性及数字化逐步取代传统的模电控制手段。

作为电气自动化的学生,学习单片机技术不仅能加深对自动控制的理解,用新的技术实现自动控制,而平时做一些小制作更能为我们的大学生活增添一份光彩!

这次课程设计是用单片机实验箱的硬件基础上设计一个电子钟,限于硬件的限制,只要在实验箱上调试成功即可。

本次设计以8051内核单片机作为主控芯片,用四位数码管实现时间的显示,并且具有调校、闹铃的功能。

二、设计方案

硬件电路如下图所示:

1、单片机基本组成电路:

电源,晶振电路,复位电路等

2、显示:

串口工作于方式0,即移位寄存器方式,以级联方式驱动四位数码管静态显示。

3、3位独立按键:

为了实现调校功能,至少要有两个按键以上才能更方便地调校时间,因此在本次设计中采用了三位独立按键,一个用来作调校切换,另外两个作加减,但在实际制作了,为了简化电路及节约硬件资源,可以使用两位独立按键。

4、程序用汇编语言编写,并分多个模块分别调用,提高了程序的编写效率及可移植性。

 

三、程序流程图

1、主流程:

 

2、按键扫描:

(其它两个键一样)

 

N

Y

 

N

Y

 

3、按键处理:

 

N

Y

 

N

Y

 

 

N

 

5、拆分时间的十位及个位:

 

N

Y

 

5、显示:

 

N

Y

 

6、闹铃

N

Y

 

四、RAM的分配

秒:

分:

时:

分个位:

分十位:

时个位:

时十位:

延时用:

延时用:

闹铃时:

闹铃分:

蜂鸣标志:

SECEQU30H

MINEQU31H

HOUEQU32H

AMILEQU40H

AMIHEQU41H

AHOLEQU42H

AHOHEQU43H

NEQU44H

MEQU45H

BELHEQU48H

BELMEQU49H

FMBZEQU50H

五、程序清单

SECEQU30H

MINEQU31H

HOUEQU32H

AMILEQU40H

AMIHEQU41H

AHOLEQU42H

AHOHEQU43H

NEQU44H

MEQU45H

WEIEQU46H

BELHEQU48H

BELMEQU49H

FMBZEQU50H

NZKGEQU52H;闹钟开关

K1BITP3.2

K2BITP3.3

K3BITP3.4

BELLBITP2.7

ORG00H

LJMPMAIN

ORG0BH

LJMPTIMER1

ORG28H

MAIN:

MOVR1,#30H

START:

MOV@R1,#0

INCR1

CJNER1,#55H,START

SETBBELL

MOVSCON,#00H;初始化

MOVTMOD,#01H

MOVTH0,#HIGH(65536-50000)

MOVTL0,#LOW(65536-50000)

SETBEA

SETBET0

SETBTR0

LOOP:

LCALLSMKEY

LCALLCLKEY

CJNER7,#20,LOOP0

MOVR7,#0

INCSEC

MOVA,SEC

CJNEA,#60,LOOP0

MOVSEC,#0

INCMIN

MOVA,MIN

CJNEA,#60,LOOP0

MOVMIN,#0

INCHOU

MOVA,HOU

CJNEA,#24,LOOP0

MOVHOU,#0

LOOP0:

;LCALLDELAY10

MOVA,BELH

CJNEA,#0,NEXT09

MOVA,BELM

CJNEA,#0,NEXT09

MOVNZKG,#0

JMPNEXT08

NEXT09:

MOVNZKG,#1

NEXT08:

MOVA,BELH

CJNEA,HOU,NEXT10

MOVA,BELM

CJNEA,MIN,NEXT10

MOVFMBZ,#1

LCALLFENGM

JMPNET11

NEXT10:

SETBBELL

NET11:

LCALLWORK_T

MOVA,AHOH

CJNEA,#0,XIANS

MOVAHOH,#10

XIANS:

LCALLDISPLAY2

LCALLDISPLAY

AJMPLOOP

FENGM:

PUSHACC

MOVA,NZKG

CJNEA,#1,FMRET

MOVA,FMBZ

CJNEA,#1,FMRET

CLRC

MOVA,#4

SUBBA,R3

JNCFMRET

CPLBELL

FMRET:

POPACC

RET

TIMER1:

PUSHACC

MOVTH0,#HIGH(65536-50000)

MOVTL0,#LOW(65536-50000)

INCR7;定时

INCR3;闪烁标志

CJNER3,#8,NET

MOVR3,#0

NET:

POPACC

RETI

WORK_T:

PUSHACC

MOVA,MIN

MOVB,#10

DIVAB

MOVAMIH,A

MOVAMIL,B

MOVA,HOU

MOVB,#10

DIVAB

MOVAHOH,A

MOVAHOL,B

POPACC

RET

DISPLAY2:

PUSHACC

LCALLDELAY10;静态显示

MOVR0,#40H

MOVR2,#4

LOOP1:

MOVDPTR,#DUTAB

MOVA,@R0

MOVCA,@A+DPTR

MOVR4,A

CJNER2,#2,DIS3

MOVA,#10

CLRC

SUBBA,R7

MOVA,R4

JNCDIS3

CLRACC.7

DIS3:

MOVSBUF,A

JNBTI,$

CLRTI

;DECR0

INCR0

DJNZR2,LOOP1

POPACC

RET

DELAY:

PUSHPSW

MOVM,#20

DEL:

MOVN,#100

DJNZN,$

DJNZM,DEL

POPPSW

RET

DELAY10:

PUSHPSW

LCALLDELAY

LCALLDELAY

POPPSW

RET

SMKEY:

MOVR6,#0

PUSHACC

PUSHPSW

SETBC

MOVK1,C

MOVC,K1

JCKK2;K1没有按下,看K2

LCALLDELAY10

SETBC

MOVC,K1

JCKK2

JNBK1,$

MOVR6,#1

AJMPRETURN

KK2:

SETBC

MOVK2,C

MOVC,K2

JCKK3

LCALLDELAY10

SETBC

MOVC,K2

JCKK3

JNBK2,$

MOVR6,#2

AJMPRETURN

KK3:

SETBC

MOVK3,C

MOVC,K3

JCRETURN

LCALLDELAY10

SETBC

MOVC,K3

JCRETURN

JNBK3,$

MOVR6,#3

RETURN:

POPPSW

POPACC

RET

OVER0:

AJMPOVER

CLKEY:

MOVA,R6

CJNEA,#1,OVER0

JS:

LCALLSMKEY

CJNER6,#1,NEX1

INCA

NEX1:

CJNER6,#2,ELS

CJNEA,#1,INCM

INCHOU

MOVR5,HOU

CJNER5,#24,NEXT1

MOVHOU,#0

INCM:

CJNEA,#2,INCBH

INCMIN

MOVR5,MIN

CJNER5,#59,NEXT1

MOVMIN,#0

INCBH:

CJNEA,#3,INCBM

INCBELH

MOVR5,BELH

CJNER5,#24,NEXT1

MOVBELH,#0

INCBM:

CJNEA,#4,ELS

INCBELM

MOVR5,BELM

CJNER5,#59,NEXT1

MOVBELM,#0

NEXT1:

MOVR6,#0

ELS:

CJNER6,#3,XS

CJNEA,#1,DECM

DECHOU

MOVR5,HOU

CJNER5,#255,DECM

MOVHOU,#23

DECM:

CJNEA,#2,DECBH

DECMIN

MOVR5,MIN

CJNER5,#255,XS

MOVMIN,#59

DECBH:

CJNEA,#3,DECBM

DECBELH

MOVR5,BELH

CJNER5,#0,XS

MOVMIN,#23

DECBM:

CJNEA,#4,XS

DECBELM

MOVR5,BELM

CJNER5,#0,XS

MOVBELM,#59

XS:

MOVR4,A

MOVA,#4

SUBBA,R3

MOVA,R4

JNCQM

PUSHMIN

PUSHHOU

CJNEA,#3,NET0

MOVMIN,BELM

MOVHOU,BELH

JMPSANBEL

NET0:

CJNEA,#4,SANBEL

MOVMIN,BELM

MOVHOU,BELH

SANBEL:

LCALLWORK_T

POPHOU

POPMIN

LCALLDISPLAY

LCALLDISPLAY2

LCALLDELAY10

JMPSMK

QM:

CJNEA,#1,SANH

MOVAHOL,#10

MOVAHOH,#10

LCALLDISPLAY

LCALLDISPLAY2

LCALLDELAY10

JMPSMK

SANH:

CJNEA,#2,SANBH

MOVAMIL,#10

MOVAMIH,#10

LCALLDISPLAY

LCALLDISPLAY2

LCALLDELAY10

JMPSMK

SANBH:

CJNEA,#3,SANBL

PUSHMIN

PUSHHOU

MOVHOU,BELH

MOVMIN,BELM

LCALLWORK_T

MOVAHOL,#10

MOVAHOH,#10

LCALLDISPLAY

LCALLDISPLAY2

LCALLDELAY10

POPHOU

POPMIN

JMPSMK

SANBL:

CJNEA,#4,SMK

PUSHMIN

PUSHHOU

MOVHOU,BELH

MOVMIN,BELM

LCALLWORK_T

MOVAMIL,#10

MOVAMIH,#10

LCALLDISPLAY

LCALLDISPLAY2

LCALLDELAY10

POPHOU

POPMIN

SMK:

CJNEA,#5,JS00

MOVR7,#0

MOVSEC,#0

CLRA

OVER:

SETBBELL

RET

JS00:

AJMPJS

DUTAB:

DB0C0H,0F9H,0A4H,0B0H,99H,092H,082H,0F8H,80H,90H,0FFH

END

 

六、设计总结:

通过这次课程设计,更加深刻地了解了8051单片机的工作原理,加深了对汇编语言的掌握。

但在本次设计中,还有很多没有完善的地方,比如,校准时间的程序没有用指针操作,所以导至程序冗余。

七、参考资料:

李全力《单片机原理及应用》清华大学出版社。

 

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

当前位置:首页 > 职业教育 > 职业技术培训

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

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