- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机用定时器设计的门铃
******* 大 学
课 程 设 计 说 明 书
课程设计名称:《单片机》课程设计
专 业:机械设计制造及其自动化
学 号: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单片机进行控制,最终使扬声器发出“叮咚”声音。
绘制电路原理图,编写程序,并进行仿真,基本实现对输出频率的控制,用扬声器的管理。其中有两个声音“叮”、“咚”,因此有两个输出的频率对应于两个不同扬声器声音的输出。最终利用单片机实现对扬声器发声的控制,采用按钮操作,c51单片机进行控制,最后使扬声器发出“叮咚”声音。
本设计能模拟基本的扬声器发出声响的系统,是采用中断的方式定时控制不同频率的输出。定时/计数器工作方式寄存器,定时器采用T0定时器工作于模式0,位数:13位。计数范围:0-8192 ;中断设置每次定时器中断执行两个不同频率的输出。
3 硬件系统设计
单片机设计的门铃系统,可用单片机直接控制输出频率变化来实现门铃声响可以广泛的应用到现实门铃的设计中。
据此,本设计系统以单片机为控制核心,连接成最小系统。系统的总体框图如上图所示。因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。当定时器1被用作波特率发生器时,波特率工作于方式1和方式3是由定时器1的溢出率和SMOD的值(PCON.7-----双倍速波特率)决定。
4 程序流程图
5 程序
ORG 0000H ;规定汇编的起始地址为0000H
LJMP MAIN ;把MAIN函数进行长转移
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#00H ;定义工作方式寄存器TMOD用于选择定时器/计数器的
工作模式和工作方式
MOV IE,#82H
MOV TH0,#HIGH(8192-700) ;定义定时器/计数器0(高字节)的地址
MOV TL0,#LOW(8192-700) ;定义定时器/计数器0(低字节)的地址
MOV R2,#0
MOV R3,#0
LOOP:
JB P2.0,$
SETB TR0
JNB P2.0,$ ;直接寻址位为零则转移
SJMP LOOP
T0ISR:
CPL P2.3 ;对P2.3取反
LCALL ADDP
LCALL CMPP
JNZ T01
MOV TH0,#HIGH(8192-700)
MOV TL0,#LOW(8192-700)
RETI ;从中断返回
T01:
DEC A ;累加器减1
JNZ T02
MOV TH0,#HIGH(8192-1000)
MOV TL0,#LOW(8192-1000)
RETI
T02:
CLR TR0
MOV R2,#0
MOV R3,#0
RETI
ADDP:
MOV A,R2
ADD A,#1 ;把立即数1加上累加器中的数寄存到累加器A中
MOV R2,A
MOV A,R3
ADDC A,#0 ;把立即数加到累加器
MOV R3,A
RET
CMPP:
CLR C
MOV A,R2
SUBB A,#90H
MOV A,R3
SUBB A,#1
J
文档评论(0)