logo资料库

基于单片机的电子门铃设计.doc

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
课 程 设 计 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) 低SO 低LA 低TI 中DO 中RE 中MI 中FA 中SO 中LA 中TI 高DO 高RE 1 2 3 4 5 6 7 8 9 A B C 392 440 494 523 587 659 698 784 880 988 1046 1175 64260 64400 64524 64580 64684 64777 64820 64898 64968 65030 65058 65110
高MI 高FA 高SO 不发音 D E F 0 1318 1397 1568 65157 65178 65217 表2 节拍码及节拍数 节拍码 节拍数 1 2 3 4 5 6 8 A C F 1/4拍 2/4拍 3/4拍 1拍 1又1/4拍 1又1/2拍 2拍 2又1/2拍 3拍 3又3/4拍 本系统采用MCS-51汇编语言编程。软件程序由主程序、定时器TO中断服务 程序和延时子程序组成。系统初始化后,系统扫描按键(P3.5口的电平)判断是 否有键按下,有键按下时,根据按下键的次数,向音频字符码指针赋以不同歌 曲的地址,通过定时器TO中断子程序使P1.0口输出相应频率的音频脉冲,以达 到发声目的。主程序流程图如图2所示。
N Y Y Y N N 图2 定时器TO中断服务程序流程图如图3所示。
仿真界面如下: 图3 00H START ORG TIM0 0BH 源程序: ORG JMP LJMP START:MOV IE,#10000010B MOV JB P3.5, $ CALL DELAY1 TMOD,#00000001B ;初始化程序 ;主程序
JNB MOV P3.5, $ 31H,#00 START0: 30H,#SONG A,30H DPTR,# TABLE A,#0FH A,#0FH R2,A END0 R5,A A,R2 SING TR0 D1 MOV NEXT: MOV MOV MOVC A,@A+DPTR MOV JZ ANL MOV MOV SWAP A ANL JNZ CLR JMP SING: DEC MOV RL MOV MOVC A,@A+DPTR MOV MOV MOV RL INC MOVC A,@A+DPTR MOV MOV SETB TH0,A 21H,A A,22H A A TL0,A 20H,A TR0 A 22H,A A DPTR,#TABLE D1: CALL DELAY A,#00H 30H NEXT TR0 A,31H INC JMP END0: CLR MOV XRL END1 JNZ P3.5,$ JB CALL DELAY1 P3.5,$ JNB INC 31H 30H,#SONG1 MOV JMP NEXT END1: MOV A,31H
分享到:
收藏