单片机电子琴鼓声c程序设计语言

单片机电子琴C程序..._百度知道
单片机电子琴C程序...
那个高手可以提供C程序呢..最好实现每按一下1个键对应的LED灯也亮起来.我想做一个基于单片机的电子琴....
提问者采纳
//00988HZ `2
0x95;置一个音符的值
th0_f=freq[jie8[3]*2+1],0xFA;00294HZ ;00247HZ ;/
&#47,0xF6;/包括一个 52 标准内核的头文件
char code dx516[3] _at_ 0x003b;00370HZ ;
/&#47,0xF5;00466HZ 1#
&#47,&#47,4
0x73由于平时不能发声;01046HZ `2#
//00311HZ ,0xF3;00587HZ 4
0x90,24},0xF7; /00220HZ ,&#47!K4)
tl0_f=freq[jie8[3]*2],0xFD,/
for(n=0;00622HZ 4#
//00277HZ ;&#47,延时一阵;置一个音符的值
th0_f=freq[jie8[1]*2+1];
0xD7;10000;置一个音符的值
th0_f=freq[jie8[0]*2+1]!只有4个按键控制 键增加也是比较容易的;&#47,4#
0x1E;00392HZ ,0xFD,&#47,&#47,//延时
if(;在中断中装载的 T0 的值高 8 位 uchar tl0_f;01244HZ
0x4B;&#47,0xFD;
sbit K4= P2^5;//&#47,0xFA;01397HZ `5#
0x98;00262HZ ;在中断中装载的 T0 的值低 8 位
/&#47,再关闭定时器;
&#47,0xFB,5
0xB6;&#47。 可以看到;n++),0xF6,打开定时器,3
if(;/&#47,0xEF;00659HZ 5
0xE4;reg52,2
0x49;/&#47,// &#47,按 K1;23
0xEF;/T0 的值,0xF4;
&#47,只有按键后才发声;//00932HZ `1#
0x62;01109HZ `3
0xF6;n++);13
0xBD.h&gt,我们用定时器的启动 TR0 作为声音输出开关;&#47,0xFB,就发出 1 的音符;延时
sbit K3= P2^4,0xF9;/17
uchar th0_f;/ &#47,0xF9;//00831HZ 7
/n++),按 K3;/
&#47,&#47。在发现按键后;/&#47,&#47,0xFA;00349HZ ;///&#47,0xF1;
for(n=0;TH0=th0_f; 八个音符在频率表中的位置
TMOD = 0x01,及输出频率对照表 uchar code freq[36*2]={
0xA9; 主程序 { 01480HZ `6
TR0 = 1;19
0xDE,/01568HZ `6#
0x87,&#47,2#
0x07,0xF8,编译,0xF2;
} } ――――――――――――――――――――― 请仔细研读程序;00554HZ 3
/00740HZ 6
0x93,&#47,19;&#47,//&#47,就发出 4 的音符,/
ET0 = 1,5#
0x6F;00415HZ ,0xF9;取反音乐输出 IO }
for(n=0;&#47,0xFB,///
for(n=0!K3)
tl0_f=freq[jie8[2]*2];10000;n&/&#47!K2)
tl0_f=freq[jie8[1]*2],23;00233HZ ;定义一下方便使用 #define uint
unsigned int #define ulong unsigned long #include &lt,//
EA = 1;调入预定时值
BEEP=~BEEP;01318HZ `5
0x73,0xFD;
//&#47,就发出 3 的音符,///00784HZ 6#
&#47,21,0xFC; /n&lt,用于产生唱歌频率 timer0() interrupt 1
TL0=tl0_f;/ //
tl0_f=freq[jie8[0]*2],就发出 2 的音符;00494HZ 2
0xD8,送入对应频率值,///&#47,就发出了声音,/ /
TR0 = 1,&#47,/00880HZ `1
0x2A;使用定时器 0 的 16 位工作模式
TR0 = 0;&#47,0xF7,有问题可以联系;&#47:zjs-915@163。如果键很多,0xFB,14;00698HZ 5#
uchar code jie8[8]={12,&#47,/ /00440HZ 1
/10000,/按键控制音阶声音输出(电子琴) void main(void) /14
sbit K2= P3^5;定时中断 0,1#
0x4D;/&#47,/35 },/20
0x29;/&#47,0xF5;01661HZ `7
TR0 = 1,声音就停止了,0xFC,17,0xFD,按 K4,&#47,0xFC,0xF8;
&#47,16;22
0xB1;&#47,&#47,//HZ 2#
/01175HZ `4
0x22,/00330HZ 。 ―――――――――――――――――――― #define uchar unsigned char &#47,&#47,6#
0x5A;n&lt,0xFD;//延时
TR0 = 0;喇叭输出脚 sbit K1= P3^2;n&lt,0xF3,&#47,0xFC;置一个音符的值
th0_f=freq[jie8[2]*2+1];&#47,0xF0;/&#47,0xFC,按 K2,/&#47,就可以演奏音乐了;n++),运行看结果;这是为了仿真设置的
提问者评价
谢谢你的问答...所有的问题我解决了...一楼的,说出这样的话是你素质的问题...
其他类似问题
为您推荐:
您可能关注的推广回答者:回答者:
电子琴的相关知识
其他1条回答
100分也想收购这个程序啊~~ 你太猥琐了
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁基于AT89C51单片机的电子琴设计_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
基于AT89C51单片机的电子琴设计
基​于​A​T9​C1​单​片​机​的​电​子​琴​设​计
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢单片机编写8按键电子琴的C语言程序谁有?,发我一份,.cn,谢榭,急需学习用_百度知道
单片机编写8按键电子琴的C语言程序谁有?,发我一份,.cn,谢榭,急需学习用
提问者采纳
if (k & 2)
/&/ 方式 1 ;= 1) && (Key &lt, 0x0b, 0/ 等按键
Key = GetKey(),
0x0e, 6这个是利用实验仪上提供的键盘, ToneLow、6;
return (~IN & 0x0f)! TestKey) ;
PulseCNT--!= 0) {
i *= 4; EA=1;if (k , 6;xdata unsigned char OUTBIT _at_ 0x9002;
Pulse = 0。#include &lt, 0x05;
TL0 = ToneL}&#47, 0x07};unsigned char PulseCNT,驱动喇叭;
Pulse ++、2;
TH0 = ToneHigh,按下即发出相应的音调;}void main(){
unsigned char K
TH0 = ToneHigh, 0x14;/
OUTBIT = ~ P
} while ((--
Pos &i = 6。可以参考一下, 0x01, 0x12!= 0) && (k == 0))。用8255的PA; 8;xdata unsigned char Control _at_ 0x8003;code unsigned char KeyTable[] = {
&#47, 0x10, 0x0a;
unsigned char k、3;
Pos = 0x20;reg51;
if ( (Key &xdata unsigned char Speaker _at_ 0x8000; 发 100 个脉冲
Speaker = 0, 64821;unsigned char TestKey(){
OUTBIT = 0,
0x0f;TMOD = 0x01;
return(KeyTable[i]);
TL0 = ToneLow,
0x0d, 0x04, 0x11;
OUTSEG = 0, 0x15、4;#define mode 0x82, IT0 = 1
while (1) {
while (, 65029}、7作为电子琴按键!= 0) , 0x0c;OUTBIT = 0;xdata unsigned char IN
_at_ 0x9001,
0x00;unsigned char Pcode unsigned int ToneTable[7] = {
6x03;}unsigned char GetKey(){
unsigned char Pos, 0x06;
TR0 = 1;unsigned ToneH
else if (k & 8)
i += 3, 记时器
= 0x82;Control =
else if (k & 4)
i += 2, 0x09;&
while (PulseCNT ;PulseCNT = 100, 64898.0口发出音频脉冲;
k = ~IN & 0x0f;
} else return(0xff);xdata unsigned char OUTSEG _at_ 0x;
= ToneTable[Key-1] & 0void Timer() interrupt 1{
TR0 = 1.h&/= 7) ) {
ToneHigh = ToneTable[Key-1] &gt,使数字键1;
Speaker = P= 1;* ================================================================================ *&#47,
还有没最简单的呢,师兄,就是7个或者8个独立的按键 实现DO ,RE,MI,FA,SO,LA,SI
这已经是最简单的了
提问者评价
谢谢你的耐心解答,好详细呀
其他类似问题
为您推荐:
c语言程序的相关知识
其他1条回答
自己去鱼C下
什么是鱼C?
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁基于AT89C2051单片机的电子琴设计及电路_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
基于AT89C2051单片机的电子琴设计及电路
基​于​A​T9​C01​单​片​机​的​电​子​琴​设​计​及​电​路
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢51单片机16音阶电子琴设计c语言程序实例_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
51单片机16音阶电子琴设计c语言程序实例
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢

我要回帖

更多关于 c程序设计语言 的文章

 

随机推荐