单片机课程设计定时闹钟的设计12Word下载.docx
- 文档编号:20724122
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:19
- 大小:129.26KB
单片机课程设计定时闹钟的设计12Word下载.docx
《单片机课程设计定时闹钟的设计12Word下载.docx》由会员分享,可在线阅读,更多相关《单片机课程设计定时闹钟的设计12Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
单片机的时钟电路:
如图所示
限流电阻:
8个10k电阻
控制按键:
本系统要进行时间的调整和定时,因此用4个手动按键对其进行控制。
1.3.4显示器模块的设计
利用2个七段数码管6个选位引脚连接C51单片机P2.5–P2.0接口,其他8个引脚分别通过限流电阻与C51单片机的P0.0-P0.7和共阳极数码管连接。
数码管:
单片机中通常使用7段LED,LED是发光二极管显示器的缩写。
LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。
LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。
2软件设计
2.1划分模块
根据设计要求,定时闹钟程序可分为以下几个模块:
1)显示时间的设置;
2)闹钟时间的设置:
4)定时时间的响应。
3.2程序流程图
程序流程图
2.3汇编程序
ORG0000H
LJMPSTART
ORG000BH
LJMPTIME
;
初始化;
START:
MOVSP,#50H
MOV20H,#00H;
定义秒
MOV21H,#00H;
定义分
MOV22H,#00H;
定义时
MOV23H,#01H;
定义闹钟分钟
MOV24H,#01H;
定义闹钟小时
MOV25H,#00H
MOV26H,#01H
MOV30H,#00H;
BCDSECOND
MOV31H,#00H
MOV32H,#00H;
BCDMINUTE
MOV33H,#00H
MOV34H,#00H;
BCDHOUR
MOV35H,#00H
MOV36H,#01H
MOV37H,#00H
MOV38H,#01H
MOV39H,#00H
MOV50H,#00H;
按键次数
MOVTMOD,#01H;
16位计数器
MOVTH0,#03CH;
赋初值
MOVTL0,#0B0H
MOVIE,#87H;
中断允许
SETBTR0;
启动T0
MOVR2,#14H
MOVP2,#0FFH
CLRP3.7
主程序;
MAIN:
LCALLTIMEPRO;
调用闹钟判断
GB:
LCALLDISPLAY1;
调用时间显示
JBP1.3,M1;
P1.3=1时转移S4没有按下
LCALLSETTIME;
调用SETTIME调时子程序
LJMPMAIN
M1:
JBP1.2,M2;
P1g.2=1时转移 S3
LCALLSETATIME;
调用SETATIME子程序
M2:
JBP1.0,M4;
P1.0=1时转移S1
LCALLLOOKATIME;
调用LOOKATIME显示闹钟子程序
M4:
延时子程序;
;
DELAY:
MOVR4,#030H
DL00:
MOVR5,#0FFH
DL11:
MOVR6,#9H
DL12:
DJNZR6,DL12
DJNZR5,DL11
DJNZR4,DL00
RET
;
时间调整;
SETTIME:
;
设置时间
L0:
LCALLDISPLAY1
MM1:
JBP1.3,L1;
P1.3=1时转移
MOVC,P1.3
JCMM1
LCALLDELAY1;
延时
MSTOP1:
MOVC,P1.3;
P1.3为0时转移
JNCMSTOP1
LCALLDELAY1;
MOVA,50H
INC50H
CJNEA,#00H,HJ1
LJMPL0
HJ1:
JNCMSTOP1
INC22H;
小时自加一
MOVA,22H
CJNEA,#18H,GO12;
小时计数循环
复位
MOV34H,#00H
LJMPL0
L1:
JBP1.1,L2;
P1.1=1时转移
MOVC,P1.1
JCL1
MSTOP2:
MOVC,P1.1;
P1.1=0时转移
JNCMSTOP2
JNCMSTOP2
INC21H;
分钟加一
MOVA,21H
CJNEA,#3CH,GO11;
分钟计数循环
MOV21H,#00H;
复位
MOV32H,#00H
GO11:
MOVB,#0AH
DIVAB
MOV32H,B;
将A的低4位存入32单元
MOV33H,A;
将A的高4位存入33单元
GO12:
MOV34H,B;
将A的低4位存入34单元
MOV35H,A;
将A的高4位存入35单元
L2:
JBP1.0,L0;
P1.0=1时转移
MOVC,P1.0
JCL2
STOP1:
MOVC,P1.0;
P1.0=0时转移
JNCSTOP1
JNCSTOP1
MOV50H,#00H
设置闹钟;
SETATIME:
LCALLDISPLAY2;
调用DISPLAY2显示闹钟
N0:
LCALLDISPLAY2
MM2:
JBP1.2,N1;
P1.2=1时转移
MOVC,P1.2
JCMM2
延时
MSTOP3:
MOVC,P1.2;
P1.2=0时转移
JNCMSTOP3
INC50H
CJNEA,#00H,HJ2
LJMPN0
HJ2:
JNCMSTOP3
INC24H;
小时加一
MOVA,24H
CJNEA,#24,GO22;
小时计数循环
MOV24H,#00H;
MOV38H,#00H
LJMPN0
N1:
JBP1.1,N2;
P1.1=1时转移
JCN1
MSTOP4:
MOVC,P1.1;
JNCMSTOP4
JNCMSTOP4
INC23H;
MOVA,23H
CJNEA,#60,GO21;
MOV23H,#00H;
MOV36H,#00H
GO21:
MOV36H,B;
将A的低4位存入36单元
MOV37H,A;
将A的高4位存入37单元
GO22:
MOV38H,B;
将A的低4位存入38单元
MOV39H,A;
将A的高4位存入39单元
N2:
JBP1.0,N0;
P1.0=1时转移
JCN2
STOP2:
JNCSTOP2
LCALLDELAY1
TIMEPRO:
MOVB,23H
CJNEA,B,BK;
判断定时闹钟的分钟
MOVB,24H
判断定时闹钟的小时
SETB25H.0
MOVC,25H.0
LCALLTIMEOUT;
调用TIMEOUT
BK:
RET
TIMEOUT:
X1:
LCALLBZ;
调用喇叭响应程序
LCALLDISPLAY2;
CLR25H.0;
调用喇叭响应程序结束
JBP1.0,X1;
LCALLDELAY;
CLR25H.0
LJMPDISPLAY1
BZ:
CLRP3.7
MOVR7,#250;
喇叭响应时间
T2:
MOVR6,#124
T3:
DJNZR6,T3
DJNZR7,T2
SETBP3.7
LOOKATIME:
LCALLDISPLAY2
MM:
JNBP1.0,LOOKATIME
DELAY1:
MOVR4,#14H;
时间延时
DL001:
DL111:
DJNZR5,DL111
DJNZR4,DL001
***********定时**************
TIME:
PUSHACC;
保护现场
PUSHPSW
MOVTH0,#03CH;
初值
MOVTL0,#0B0H
DJNZR2,RET0
MOVA,20H
CLRC
INCA;
秒自加一
CJNEA,#3CH,GO1;
秒计数循环
MOV20H,#0;
MOV30H,#0
MOV31H,#0
分钟自加一
CJNEA,#3CH,GO2;
MOV21H,#0H;
MOV32H,#0
MOV33H,#0
CJNEA,#18H,GO3;
MOV22H,#00H;
MOV34H,#0
MOV35H,#0
AJMPRET0
GO1:
MOV20H,A
MOV31H,A;
将A的低4位存入31单元
MOV30H,B;
将A的高4位存入30单元
AJMPRET0
GO2:
MOV21H,A
将A的低4位存入33单元
将A的高4位存入32单元
GO3:
MOV22H,A
将A的低4位存入35单元
将A的高4位存入34单元
RET0:
POPPSW;
恢复现场
POPACC
RETI
******显示子程序**********
DISPLAY1:
MOVR0,#30H
MOVR3,#0FEH
MOVA,R3
PLAY1:
MOVP2,A
MOVA,@R0;
取要显示的数据
MOVDPTR,#DSEG1;
指向字形段码首地址
MOVCA,@A+DPTR
CPLA;
查表取字形段码
MOVP0,A;
指向P0口
LCALLDL1
MOVA,R3;
判断是否显示到最低位
RLA;
左移一位
JNBACC.6,LD1
INCR0;
缓冲器地址加一
MOVR3,A
LJMPPLAY1
LD1:
DISPLAY2:
MOVR0,#36H
MOVR3,#0FBH
PLAY2:
LCALLDL1;
调用DL1
JNBACC.6,LD2
LJMPPLAY2;
调用PLAY2
LD2:
POPPSW
POPACC;
DELAY;
DL1:
MOVR7,#20H
DL:
MOVR6,#20H
DL6:
DJNZR6,$
DJNZR7,DL
DSEG1:
DB3FH,06H,5BH,4FH,66H;
七段码表
DB6DH,7DH,07H,7FH,6FH
END
3protell软件仿真:
通过S1、S2、S3和S4四个按键,对时间进行修改和闹钟的设置。
定时时间到能发出报警声,使用KEIL软件编辑程序,生成HEX文件,然后用protel进行仿真,系统运行初始状态:
按下S1键显示闹钟,松开后显示时间;
按下S4键进入时间修改模式,再按S4键时间的时加1,按S2分加1,调整结束后按下S1恢复正常显示;
按下S3键进入闹钟修改模式,再按S3键闹钟的时加1,按S2分加1,调整结束后按下S1恢复正常显示。
4课程设计体会:
课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在,作为二十一世纪的大学生来说掌握单片机的开发技术是十分重要的。
通过本次单片机原理及应用课程设计使我充分认认到了课程设计的理要性和必要性,本次设计使我对已学过的基础知识有了更深入的理解,学会了独立思考、独立工作以及对应用所学基本理论分析和解决实际问题的能力有了很大的提高。
另外,本次设计使我的实际操作技能得到了训练,同时也进一步培养了我严谨的科学作风。
回顾起此次单片机课程设计,从选题到定稿,从理论到实践,在整整两个星期的日子里,可以说得是苦多于甜,但是从中却学到很多很多的的东西,不但巩固了以前所学过的知识,而且对单片机原理课外知识也的到了拓展。
做的过程中,开始的确遇到了不少困难的问题,比如说芯片管脚不熟悉怎么放置,对单片机汇编语言掌握得不好等等,同时在这过程中也发现了自己的许多不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
通过单片机课程设计之后,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我们还学会了如何去培养创新精神和严谨的科学作风,从而不断地战胜自己,超越自己。
更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。
参考文献:
[1].何宏.单片机原理及接口技术教程.北京:
国防工业出版社,2008.4
[2].李广弟.单片机基础.北京:
北京航空航天大学出版社,1992
[3].何立民.单片机应用技术大全.北京:
北京航空航天大学出版社,1994
[4].张毅刚.单片机原理及接口技术.哈尔滨:
哈尔滨工业大学出版社,1990
附1:
元器件清单
元器件名称
型号
数量
7段4位共阴数码管
7SEG-MPX4-CC
2
51单片机
AT89C51
1
按钮
BUTTON
4
电容
CAP
晶振
CRYSTAL
继电器
G2R-14-DC5
PNP三极管
PNP
电阻
RES
排阻
RESPACK-8
蜂鸣器
SPEAKER
电源
POWER
接地
GROUND
发光二极管
LED
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 定时 闹钟 设计 12