单片机用定时器设计的门铃.docx
《单片机用定时器设计的门铃.docx》由会员分享,可在线阅读,更多相关《单片机用定时器设计的门铃.docx(6页珍藏版)》请在冰豆网上搜索。
单片机用定时器设计的门铃
*******大学
课程设计说明书
课程设计名称:
《单片机》课程设计
专业:
机械设计制造及其自动化
学号:
1224140146
学生姓名:
***
指导教师:
****
1设计任务1
2系统总体设计1
3硬件系统设计2
4程序流程图3
5程序4
6软件仿真7
7设计总结7
参考文献8
1设计任务
用定时器设计的门铃,通过定时器控制门铃声响的系统设计,掌握定时/计数器的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力。
要求是按下开关的时候开启中断,定时器溢出进入中断后,在软件以标志位i来判断门铃声音呢,开始响铃。
先是“叮”,标志位i加1,延时后接着是“咚”,标志位i加1,然后是关中断。
检测铃响脉宽也是以标志位i来识别“叮咚”。
当i为0时给示波器A通道高电平,i为2时,给示波器B通道高电平。
2系统总体设计
1.针对本课题的设计任务,进行分析得到,本次设计是利用单片机实现对扬声器发省的,控制采用按钮操作,c51单片机进行控制,最终使扬声器发出“叮咚”声音。
2.绘制电路原理图,编写程序,并进行仿真,基本实现对输出频率的控制,用扬声器的管理。
其中有两个声音“叮”、“咚”,因此有两个输出的频率对应于两个不同扬声器声音的输出。
最终利用单片机实现对扬声器发声的控制,采用按钮操作,c51单片机进行控制,最后使扬声器发出“叮咚”声音。
3.本设计能模拟基本的扬声器发出声响的系统,是采用中断的方式定时控制不同频率的输出。
定时/计数器工作方式寄存器,定时器采用T0定时器工作于模式0,位数:
13位。
计数范围:
0-8192;中断设置每次定时器中断执行两个不同频率的输出。
3硬件系统设计
单片机设计的门铃系统,可用单片机直接控制输出频率变化来实现门铃声响可以广泛的应用到现实门铃的设计中。
据此,本设计系统以单片机为控制核心,连接成最小系统。
系统的总体框图如上图所示。
因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。
特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。
当定时器1被用作波特率发生器时,波特率工作于方式1和方式3是由定时器1的溢出率和SMOD的值(PCON.7-----双倍速波特率)决定。
4程序流程图
5程序
ORG0000H;规定汇编的起始地址为0000H
LJMPMAIN;把MAIN函数进行长转移
ORG000BH
LJMPT0ISR
ORG0030H
MAIN:
MOVTMOD,#00H;定义工作方式寄存器TMOD用于选择定时器/计数器的
工作模式和工作方式
MOVIE,#82H
MOVTH0,#HIGH(8192-700);定义定时器/计数器0(高字节)的地址
MOVTL0,#LOW(8192-700);定义定时器/计数器0(低字节)的地址
MOVR2,#0
MOVR3,#0
LOOP:
JBP2.0,$
SETBTR0
JNBP2.0,$;直接寻址位为零则转移
SJMPLOOP
T0ISR:
CPLP2.3;对P2.3取反
LCALLADDP
LCALLCMPP
JNZT01
MOVTH0,#HIGH(8192-700)
MOVTL0,#LOW(8192-700)
RETI;从中断返回
T01:
DECA;累加器减1
JNZT02
MOVTH0,#HIGH(8192-1000)
MOVTL0,#LOW(8192-1000)
RETI
T02:
CLRTR0
MOVR2,#0
MOVR3,#0
RETI
ADDP:
MOVA,R2
ADDA,#1;把立即数1加上累加器中的数寄存到累加器A中
MOVR2,A
MOVA,R3
ADDCA,#0;把立即数加到累加器
MOVR3,A
RET
CMPP:
CLRC
MOVA,R2
SUBBA,#90H
MOVA,R3
SUBBA,#1
JCCMPP0
CLRC;清进位位
MOVA,R2
SUBBA,#20H;累加器减去立即数20H
MOVA,R3
SUBBA,#3
JCCMPP1
MOVA,#2
RET
CMPP1:
MOVA,#1
RET
CMPP0:
MOVA,#0
RET;从子程序中返回
END
6软件仿真
7设计总结
这次课程设计使我得到了不小的收获,发现了自己的很多不足,知识体系上的漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还需很大提高。
首先拿到这个题目,我就开始收集大量的资料,包括C51单片机的原理,人的听力范围等等与课程设计相关的各类知识,了解了很多之前并未注意的知识。
通过这次课程设计,开阔了我们的视野,提高了我们的兴趣。
在今后的学习中我们仍可以进行这方面的尝试,开拓自己的眼界和操作能力,提高自己的动手制作能力,在动手中学习,在动手中收获。
参考文献
[1]楼然苗.李光飞.51系列单片机设计实例[M].北京航空航天大学出版社,2001.
[2]王东峰等.单片机C语言应用100例[M].电子工业出版社,2009.
[3]刘守义等.单片机技术基础[M].西安电子科技大学出版社,2007.