毕业设计我想用单片机做一个电子琴,程序最好是c语言编写的,那个好心人可以帮我提供点资料,要钱的免进!
我可以帮你 网站下载的重查不过的
我有相关程序,有仿真图,可能与与要求不一样,要的话,给我QQ邮箱
www.doyoung.net
上有好多,要的话我还有流程图
/*********************************************************************************************
程序名: DoToy系列作品 MidTouch21电子琴程序
编写人: 杜洋
编写时间: 2009年6月3日
硬件支持: STC11L60XE 外部12MHZ晶振 电源3V
接口说明: 详见《DoToy_MidTouch21电路原理图》
修改日志:
NO.1-20090603_17.54 完成电子琴21键的测试(20090603_1备)
NO.2-20090604_01.29 改为第二次新板的硬件电路(20090604_2备)
/*********************************************************************************************
说明:
用STC11Fxx单片机I/O接口的高阻态输入功能,扫描I/O接口电平。
手指将VCC线和I/O接口线半连接,产生高电平信号。
/*********************************************************************************************/
void INIT(void);
#include <STC11Fxx.H>
/*********************************************************************************************/
sbit SPEAKER = P1^0;//扬声器,低使能
sbit LED = P3^0;//LED正极,强推
sbit LED2 = P3^1;//LED负极
sbit KEY11 = P2^0;
sbit KEY12 = P2^1;
sbit KEY13 = P2^2;
sbit KEY14 = P2^3;
sbit KEY15 = P2^4;
sbit KEY16 = P2^5;
sbit KEY17 = P2^6;
sbit KEY21 = P2^7;
sbit KEY22 = P4^4;
sbit KEY23 = P4^5;
sbit KEY24 = P4^6;
sbit KEY25 = P0^7;
sbit KEY26 = P0^6;
sbit KEY27 = P0^5;
sbit KEY31 = P0^4;
sbit KEY32 = P0^3;
sbit KEY33 = P0^2;
sbit KEY34 = P0^1;
sbit KEY35 = P0^0;
sbit KEY36 = P3^3;
sbit KEY37 = P3^2;
/*********************************************************************************************/
unsigned char MUSIC;
unsigned char STH0,STL0;
unsigned int code tab[]={ //音阶表
63628,63835,64021,64103,64260,64400,64524, //低音1-7
64580,64684,64777,64820,64898,64968,65030, //中音1-7
65058,65110,65157,65178,65217,65252,65283 //高音1-7
};
/*********************************************************************************************/
void delay1ms (unsigned int a){ // 1ms延时程序(12MHz 10倍于51单片机速度时)
unsigned int i;
while( --a != 0){
for(i = 0; i < 600; i++);
}
}/***************************************************************************************/
void INIT(void){//初始化程序
TMOD=0x11;
ET0=1;
ET1=1;
EA=1;
P0M1 = 0xff;//I/O接口工作方式
P0M0 = 0x00;//P0全为高阻输入
P1M1 = 0xfe;//P1.0为准双向,其他为高阻输入
P1M0 = 0x00;
P2M1 = 0xff;//P2全为高阻输入
P2M0 = 0x00;
P3M1 = 0xfc;//P3.0为强推,其他为标准双向
P3M0 = 0x01;
P4M1 = 0xff;//P4全为高阻输入
P4M0 = 0x00;
P4SW = 0xff;
LED = 1;
LED2 = 0;
SPEAKER = 0;
}
/***************************************************************************************/
void main(void){
INIT(); //初始化
while(1){
if(KEY37 == 1){delay1ms(20);if(KEY37 == 1){MUSIC = 20;}} //高音B(37)
if(KEY36 == 1){delay1ms(20);if(KEY36 == 1){MUSIC = 19;}}
if(KEY35 == 1){delay1ms(20);if(KEY35 == 1){MUSIC = 18;}}
if(KEY34 == 1){delay1ms(20);if(KEY34 == 1){MUSIC = 17;}}
if(KEY33 == 1){delay1ms(20);if(KEY33 == 1){MUSIC = 16;}}
if(KEY32 == 1){delay1ms(20);if(KEY32 == 1){MUSIC = 15;}}
if(KEY31 == 1){delay1ms(20);if(KEY31 == 1){MUSIC = 14;}}
//3
if(KEY27 == 1){delay1ms(20);if(KEY27 == 1){MUSIC = 13;}}
if(KEY26 == 1){delay1ms(20);if(KEY26 == 1){MUSIC = 12;}}
if(KEY25 == 1){delay1ms(20);if(KEY25 == 1){MUSIC = 11;}}
if(KEY24 == 1){delay1ms(20);if(KEY24 == 1){MUSIC = 10;}}
if(KEY23 == 1){delay1ms(20);if(KEY23 == 1){MUSIC = 9;}}
if(KEY22 == 1){delay1ms(20);if(KEY22 == 1){MUSIC = 8;}}
if(KEY21 == 1){delay1ms(20);if(KEY21 == 1){MUSIC = 7;}}
//2
if(KEY17 == 1){delay1ms(20);if(KEY17 == 1){MUSIC = 6;}}
if(KEY16 == 1){delay1ms(20);if(KEY16 == 1){MUSIC = 5;}}
if(KEY15 == 1){delay1ms(20);if(KEY15 == 1){MUSIC = 4;}}
if(KEY14 == 1){delay1ms(20);if(KEY14 == 1){MUSIC = 3;}}
if(KEY13 == 1){delay1ms(20);if(KEY13 == 1){MUSIC = 2;}}
if(KEY12 == 1){delay1ms(20);if(KEY12 == 1){MUSIC = 1;}}
if(KEY11 == 1){delay1ms(20);if(KEY11 == 1){MUSIC = 0;}}
//1
if(MUSIC != 0xff){ //如果有音阶数值(非0XFF时)
STH0=tab[MUSIC]/256; //将音阶的频率值装入定时器T0
STL0=tab[MUSIC]%256;
TR0=1; //启动定时器
MUSIC = 0xff; //清除寄存器
}else{ //否则
SPEAKER = 1; //关扬声器
LED = 1;
TR0=0; //关定时器
}
}
}
/***************************************************************************************/
void t0(void) interrupt 1 using 0{//定时器0产生音频
TH0=STH0;
TL0=STL0;
SPEAKER=~SPEAKER; //取反频率产生音调
LED = SPEAKER; //LED同频闪烁
}
/***************************************************************************************/
/*************************************************************
* 杜洋工作室 www.DoYoung.net
/*************************************************************/
毕业设计---过压欠压保护电路设计,要求 用51单片机 怎么做呢。_百度知...
可以用电压比较器。也可以用单片机内部的AD转换器读取外部电压,在程序内部设定过压欠压的阈值就能实现。不懂我可以帮你做
PIC16F676单片机与STC单片机有什么区别,编程方法一样吗 STC的用什么编 ...
STC是51系列中的一种,与PIC16F676分属不同类型,编程工具,指令都有一些不同。51不需要设置输入输出口的类型和信息传输方向,但PIC单片机却有这个要求,另外PIC的数据写入更改不如51方便,不过PIC的可靠性远远高于STC单片机,因此有些厂家在研发产品的时候会指定使用PIC。个人感觉你做毕业设计,最好还是...
单片机都用在哪些领域?
在51系列单片机的开发过程中,程序设计是重点也是难点。初学者往往很难快速掌握单片机指令的应用、各个功能部件的编程方法及程序设计思路。由于单片机有许多优点,因此其应用领域之广,几乎到了无孔不入的地步。单片机应用的主要应用领域有:1)智能化家用电器:各种家用电器普遍采用单片机智能化控制代替传统的...
单片机毕业设计题关键词是什么?
单片机毕业设计的关键词可能包括以下内容:单片机:单片机是设计的核心,需要选择适合的单片机类型和型号,了解其性能参数和应用场景。嵌入式系统:毕业设计通常是一个嵌入式系统,需要了解嵌入式系统的概念、原理和设计方法。传感器:传感器是获取外部环境信息的重要组成部分,需要根据设计需求选择合适的传感器类型...
最近做毕业设计。 用单片机设计一个单子琴 在网上找个份程序 但看不...
;这是一个声音测试程序,P1和P30、P31接按键,按哪个就发出相应的声音(低音5到高音1)org 0000h orl p1,#11111111B ;按键初始化 orl p3,#11111111B ;按键初始化 test: jnb p3.2,SOL ;P3.2是低音5 jnb p3.1,LAL ;P3.1是低音6 jnb p3.0,SIL ;P3.0是低音7 jnb p1.7,...
单片机毕业设计可以用成品板吗
单片机毕业设计不可以用成品板。单片机毕业设计用成品板不能体现学生的技术与水平,不符合毕业设计的要求。单片机毕业设计要求掌握以单片机核心的测控仪器设计的基本方法和技术,重点是接口技术及相关外围芯片的特性、使用方法。
单片机毕业设计,基于51单片机的电梯控制系统的设计
电梯控制系统是比较复杂的一个大型系统,在计算机诞生的几十年里,继电器控制系统为电梯控制的发展做了巨大的贡献,但在性能上和PLC还是有本质上的差距。在科技的不断发展下,我想单片机控制系统很快可以解决抗扰性,成为方便有效的电梯控制系统。由于时间和能力有限,在设计过程中难免有很多疏漏和不足之处...
单片机相关的毕业设计需要做出实物么?
这要看学校的要求了。现在,有proteus 仿真软件了,一般学校只要求能做出仿真图写出程序就行了。不过,一个毕业设计,做彩灯,题目太简单了吧。就是写论文,画仿真图,写程序,也不多啊。加上做实物,工作量可能也不够的。就看学校的具体要求啦。
我想用单片机汇编程序设计一个有延时的有p1.0控制一个灯亮灭的程序怎 ...
可以啊,这是我的调试图,源程序为:proteus仿真图为:只是你的定时时间有点短,谢谢
毕业设计 毕业设计题目《基于单片机的GPS数据接收和液晶显示》,求告知...
熟悉单片机的串口通讯程序编写方式 熟悉你买的GPS模块的通讯协议,一般是直发式的,这个协议是有标准的,请自己查询。了解GPS模块发出数据含义,并通过串口接受后将数据解析出来,gps的信息是十分丰富的,有utc时间,经纬度,卫星数量,角度,当前海拔高度等这些需要自己一一去查阅标准。了解液晶模块的接口电路...
臧楠严立: 买一个带液晶屏,扬声器和无线模块的单片机板子就行,淘宝里找找,msp430+CC1101的就能完成无线的功能
和顺县17149945364: 用单片机实现简易电子琴的课程设计 - ?
臧楠严立:说明:由单片机的P1.0口输出音频信号,在P1.0口接三极管以驱动喇叭,最好用两个三极管构成达林顿结构.P2口连接8个一端接地的按键作为输入,当然也需要连接8只10K的电阻至电源作为上拉电阻.P2.0~P2.7依次为Do、Re、Mi、Fa、...
和顺县17149945364: 用单片机做一个简易电子琴 应该按照什么样的步骤啊 首先应该做什么啊 我一团糟 球高手?
臧楠严立: 第1章 绪论(电子琴概述及技术状况,本设计要求) 第2章 总体方案与特征(电子琴系统组成,各部分模块,系统总体组成框图) 第3章 硬件设计(单片机AT89C51,矩阵式键盘显示及识别,LED数码管,硬件设计) 第4章 软件设计(使用的仪器仪表,整体程序流程图,I/O并行口驱动LED显示,音乐播放设计,放歌子程序流程图) 第5章 系统的调试与测试结果分析(Proteus,Keil,进行的调试) 总结 参考文献 附录1:完整源程序 附录2:电子琴仿真图
和顺县17149945364: 单片机设计电子琴 - ?
臧楠严立: uchar code music_pu[]={64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178,65217}; 可以把里面的音符数每一个间用逗号隔开,延时适当调整一下,再试试看
和顺县17149945364: 毕业设计 用单片机知识 做电子琴 一点儿头绪也没有啊 谁来帮帮忙 - ?
臧楠严立: 每一个音调对应一个频率,让单片机分别产生那些对应的频率就可以了·~~
和顺县17149945364: 急求:单片机制作电子琴需要哪些配件?
臧楠严立: 一个电路板〔万能板,如果是手工焊接.这个随处都能买到〕.单片机一个,习惯用什么型号就用那种,也是到处都能买到.一个扬声器,这个你具体问老板吧,型号多的没法说.信号放大芯片用uln2003吧,一片就够了,别用三极管,三极管杂音很大.八个按钮.这些东西就够了,剩下的就看你的程序了,怎么说呢,当初也做过电子琴,硬件很简单,关键在程序上的延时,这个可以上网查一下各个音调具体怎么实现.没什么难度的.而且用到的单片机端口也比较少,可以用多余的端口加进去一些闪灯.效果会好一些.
和顺县17149945364: 基于单片机电子琴的毕业设计.请问除了弹奏音乐和播放音乐外,还有什么可以实现的功能 - ?
臧楠严立: 游戏,电子书等,总之,可以看一下手机上的功能,简单的东西还是能做的.
和顺县17149945364: 单片机电子琴的工作原理 - ?
臧楠严立: 众所周知,声音是周围空气的震动,音调取决于震动的频率,频率越高音调越高. 电子琴按下不同的琴键就会发出不同音调的声音,其实就是产生不同频率的震动. 单片机电子琴说白了就是利用单片机产生不同频率的电压波形,推动扬声器或蜂鸣器来发出不同音调的声音. 假设电子琴有八个音阶,就对应8个不同的频率,频率越高音调就越高.单片机很容易输出方波信号,那么只要让它产生不同频率的方波就可以了,然后用这个方波信号驱动扬声器就可以了.单片机的按键可以模拟琴键,按下不同的按键就对应不同的频率的方波,就能发出不同频率的声音了.
和顺县17149945364: 用51单片机 制作简易电子琴 的两个问题 - ?
臧楠严立: 内部大循环只要把扫描程序等需要不停执行的程序写在 while(1) { ......(这里) } 识别按键只要与按键相连的引脚检测到低电平即可 给你一个按键范例:假如按键接到单片机P2^0引脚 sbit K = P2^0; if(K == 0) { delay(5); //延时去抖 if(K == 0) //确定键按下 { while(!K); //判断松手 .....(功能函数) } }
和顺县17149945364: 用单片机做电子琴的问题 - ?
臧楠严立: 你首先要保证你的单片机外围电路要正常,他们是单片机工作的前提,我给你提点你查查,看看复位电路是否接好,最好用上电复位电路,再观察你的晶振电路是否正常,最好用示波器观察.不知道你用的是哪个型号的单片机,如果是40管脚的51系列,那你就再看看31管脚是否接的是高电平!就那个VPP,这个很多人就忽视了.检查完以后如果一切都正常,那要用软件测试的办法了,你写一个小程序,烧写进去,看看是否运行,如果可以的话,那就不是硬件的问题了,而是你的软件问题了,行了就说这么多了,如果 还有问题可以交流!祝你成功!!