单片机课程设计报告蜂鸣器Word格式.docx
《单片机课程设计报告蜂鸣器Word格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告蜂鸣器Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
通过控制输出方波的时间长短,声音的长短也可以得到控制,因此,根据乐谱,以类似的音及同样的节拍,单片机就可以产生电子音乐。
音乐的播放选择可以通过按键的输入得以实现。
为简便起见,以一定的频率方波产生的音在其每个周期内高低幅值得时间各占一半。
因此,输出引脚在每个方波周期内要动作两次:
一次升高,一次降低。
即输出引脚的频率是原音频率的两倍。
2、单片机产生不同频率脉冲信号的原理
(1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。
(2)利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法如下:
例如,频率为523Hz,其周期天/523S=1912uS,因此只要令计数器计时956uS/1us=956,在每计数956次时就将I/O反接,就可得到中音DO(532Hz)。
计数脉冲值与频率的关系公式如下:
N=Fi/2/Fr
(N:
计数值,Fi:
内部计时一次为1uS,故其频率为1MHz,Fr:
要产生的频率)
(3)其计数值的求法如下:
T=65536-N=65536-Fi/2/Fr
计算举例:
设K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。
T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr
低音DO的T=65536-500000/262=63627
中音DO的T=65536-500000/523=64580
高音DO的T=65536-500000/1047=65059
(4)C调个音符频率与计数值T的对照表如下表所示:
C调各音符频率与计数值T的对照如下:
音符
频率(Hz)
简谱码T值
低1DO
262
63628
#4FA#
740
64860
#1DO#
277
63731
中5SO
784
64898
低2RE
294
63835
#5SO#
831
64923
#2RE#
311
63928
中6LA
880
64968
低3M
330
64130
#6
932
64994
低4FA
349
中7SI
988
65030
370
64260
高1DO
1046
65058
低5SO
392
1109
65085
415
64331
高2RE
1175
65110
低6LA
440
64400
1245
65124
466
64463
高3M
1318
65157
低7SI
494
64524
高4FA
1397
65178
中1DO
523
64580
1480
65198
每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,下表为节拍码的对照。
但如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。
假设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。
所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如下表为1/4和1/8节拍的时间设定。
节拍与节拍码对照如下:
节拍码
节拍数
1
1/4拍
1/8拍
2
2/4拍
1/4拍
3
3/4拍
3/8拍
4
1拍
1/2拍
5
1又1/4拍
5/8拍
6
1又1/2拍
7
1又3/4拍
7/8拍
8
2拍
9
2又1/4拍
1又1/8拍
A
2又1/2拍
B
2又3/4拍
1又3/8拍
C
3拍
D
3又1/4拍
1又5/8拍
E
3又1/2拍
F
3又3/4拍
1又7/8拍
1/4节拍与1/8节拍的时间设定如下:
曲调值
DELAY
调4/4
125毫秒
62毫秒
调3/4
187毫秒
94毫秒
调2/4
250毫秒
(5)建立音乐的步骤:
1)先把吧乐谱的音符找出,然后由上表建立T值表的顺序。
2)把T值表建立在TABLE1,构成发音符的计数值放在“TABLE”。
3)简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。
四、设计
1、硬件设计
1.1总体设计框图
1.2硬件设计及原理
1.2.1BST-V51单片机学习板简介:
实验板资源配置如下:
BST-V51单片机学习板包括STC89C52单片机,其支持USB口或者是串口两种下载程序方式不用另买烧写器编程器等产品可以方便的烧写程序到单片机里。
USB供电系统,直接插接到电脑USB口即可提供电源,不需另接直电源。
以及包括8位LED发光二极管(做跑马灯实验交通灯实验)、8位数码管、4*4矩阵键盘、蜂鸣器(做单片机发声实验播放音乐实验报警实验等声响实验)、DS18B20温度传感器、AT24C08外部EEPROM存储芯片、SPI串行实时时钟DS1302、MAX232芯片RS232通讯接口、字符液晶1602LCD接口、图形点阵液晶12864接口和ISP下载接口。
BST-V51单片机学习板如下图:
1.2.2AT89C52简介
AT89C52是美国Atmel公司生产的低电压、高性能CMOS8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。
AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。
其主要工作特性是:
片内程序存储器内含8KB的Flash程序存储器,可擦写寿命为1000次;
片内数据存储器内含256字节的RAM;
具有32根可编程I/O口线;
具有3个可编程定时器;
中断系统是具有8个中断源、6个中断矢量、2个级优先权的中断结构;
串行口是具有一个全双工的可编程串行通信口;
具有一个数据指针DPTR;
低功耗工作模式有空闲模式和掉电模式;
具有可编程的3级程序锁定位;
AT89C52工作电源电压为5(1+0.2)V,且典型值为5V;
AT89C52最高工作频率为24MHz,在这里我们用的是11.0592MHz。
AT89C52图如下:
1.2.3蜂鸣器简介:
(一)蜂鸣器的介绍
1.蜂鸣器的作用
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
2.蜂鸣器的分类
蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
3.蜂鸣器的电路图形符号
蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。
(二)蜂鸣器的结构原理
1.压电式蜂鸣器
压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。
有的压电式蜂鸣器外壳上还装有发光二极管。
多谐振荡器由晶体管或集成电路构成。
当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。
在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。
2.电磁式蜂鸣器
电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。
接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。
振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
蜂鸣器电路图:
2、软件编程(包括软件介绍、流程图、完整的汇编源程序及其注释)
2.1KeilSoftware简介及开发流程:
KeilSoftware的8051开发工具提供以下程序,你可以用它们来编译你的C源码,汇编你的汇编源程序,连接和重定位你的目标文件和库文件,创建HEX文件,调试你的目标程序。
Windows应用程序uVision3是一个集成开发环境,它把项目管理,源代码编辑,程序调试等集成到一个功能强大的环境中。
C51美国标准优化C交叉编译器从你的C源代码产生可重定位的目标文件。
A51宏汇编器从你的8051汇编源代码产生可重定位的目标文件。
BL51连接/重定位器组合你的由C51和A51产生的可重定位的目标文件,生成绝对目标文件。
LIB51库管理器组合你的目标文件,生成可以被连接器使用的库文件。
OH51目标文件到HEX格式的转换器从绝对目标文件创建IntelHEX格式的文件。
RTX-51实时操作系统简化了复杂和对时间要求敏感的软件项目。
软件开发流程:
1、创建一个项目,从器件库中选择目标器件,配置工具设置。
2、用C语言或汇编语言创建源程序。
3、用项目管理器生成你的应用。
4、修改源程序中的错误。
5、测试,连接应用。
图为:
软件开发流程图
2.2流程图:
2.3汇编源程序及其注释:
OUTBITP2.3//该引脚接蜂鸣器
ORG0000H;
主程序起始地址
LJMPSTART;
长跳转到主程序
ORG000BH;
TIMERO中断起始地址
INC20H;
中断服务,中断计数器加1
MOVTH0,#0D8H;
T0赋初值
MOVTL0,#0EFH;
12M晶振,形成10毫秒中断
RETI;
中断返回