实验8 蜂鸣器实验_第1页
实验8 蜂鸣器实验_第2页
实验8 蜂鸣器实验_第3页
实验8 蜂鸣器实验_第4页
实验8 蜂鸣器实验_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验8 蜂鸣器实验(仿真部分)1 实验任务用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。2 电路原理图3 硬件连线(1 P1.0端口用导线通过“音频放大模块”连接到喇叭SOUNDER上;(2 把P1.7端口用导线连接到“拨动开关”K1端口上;4 程序设计内容(1 信号产生的方法500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周期为1ms,信号电平每500us变反1次;5 程序框图开始K1按下了吗?FLAG0吗?置200次计数P1.0输出取反延时500us计数值计完了吗?FLAG取反置200次计数P1.0输出取反延时1ms计数值计完了吗?FLAG取反图4.6.26 汇编源程序(非中断软延时)FLAGBIT 00HORG 00HSTART:JB P1.7,STARTJNB FLAG,NEXTMOV R2,#200DV:CPL P1.0LCALL DELY500LCALL DELY500DJNZ R2,DVCPL FLAGNEXT:MOV R2,#200DV1:CPL P1.0LCALL DELY500DJNZ R2,DV1CPL FLAGSJMP STARTDELY500:MOV R7,#250LOOP:NOPDJNZ R7,LOOPRETEND7 C语言源程序(非中断软延时)#include #include bit flag;unsigned char count;void dely500(void) unsigned char i; for(i=250;i0;i-) _nop_(); void main(void) while(1) if(P1_7=0) for(count=200;count0;count-) P1_0=P1_0; dely500(); for(count=200;count0;count-) P1_0=P1_0; dely500(); dely500(); 8 汇编源程序(计数方式 采用中断方式) ORG 0000H LJMP MAIN ORG 0003H LJMP INT0P ORG 0013H LJPM INT1PMAIN: MOV SP,#60H SETB IT0 SETB IT1 SETB IE0 SETB IE1 SETB EA MOV R0,#00HLOOP: MOV P1,R0 JMP LOOPINT0P:INC R0 RETIINT1P:DEC R0 RETI END9 实验要求学会C51和ASM51两种编程工具。并尝试采用定时器实现定时。实验8 交流蜂鸣器演奏简单乐曲1. 实验目的 l 学习蜂鸣器的基础知识l 掌握用I/O驱动中等电流负载的正确方法l 学习如何用74HC573扩展简单的并行输出端口 l 进一步掌握如下基础知识:定时器、中断、I/O扩展电流驱动、蜂鸣器l 学习如何编写简单的乐曲程序2. 实验原理 2.1蜂鸣器原理蜂鸣器是常见的电子讯响器件,与扬声器相比,明显优势是体积很小,但缺点是低频响应很差,一般不能很好地产生200Hz以下的低频声音。按制造工艺,蜂鸣器可分为电磁式、压电式等。按功能,蜂鸣器分为有源和无源两大类,也称做直流蜂鸣器和交流蜂鸣器。对直流蜂鸣器,只要加上正向电源(可能需要限流电阻)就能发出一定频率的响声,操作简单,但是只有响与不响两种状态。而交流蜂鸣器需要输入有一定驱动能力的交流信号才能发声,发声频率即交流信号的频率,因此能够发出各种不同音调的响声,可用来演奏简单乐曲。 蜂鸣器在正常工作时,一般需要数十毫安的驱动电流,这大大超过了8051的I/O承受能力。对这种中等电流负载的驱动方法,一般可采用晶体管。图 4.21是蜂鸣器的典型驱动电路。 2.2 简单乐曲原理假如您是一名电子产品研发工程师,如果能够在您设计的产品里加入演奏乐曲的功能,则会让消费者耳目一新,增加一个很好的卖点。利用蜂鸣器演奏简单的乐曲,具有结构简单、体积小、成本低等优势,软件处理起来也不是很复杂。 图 4.24 一段简单的乐谱 编写简单的乐曲程序,需要懂得一些简单的乐理知识。由于篇幅所限,这里不做详细讲解,如果有兴趣,请参考相关书籍或网上资料。 请看图 4.24所示的一段简单乐谱。一首乐曲可以看成是由一个个基本的音符组成。音符是乐曲的基本单元,它有两个要素:发声频率和发声时值。用两个定时器就可以完成演奏一个音符的任务,一个工作于定时中断方式,在中断服务程序里不断翻转控制蜂鸣器的I/O,以产生规定频率的响声;另一个决定演奏多久,是一个简单的延时应用。把所有音符串接起来演奏,就会形成一支动听的乐曲。在光盘例程中,名为“Sound”的子程序,可以演奏一个音符,而“Play”子程序通过不断调用“Sound”子程序来演奏整个乐曲。 在下面已经以宏定义的形式给出了低音、中音和高音“1234567”发声频率对应的定时器初值,L1L7表示低音,M1M7表示中音,H1H7表示高音。;*;定义音名(1=G);L1L7表示低音,M1M7表示中音,H1H7表示高音;*L1EQU0xFB68;391.995Hz(G1)L2EQU0xFBE9;440Hz (A)L3EQU0xFC5B;493.883Hz(B)L4EQU0xFC8F;523.251Hz(C)L5EQU0xFCEF;587.33Hz (D)L6EQU0xFD45;659.255Hz(E)L7EQU0xFD91;739.989HzM1EQU0xFDB4;783.991Hz(G)M2EQU0xFDF4;880Hz (a)M3EQU0xFE2D;987.767Hz(b)M4EQU0xFE48;1046.5Hz (c)M5EQU0xFE78;1174.66Hz(d)M6EQU0xFEA3;1318.51Hz(e)M7EQU0xFEC9;1479.98HzH1EQU0xFEDA;1567.98Hz(g)H2EQU0xFEFA;1760Hz (a1)H3EQU0xFF17;1975.53Hz(b1)H4EQU0xFF24;2093Hz (c1)H5EQU0xFF3C;2349.32Hz(d1)H6EQU0xFF51;2637.02Hz(e1)H7EQU0xFF64;2959.96Hz;*;定义时值;T*4全音符,T*2二分音符,T四分音符,T/2八分音符,T/4十六分音符;*TEQU1000对发声时值,规定以四分音符作为一个T周期基准,二分音符用“2*T”表示,八分音符用“T/2”表示,带符点的八分音符用“T/2+T/4”表示,等等。改变T的宏定义值,能够整体加快或减慢乐曲的演奏速度。根据光盘例程所提供的框架,图 4.24所示的乐谱可以翻译成如下的ROM数据表: MusicTab: ; 音名,时值 DW L3,T DW L5,T/2+T/4 DW L6,T/4 DW M1,T/2+T/4 DW M2,T/4 DW L6,T/4 DW M1,T/4 DW L5,T/2 DW M5,T/2+T/4 DW H1,T/4 DW M6,T/4 DW M5,T/4 DW M3,T/4 DW M5,T/4 DW M2,T*2 3. 实验步骤 l 参考实验例程,自己动手建立Keil C51工程。 注意选择CPU类型。Philips半导体的P89V51RB2。l 编辑源程序,编译生成HEX文件。 l ISP下载开关扳到“01”,用Flash Magic软件下载程序HEX文件到MCU BANK2,运行。运行Flash Magic软件。各步骤操作如下: Step 1: COM Port:选择实际使用的串行口,通常为COM1; Baud Rate:波特率不可设置得过高,推荐用9600; Device:请选择正确的型号89V51RB2; Interface:选择None(ISP)。 Step 2:请勾中“Erase blocks used by Hex File”。 Step 3:装入你的程序文件,注意必须为HEX格式。 Step 4: 请勾中“Verify after programming”(编程后校验); 对其它几项如果不了解,请不要勾中。 Step 5: 请先给电路板上电,同时按住复位键不松手,然后点击Flash Magic软件的“St

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论