基于51单片机的音乐盒设计报告

时间:2024.4.13

摘 要

本作品利用单片机的IO口对蜂鸣器输送不同频率的信号,让单片机发出不同音调的声音。以“新年好”曲调为基础以C51为语法编出51音乐盒的程序。根据电路图焊接了蜂鸣器模块与TX-1C51开发板用杜邦线进行连接。除了蜂鸣器外接模块外还使用了1602液晶显示模块作为外设连接。

本人对单片机演奏音乐比较有兴趣。在此,本人将就这方面的知识做一些简介,但愿能对单片机演奏音乐比较有兴趣而又不知其解的朋友能有所启迪。 一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。

一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。

关键词: 51单片机 音乐盒 液晶屏幕显示模块 蜂鸣器模

块 C51

目 录

1 设计任务目的与要求 .................................................................................................................................................. 1

1.1

1.2 任务设计目的 ................................................................................................................................................... 1 任务要求 ........................................................................................................................................................... 1

2 模块及其原理介绍 ...................................................................................................................................................... 2

2.1 蜂鸣器模块 ............................................................................................................................................................. 2

2.2 1602液晶显示模块 ................................................................................................................................................. 2

3 设计方案 ...................................................................................................................................................................... 3

3.1 软件设计 ................................................................................................................................................................. 3

3.2 硬件设计 ................................................................................................................................................................. 3

4 实验结果与数据分析 .................................................................................................................................................. 4

4.1 测试步骤 ................................................................................................................................................................. 4

4.2 实验现象 ................................................................................................................................................................. 4

5 结论与问题讨论 .......................................................................................................................................................... 4

5.1 完成设计的要求程度 ............................................................................................................................................. 4

5.2 遇到的问题以及解决办法 ..................................................................................................................................... 4

5.3 存在的不足及改进思路 ......................................................................................................................................... 4

参考文献 ............................................................................................................................................................................ 5

附录 .................................................................................................................................................................................... 5

附录一:C51程序 ........................................................................................................................................................ 5

- 2 -

1 设计任务目的与要求

1.1 任务设计目的

本人对单片机演奏音乐比较有兴趣,所以选择51音乐盒的题目。本设计通过两个模块的制作并与开发板一并使用。通过本次设计不止熟悉焊接和熟悉各个电子元器件,而且还提高了对外设模块使用单片机编程的技能。

1.2 任务要求

设计任务要求有两个:

要求一:制作的蜂鸣器能正常发声,失真率小于5%;

要求二:液晶模块正常显示个歌曲名称以及设计的有关内容; 要求三:使用C51编程让蜂鸣器唱出新年好的歌曲;

1

2 模块及其原理介绍

2.1 蜂鸣器模块

蜂鸣器模块电路图如图2.1所示,该模块三个接口分别为P3.7、VCC、GND。P3.7通过与单片机IO口连接来接收51单片机的信号;VCC与5V电压连接;GND接地。

基于51单片机的音乐盒设计报告

图2.1

2.2 1602液晶显示模块

液晶显示模块电路图如图2.2所示

基于51单片机的音乐盒设计报告

图2.2

2

3 设计方案

3.1 软件设计

软件设计狂徒如图3.1.1,设计包括init(void)main(void)display(uint)bee(void)等功能函数以及delay(uint)write_com(uchar) write_data(uchar) 等调用多个辅助函数,具体程序见附录一。

基于51单片机的音乐盒设计报告

3.1.1

3.2 硬件设计

模块及其原理介绍已经对各个模块电路进行介绍,接下来再介绍一下使用的电子元器件:

有源蜂鸣器:蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 ;蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示;

NPN三极管:NPN型三极管,由三块半导体构成,其中两块N型和一块P型半导体组成,P型半导体在中间,两块N型半导体在两侧。三极管是电子电路中最重要的器件,它最主要的功能是电流 放大和开关作用;

10k电阻;

杜邦线:杜邦线可用于实验板的引脚扩展,增加实验项目等。可以非常牢靠地和插针连接,无需焊接,可以快速进行电路试验。

3

4 实验结果与数据分析

4.1 测试步骤

使用电脑com4口通过USB线下载程序,然后打开电源对现象进行观察,再对程序进行修改然后下载程序观察如此重复,直到实验目的功能。

4.2 实验现象

1602液晶显示模块正确显示”HAPPY NEW YSAR!! Will~~ 2014.12.27:”;

蜂鸣器正常发声,响起新年好旋律并重复歌唱。

5 结论与问题讨论

5.1 完成设计的要求程度

经过测试、修改等步奏后,实现液晶的正常显示完全达到目标;蜂鸣器正常歌唱,不过在部分会出现少许失真,不过失真率保证在5%以内。

5.2 遇到的问题以及解决办法

问题:蜂鸣器失真严重; 解决:导线以及焊接口出现接触问题,所以进行修复;npn三极管不适用故更换三极管;

5.3 存在的不足及改进思路

这次设计当中也有不足之处;

(1) 焊接比较差;

(2) 杜邦线与排针型号不吻合,连接不稳定。

4

参考文献

[1] 雷伏容、张小林、催浩.《51单片机常用模块设计查询手册》.北京:清华

大学出版社,2010.01:2-823.

[2] 郭天祥.《新概念51单片机入门、提高、开发、拓展全攻略》.哈尔滨:哈

尔滨工业大学出版社

[2] “科学男孩.51单片机音乐盒[word]. .”

void write_com(uchar com)//命令书写函数 { rs=0; P0=com; delay_1(5); lcden=1; delay_1(5); lcden=0; }

void write_date(uchar num)//数据书写函数 { rs=1; P0=num; delay_1(5); lcden=1; delay_1(5); lcden=0; }

uchar code T[49][2]={{0,0},

{0xF8,0x8B},{0xF8,0xF2},{0xF9,0x5B},{0xF9,0xB7},{0xFA,0x14},{0xFA,0x66},{0xFA,0xB9},{0xFB,0x03},{0xFB,0x4A},{0xFB,0x8F},{0xFB,0xCF},{0xFC,0x0B},

{0xFC,0x43},{0xFC,0x78},{0xFC,0xAB},{0xFC,0xDB},{0xFD,0x08},{0xFD,0x33},{0xFD,0x5B},{0xFD,0x81},{0xFD,0xA5},{0xFD,0xC7},{0xFD,0xE7},{0xFE,0x05},

{0xFE,0x21},{0xFE,0x3C},{0xFE,0x55},{0xFE,0x6D},{0xFE,0x84},{0xFE,0x99},{0xFE,0xAD},{0xFE,0xC0},{0xFE,0x02},{0xFE,0xE3},{0xFE,0xF3},{0xFF,0x02},

{0xFF,0x10},{0xFF,0x1D},{0xFF,0x2A},{0xFF,0x

5

附录

附录一:C51程序

/*******************************************/

/* 音乐:新年好 */ /* 日期:2014.12.27 */ /*******************************************/

#include<reg52.h> #include<intrins.h>

#define uint unsigned int #define uchar unsigned char uint count,bai,shi,ge,num_1; char num,distance; sbit Trig=P2^0; sbit Echo=P2^1; sbit dula=P2^6; sbit wela=P2^7; sbit rs=P3^5; sbit lcden=P3^4; sbit beepIO=P3^7; uchar m,n;

uchar code table_distance[]="Distance: cm"; uchar code table[]="HAPPY NEW YEAR!!"; uchar code table_num[]="0123456789";

void delay_1(uint ms)//液晶显示延时函数 { uint x,y; for(x=ms;x>0;x--) for(y=110;y>0;y--); }

36},{0xFF,0x42},{0xFF,0x4C},{0xFF,0x56},{0xFF,0x60},{0xFF,0x69},{0xFF,0x71},{0xFF,0x79},{0xFF,0x81} }; uchar code music[][2]={{0,4}, {19,4},{19,4},{19,8},{14,8},{23,4},{23,4},{23,8},{19,8}, {19,4},{23,4},{26,8},{26,8},{24,4},{23,4},{21,16},{21,4},{23,4},{24,8},{24,8}, {23,4},{21,4},{23,8},{19,8},{19,4},{23,4},{21,8},{14,8},{18,4},{21,4},{19,16}, {0xFF,0xFF}}; /*******************************************/ /* 音乐延时函数 */ /*******************************************/ void delay(uchar p)//音乐延时函数

{ uchar i,j; for(;p>0;p--) for(i=181;i>0;i--) for(j=181;j>0;j--); } void pause() { uchar i,j; for(i=150;i>0;i--) for(j=150;j>0;j--); } void T0_int() interrupt 1 { beepIO=!beepIO; TH0=T[m][0]; TL0=T[m][1]; } void main() { uchar i=0; TMOD=0x01; EA=1; ET0=1; wela=0;//嵌入液晶显示

dula=0; lcden=0;

write_com(0x38); write_com(0xf); write_com(0x6); write_com(0x80); for(num_1=0;num_1<16;num_1++) { write_date(table_distance[num_1]); delay_1(5); } write_com(0x80+0x40); for(num_1=0;num_1<16;num_1++) { write_date(table[num_1]); delay_1(5); }//液晶初始显示结束 while(1) //音乐播放 { m=music[i][0];n=music[i][1];

if(m==0x00) { TR0=0; delay(n); i++; } else if(m==0xFF) { TR0=0; delay(30); i=0; } else if(m==music[i+1][0]) { TR0=1; delay(n); TR0=0; pause(); i++; } else { TR0=1; delay(n); i++; } } }

2

更多相关推荐:
基于51单片机课程设计报告

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

51单片机课程设计实验报告

51单片机课程设计报告学院:专业班级:姓名:指导教师:设计时间:51单片机课程设计一、设计任务与要求1.任务:制作并调试51单片机学习板2.要求:(1)了解并能识别学习板上的各种元器件,会读元器件标示;(2)会…

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

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

51单片机课程设计报告

重庆科技学院学生实习实训总结报告学院电气与信息工程学院专业班级XXXXXX学生姓名XXX学号20xxXXXXXX实习实训地点逸夫科技楼I512报告题目单片机万年历系统设报告报告日期20xx年9月13日指导教师评...

51单片机课程设计报告。

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

51单片机课程设计实例

51单片机实做课课程设计报告51单片机设计实例二总原理图及元器件清单21总原理图151单片机实做课课程设计报告22显示部分23声音部分251单片机实做课课程设计报告24按键部分25继电器351单片机实做课课程设...

51单片机万年历课程设计报告

一设计任务1设计任务设计并制作一个数字钟2设计要求显示年月日时分秒及星期信息具有可调整日期和时间功能增加闰年计算功能显示部分由LCD1602完成二方案论证1显示部分显示部分是本次设计的重要部分一般有以下两种方案...

单片机课程设计报告(系统设计部分)

自动化学院网络工程系网络信息08级班单片机课程设计报告指导教师何小敏李传芳姓名学号系统设计部分四单片机应用系统设计数字电子时钟1系统功能介绍该设计以51单片机为核心附加了必要的外围电路构成了一个简单的数字电子钟...

《单片机原理及应用》课程设计报告

吉林建筑工程学院电气与电子信息工程学院单片机原理及应用课程设计报告设计题目电子计时器综合系统设计专业班级电子信息科学与技术092学生姓名学号指导教师设计时间20xx82720xx97目录第1章绪论111课程设计...

郭琛的51单片机课程设计报告

51单片机课程设计报告专业班级通信1001姓名指导教师徐敏设计时间20xx613目录1设计任务及要求2总原理图及元器件清单3设计思路4软硬件调试5实验心得51单片机课程设计一设计任务与要求1任务制作并调试51单...

(模板)51单片机课程结课设计报告

单片机技术课程结课设计报告题目电子时钟专业班级学号姓名指导教师张琦单片机技术课程结课设计报告第一部分设计任务和要求11设计内容利用STC89C51单片机和LCD1602电子显示屏实现电子时钟可由按键进行调时和1...

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

单片机原理及系统课程设计专业自动控制班级控1102姓名学号指导教师兰州交通大学自动化与电气工程学院20xx年1月13日单片机原理及系统课程设计报告基于51单片机的洗衣机设计1设计目的要求及原理11设计目的由单片...

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