c51单片机课程设计——电子琴

上传人:平*** 文档编号:15565592 上传时间:2017-11-05 格式:DOC 页数:11 大小:337.25KB
返回 下载 相关 举报
c51单片机课程设计——电子琴_第1页
第1页 / 共11页
c51单片机课程设计——电子琴_第2页
第2页 / 共11页
c51单片机课程设计——电子琴_第3页
第3页 / 共11页
c51单片机课程设计——电子琴_第4页
第4页 / 共11页
c51单片机课程设计——电子琴_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《c51单片机课程设计——电子琴》由会员分享,可在线阅读,更多相关《c51单片机课程设计——电子琴(11页珍藏版)》请在金锄头文库上搜索。

1、1课程设计报告姓名:曹 飞 龙班级:101 班学号:10101230课程设计名:简易电子琴指导老师:胡启龙1一、概述:本系统设计制作一个可演奏的电子琴。综合应用了两项设计:(1)能产生纯音,了解音调高低的控制方法,用键盘代替电子琴的键盘,控制演奏音乐。(2)演奏一支乐曲(天空之城) 。那音阶要怎么使用 C51 单片机产生呢?C51 在这项工作中运用它哪些资源呢?我们怎么实现一个按键对应一个音阶呢?二、系统描述:(1)我们从初中开始就知道,声音是由振动产生的,基本的这 7个音阶的频率之间满足某种数学关系由低到高排列的自然音,所以我们可以通过改变单片机输出频率就可以得到不同的音阶;(2)为了得到精

2、确的频率(周期的倒数) ,我们可以使用 C51 单片机定时中断模块。 (3)通过判断按键是否被按下,然后执行该按键按下时的函数(在程序中是改变 T1 的初值得到实现) 。需要注意的是,在该程序中让 8051 的内部定时器使其工作在计数器模式 MODE1 下,改变记数值 TH0 及 TL0 以产生不同频率的方法。例如频率为 523HZ,其周期 T=1/523=1912 微秒,因此只要令计数器定时 956/1=956 在每记数 9 次时将 I/O 口反相,就可得到中音 D0(523HZ)。记数脉冲值与频率的关系公式如下:N=Fi/2/Fr N:记数值Fi:内部计时一次为 1 微秒故其频率为 1MH

3、ZFr;要产生的频率1起记数值的求法如下:T65536N65536Fi2Fr例如:设 K65536,F1000000Fi1MHZ,求低音 D0(523HZ) ,高音的 D0(1046HZ)的记数值。T65536N65536Fi2Fr6553610000002Fr65536500000Fr低音 D0 的 T6553650000026263627中音 D0 的 T6553650000052364580低音 D0 的 T65536500000104765059详细的音阶频率与计数初值可参考附录一;三、电路设计1单片机最小系统模块2.三极管信号放大模块扬声器发出对应音符模块如下:13.按键电路模块:1

4、四程序设计:本系统的程序流程图如下:开始模块初始化音乐控制按键是否按下? 播放音乐音符按键是否按下?播放音符按键所对应的音符终止1程序如下:#include #define uchar unsigned char#define uint unsigned intsbit kongzhi=P11;sbit fm=P10; /蜂鸣器输出的 IO 口uchar timeh,timel,i=8,t; /timeh,timel 为定时器高低 4 位,i 为演奏音符个数uchar code yinyue=0x63,0x71,0x83,0x71,0x82,0xA2,0x76,0x32,0x32,0x63,0

5、x51,0x62,0x82,0x54,0x32,0x32,0x42,0x32,0x42,0x11,0x32,0x81,0x81,0x81,0x73,0x41,0x41,0x71,0x74,0x63,0x71,0x83,0x71,0x82,0xA2,0x74,0x31,0x31,0x63,0x51,0x62,0x82,0x54,0x31,0x42,0x83,0x71,0x71,0x83,0x91,0x91,0xA1,0x82,0x83,0x71,0x61,0x61,0x72,0x51,0x66,0xff;/-简谱-/1-7 代表中音 dosi,8 代表高音 douchar code yinfu=

6、0x11,0x21,0x31,0x41,0x51,0x61,0x71,0x81,0xff;/-简谱音调对应的定时器初值-uchar code cuzhi= 0xff,0xff, /占位符0xFC,0x44,0xFC,0xAD,0xFD,0x0A,0xFD,0x34,0xFD,0x83,0xFD,0xC8,0xFE,0x06,/中音 dosi 的 T 计数初值0xFE,0x22,0xFE,0x57,0xFE,0x85,0xFE,0x9B,0xFE,0xC2,0xFE,0xE4,0xFF,0x03; /高音 do 的 T 计数初值void delay1ms(unsigned int ms); /延

7、时 ms 毫秒子程序void delay165ms(uint z); /延时 165ms,即 1/4 拍子程序void keysong(); /演奏子程序int key();void song();main() kongzhi=1;EA=1; /开总中断ET0=1; /开定时器 0TMOD=0x01; /定时器 0 工作在方式 1TH0=0;TL0=0;TR0=1;P3=0xff;while(1) if(kongzhi=0)song();1elsekey();keysong();void song()uint temp;uchar jp; /jp 是简谱 18 的变量t=0;while(1)

8、temp=yinyuet;if(temp=0xff) break; /到曲终则跳出循环 jp=temp/16; /取数的高 4 位作为音调if(jp!=0)timeh=cuzhijp*2; /取 T 的高 4 位值timel=cuzhijp*2+1; /取 T 的低 4 位值elseTR0=0;fm=1; /关蜂鸣器delay165ms(temp%16); /取数的低 4 位作为节拍TR0=0; /唱完一个音停 10msfm=1;delay1ms(10); TR0=1; t+;TR0=0;fm=1;void timer0() interrupt 1 /定时器 0 溢出中断子程序用于产生各种音调

9、TH0=timeh;TL0=timel;fm=fm; /产生方波void keysong()uint temp;uchar jp; /jp 是简谱 18 的变量1i=key();delay1ms(50);if(i!=8) TR0=1;temp=yinfui;jp=temp/16; /取数的高 4 位作为音调if(jp!=0)timeh=cuzhijp*2; /取 T 的高 4 位值timel=cuzhijp*2+1; /取 T 的低 4 位值elseTR0=0;fm=1; /关蜂鸣器delay165ms(temp%16); /取数的低 4 位作为节拍TR0=0; /唱完一个音停 10msfm=

10、1;delay1ms(10); /TR0=1;/i+;TR0=0;fm=1;int key() switch(P2)case 0xfe: return 0;case 0xfd: return 1;case 0xfb: return 2;case 0xf7: return 3;case 0xef: return 4;case 0xdf: return 5;case 0xbf: return 6;case 0x7f: return 7;default: return 8;/函数名:delay165ms/函数功能:采用软件实现延时约 z*165ms/形式参数:无 1/返回值:无void delay1

11、65ms(uint z) /延时 165ms,即 1/4 拍uint x;for(x=0;xz;x+)delay1ms(165);/函数名:delay1ms/函数功能:采用软件实现延时约 ms*1ms/形式参数:无 /返回值:无void delay1ms(unsigned int ms) unsigned int i,j;for(j=0;jms;j+)for(i=0;i0x100;i+);五制作与调试:最后制作出的成品:1六测试结果。该成品外观虽然不够美观,但是播放音乐功能,一个按键对应一个音阶的功能十分到位。总的来说,对于该成品老师和同学达成了同一共识:虽然丑了点,但很“温柔” (声音较小)

12、 。七结论。本次综合设计主要涉及硬件和软件两方面的内容,通过这次课程,我的硬件和软件开发能力都获得了提高。首先硬件方面,更加熟悉了51 单片机的结构以及它的实用,基本了解了电子产品的开发流程和所要做的工作。 通过课程设计,我学到了很多,这些不仅仅局限于巩固复习了课本上知识点,还锻炼了自己分析问题以及动手实际操作的能力,将以前学过的零散的知识串到一起,学以致用。本系统基本上实现了按下键盘,扬声器播放对应的音符,同时单个程序也能播放歌曲,不足之处在于不能将按键和播放音乐的程序不能完美融合,只能在一定范围内满足按键或播放歌曲一种需要,且播放的声音太小,放大电路的选择方面的工作做得不是很好。1附录一:

13、音阶频率与计数初值对照表:音符 频率 计数处之音符 频率 计数初值音符 频率 计数初值低音 1 220 0xefa9中音 1 440 0xf7d8高音 1 880 0xfbef低音 2 247 0xf173中音 2 494 0xf8bd高音 2 988 0xfc62低音 3 277 0xf307中音 3 554 0xf987高音 3 1109 0xfcc7低音 4 294 0xf3c8中音 4 587 0xf9e4高音 4 1175 0xfcf6低音 5 330 0xf51e中音 5 659 0xfa90高音 5 1318 0xfd4b低音 6 370 0xf64c中音 6 740 0xfb29高音 6 1480 0xfd98低音 7 415 0xf75a中音 7 831

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号