单片机用定时器设计的门铃

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

*******大学课程设计说明书

课程设计名称:《单片机》课程设计

专业:机械设计制造及其自动化

学号:

学生姓名:***

指导教师:****

目录

1 设计任务 (1)

2 系统总体设计 (1)

3 硬件系统设计 (2)

4 程序流程图 (2)

5 程序 (2)

6 软件仿真 (6)

7 设计总结 (6)

参考文献 (6)

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程序

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

JC CMPP0

CLR C ;清进位位

MOV A,R2

SUBB A,#20H ;累加器减去立即数20H MOV A,R3

SUBB A,#3

JC CMPP1

MOV A,#2

RET

CMPP1:

MOV A,#1

RET

CMPP0:

MOV A,#0

RET ;从子程序中返回

END

6软件仿真

7设计总结

这次课程设计使我得到了不小的收获,发现了自己的很多不足,知识体系上的漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还需很大提高。

首先拿到这个题目,我就开始收集大量的资料,包括C51单片机的原理,人的听力范围等等与课程设计相关的各类知识,了解了很多之前并未注意的知识。通过这次课程设计,开阔了我们的视野,提高了我们的兴趣。在今后的学习中我们仍可以进行这方面的尝试,开拓自己的眼界和操作能力,提高自己的动手制作能力,在动手中学习,在动手中收获。

参考文献

[1] 楼然苗.李光飞.51系列单片机设计实例[M].北京航空航天大学出版社,2001.

[2]王东峰等.单片机C语言应用100例[M].电子工业出版社,2009.

[3]刘守义等.单片机技术基础[M].西安电子科技大学出版社,2007.

相关文档
最新文档