基于单片机的电子音乐门铃设计说明书.docx

上传人:b****0 文档编号:9824568 上传时间:2023-05-21 格式:DOCX 页数:21 大小:342.73KB
下载 相关 举报
基于单片机的电子音乐门铃设计说明书.docx_第1页
第1页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第2页
第2页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第3页
第3页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第4页
第4页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第5页
第5页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第6页
第6页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第7页
第7页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第8页
第8页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第9页
第9页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第10页
第10页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第11页
第11页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第12页
第12页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第13页
第13页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第14页
第14页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第15页
第15页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第16页
第16页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第17页
第17页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第18页
第18页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第19页
第19页 / 共21页
基于单片机的电子音乐门铃设计说明书.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的电子音乐门铃设计说明书.docx

《基于单片机的电子音乐门铃设计说明书.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子音乐门铃设计说明书.docx(21页珍藏版)》请在冰点文库上搜索。

基于单片机的电子音乐门铃设计说明书.docx

基于单片机的电子音乐门铃设计说明书

一、设计目的

二、设计任务

三、设计要求

四、设计步骤(流程)

五、设计原理

六、设计内容

6.1硬件设计

6.2单片机引脚说明

6.3主要电路设计

6.3.1时钟电路

6.3.2复位电路

6.3.3功率放大电路

6.4软件设计

6.4.1音乐符设计

6.4.2程序设计

6.4.3程序流程图

6.4.4仿真界面图

6.5.5编程

七、设计小结

参考文献

 

一、设计目的:

1、动手焊接单片机硬件电路板,增进对单片机的感性认识,加深对单片机理论方面的理解。

2、了解单片机的内部功能模块的应用。

3、了解和掌握单片机应用系统的硬件设计和制作过程、方法及实现。

二、设计任务:

1、了解单片机的组成结构,设计相关电路原理图;

2、根据原理图焊接硬件电路。

3、实现所要求的功能。

三、设计要求:

1、要求理解单片机的组成结构;

2、根据给出的主要芯片,设计相关电路原理图;

3、焊接电路板,检测并调试。

四、设计步骤(流程):

1、根据电子音乐门铃原理设计相关电路图;

2、焊接电路板;

3、编写程序、检测并调试。

五、设计原理:

音乐是由音符组成,不同的音符是由相应频率的振动产生。

产生不同的音频需要有不同固定周期的脉冲信号。

要产生音频脉冲,只要算出某一音频的周期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首歌曲分别为《生日快乐》、《两只老虎》、《三只小猫》、《哈巴狗》、《不倒翁》、《妹妹背着洋娃娃》。

六、设计内容:

传统的电子音乐门铃通常采用分立元件或专用的音乐IC制作。

本文介绍一个用AT89C51单片机设计的电子音乐门铃,仅需AT89C51单片机最小系统再加一片LM386做音频小功放驱动扬声器发声。

客人来访时,按一下按钮,门铃就会奏出优美的电子音乐声;再按一下,门铃又会奏出下一首电子音乐声音.共可以奏出六首不同旋律的歌曲。

6、1硬件设计

电子音乐门铃设计系统以AT89C51单片机为核心加上外围电源时钟电路、LM386功放电路及扬声器电路组成。

ATMEL公司生产的AT89C51单片机是一种低功耗且电压性能高的8位单片机,内部除CPU外,还包括128字节RAM,4个8位并行I/O口,5个中断优先级,2层中断嵌套,2个16位可编程计数器,片内集成4k字节可改变程序FLASH,具有低功耗、速度快、程序擦写方便等优点,完全满足本系统设计需要,系统通过P1.0连接功放电路从而驱动扬声器产生电子乐声,P3.5口接门铃按键。

电子音乐门铃的电路连接图如下图1所

示:

6.2单片机引脚说明

AT89C51单片机是标准的40引脚双列直插式集成电路芯片,引脚分布可如下图2所示:

图2AT89C51单片机引脚分布图

P0.0~P0.7P0口8位双向线(在引脚的32~39号端子);

P1.0~P1.7P1口8位双向线(在引脚的1~8号端子);

P2.0~P2.7P2口8位双向线(在引脚的21~28号端子);

P3.0~P3.7P3口8位双向线(在引脚的10~17号端子)。

1)P0口有三个功能:

外部扩展存储器时,当作数据总线(如图中的D0~D7为数据总线接口)

外部扩展存储器时,当作地址总线(如图中的A0~A7为地址总线接口)

不扩展时,可作一般的I/O口使用,但内部无上拉电阻,作为输入输出时应在外部接上拉电阻。

2)P1口功能

P1口只作I/O口使用,其内部有上拉电阻。

3)P2口功能

扩展外部存储器时,当作地址总线使用;

作一般I/O口使用,其内部有上拉电阻。

4)P3口功能

除了作为I/O口使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。

当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源,所以如果P0口作为输入时,或处在高阻抗状态,只有外接一个上拉电阻才能有效。

5)ALE/PROG地址锁存控制信号

在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。

PROG为编程脉冲的输入端,在AT89C51单片机内部有一个4kB的程序存储器(ROM),ROM的作用就是用来存放用户需要执行的程序。

我们如何把编写好的程序存入这个ROM中的呢?

实际上是通过编程脉冲输入采能写进去,而这个脉冲的输入端口就是PROG。

6)PSEN外部程序存储器读选通信号

在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作:

内部ROM读取时,PSEN不动作;

外部ROM读取时,在每个机器周期会动作两次;

外部RAM读取时,两个PSEN脉冲被跳过不会输出;

外接ROM时,与ROM的OE脚相接。

7)EA/VPP访问程序存储器控制信号

接高电平时:

CPU读取内部程序存储器(ROM)

接低电平时:

CPU读取外部程序存储器(ROM)。

8031单片机内部是没有ROM的,因此在应用8031单片机时,这个脚时一直接低电平的。

8)RST复位信号

当输入的信号连续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作,当复位后程序计数器PC=0000H,即复位后将从程序存储器的0000H单元读取第一条指令码。

9)XTAL1和XTAL2

外接晶振引脚。

当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。

10)VCC

电源+5V输入

11)GND

接地

6.3主要电路设计

AT89C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的系统简单、可靠。

本设计利用单片机芯片构成应用系统时,主要是将单片机街上时钟电路和复位电路。

其应用特点:

◆有可供用户使用的大量I/O线

◆内部存储器容量有限

◆应用系统开发具有特殊性

6.3.1时钟电路

AT89C51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。

AT89C51单片机的时钟产生方法有两种:

内部时钟方式和外部时钟方式。

本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。

震荡晶体可在1.2MHZ到12MHZ之间选择。

电容值无严格要求,单电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,CX1、CX2可在20pF到100pF之间取值,但在60pF到70pF时振荡器有较高的频率稳定性。

所以本设计中,震荡晶体频率选择12MHZ,电容选择20pF。

在设计印刷电路板时,晶体和电容应尽可能靠近单片机芯片安装,以减少寄生电容,更好的保证振荡器稳定和可靠工作。

6.3.2复位电路

AT89C51的复位是由外部的复位电路来实现的。

复位引脚RST通过一个施密特触发器来抑制噪声。

在每个机器周期的S5P2,施密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。

复位电路通常采用上电自动复位和按钮复位两种方式。

最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。

只要VCC的上升时间不超过1ms,就可以实现自动上电复位。

时钟频率采用12MHZ时C取10μF,R取1kΩ。

本设计就是用上电复位。

复位时,ALE和PSEN成输入状态,片内RAM不受复位影响;复位后,PC指向0000H,单片机从起始地址0000H开始执行程序。

所以单片机运行出错或进入死循环,可按复位键重新启动。

在次单片机中,没有完全使用这些默认值,而是通过在程序中对单片机进行初始化。

复位电路采用的是简单的上电复位电路,此电路要求要保证在RESET引脚上提供10毫秒以上稳定的高电压。

这种上电复位利用电容器充电来实现。

当加电时,电容C充电,电路有电路流过,构成回路,在电阻R上产生压降,RESET引脚为高电平;当电容C充满电后,电路相当于断开,RESET的电位与地相同,复位结束。

复位时间与充电的时间有关,充电时间越长复位时间越长,增大电容或增大电阻都可以增加复位时间。

6.3.3功率放大电路

LM386是音频功率放大器。

输入端以地位参考,同时输出端以地位参考,被自动偏置到电源电压的一半,在5V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。

本实验采用LM386的封装形式8引线双列直插式。

6.4软件设计

6.4.1音乐符设计

首先建立音乐,把音乐的音符找出。

建立各个音符的定时常数T值表,编写程序时我们把T值表按顺序建立在“TABLE”栏。

每个发音符使用一个字节,字节的位(简谱码)代表音符的节拍。

如果1拍为0.4秒,4分之一秒就是0.4秒。

只要设定延时时间就求得节拍的时间。

假设4分之一为1DELAY,则一拍应为4DELAY,依次类推。

所以只要求出4分之一的DELAY时间。

其余的节拍就是它的倍数。

4分之一拍的延时在此我们设为125ms,节拍码如表:

表1音符对应的简谱码、频率、定时常数

音符

简谱码

频率(Hz)

定时常数(T)

低SO

392

64260

低LA

440

64400

低TI

494

64524

中DO

523

64580

中RE

587

64684

中MI

659

64777

中FA

698

64820

中SO

784

64898

中LA

880

64968

中TI

988

65030

高DO

1046

65058

高RE

1175

65110

高MI

1318

65157

高FA

1397

65178

高SO

1568

65217

不发音

            表2 节拍码及节拍数

节拍码

节拍数

1/4拍

2/4拍

3/4拍

1拍

1又1/4拍

1又1/2拍

2拍

2又1/2拍

3拍

3又3/4拍

6.4.2程序设计:

本系统采用MCS-51汇编语言编程。

软件程序由主程序、定时器TO中断服务程序和延时子程序组成。

系统初始化后,系统扫描按键(P3.5口的电平)判断是否有键按下,有键按下时,根据按下键的次数,向音频字符码指针赋以不同歌曲的地址,通过定时器TO中断子程序使P1.0口输出相应频率的音频脉冲,以达到发声目的。

主程序流程图如图3所示。

 

6.4.3程序流程图如下图3所示:

(1)

N

Y

图3程序流程图

6.4.4仿真界面图

仿真界面图如下图4:

图4仿真界面

6.4.5编程如下:

MAIN:

    ORG00H;主程序的起始地址

    JMPSTART;跳至主程序

ORG0BH;TIMER0中断起始地址

LJMPTIM0;跳至TIMER0中断子程序

START:

MOVTMOD,#00000001B;设TIMER0在MODE1

MOVIE,#10000010B;中断使能

JBP3.4,$;第一次按T0?

CALLDELAY1;消除抖动

JNBP3.4,$;T0放开?

MOV31H,#00;按T0计数指针初始值为00H

START0:

MOV30H,#LOWSONG;取简谱码指针(第1首)

NEXT:

MOVA,30H

MOVDPTR,#TABLE

MOVCA,@A+DPTR;至相关页取码

MOVR2,A;低4位为音符的节拍

JZEND0;检查简谱码是否已结束(有无00?

ANLA,#0FH;取节拍(低4位)

MOVR5,A;存入R5节拍的时间

MOVA,R2

SWAPA

ANLA,#0FH;取音频值(高4位)

JNZSING;是否为0,是0则不发音

CLRTR0

JMPD1

SING:

DECA;因0不列入

MOV22H,A;存入(22H)

RLA;乘2

MOVDPTR,#TABLE

MOVCA,@A+DPTR;至TABLE取码,取T的值

MOVTH0,A;取到的高位字节才存入TH0

MOV21H,A;取到的高位字节存入(21H)

MOVA,22H;在载入取到的音符码

RLA;乘2

INCA;加1

MOVCA,@A+DPTR;至TABLE取相对的低位字节计数值

MOVTL0,A;取到的低位字节存入TL0

MOV20H,A;取到的低位字节存入(21H)

SETBTR0;启动TIMER0

D1:

CALLDELAY

INC30H;取简谱码指针加1

JMPNEXT

END0:

CLRTR0;停止计数器

MOVA,31H;载入计数器指针

XRLA,#00H;是否按第1次

JNZEND1;不是则跳至END1

JBP3.4,$;按第2次?

CALLDELAY1;消除抖动

JNBP3.4,$;放开否?

INC31H;计次地址(31H)加1

MOV30H,#LOWSONG1;第2首歌指针

JMPNEXT

END1:

MOVA,31H;载入计数器指针

XRLA,#01H;是否按第2次

JNZEND2;不是则跳至END2

JBP3.4,$;按第3次?

CALLDELAY1;消除抖动

JNBP3.4,$;放开否?

INC31H;计次地址(31H)加1

MOV30H,#LOWSONG2;第3首歌指针

JMPNEXT

END2:

MOVA,31H;载入计数器指针

XRLA,#02H;是否按第3次

JNZEND3;不是则跳至END3

JBP3.4,$;按第4次?

CALLDELAY1;消除抖动

JNBP3.4,$;放开否?

INC31H;计次地址(31H)加1

MOV30H,#LOWSONG3;第4首歌指针

JMPNEXT

END3:

MOVA,31H;载入计数器指针

XRLA,#03H;是否按第4次

JNZEND4;不是则跳至END4

JBP3.4,$;按第5次?

CALLDELAY1;消除抖动

JNBP3.4,$;放开否?

INC31H;计次地址(31H)加1

MOV30H,#LOWSONG4;第5首歌指针

JMPNEXT

END4:

MOVA,31H;载入计数器指针

XRLA,#04H;是否按第5次

JNZEND5;不是则跳至END5

JBP3.4,$;按第6次?

CALLDELAY1;消除抖动

JNBP3.4,$;放开否?

INC31H;计次地址(31H)加1

MOV30H,#LOWSONG5;第6首歌指针

JMPNEXT

END5:

JMPSTART;回到第1次位置

TIM0:

PUSHACC;将A的值暂存于堆栈

PUSHPSW;将PSW的值暂存于堆栈

SETBRS0;设工作寄存器库1,RS0=1,RS1=0

CLRRS1

MOVTL0,20H;重设计数值

MOVTH0,21H

CPLP1.0;将P1.0位反相

POPPSW;至堆栈取回PSW的值

POPACC;至堆栈取回A的值

RETI;返回主程序

DELAY:

MOVR7,#02;延时125毫秒

D2:

MOVR4,#125

D3:

MOVR3,#248

DJNZR3,$

DJNZR4,D3

DJNZR7,D2

DJNZR5,DELAY;决定节拍

RET

DELAY1:

MOVR4,#20

D4:

MOVR3,#248

DJNZR3,$

DJNZR4,D4

RET

ORG300H

;定时常数T值表

TABLE:

DW64260,64400,64524,64580

DW64684,64777,64820,64898

DW64968,65030,65058,65110

DW65157,65178,65217

;音符节拍码数据表

SONG:

;生日快乐

;1

DB82H,01H,81H,94H,84H

DB0B4H,0A4H,04H

DB82H,01H,81H,94H,84H

DB0C4H,0B4H,04H

;2

DB82H,01H,81H,0F4H,0D4H

DB0B4H,0A4H,94H

DB0E2H,01H,0E1H,0D4H,0B4H

DB0C4H,0B4H,04H

DB00H

SONG1:

;两只老虎

;1

DB44H,54H,64H,44H

DB44H,54H,64H,44H

DB64H,74H,88H

DB64H,74H,88H

;2

DB82H,92H,82H,72H,64H,44H

DB82H,92H,82H,72H,64H,44H

DB44H,84H,48H

DB44H,14H,48H

DB00H

SONG2:

;三只小猫

;1

DB62H,82H,82H,62H,98H

DB92H,0B2H,0B2H,82H,98H

DB62H,82H,82H,52H,68H

DB92H,0B2H,0B2H,82H,98H

;2

DB62H,82H,82H,62H,92H,92H,94H

DB92H,0B2H,0B2H,92H,84H,94H

DB0B8H,0B4H,04H

DB00H

SONG3:

;哈巴狗

;1

DB42H,42H,42H,52H,64H,04H

DB62H,62H,62H,72H,84H,04H

DB92H,92H,82H,72H,64H,04H

DB82H,82H,52H,62H,44H,04H

;2

DB42H,42H,42H,52H,64H,04H

DB62H,62H,62H,72H,84H,04H

DB92H,92H,82H,72H,64H,04H

DB82H,82H,52H,62H,44H,04H

DB00H

SONG4:

;不倒翁

;1

DB84H,94H,88H

DB64H,54H,68H

DB84H,64H,54H,44H

DB62H,82H,42H,62H,58H

;2

DB84H,94H,88H

DB64H,54H,68H

DB84H,64H,54H,44H

DB52H,42H,52H,62H,48H

DB00H

SONG5:

;妹妹背着洋娃娃

;1

DB84H,02H,82H,64H,54H

DB64H,54H,48H

DB64H,02H,52H,44H,24H

DB14H,24H,18H

;2

DB24H,02H,22H,42H,24H

DB44H,54H,68H

DB54H,02H,52H,84H,84H

DB54H,64H,48H

DB00H

END

七、设计小结:

通过3个星期的实习,我懂得了很多。

学会了常用的单片机控制音乐门铃的用法。

将所学到的理论知识应用于实际,使所学的知识得到进一步巩固,使这些知识得到提高,初步培养了单片机设计的独立设计,为今后的工作打下良好基础,树立正确的设计思路。

在这次设计过程中遇到很多问题,通过老师的指导和帮助,我们克服了这些困难解决了问题,提高了解决问题的能力。

在这次设计中,我们要学会亲自去尝试,不要害怕失败。

这次实习,使我们有了团队合作,培养了我们的团队合作精神。

通过团队相互讨论,很多问题都迎刃而解了。

通过团队合作,使我们认识到:

一个人的能力是有限的,只有相互合作,相互学习才能把事情做得更好。

最后,这次实习是我认识到:

我们现在的知识还是薄弱,基础还不够扎实。

今后我们要更加努力学习专业知识,只有扎扎实实打好基础,才能在社会的竞争中处于不败之地。

今后我们要努力改正自己的不足,发扬自己的优点。

参考文献:

【1】李珍.单片机原理与应用技术[M].北京:

清华大学出版社,2003年.

【2】孙函芳.MCS-51/96单片机原理及应用[M].北京:

北京航空航天大学出版社,1994年.

【3】刘进峰.电子制作实训[M].湖北:

中国劳动社会保障出版社2006年

【4】张靖武.单片机原理、应用与PROTEUS仿真[M].北京:

电子工业出版社,2007年.

【5】陈明莹.8051单片机课程设计实训教材[M].北京:

清华大学出版社,2003年.

【6】王昊等.通用电子元器件的选用与检测[M].北京:

电子工业出版社,1996.

【7】张毅刚等.单片机原理与应用设计[M].北京:

电子工业出版社,2005.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2