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

时间:2024.4.20

河南师范大学

新联学院

单片机课程设计报告

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

设计题目      蜂鸣器演奏歌曲    

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

学    号        11  047000000   

学生姓名         李           

指导教师           莹         

20##  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,其周期天/523 S=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的对照如下:



每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,下表为节拍码的对照。但如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如下表为1/4和1/8节拍的时间设定。      
 节拍与节拍码对照如下:



1/4节拍与1/8节拍的时间设定如下:


(5)建立音乐的步骤:
    1)先把吧乐谱的音符找出,然后由上表建立T值表的顺序。
    2)把T值表建立在TABLE1,构成发音符的计数值放在“TABLE”。
    3)简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。

四、设计

1、硬件设计

1.1总体设计框图

圆角矩形: AT89C51
单片机
   

 

1.2硬件设计及原理

1.2.1 BST-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.2 AT89C52 简介

    AT89C52是美国Atmel公司生产的低电压、高性能CMOS 8位单片机,片内含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.1 Keil Software简介及开发流程:

Keil Software 的8051开发工具提供以下程序,你可以用它们来编译你的C源码,汇编你的汇编源程序,连接和重定位你的目标文件和库文件,创建HEX文件,调试你的目标程序。Windows应用程序uVision3是一个集成开发环境,它把项目管理,源代码编辑,程序调试等集成到一个功能强大的环境中。

C51美国标准优化C交叉编译器从你的C源代码产生可重定位的目标文件。

A51宏汇编器从你的8051汇编源代码产生可重定位的目标文件。

BL51连接/重定位器组合你的由C51和A51产生的可重定位的目标文件,生成绝对目标文件。

LIB51库管理器组合你的目标文件,生成可以被连接器使用的库文件。

OH51目标文件到HEX格式的转换器从绝对目标文件创建Intel HEX 格式的文件。

RTX-51实时操作系统简化了复杂和对时间要求敏感的软件项目。

  软件开发流程 :

  1、创建一个项目,从器件库中选择目标器件,配置工具设置。

  2、用C语言或汇编语言创建源程序。

  3、用项目管理器生成你的应用。

  4、修改源程序中的错误。

  5、测试,连接应用。

          

             图为:软件开发流程图

2.2 流程图:

 

2.3汇编源程序及其注释:

       OUT BIT P2.3      //该引脚接蜂鸣器
       ORG 0000H         ;主程序起始地址
       LJMP START        ;长跳转到主程序

       ORG 000BH      ;TIMERO中断起始地址
       INC 20H      ;中断服务,中断计数器加1
       MOV TH0,#0D8H      ;T0赋初值
       MOV TL0,#0EFH      ;12M晶振,形成10毫秒中断
       RETI      ;中断返回
START: MOV SP,#50H      ;堆栈从五十开始
       MOV TH0,#0D8H      ;T0赋初值
       MOV TL0,#0EFH      ;12M晶振,形成10毫秒中断
       MOV TMOD,#01H    ;设置定时器0工作方式为1即16位定时器
       MOV IE,#82H      ;中断使能
MUSIC0:NOP      ;延时
       MOV DPTR,#DAT      ;表头地址送DPTR
       MOV 20H,#00H      ;中断计数器清0
       MOV B,#00H      ;表序号清0
MUSIC1:NOP      ;延时
       CLR A      ;清零A
       MOVC A,@A+DPTR      ;查表取代码
       JZ END0      ;是00H,则结束
       CJNE A,#0FFH,MUSIC5      ;如果是休止符,往下执行
       LJMP MUSIC3      ;长跳转
MUSIC5:NOP      ;延时
       MOV R6,A      ;RH=18H音符的频率
       INC DPTR      ;DPTR加一
       MOV A,B      ;传送指令,把B的内容传送到A
       MOVC A,@A+DPTR ;取节拍代码送R7
       MOV R7,A      ;R7=30H音符发音的时间
       SETB TR0      ;启动计数
MUSIC2:NOP      ;延时
       CPL OUT      ;频率产生
       MOV A,R6      ;把寄存器R6的内容送到累加器A中
       MOV R3,A      ;R3=R6=18H
       LCALL DEL      ;调用DEL函数
       MOV A,R7      ;把寄存器R7的内容送到累加器A中
       CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?
;不等,则继续循环
       MOV 20H,#00H ;等于,则取下一代码
       INC DPTR      ;DPTR加一
       INC B      ;B加一
       LJMP MUSIC1      ;长跳转
MUSIC3:NOP      ;延时
       CLR TR0      ;休止100毫秒
       MOV R2,#0DH     ; R2=13
MUSIC4:NOP      ;延时
       MOV R3,#0FFH      ;R3=255
       LCALL DEL      ;调用DEL函数
       DJNZ R2,MUSIC4      ;延音程序
       INC DPTR      ;DPTR加一
       LJMP MUSIC1      ;长跳转
END0:  NOP      ;延时
       MOV R2,#64H      ;歌曲结束,延时1秒后继续
MUSIC6:MOV R3,#00H      ;和低字节清零
       LCALL DEL
       DJNZ R2,MUSIC6      ;延音程序
       LJMP MUSIC0
DEL:   NOP      ;延时
DEL3:  MOV R4,#02H      ;延时子程序,12M晶振延时约1秒
DEL4:  NOP      ;延时
       DJNZ R4,DEL4      ;延时程序
       NOP      ;延时
       DJNZ R3,DEL3      ;延时程序
       RET      ;子程序返回
       NOP      ;延时程序
DAT:            ;歌谱
       DB 32,32,32,32,32,32,32,32,32,32,32,32,32,48,16,64 

       DB 32,32,32,32,32,32,32,32,32,32,32,32,48,16,64

       DB 32,32,32,32,32,16,16,32,32,32,16,16,32,32,32,32,

32,64

       DB 32,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,对单片机汇编语言掌握得不好……通过这次课程设计之后,把以前所学过的知识又重新温故了一下。

     这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在阮莹老师的辛勤指导下,终于迎刃而解。在阮莹老师的身上我学得到了很多实用的知识,在此我表示感谢!同时,我也体会到了团结的重要性,在我们这个小组的共同努力下,课程设计才得以顺利按时完成。

更多相关推荐:
《单片机课程设计》报告

机械与车辆学院单片机课程设计报告20xx20xx学年第一学期课程设计题目水塔水位控制系统姓名学号班级指导老师职称时间成绩单片机课程设计考查评分表2目录一课程设计性质和目的4二课程设计的内容及要求41硬件设计42...

单片机课程设计报告

物理与机电学院课程设计报告课程名称:单片机课程设计系部:物理与机电工程学院专业班级:07级电子信息工程(1)班完成时间:20XX年5月24日~28日报告成绩:【摘要】单片机自1976年由Intel公司推出MCS…

51单片机课程设计报告。

成绩单片机原理及应用课程设计课程名ltlt单片机原理及应用gtgt学部专业学号姓名指导教师日期20xx年06月一设计任务与要求1任务制作并调试51单片机学习板2要求1了解并能识别学习板上的各种元器件会读元器件标...

流水灯单片机课程设计报告

井冈山大学机电工程学院单片机课程设计报告课程名称单片机设计题目流水灯姓名覃家应陈东阳专业生物医学工程班级10级医工本一班学号100615062指导教师王佑湖20xx年11月10日目录1引言211设计任务212设...

单片机课程设计报告范例

单片机课程设计示例交通灯控制系统设计一总体设计1设计要求交通灯的任务要求为模拟十字路口的交通灯的亮灭及闪烁基本工作原理根据交通灯的亮灭情况可以分为四种状态利用定时计数器每20秒产生一次中断每产生一次中断后由是否...

51单片机电子时钟课程设计报告

JINGCHUUNIVERSITYOFTECHNOLOGY单片机原理及应用课程设计报告题目电子时钟专业电气工程及其自动化班级20xx级电工2班学号20xx401020xx2姓名王贞指导教师邹云峰提交日期20xx...

基于51单片机课程设计报告

课题:基于51单片机的数字温度计设计专业:电气工程及其自动化班级:4学号:***设计日期:20XX/6/3成绩:重庆大学城市科技学院电气学院基于51单片机数字温度计设计报告一、设计目的作用本设计是一款简单实用的…

基于单片机的电子密码锁设计_单片机课程设计报告

单片机密码锁课程设计报告湖南师大本科生课程设计目录1引言12设计要求23硬件电路设计331设计方案的选择332主要元器件简介433硬件系统结构84程序设计135总结15参考文献16附件一电路原理图及作品实物图1...

单片机课程设计数字钟实验报告

单片机课程设计电子钟一实现功能1能够实现准确计时以数字形式显示时分秒的时间2小时以24小时计时形式分秒计时为60进位能够调节时钟时间3闹钟功能一旦走时到该时间能以声或光的形式告警提示4能够实现按键启动与停止功能...

单片机课程设计数字钟报告

单片机课程设计报告基于单片机的数字钟班级姓名学号设计时间单片机课程设计正文一引言现代社会科技飞速发展人们生活节奏加快时间就是金钱时间就是生命时间对人们来说总是那么宝贵工作的忙碌性和繁杂性容易使人忘记当前的时间忘...

单片机课程设计报告

文华学院单片机原理及应用课程设计报告设计题目姓名学号班级指导教师20xx年月日目录一标题二设计内容设计要求三设计思路四工作原理五硬件设计六软件设计含流程图七调试遇到的问题和解决方法八改进意见九收获及体会十源程序...

单片机电子时钟课程设计报告

基于单片机电子时钟的设计绪论单片机自20世纪70年代问世以来以其极高的性能价格比受到人们的重视和关注应用很广发展很快单片机体积小重量轻抗干扰能力强环境要求不高价格低廉可靠性高灵活性好开发较为容易由于具有上述优点...

单片机课程设计报告(45篇)