篇一 :蜂鸣器实验报告

实 验 报 告

 

实验要求

用所学知识和编程技巧,编写一段程序,实现用蜂鸣器演奏一首歌曲。按下(sw2)按键,蜂鸣器唱出一首歌,歌曲可以自己选择,主要是通过不同的频率来实现不同的音调。

2 实验原理

2.1蜂鸣器类型      

蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。1、压电式蜂鸣器主要由多谐振荡、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。2、电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

实验箱上蜂鸣器驱动原理:通过FPGA的143管脚驱动蜂鸣器发声,不同的频率使蜂鸣器发出不同的音调。

2.2音乐歌曲元素

一首歌曲由音调和节拍两个主要的元素组成。对于蜂鸣器来说,频率的高低决定了音调的高低。所有不同频率的信号都是从同一个基准频率分频得来的。由于音阶频率多为非整数,而分频系数又不能为小数,故必须 将计算得到的分频数四舍五入取整。若基准频率过低,则由于分频比太小,四舍五入取证后的误差较大。若基准频率过高,虽然误差变小,但分频数将变大。实际的设计在尽量减小频率误差的前提下去合适的基准频率。

给蜂鸣器输入相应的频率,可以使其发出表中所示的低音、中音、高音的do~xi的声音。将其按照音乐演奏的规律组合,便可以得到所需要的乐曲。

2.3任务原理

2.3.1音调的控制
    频率的高低决定了音调的高低。音乐的十二平均率规定;每两个8度音之间的频率相差1倍。在两个8度音之间,又可分为12个半音,每两个半音的频率比为。另外,音名A的频率为440Hz,音名B到C直接、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音1至高音1之间每个音名对应的频率如表1中所示。

…… …… 余下全文

篇二 :蜂鸣器实验报告

驱动蜂鸣器实验

一、实验要求

完成驱动蜂鸣器实验

二、实验目的

1.

2.

3.

4. 学习Proteus软件的使用方法 学习Keil软件的使用方法 学习端口输出的使用方法 掌握延时程序的设计

三、实验说明

(条理清晰,含程序的一些功能分析计算)

分析系统要实现的功能,怎么设计实现方案,有哪些计算相关数据要计算,需要使用哪些什么特殊功能寄存器等,

四、硬件原理图及程序设计

(一)硬件原理图设计

蜂鸣器实验报告

在PROTEUS中截图过来,并有文字说明

(二)程序流程图设计

蜂鸣器实验报告

蜂鸣器实验报告

蜂鸣器实验报告

蜂鸣器实验报告

蜂鸣器实验报告

(三)程序设源代码

#include <reg51.h>

sbit buzzer=P3^7;

void delay(int);

void pulse_BZ(int,int,int);

main()

{

while(1)

{

pulse_BZ(100,1,1);

delay(1000);

}

}

void delay(int x)

{

int i, j;

for(i=0;i<x;i++)

for(j=0;j<60;j++);

}

void pulse_BZ(int count,int TH,int TL) {

int i;

for(i=0;i<count;i++)

{

buzzer=1;

delay(TH);

buzzer=0;

delay(TL);

}

} 将程序的源代码付上,主要句子和功能要有注释

五.实验总结

1、实验过程中遇到的问题及解决方法

2、体会

…… …… 余下全文

篇三 :蜂鸣器实验报告

实验一 电子音响

一、 实验目的

了解计算机发出不同音调声音的编程方法。

二、 实验仪器

微机实验箱 PC机

三、 实验原理

四、 实验内容

利用定时器产生不同频率的方法,组成乐谱由单片机进行信息处理,经过放大利用8032 P1.7口输出音乐。

五、 实验步骤

1、 实验连线

把P1.7用双头导线连至VIN插孔上,打开音频驱动的控制按钮。

2、 编写程序

填写老师所给代码的空缺部分

3、 观察运行结果

以连续方式运行程序,放出歌曲。

4、 终止运行

六、 实验代码注释

1、

2、

3、 4、 初始定义音乐数组,格式为:频率常数、节拍常数、频率常数、节拍常数; 重新设置定时器初值,从而产生10MS精确定时; 微秒延时程序 TMOD = 0X01; /*选择中断方式1*/

THO = (65536-10000)/256; THO = (65536-10000)%256;

EA =1; /*开启中断*/

ETO = 1; /*开启定时器*/

TRO = 1; /*开启定时器0,计时器开始计数*/

程序开始执行,直到出现0x00则结束演奏音乐;

程序开始执行直到出现0xff,执行完毕之后暂停100毫秒;

取频率是m,节拍是n;

调整产生的频率,可以通过在m前的值来修正音调的高低 5、 6、 7、 8、

七、 流水灯代码及注释

#include <reg51.h>

void delay(int z) {

int a,b;

for(a=z;a>0;a--) for(b=110;b>0;b--); }

void main() {

while(1) {

}

} P1=0xff; delay(50);/*全部灯灭且延时50毫秒*/ P1=0xfe; delay(50); /*亮第一盏灯且延时50秒*/ P1=0xfd; delay(50); /*亮第二盏灯且延时50秒*/ P1=0xfb; delay(50); /*亮第三盏灯且延时50秒*/ P1=0xf7; delay(50); /*亮第四盏灯且延时50秒*/ P1=0xef; delay(50); /*亮第五盏灯且延时50秒*/ P1=0xcf; delay(50); /*亮第六盏灯且延时50秒*/ P1=0xbf; delay(50); /*亮第七盏灯且延时50秒*/ P1=0x7f; delay(50); /*亮第八盏灯且延时50秒*/ P3=0xfe; delay(50); /*亮第九盏灯且延时50秒*/ P3=0xfc; delay(50); /*亮第十盏灯且延时50秒*/ P3=0xfb; delay(50); /*亮第十一盏灯且延时50秒*/ P3=0xf7; delay(50); /*亮第十二盏灯且延时50秒*/ P3=0xff; /*全部灯灭*/

…… …… 余下全文

篇四 :蜂鸣器与流水灯实验报告

======================蜂鸣器与流水灯实验===================

实验(一)蜂鸣器

一、 电路图

二、 程序注释

1、 频率、节拍常数的编码

2、 定时/计数器0中断赋初值,使计数器计满一次时时间为100ms。同时没记一

满次,n减1

3、 毫秒的延时函数

4、 无参数返回值的延时函数

5、 主函数,用switch函数选择,当case为0x00时,延时一段时间再开始

6、 让i自加1,延时

7、 选择频率常数,选择m、n为第1个,第2个……第i个频率

8、 开定时器中断,延时4*m的时间等待节拍完成,当n不等于0时,将选出来的

频率依次输出,

实验(二)流水灯

一、 电路图

二、程序注释

① 直接赋值控制亮灯法

#include <reg52.h>

sbit LED0=P1^0 ; //定义八个流水灯等为输出端口P1^0~P1^7

sbit LED1=P1^1 ;

sbit LED2=P1^2 ;

sbit LED3=P1^3 ;

sbit LED4=P1^4 ;

sbit LED5=P1^5 ;

sbit LED6=P1^6 ;

sbit LED7=P1^7 ;

void delay(float t) //延时函数

{ unsigned int i,j;

j=t*100;

while(j--)

{

for(i=8000;i;i--);

}

}

void main() //主函数

{

while(1)

{

LED0=0; //亮第1个灯

delay(0.1); //延时0.1s

LED0=1; //熄灭

LED1=0; //亮第2个灯

…… …… 余下全文

篇五 :MSP430流水灯蜂鸣器实验报告

MSP430实验报告

姓名:

学号:

一、实验目的:

掌握msp430单片机的程序编写和运行过程。

掌握IAR Embedded Workbench程序的编译和运行。

二、实验内容:

实现流水灯以三种流动方式和四种流动速度的不同组合而进行点亮"流动",同时每改变一次流水方式,蜂鸣器响一次。

三、使用串口:

P2口,P6口

四、蜂鸣器实现:

通过定义Timer()函数,并在每次改变流水方式时调用Timer()函数,通过对p6接口的设置,来达到蜂鸣器声音的实现。

五、实验代码:

//BoardConfig.h//

typedef unsigned char uchar;

typedef unsigned int uint;

//控制位的宏定义

#define Ctrl_Out P3DIR |= BIT3 + BIT6 + BIT7;

#define Ctrl_0 P3OUT &= ~(BIT3 + BIT6 + BIT7)

#define SRCLK_1 P3OUT |= BIT7

#define SRCLK_0 P3OUT &= ~BIT7

#define SER_1 P3OUT |= BIT6

#define SER_0 P3OUT &= ~BIT6

#define RCLK_1 P3OUT |= BIT3

#define RCLK_0 P3OUT &= ~BIT3

//板上资源配置函数

void BoardConfig(uchar cmd)

{

uchar i;

Ctrl_Out;

Ctrl_0;

for(i = 0; i < 8; i++)

{

SRCLK_0;

if(cmd & 0x80) SER_1;

…… …… 余下全文

篇六 :单片机课程设计报告蜂鸣器

河南师范大学

新联学院

单片机课程设计报告

课    程    单片机原理及接口技术  

设计题目      蜂鸣器演奏歌曲    

年级专业   2011级计算机科学与技术

学    号        11  047000000   

学生姓名         李           

指导教师           莹         

20##  6  15

蜂鸣器演奏歌曲实验报告

一、要求

      完成驱动蜂鸣器歌曲演奏的实验

二、目的

1、学习KEIL软件的使用方法;

2、掌握BST-V51单片机学习板设计蜂鸣器音乐的发生;

3、掌握设计中各模块的功能,能够填入并演奏曲子;

4、学习乐谱的基本知识,掌握其演奏的原理。

三、分析

1、基本原理简述

    声音是通过振动产生的。单片机对某一引脚以一定的频率循环置

1置0,该引脚便产生一定频率的方波,方波通过放大,作用于一定的物理实件(蜂鸣器),就产生了一定频率的声音。若改变输出方波的频率,产生的声音随之改变。通过控 制 输 出 方 波 的 时 间 长 短,声 音 的长 短 也 可 以 得 到 控 制 ,因 此 ,根 据 乐 谱 ,以 类 似的音及同样的节拍,单片机就可以产生电子音乐。音乐的播放选择可以通过按键的输入得以实现。

…… …… 余下全文

篇七 :MSP430流水灯蜂鸣器实验报告

MSP430实验报告

水位报警器

姓名: 丁宇昊

学号: 021210508

一、实验目的:

掌握msp430单片机的程序编写和运行过程。

掌握IAR Embedded Workbench程序的编译和运行。

二、实验内容:

用继电器代替传感器输入模拟电压,用IED灯显示水位高度,当超过预定值时,蜂鸣器响,实现报警。

三、使用串口:

P1口,P2口

四、电路实现:

把继电器作为的AD的输入,通过AD转换,把电压分成16小分,每一份信号控制1个led,通过改变led两端电平高低,控制led亮灭。当到达预定值时,把蜂鸣器的接口设置为高电平。

五、实验代码:

#include <msp430.h>

void delay(int j)

{

do j--;

while (j != 0);

}

int main(void)

{

WDTCTL = WDTPW + WDTHOLD; // Stop WDT

ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // ADC10ON, interrupt enabled ADC10CTL1 = INCH_1+SREF0; // input A1

ADC10AE0 |= BIT7; // PA.1 ADC option select

P1DIR |= BIT0; // Set P1.0 to output direction P1DIR|=BIT4;

P1DIR|=BIT5;

P2DIR|= 0xff;

P2OUT|=0xff;

P2SEL&=0x00;

for (;;)

…… …… 余下全文

篇八 :vhdl实验报告--蜂鸣器

VHDL实验报告

一、实验目的

1、  掌握蜂鸣器的使用;

2、  通过复杂实验,进一步加深对VHDL语言的掌握程度。

二、实验原理

乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在蜂鸣器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让蜂鸣器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。由此可见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。

乐曲的12平均率规定:每2个八度音(如简谱中的中音1与高音1)之间的频率相差1倍。在2个八度音之间,又可分为12个半音。另外,音符A(简谱中的低音6)的频率为440Hz,音符B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音l至高音1之间每个音符的频率,如表2.1所示。

表2.1  简谱音名与频率的对应关系

产生各音符所需的频率可用一分频器实现,由于各音符对应的频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。若分频器时钟频率过低,则由于分频系数过小,四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但分频数将变大。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取合适的时钟频率。实际上,只要各个音符间的相对频率关系不变,演奏出的乐曲听起来都不会走调。

音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。因此,要控制音符的音长,就必须知道乐曲的速度和每个音符所对应的节拍数,本例所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s的话,那么一拍所应该持续的时间为0.25秒,则只需要提供一个4HZ的时钟频率即可产生四分音符的时长。

本例设计的音乐电子琴选取40MHZ的系统时钟频率。在数控分频器模块,首先对时钟频率进行40分频,得到1MHZ的输入频率,然后再次分频得到各音符的频率。由于数控分频器输出的波形是脉宽极窄的脉冲波,为了更好的驱动蜂鸣器发声,在到达蜂鸣器之前需要均衡占空比,从而生成各音符对应频率的对称方波输出。这个过程实际上进行了一次二分频,频率变为原来的二分之一即0.5MHZ。

…… …… 余下全文