基于单片机的电子门铃设计说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
2010——2011学年
第一学期
设计名称:基于单片机的电子门铃设计学生学号:
学生姓名:
指导教师:
院、系:信息工程学院
教研室:电子信息
设计目的:
1、动手焊接单片机硬件电路板,增进对单片机的感性认识,加深对单片机理论方面的理解。
2、了解单片机的部功能模块的应用。
3、了解和掌握单片机应用系统的硬件设计和制作过程、方法及实现。设计任务:
1、了解单片机的组成结构,设计相关电路原理图;
2、根据原理图焊接硬件电路。
3、实现所要求的功能。
设计要求:
1、要求理解单片机的组成结构;
2、根据给出的主要芯片,设计相关电路原理图;
3、焊接电路板,检测并调试。
设计目标:
1、设计相关电路图;
2、焊接电路板;
3、检测并调试。
设计容:
传统的电子音乐门铃通常采用分立元件或专用的音乐IC制作。本文介绍一个用AT89C51单片机设计的电子音乐门铃,仅需AT89C51单片机最小系统再加一片LM386做音频小功放驱动扬声器发声。客人来访时,按一下按钮,门铃就会奏出优美的电子音乐声;再按一下,门铃又会奏出下一首电子音乐声音.共可以奏出六首不同旋律的歌曲。
设计原理:
音乐是由音符组成,不同的音符是由相应频率的振动产生。产生不同的音频需要有不同固定周期的脉冲信号。要产生音频脉冲,只要算出某一音频的周期T(1/f) ,然后将此周期T除以2,即为半周期的时间。我们利用单片机的部定时器TO,使其工作在计数器模式MODEl下.初始化适当的计数值THO及TLO以计时这个半周期时间。每当计时时间到后就将输出脉冲的P1.0口反相。然后重复计时此半周期时间,再对P1.0口反相,就可在单片机Pl.0引脚上得到此频率的脉冲。P1.0引脚脉冲接LM386作音频功放,然后辅出到扬声器,从而发出美妙的乐音。
例如设单片机晶振为12MHz,每计数一次用时1µs。我们要产生f低音DO,其频率为392Hz,周期T=1/392=2551µs,半周期时间为1276µs。因此计数器应每计数1276次时将P1.0口反相,即计数初值应设定为(THxTLx)=一
1276=64260,就可得到低音D0。P3.5口作为控制门铃的按钮,每按一次,产生的电子乐音就改变一次,按完6次,再重复循环。6首歌曲分别为《生日快乐》、《两只老虎》、《三只小猫》、《哈巴狗》、《不倒翁》、《妹妹背着洋娃娃》。
硬件电路设计:
系统以AT89C51单片机为核心,加上外围电源时钟电路、LM386功放电路及扬声器电路组成。AT89C51是一种低功耗/低电压、高性能的8位单片机,部除CPU外,还包括128字节RAM,4个8位并行I/O口,5个中断优先级,2层中断嵌套中断,2个16位可编程定时计数器,片集成4K字节可改变程序Flash存储器,具有低功耗、速度快、程序擦写方便等优点,完全满足本系统设计需要。系统通过P1.0连接功放电路从而驱动扬声器放出电子声乐,P3.5口连接门铃按键。此电子音乐门铃的电路连接图如下图1所示。
软件设计:
首先建立音乐,把音乐的音符找出,建立各个音符的定时常数T值表,如表1所示。
编写程序时我们把T值表按顺序建立在“TABLE”。每个发音符使用1个字节,字节的高4位(简谱码)代表音符的高低,低4位(节拍码)代表音符的节拍。如果l拍为0.4s,1/4拍就是0.1s,只要设定延迟时间就可求得节拍的时间。假设1/4拍为1DELAY,则1拍应为4 DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数。1/4拍的延时时间在此我们设为125ms,节拍码如表2所示。音符节拍码编程时放在程序的最后面“SONGx”处。
表 1 音符对应的简谱码、频率、定时常数
音符简谱码频率(Hz)定时常数(T)低SO139264260
低LA244064400
低TI349464524
中DO452364580
中RE558764684
中MI665964777
中FA769864820
中SO878464898
中LA988064968
中TIA98865030
高DOB104665058
表2节拍码及节拍数
本系统采用MCS-51汇编语言编程。软件程序由主程序、定时器TO中断服务程序和延时子程序组成。系统初始化后,系统扫描按键(P3.5口的电平)判断是否有键按下,有键按下时,根据按下键的次数,向音频字符码指针赋以不同歌曲的地址,通过定时器TO中断子程序使P1.0口输出相应频率的音频脉冲,以达到发声目的。主程序流程图如图2所示。
图2
定时器TO
中断服务程序流程图如图3
所示。
图3仿真界面如下:
源程序:
ORG 0000H
LJMP MAIN
ORG 001B
LJMP TIM1
MAIN: MOV TMOD,#10H
SETB ET1
SETB EA
MAIN1: MOV 60H,#00H NEXT: MOV A,60H
MOV DPTR,#SONG
MOVC A,A+DPTR
MOV R1,A
JZ STOP
ANL A,#0FH
MOV R6,A
MOV A,R1
SWAP A
ANL A,#0FH
JNZ SING
CLR TR1
AJMP DT
SING: DEC A
MOV 22H,A
RL A
MOV DPTR,#TABLE