1.为什么keil4编译蜂鸣器程序是蜂鸣l蜂提示TEXT1.C(8): error C141: syntax error near 'sbit'
2.使用51单片机蜂鸣器播放音乐 求keil程序
为什么keil4编译蜂鸣器程序是提示TEXT1.C(8): error C141: syntax error near 'sbit'
不清楚这个ADCU是什么单片机,不过你要看清楚,器源人家是码k鸣器ppe溯源码系统不是支持这种接口宏定义,就算支持接口宏定义,程序是蜂鸣l蜂原图网站源码不是也像单片机一样这样定义的,会不会是器源vertx web 源码其他方式定义的。如果同一样,码k鸣器那么请把 第七行 重新删除一遍,程序很可能里面存在非法字符。蜂鸣l蜂
使用单片机蜂鸣器播放音乐 求keil程序
//主程序查音符码,器源将不同的码k鸣器初值装入定时器,定时器每中断一次,程序P3.7取反一次,蜂鸣l蜂支付聚合 源码形成不同频率的器源方波
//代表低音哆 代表高音哆 1代表中音哆
//代表低音来 代表高音来 2代表中音来,是码k鸣器katago围棋源码不是翻译乐谱很方便
#include<reg.h>
sbit SPK = P3^7; //P3.7外接扬声器,可以改成你所说的P1^5
#define uint unsigned int;
#define uchar unsigned char;
uint x,y;
uint i,j,k;
//以下是根据歌谱转来的音乐代码 3代表中音咪 1个全音被分成4个1/4 音符
//小燕子第一句 3,5,,6,5,5,5,5, 是高音哆 ,后面4个5,是因为这个音节占4拍
uchar code MUSIC[]={ 3,5,,6,5,5,5,5, 3,5,6,,5,5,5,5, ,,,,,,,, ,,6,,5,5,5,5, 3,3,5,6,6,5,6, ,,,5,6,6,6,6, 3,3,1,1,2,2,2,2,2,
2,2,2,3,5,5,5,5, ,,2,3,5,5,5,5, 2,1,,1,,,,, 0,0,0,0,,,1,1, ,,,,1,1,1,1, 5,5,6,6,4,4,3,3, 2,2,2,2,2,2,5,5, 5,5,2,2,4,4,3,3, 2,2,1,2,4,4,4,4,
,,1,1,2,2,4,4, 2,1,,1,,,,, ,,,,,,,, ,,,,,,,, 0,0,5,5,5,5,0,0, 5,5,5,5,4,4,4,4,
5,5,5,5,2,2,2,2, 2,2,5,5,4,4 ,4,4, ,,1,1,2,2,2,2, 4,4,2,2,2,2,4,4, 5,5,5,5,5,5,6,6, ,,,,6,6,,,
,,6,6,5,5,5,5, 5,5,6,6,5,5,4,4, 2,2,2,2,2,2,5,5, 5,5,2,2,4,4,3,3, 2,2,1,2,4,4,4,4, ,,1,1,2,2,4,4,
2,1,,1,,,,, ,,,,,,,, 5,5,6,6,5,5,6,6, 5,5,4,4,5,5,5,5, 1,1,2,2,1,1,2,2, ,,,,1,1,1,1,
5,5,6,6,5,5,6,6, ,,6,6,5,5,5,5, 1,1,2,2,1,1,2,2, ,,,,1,1,1,1, 5,5,6,6,5,5,4,4, 5,5,5,5,1,1,2,2, ,,,,1,1,1,1,
5,5,6,6,5,5,5,5, 1,1,2,2,1,1,1,1, 5,5,6,6,5,5,5,5, 1,1,2,2,1,1,1,1, 5,5,5,5,1,1,1,1, 5,5,5,5,1,1,1,1, 5,5,5,5,1,1,5,5,
1,1,5,5,1,1,5,5, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, 0,0,1,1,1,1,0,0, 5,5,5,5,4,4,4,4, 5,5,5,5,2,2,2,2, 2,2,5,5,4,4,4,4,
6,6,1,1,2,2,2,2, 4,4,2,2,2,2,4,4, 5,5,5,5,5,5,6,6, ,,,,6,6,,, ,,6,6,5,5,5,5, 5,5,6,6,5,5,4,4, 2,2,2,2,2,2,5,5,
5,5,2,2,4,4,3,3, 2,2,1,,4,4,4,4, ,,1,1,2,2,4,4, 4,4,6,6,5,5,5,5, 5,5,5,5,5,5,5,5, 6,6,6,6,5,5,5,5};
uchar code table[] = { 0,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfe,0,0,0, //定时半周期的初始值中音 4 5 高8位
//三个0是补位码,为了使表格整齐,便于按规律查询 首个0是休止符个
0xf8,0xf9,0xfa,0xfa,0xfb,0xfb,0xfc,0,0,0, //低音1 2 3 4 5 高8位 个
0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xff, //高音1 2 3 4 5 高8位 7个
0,0x,0xad,0,0x,0x,0xc8,0x,0,0,0, //中音 4 5 低8位 个
0x,0x,0x,0x,0x,0x,0x0c,0 ,0,0, //低音1 2 3 4 5 6 7低8位个
0x,0x,0x,0x9a,0xc1,0xe4,0x}; //高音1 2 3 4 5 6 7低8位 7个
void delay(i) //晶振MHZ时延时1ms
{
for(j=i;j>0;j--)
for(k=;k>0;k--);
}
void TIM0_ISR() interrupt 1
{
SPK=!SPK;//定时取反,形成方波
TH0=table[x]; //重新载入定时半周期的初始值
TL0=table[x+];//为什么加 ++7=
}
void main(void)
{
TMOD|=0x;
EA=1;
ET0=1;
while(1)
{
y=0;
while(y<)//此乐谱里面有个音符
{
x=MUSIC[y];//查乐谱表
TH0=table[x]; //查不同音节的定时器初值
TL0=table[x+];
TR0=1; //打开定时器
if(y>)//两首曲子不同节奏,延时不同
{
delay(); //延时ms
}
else
{
delay(); //延时ms
}
y++;
TR0=0;
}
}
}