单片机电子钟课程设计.docx

上传人:b****8 文档编号:9185752 上传时间:2023-02-03 格式:DOCX 页数:18 大小:64.88KB
下载 相关 举报
单片机电子钟课程设计.docx_第1页
第1页 / 共18页
单片机电子钟课程设计.docx_第2页
第2页 / 共18页
单片机电子钟课程设计.docx_第3页
第3页 / 共18页
单片机电子钟课程设计.docx_第4页
第4页 / 共18页
单片机电子钟课程设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

单片机电子钟课程设计.docx

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

单片机电子钟课程设计.docx

单片机电子钟课程设计

 

《单片机原理与应用》

课程设计报告书

系别:

机械与电子工程学院

专业:

自动化

班级:

10206201

姓名:

冷木龙

指导教师:

朱兆优

 

12.6.25

 

一、实验任务…………………………………………………3

二、编程思路…………………………………………………3

三、程序流程图………………………………………………4

四、使用资源分配……………………………………………5

五、实验调试与结果分析……………………………………5

六、实验总结…………………………………………………5

七、实验程序清单(加注解)………………………………6

八、实验电路图………………………………………………14

 

设计题目多功能电子钟

1、实验任务

用8051单片机设计扩展6位数码管的静态或动态显示电路,再连接几个按键和一个蜂鸣器报警电路,设计出一个多功能电子钟,实现以下功能:

(1)走时(能实现时分秒,年月日的计时)

(2)显示(分屏切换显示时分秒和年月日,修改时能定位闪烁显示)

(3)校时(能用按键修改和校准时钟)

(4)定时报警(能定点报时)

2、编程思路

(1)选择工作方式,计算初值;

(2)采用中断方式进行溢出次数累计;

(3)从秒-分-时和年-月-日的计时是通过累加和数值比较实现的;

(4)时钟显示缓冲区:

时钟时间在方位数码管上进行显示,为此在内部RAM中要设置显示缓冲区,共6个地址单元。

显示缓冲区从左到右依次存放时、分、秒、年、月、日数值。

(5)主程序:

主要进行定时器/计数器的初始化编程,然后反复调用显示子程序的方法等待中断的到来。

(6)中断服务程序:

进行计时操作。

 

3、程序流程图

 

 

 

 

中断走时流程图

4、使用的资源分配

把单片机系统区域中的P0.0-P0.7端口用线连接到动态数码显示区域中的A-H端口上;

把单片机系统区域中的P3.0-P3.7端口用线连接到动态数码显示区域中的S1-S7端口上;

把单片机系统区域中的P3.0-P3.5端口用导线连接到6个数码管的公共端。

5、实验调试与结果分析

实验调试

1.实验程序的调试

在TKStudio软件中,反复运行,发现错误并改正。

2.实验电路的调试

把调试好的程序载入单片机中,在运行看是否有错误。

结果分析

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

延迟误差。

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

6、实验总结

经过将近一周的努力,在指导老师和同学的帮助下,终于完成了多功能电子时钟的课程设计。

刚开始拿到实验题目的时候,一头雾水,不知该从何看起,单通过对程序的模块化分解,各个问题也就明了了。

在此次的多功能电子钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。

此次的多功能电子钟设计重在于仿真和编程,虽然能把电路原理图接出来,并能正常显示,但对于电路本身的原理并不是十分熟悉.总的来说,通过这次的设计实验更进一步地增强了实验的动手能力。

这次的课程设计终于完成了,在此次课程设计中我们获益非浅,其过程中遇到了很多编程问题和操作问题,但最终还是在老师的指导下迎刃而解。

7、实验程序清单(加注解)

ORG0000

AJMPMAIN

ORG001BH

LJMPTIME

ORG0100H

MAIN:

MOV20H,#10H;中断次数

MOV32H,#18H;赋初值

MOV31H,#28H

MOV30H,#00H

MOV40H,#23H

MOV41H,#12H

MOV42H,#12H

MOVR7,#00H

MOVTMOD,#10H;选择定时器/计数器工作方式1

MOVTL1,#0B0H;定时器/计数器赋初值

MOVTH1,#3CH

SETBTR1;启动定时器/计数器1

MOVIE,#88H;允许定时器/计数器中断

DUSP:

MOVR2,#3;显示年月日主程序

MOVR0,#30H

MOVDPTR,#TAB

MOVP3,#0DFH

LOOP:

MOVA,@R0

ANLA,#0FH;取秒的低位

MOVCA,@A+DPTR;查表

MOVP0,A;把日的低位送到P0口

LCALLYSH2S;延时

MOVA,P3

RRA

MOVP3,A

MOVA,@R0

ANLA,#0F0H;取日的高位

SWAPA

MOVCA,@A+DPTR;查表

MOVP0,A

LCALLYSH2S;延时

MOVA,P3

RRA

MOVP3,A

INCR0

DJNZR2,LOOP循环3次,分别显示时分秒

JNBP1.7,KEY17;查询键17有没有按下

JNBP1.6,KEY16;查询键16有没有按下

JNBP1.5,KEY15;查询键15有没有按下

JNBP1.4,KEY14;查询键14有没有按下

JNBP1.3,KEY13;查询键13有没有按下

AJMPDUSP;跳到显示年月日的子程序

KEY17:

JNBET1,KEY17B;键处理

CLRET1

CLREA

MOVR6,#0BH

LJMPDUSP

RET

KEY17B:

MOVR6,#0AH

SETBET1

SETBEA

LJMPDUSP

RET

KEY16:

JNBP1.6,$

CJNER6,#0BH,KEY16B

MOVA,32H

ADDA,#01H

DAA

MOV32H,A

CJNEA,#24H,KK1

MOV32H,#00H

KK1:

LCALLYSH2SLL;调用延时

LCALLDISPS

KEY16B:

LJMPDUSP

RET

KEY15:

JNBP1.5,$

CJNER6,#0BH,KEY15B

MOVA,31H

ADDA,#01H

DAA

MOV31H,A

CJNEA,#60H,KK2

MOV31H,#00H

KK2:

LCALLYSH2SLL

LCAllDISPF

KEY15B:

LJMPDUSP

RET

KEY14:

JNBP1.4,$

CJNER6,#0BH,KEY14B

MOVA,30H

ADDA,#01H

DAA

MOV30H,A

CJNEA,#60H,KK3

MOV30H,#00H

KK3:

LCALLYSH2SLL

LCALLDISPM

KEY14B:

LJMPDUSP

RET

KEY13:

JNBP1.3,$

INCR7

CJNER7,#01H,KEY13B

AJMPDUSPP

KEY13B:

CJNER7,#02H,KEY13BB

MOVR5,#0BH

AJMPDUSPP

KEY13BB:

MOVR5,#0AH

MOVR7,#00H

AJMPDUSP

RET

DUSPP:

MOVR2,#3;年月日的显示子程序

MOVR0,#40H

MOVDPTR,#TAB

MOVP3,#0DFH

LOOPP:

MOVA,@R0

ANLA,#0FH

MOVCA,@A+DPTR

MOVP0,A

LCALLYSH2S

MOVA,P3

RRA

MOVP3,A

MOVA,@R0

ANLA,#0F0H

SWAPA

MOVCA,@A+DPTR

MOVP0,A

LCALLYSH2S

MOVA,P3

RRA

MOVP3,A

INCR0

DJNZR2,LOOPP

JNBP1.3,KEY13

JNBP1.2,KEY12

JNBP1.1,KEY11

AJMPDUSPP

RET

KEY12:

JNBP1.2,$

CJNER5,#0BH,KEY12B

MOVA,41H

ADDA,#01H

DAA

MOV41H,A

CJNEA,#13H,KK4

MOV41H,#01H

KK4:

LCALLDISPY

LCALLYSH2S;调用延时

KEY12B:

LCALLDUSPP

RET

KEY11:

JNBP1.1,$

CJNER5,#0BH,KEY11B

MOVA,40H

ADDA,#01H

DAA

MOV40H,A

CJNEA,#31H,KK5

MOV40H,#01H

KK5:

LCALLDISPR

LCALLYSH2S

KEY11B:

LJMPDUSPP

RET

DISPY:

MOVDPTR,#TAB;单独显示年

MOVA,41H

ANLA,#0FH

MOVCA,@A+DPTR;查表

MOVP0,A

MOVP3,#11110111B;显示

LCALLYSH2S

MOVA,41H

SWAPA

ANLA,#0FH

MOVCA,@A+DPTR;查表

MOVP0,A

MOVP3,#11111011B;显示

LCALLYSH2S

RET

DISPR:

MOVA,40H;日的独立显示

ANLA,#0FH

MOVCA,@A+DPTR;查表

MOVP0,A

MOVP3,#11011111B;显示

LCALLYSH2S

MOVA,40H

SWAPA

ANLA,#0FH

MOVCA,@A+DPTR

MOVP0,A

MOVP3,#11101111B

LCALLYSH2S

RET

YSH2S:

MOV50H,#01H;延时程序

LOOP2:

MOV51H,#14H

LOOP21:

MOV52H,#5AH

XHD3:

DJNZ52H,XHD3

DJNZ51H,LOOP21

DJNZ50H,LOOP2

RET

YSH2SLL:

MOV60H,#05;长延时程序

MM3:

MOV61H,#20

MM2:

MOV62H,#20

MM1:

DJNZ62H,MM1

DJNZ61H,MM2

DJNZ60H,MM3

RET

TIME:

PUSHPSW;走时程序

PUSHACC

MOVTL1,#0B0H

MOVTH1,#3CH

DJNZ20H,RETURN

MOV20H,#10H

CPLP2.0

MOVA,30H

ADDA,#01H

DAA

MOV30H,A

CJNEA,#60H,RETURN

MOV30H,#00H

MOVA,31H

ADDA,#01H

DAA

MOV31H,A

CJNEA,#60H,RETURN

MOV31H,#00H

MOVA,32H

ADDA,#01H

DAA

MOV32H,A

CJNEA,#24H,RETURN

MOV32H,#00H

MOVA,40H

ADDA,#01H

DAA

MOV40H,A

CJNEA,#31H,RETURN

MOV40H,#01H

MOVA,41H

ADDA,#01H

DAA

MOV41H,A

CJNEA,#13H,RETURN

MOV41H,#01H

MOVA,42H

ADDA,#01H

DAA

MOV42H,A

CJNEA,#99,RETURN

MOV42H,#00H

RETURN:

POPACC

POPPSW

RETI

DISPS:

MOVDPTR,#TAB;单独显示时

MOVA,32H

ANLA,#0FH

MOVCA,@A+DPTR

MOVP0,A

MOVP3,#11111101B

LCALLYSH2S

MOVA,32H

SWAPA

ANLA,#0FH

MOVCA,@A+DPTR

MOVP0,A

MOVP3,#11111110B

LCALLYSH2S

RET

DISPF:

MOVA,31H;单独显示分

ANLA,#0FH

MOVCA,@A+DPTR

MOVP0,A

MOVP3,#11110111B

LCALLYSH2S

MOVA,31H

SWAPA

ANLA,#0FH

MOVCA,@A+DPTR

MOVP0,A

MOVP3,#11111011B

LCALLYSH2S

RET

DISPM:

MOVA,30H;单独显示秒

ANLA,#0FH

MOVCA,@A+DPTR

MOVP0,A

MOVP3,#11011111B

LCALLYSH2S;调用延时程序

MOVA,30H

SWAPA

ANLA,#0FH

MOVCA,@A+DPTR;查表

MOVP0,A

MOVP3,#11101111B;显示

LCALLYSH2S

RET

TAB:

DB3FH,06H,5BH,4FH,66H,6DH;表

DB7DH,07H,7FH,6FH

END

 

8、实验电路图

电路连接总图

按键电路图

键名

实现功能

K1

调试开关,控制调试开始

K2

实现时加一

K3

实现分加一

K4

实现秒加一

K5

实现年月日的切换

K6

实现月的加一

K7

实现日的加一

各按键实现功能说明表

 

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

当前位置:首页 > 解决方案 > 学习计划

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

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