单片机报告时间控制器Word格式.doc

上传人:b****1 文档编号:13079172 上传时间:2022-10-04 格式:DOC 页数:10 大小:324.36KB
下载 相关 举报
单片机报告时间控制器Word格式.doc_第1页
第1页 / 共10页
单片机报告时间控制器Word格式.doc_第2页
第2页 / 共10页
单片机报告时间控制器Word格式.doc_第3页
第3页 / 共10页
单片机报告时间控制器Word格式.doc_第4页
第4页 / 共10页
单片机报告时间控制器Word格式.doc_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

单片机报告时间控制器Word格式.doc

《单片机报告时间控制器Word格式.doc》由会员分享,可在线阅读,更多相关《单片机报告时间控制器Word格式.doc(10页珍藏版)》请在冰豆网上搜索。

单片机报告时间控制器Word格式.doc

3)建议有条件的同学做出实物。

4)时间:

12周到16周,16周上交。

四设计基本原理

时钟是利用单片机内部的定时器/计数器来实现,它的处理过程如下:

首先设定单片机内部的一个定时器/计数器工作于定时方式,对机器周期计数形成基准时间(如10ms),然后用另一个定时器/计数器或软件计数的方法对基准时间计数形成秒(对10ms计数100次),秒计60次形成分,分计60次形成小时,小时计24次则计满一天。

然后通过数码管把它们的内容在相应位置显示出来即可。

用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为15536。

形成定时时间为50ms。

用片内RAM的7BH单元对50ms计数,计20次1秒钟到,然后对秒计数器78H单元加1,秒计数器加到60后向分进位,则分计数器79H单元加1而秒计数器78H单元清零;

分计数器加到60后又向时进位,则时计数器7AH单元加1而分计数器79H单元清零;

时计数器加到24则时计数器清零。

然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。

显示格式为小时十位、小时个位、分十位、分个位、秒十位、秒个位。

在处理过程中加上了按键判断程序,能对按键处理。

另外添加两个按键,一个显示时间,一个用于显示年月日。

此外,还从P0口引出两条线,分别控制led灯,蜂鸣器。

所用的主要器件为:

单片机:

80C52LED数码管:

7SEG-MPX8-CA-BLUE(CA:

共阳)

五设计成果

1.仿真电路图

2.日历界面

3.计时器界面

六流程图:

开始

显示单元清零

T0、T1设为16位计数模式

允许T0中断

调用显示子程序

进入功能程序

按下键否?

七主要代码:

ORG0000H

LJMPSTART

ORG000BH

LJMPINTT0

START:

MOVR0,#70H

MOVR7,#0CH

INIT:

MOV@R0,#00H ;

存储单元清零

INCR0

DJNZR7,INIT

MOV72H,#10 ;

时、分、秒之间的短横显示

MOV75H,#10

MOVTMOD,#01H

MOVTL0,#0B0H ;

50ms定时初值

MOVTH0,#03CH

SETBEA

SETBET0

SETBTR0

START1:

LCALLSCAN

LCALLKEYSCAN

SJMPSTART1

;

延时1MS子程序

DL1MS:

MOVR6,#14H

DL1:

MOVR7,#19H

DL2:

DJNZR7,DL2

DJNZR6,DL1

RET

延时20MS子程序

DL20MS:

ACALLSCAN

数码管显示程序

SCAN:

MOVA,78H;

秒计数值由二进制转十进制后

MOVB,#0AH ;

送入显示缓冲区相应位置

DIVAB

MOV71H,A

MOV70H,B

MOVA,79H ;

分计数值由二进制转十进制后

MOVB,#0AH ;

MOV74H,A

MOV73H,B

MOVA,7AH ;

时计数值由二进制转十进制后

MOV77H,A

MOV76H,B

MOVR1,#70H;

循环扫描显示

MOVR5,#80H;

显示秒个位的位码(LED共阳)

MOVR3,#08H

SCAN1:

MOVA,R5

MOVP2,A ;

位码从P2口送出

MOVA,@R1

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A ;

字段码从P0口送出

LCALLDL1MS ;

延时1ms

INCR1

RRA

MOVR5,A

DJNZR3,SCAN1

MOVP2,#00H

MOVP0,#0FFH

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH

;

“0~9”,“-”的共阳极字段码

INTT0:

PUSHACC

PUSHPSW

CLRET0

CLRTR0

MOVTL0,#0B0H

INC7BH

MOVA,7BH

CJNEA,#14H,OUTT0

MOV7BH,#00

INC78H

MOVA,78H

CJNEA,#3CH,OUTT0

MOV78H,#00

INC79H

MOVA,79H

MOV79H,#00

INC7AH

MOVA,7AH

CJNEA,#18H,OUTT0

MOV7AH,#00

OUTT0:

poppsw

popacc

RETI

按键处理程序

KEYSCAN:

CLREA

JNBP1.0,KEYSCAN0

JNBP1.1,KEYSCAN1

JNBP1.2,KEYSCAN2

KEYOUT:

KEYSCAN0:

LCALLDL20MS

JBP1.0,KEYOUT

WAIT0:

JNBP1.0,WAIT0

INC7CH

MOVA,7CH

CJNEA,#03H,KEYOUT

MOV7CH,#00

SETBTR0 ;

K0按3次后又恢复走时

SJMPKEYOUT

KEYSCAN1:

JBP1.1,KEYOUT

WAIT1:

JNBP1.1,WAIT1

CJNEA,#02H,KSCAN11

INC79H ;

分计数器加1

CJNEA,#3CH,KEYOUT

KSCAN11:

INC7AH ;

时计数器加1

CJNEA,#18H,KEYOUT

KEYSCAN2:

JBP1.2,KEYOUT

WAIT2:

JNBP1.2,WAIT2

CJNEA,#02H,KSCAN21

DEC79H

CJNEA,#0FFH,KEYOUT

MOV79H,#3BH ;

把59给分计数器

KSCAN21:

DEC7AH

MOV7AH,#17H ;

把23给时计数器

END

八心得体会

经过这次课程设计,我发现了很多单靠课堂知识无法解决的问题,通过自己动手实践也加强了处理问题的能力,能够排除困难和问题完成设计。

第一次实际使用protues,出现了许多问题,甚至包括系统兼容问题,通过查找资料逐步解决问题,使得自己的实践能力有了较大提高,对protues的应用环境也更为熟悉。

而实际的设计电路编写程序更是对本学期课程的检验。

再说代码的编写,程序设计过程有如解决一实际问题,从解决实际问题的角度,我们可以这样来看:

首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;

其次,从问题的要害入手,从前到后的解决问题的每个方面,即从输入开始入手,着重考虑如何从输入导出输出。

最后在不断地调试改进后,终于完成了这一设计。

而整个过程表明实践能力还有待加强,在今后的学习工作中,需要逐渐加强这一点。

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

当前位置:首页 > 党团工作 > 党团建设

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

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