定时打铃Word格式.docx
《定时打铃Word格式.docx》由会员分享,可在线阅读,更多相关《定时打铃Word格式.docx(40页珍藏版)》请在冰豆网上搜索。
(1)显示时钟格式:
**时**分**秒。
(2)可任意设定时间达到定时控制,定时点可有2个。
(3)定时时间到,打铃1分钟,然后自动关闭打铃。
第二章系统组成及工作原理
2.1系统组成
图2-1定时打铃器系统框图
2.2工作原理
定时打铃器的设计可以分为两个阶段:
时钟显示设计和响铃设计。
时钟显示部分的设计主要由8255完成,8255片内定时中断,设定初值(如10ms),再取一单元进行计数,当中断一定次数(如100次),秒加1,计数器清零……一直循环,当秒加到60,分加1,秒清零……当分加到60则时加1,分清零,实现时钟计数,程序调用Display函数最终显示到数码管上。
响铃部分相对较简单,由at89s52单片机完成。
将P1.0与蜂鸣器相连,设定好响铃时间。
单片机接收到8255发送来的定时响铃信号的瞬间,向蜂鸣器发出低电平,蜂鸣器开始响铃,1分钟时间到时,8255向单片机发出关闭响铃的信号。
第三章硬件电路方案设计
图3-1方案一电路设计图
3.1方案一
如图3-1,方案一所设计的定时打铃器,大致由单片机、蜂鸣器、数码管显示部分及按键检测部分组成,利用AT89C51,通过数码管扫描、响铃、按键处理、比较等模块,实现当前时钟的显示及响铃。
蜂鸣器在响铃模块的控制下,用于模拟现实中的打铃;
显示器为6位数码管,通过数码管扫描,用于显示当前时间的“时”、“分”、“秒”,通过按键处理模块,对两个按键扫描,实现对时和分的校正。
比较模块为当前时间与时间表内时间比较,若相等就响铃。
3.2方案二
利用实验室里的实验箱,8255与AT89s52单片机、6个共阳数码管内部相连,从单片机P1.0引出一根线到蜂鸣器即可。
3.3方案比较
方案一与方案二相比,原理基本上一样。
但是考虑到实验室的客观原因,方案一更容易实现,因此设计的时候采用了方案一,直接使用试验箱设计。
3.4单元电路设计
3.4.1时钟显示设计
如图3-2,所示,用8255控制,用数码管的显示功能来设计。
显示部分硬件用六只八段数码管显示,这些LED发光二极管的阳极是互相连接在一起的,所以称为共阳极数码管。
八段接收到的不同电平,显示出不同的数字。
该模块主要是将运算模块和校时模块运算出来并存放在内存单元里的十六进制表示的时位、分位和秒位数值转化为十进制,并通过数码管显示出来。
只要做到每送一次段选码时也送一次位扫描码,并且每送一次位扫描码后,位码中的0右移一位作为下一次的位扫描码,即可实现由左向右使6只LED依次出现数字显示。
图3-28255时钟显示部分
3.4.2响铃设计
图3-3蜂鸣器响铃单元
单片机P1.0引出一根线,连接到蜂鸣器单元,如图3-3。
图中反相器的作用是驱动喇叭的,此方案的优点是:
硬件电路简单,稳定,现起来方便,很适合于实现中。
第四章软件设计
4.1程序设计思想
本次设计最主要的思想体现在使用了模块化的编程思想。
在确定了方案后,就仔细思考并统筹了整个程序框架,然后将其分为主程序、中断子程序、键盘扫描子程序、显示子程序、打铃子程序等几个部分来分别设计,这样不仅思路清楚,而且便于程序的编写和调试。
4.2主程序设计
主程序是整个系统软件的运行主体,各个子系统软件都必须经过它的调度,才能运行得当。
根据设计的功能要求,主程序中主要完成内存单元及定时器的初始化,显示和键盘的扫描。
部分按键说明:
A键
设定定时点1
MON键
确定键
B键
设定定时点2
F1/LS键
时加‘+1’键
C键
设定定时点3
STEP键
时加‘-1’键
D键
设定定时点4
RG/FS键
分加‘+1’键
F2/NX键
校时键
SCAL键
分加‘-1’键
表4-1
4.2.1主程序流程图
根据设计所规定要求,定时打铃器设计的流程图如图4.1所示。
(图4.1)主程序流程图
4.3子程序设计
根据这次模块化的设计思想,总共分成了按键处理子程序、中断服务程序、显示子程序三个部分。
4.3.1按键处理子程序
按键处理子程序主要包括读键值处理、数字键处理、校时键处理、定时键处理、确认键处理等,其流程图如图4.2所示:
4.3.2定时中断服务程序设计
本次中断服务程序设计中用了T0定时中断,其流程图如图4.3所示:
1、定时器初值分析
T0定时最长时间约为130ms,可用T0产生100ms的定时,再通过计时10次就可达到1s。
设定时初值为X(2^16-X)*2μs=100ms,得X=3CB0H.即TH0=3CH,TL0=B0H。
图4.3定时中断服务程序流程图
4.3.3显示子程序设计
这次显示电路DIR处理很简单,主要是通过一个子程序将30H、31H、32H单元中的内容“分割”到显缓区40H到45H中,从而调用DIR显示,其流程图如图4.4所示:
图4.4显示程序流程图
第五章程序流程图
7.1主程序流程图
a.主程序流程图:
图7-1主程序流程图
7.2中断程序流程图
图7-2中断程序流程
第六章调试结果及分析
使用实验箱上的元器件,对8255及单片机编程,采用定时器T0和T1进行中断设计。
在计算机上运行单片机软件开发系统,输入程序代码,进行调试。
编译无误产生目标文件,连接到实验箱的硬件电路上。
开始运行,6个数码管开始闪烁,1秒过去却不开始计数。
检查代码的时候发现显示函数中的Delay_ms
(2)由于粗心输入了Delay_ms(22),改正后重新运行,数码管静止显示时间10:
00:
00。
为什么不开始计数呢?
原因可能有两个:
10ms计数点xx设置错误或者是秒进位sec++设置错误。
经过与同组人仔细的排查分析,从设计流程的角度出发,发现是10ms计数点xx的位置设置不当。
进行了几次修改,最后得到正确的运行结果(程序见附录二)。
数码管能正常显示计时后,将设计好的响铃部分程序加到主函数内,先用LED灯代替蜂鸣器进行测试,P1.0引出一根线到L1灯,到了定时时间能实现亮灯,1分钟后灯自动灭。
至此时,整个设计基本上完成了,连接蜂鸣器,设计要求全部都能实现,而且能设置多个定时时间,能随意设置响铃时间。
第七章总结
通过为期4周的课程设计,本人对过去学过的知识有了进一步巩固,也学到了很多课堂上学不到的知识。
特别是对各种元器件的性能和设计方法有了更深刻的了解。
但是,由于对单片机课程的了解不深,在软件设计编程当中还是能力不够,对比较复杂的编程不能够很快及时的完成,让自己进一步明白了自己在这方面知识的短浅,激励了自己在日后的学习中应更加的努力。
由于学校实施企业式的管理模式,要求我们象职工一样上下班,对我体会了作为一位上班族的感觉,使我明白日后应该成为一位合格的爱岗、敬岗的员工。
还从中学会了遵守纪律、做事细心、勇于创新的人生观。
本次课程设计是用8255单片机CPU及接口电路设计一个数字时钟,经过一个多星期的调试,结果满足设计要求,验证无误。
设计主要用到了多种芯片,程序也比较长比较麻烦,同时也遇到了不少困难,尤其是关于校时模块的设计实现。
关于显示模块,在以前的实验中做过,所以问题很容易解决。
通过本次设计,我系统的了解了实时时钟的设计流程,尤其是硬、软件的设计方法,掌握了键盘显示电路的基本功能及编程方法,掌握了键盘电路和显示电路的一般原理,也进一步掌握了8255的使用和中断处理器程序的编程方法。
开拓了思路,锻炼了实践动手能力,提高了分工协作能力和分析问题,解决问题的能力,达到了本次课程设计的目的。
参考文献
【1】张先庭.单片机原理、接口与C51应用程序设计.北京:
国防工业出版社,2011.1
【2】刘建清.51单片机C语言非常入门与视频演练.北京:
电子工业出版社,2010.5
【3】张义和.例说51单片机(C语言版).北京:
人民邮电出版社,2010.6
【4】张友德、赵志英、涂时亮.单片微型机原理、应用与实验.上海.复旦大学出版社,2008年5月.
【5】吴开志、陈黎娟、邓谦、任爱山.单片机技术及应用实验指导书.南昌.南昌航空大学出版社,2008年.
【6】吴清绣.微型计算机原理及接口技术.北京.中国科学技术大学出版社,2004年.
【7】吴向军.汇编语言程序设计.北京.高等教育出版社,2001年.
【8】贾金铃.微型计算原理及应用.重庆.重庆大学出版社,2006年.
【9】胡汉才.单片机原理及其接口技术.北京.清华大学出版社.2004年
附录一方案一代码
ORG0000H;
LJMPMAIN
ORG000BH
LJMPINT
MAIN:
MOVSP,#67H
MOVTMOD,#01H;
定时器0选择方式1作为时钟信号
MOVIE,#8AH;
中断控制IE设为8A
MOVTH0,#3CH;
定时器0初始化
MOVTL0,#0B0H
MOV30H,#23H
MOV31H,#59H
MOV32H,#50H
MOV33H,#00H;
33H清0
MOV34H,#1AH;
定时1的显缓单元
MOV35H,#00H
MOV36H,#00H
MOV37H,#2AH;
定时2的显缓单元
MOV38H,#00H
MOV39H,#00H
MOV3AH,#3AH;
定时3的显缓单元
MOV3BH,#00H
MOV3CH,#00H
MOV3DH,#4AH;
定时4的显缓单元
MOV3EH,#00H
MOV3FH,#00H
MOV40H,#0BAH;
时显缓单元
MOV41H,#00H
MOV42H,#00H
MOV43H,#00H
MOV79H,#00H
MOV7AH,#00H
MOV7BH,#00H
MOV44H,#00H
MOVR0,#79H;
将显缓单元79H给R0
MOVR3,#06H
XQ:
MOV@R0,#00H
INCR0
DJNZR3,XQ
MOVR0,#79H
CLR08H
CLR09H
CLR00H
CLR0AH
CLR0BH;
关闭定时器标志
CLR0CH
CLR0DH
CLR0EH
MAN:
LCALLBJ
MOVA,44H
CPLA
MOVP1,A
LCALLKEYS
MOVA,B
CJNEA,#0FFH,D1
JB09H,D8
LCALLTM
JMPMAN
D1:
SETB09H
DECA
MOVR7,A
RLA
ADDA,R7
MOVDPTR,#PMTAB
JMP@A+DPTR
D8:
LCALLDISP
LJMPMAN
PMTAB:
LJMPPM0
LJMPPM1
LJMPPM2
LJMPPM3
LJMPPM4
LJMPPM5
LJMPPM6
LJMPPM7
LJMPPM8
LJMPPM9
LJMPPM10
PM0:
CLR0FH
SETB0AH
MOV43H,#01H
MOVR1,#36H
LCALLTM0
LJMPD8
PM1:
CLR0FH
MOV43H,#02H
MOVR1,#39H
PM2:
MOV43H,#03H
MOVR1,#3CH
PM3:
MOV43H,#04H
MOVR1,#3FH
PM4:
SETB0FH
MOV43H,#05H
MOV42H,31H
MOV41H,30H
MOVR1,#42H
PM5:
SETBTR0
PM6:
JB0AH,GGG
GGG:
MOVA,43H
MOVDPTR,#PMTAB2
PMTAB2:
LJMPPC0
LJMPPC1
LJMPPC2
LJMPPC3
LJMPPC4
PC0:
MOVA,35H
CJNEA,#23H,TY3
TY3:
JCTY
CLRA
JMPTY1
TY:
ADDA,#01H
DAA
TY1:
MOV35H,A
PC1:
MOVA,38H
CJNEA,#23H,TP3
TP3:
JCTP
JMPTP1
TP:
TP1:
MOV38H,A
PC2:
MOVA,3BH
CJNEA,#23H,TB3
TB3:
JCTB
LJMPB1
TB:
B1:
MOV3BH,A
PC3:
MOVA,3EH
CJNEA,#23H,TW3
TW3:
JCTW
JMPTW1
TW:
TW1:
MOV3EH,A
PC4:
MOVA,41H
CJNEA,#23H,TE3
TE3:
JCTE
JMPTE1
TE:
TE1:
MOV41H,A
CLRTR0
MOV31H,42H
MOV30H,41H
MOV32H,#00H
MOV33H,#00H
PM7:
JB0AH,GGG1
GGG1:
MOVDPTR,#PMTAB1
PMTAB1:
LJMPPN0
LJMPPN1
LJMPPN2
LJMPPN3
LJMPPN4
PN0:
MOVA,35H
CJNEA,#00H,TU
MOVA,#23H
JMPTU1
TU:
MOV79H,A
ADDA,#00H
CJNEA,79H,TU3
TU3:
JCTU1
SUBBA,#0CH
TU1:
PN1:
CJNEA,#00H,TG
JMPTG1
TG:
CJNEA,79H,TG3
TG3:
JCTG1
TG1:
PN2:
CJNEA,#00H,EK
JMPK1
EK:
CJNEA,79H,EK3
EK3:
JCK1
K1:
PN3:
CJNEA,#00H,EB
JMPEB1
EB:
CJNEA,79H,EB3
EB3:
JCEB1
EB1:
PN4:
CJNEA,#00H,EY
JMPEY1
EY:
CJNEA,79H,EY3
EY3:
JCEY1
EY1:
PM8:
JB0AH,GGG2
GGG2:
MOVDPTR,#PMTAB3
PMTAB3:
LJMPPD0
LJMPPD1
LJMPPD2
LJMPPD3
LJMPPD4
PD0:
MOVA,36H
CJNEA,#59H,TTT3
TTT3:
JCTTT
JMPTTT1
TTT:
TTT1:
MOV36H,A
PD1:
MOVA,39H
CJNEA,#59H,AF3
AF3:
JCAF
JMPAF1
AF:
AF1:
MOV39H,A
MOVR1,#39H
PD2:
MOVA,3CH
CJNEA,#59H,YY3
YY3:
JCYY
JMPYY1
YY:
YY1:
MOV3CH,A
MOVR1,#3CH
PD3:
MOVA,3FH
CJNEA,#59H,AS3
AS3:
JCAS
JMPAS1
AS:
AS1:
MOV3FH,A
MOVR1,#3FH
PD4:
MOVA,42H
CJNEA,#59H,HZ3
HZ3:
JCHZ
JMPHZ1
HZ:
HZ1:
MOV42H,A
MOVR1,#42H
PM9:
JB0AH,GGG3
GGG3:
MOVDPTR,#PMTAB5
PMTAB5:
LJMPPQ0
LJMPPQ1
LJMPPQ2
LJMPPQ3
LJMPPQ4
PQ0:
MOVA,36H
CJNEA,#00H,QQ
MOVA,#59H
JMPQQ1
QQ:
CJNEA,79H,QQ3
QQ3:
JCQQ1
SUBBA,#0CH
QQ1:
PQ1:
MOVA,39H
CJNEA,#00H,FF
JMPFF1
FF: