单片机课程设计报告蜂鸣器.docx
- 文档编号:30237405
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:14
- 大小:753.68KB
单片机课程设计报告蜂鸣器.docx
《单片机课程设计报告蜂鸣器.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告蜂鸣器.docx(14页珍藏版)》请在冰豆网上搜索。
单片机课程设计报告蜂鸣器
河南师范大学
新联学院
单片机课程设计报告
课程单片机原理及接口技术
设计题目蜂鸣器演奏歌曲
年级专业2011级计算机科学与技术
学号11047000000
学生姓名李
指导教师莹
2014年6月15日
蜂鸣器演奏歌曲实验报告
一、要求
完成驱动蜂鸣器歌曲演奏的实验
二、目的
1、学习KEIL软件的使用方法;
2、掌握BST-V51单片机学习板设计蜂鸣器音乐的发生;
3、掌握设计中各模块的功能,能够填入并演奏曲子;
4、学习乐谱的基本知识,掌握其演奏的原理。
三、分析
1、基本原理简述
声音是通过振动产生的。
单片机对某一引脚以一定的频率循环置
1置0,该引脚便产生一定频率的方波,方波通过放大,作用于一定的物理实件(蜂鸣器),就产生了一定频率的声音。
若改变输出方波的频率,产生的声音随之改变。
通过控制输出方波的时间长短,声音的长短也可以得到控制,因此,根据乐谱,以类似的音及同样的节拍,单片机就可以产生电子音乐。
音乐的播放选择可以通过按键的输入得以实现。
为简便起见,以一定的频率方波产生的音在其每个周期内高低幅值得时间各占一半。
因此,输出引脚在每个方波周期内要动作两次:
一次升高,一次降低。
即输出引脚的频率是原音频率的两倍。
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值
音符
频率(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
64130
中7SI
988
65030
#4FA#
370
64260
高1DO
1046
65058
低5SO
392
64260
#1DO#
1109
65085
#5SO#
415
64331
高2RE
1175
65110
低6LA
440
64400
#2RE#
1245
65124
#6
466
64463
高3M
1318
65157
低7SI
494
64524
高4FA
1397
65178
中1DO
523
64580
#4FA#
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
1/8拍
2
2/4拍
2
1/4拍
3
3/4拍
3
3/8拍
4
1拍
4
1/2拍
5
1又1/4拍
5
5/8拍
6
1又1/2拍
6
3/4拍
7
1又3/4拍
7
7/8拍
8
2拍
8
1拍
9
2又1/4拍
9
1又1/8拍
A
2又1/2拍
A
1又1/4拍
B
2又3/4拍
B
1又3/8拍
C
3拍
C
1又1/2拍
D
3又1/4拍
D
1又5/8拍
E
3又1/2拍
E
1又3/4拍
F
3又3/4拍
F
1又7/8拍
1/4节拍与1/8节拍的时间设定如下:
曲调值
DELAY
曲调值
DELAY
调4/4
125毫秒
调4/4
62毫秒
调3/4
187毫秒
调3/4
94毫秒
调2/4
250毫秒
调2/4
125毫秒
(5)建立音乐的步骤:
1)先把吧乐谱的音符找出,然后由上表建立T值表的顺序。
2)把T值表建立在TABLE1,构成发音符的计数值放在“TABLE”。
3)简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。
四、设计
1、硬件设计
1.1总体设计框图
AT89C51
单片机
按键输入
蜂鸣器
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;中断返回
START:
MOVSP,#50H;堆栈从五十开始
MOVTH0,#0D8H;T0赋初值
MOVTL0,#0EFH;12M晶振,形成10毫秒中断
MOVTMOD,#01H;设置定时器0工作方式为1即16位定时器
MOVIE,#82H;中断使能
MUSIC0:
NOP;延时
MOVDPTR,#DAT;表头地址送DPTR
MOV20H,#00H;中断计数器清0
MOVB,#00H;表序号清0
MUSIC1:
NOP;延时
CLRA;清零A
MOVCA,@A+DPTR;查表取代码
JZEND0;是00H,则结束
CJNEA,#0FFH,MUSIC5;如果是休止符,往下执行
LJMPMUSIC3;长跳转
MUSIC5:
NOP;延时
MOVR6,A;RH=18H音符的频率
INCDPTR;DPTR加一
MOVA,B;传送指令,把B的内容传送到A
MOVCA,@A+DPTR;取节拍代码送R7
MOVR7,A;R7=30H音符发音的时间
SETBTR0;启动计数
MUSIC2:
NOP;延时
CPLOUT;频率产生
MOVA,R6;把寄存器R6的内容送到累加器A中
MOVR3,A;R3=R6=18H
LCALLDEL;调用DEL函数
MOVA,R7;把寄存器R7的内容送到累加器A中
CJNEA,20H,MUSIC2;中断计数器(20H)=R7否?
;不等,则继续循环
MOV20H,#00H;等于,则取下一代码
INCDPTR;DPTR加一
INCB;B加一
LJMPMUSIC1;长跳转
MUSIC3:
NOP;延时
CLRTR0;休止100毫秒
MOVR2,#0DH;R2=13
MUSIC4:
NOP;延时
MOVR3,#0FFH;R3=255
LCALLDEL;调用DEL函数
DJNZR2,MUSIC4;延音程序
INCDPTR;DPTR加一
LJMPMUSIC1;长跳转
END0:
NOP;延时
MOVR2,#64H;歌曲结束,延时1秒后继续
MUSIC6:
MOVR3,#00H;和低字节清零
LCALLDEL
DJNZR2,MUSIC6;延音程序
LJMPMUSIC0
DEL:
NOP;延时
DEL3:
MOVR4,#02H;延时子程序,12M晶振延时约1秒
DEL4:
NOP;延时
DJNZR4,DEL4;延时程序
NOP;延时
DJNZR3,DEL3;延时程序
RET;子程序返回
NOP;延时程序
DAT:
;歌谱
DB32,32,32,32,32,32,32,32,32,32,32,32,32,48,16,64
DB32,32,32,32,32,32,32,32,32,32,32,32,48,16,64
DB32,32,32,32,32,16,16,32,32,32,16,16,32,32,32,32,
32,64
DB32,32,32,32,32,32,32,32,32,32,32,32,16,16,64
END;结束
3、调试说明
在熟悉掌握KELL软件操作后,先截取一小段代码试运行,运行成功后正式开始蜂鸣器《欢乐颂》音乐演奏实验。
如图所示,该段代码在电脑上运行成功
紧接着用数据线连接AT89C52单片机学习板和电脑,下载端口压缩包,P2.3端口控制蜂鸣器,打开STC_ISP_V488后,调试端口,打开所创建的文件夹,点击开始下载,打开AT89C52单片机学习板上的开关,便可听见悦耳的音乐。
五、总结
通过本次单片机课程设计,我感慨颇多,的确,从选题到定稿,从理论到实践。
在这两个星期里,虽然遇到了很多困难,经常熬到深夜,但也学到了很多东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟是第一次做,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说原先不知道蜂鸣器应该接端口P2.3,对单片机汇编语言掌握得不好……通过这次课程设计之后,把以前所学过的知识又重新温故了一下。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在阮莹老师的辛勤指导下,终于迎刃而解。
在阮莹老师的身上我学得到了很多实用的知识,在此我表示感谢!
同时,我也体会到了团结的重要性,在我们这个小组的共同努力下,课程设计才得以顺利按时完成。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 报告 蜂鸣器
![提示](https://static.bdocx.com/images/bang_tan.gif)