51单片机错误TEST.C(359): error C129: missing ';' before 'unsigned'
蜂鸣器发声#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitspeaker=P3^7;...
蜂鸣器发声
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit speaker=P3^7;
uint j;
uchar m=11;
uchar flag;
uchar line;
uchar code * data song;
//**********************************************************************//
// 延时程序 //
//**********************************************************************//
void delay(uint d) //延时d微秒,最大延时65536微妙
{
while(d--);
}
/*延时1/4拍时间即187ms*/
void delay187ms(void)
{
uchar t;
for(t=0;t<130;t++) delay(100);
}
void main()
{
uchar i;
uchar k;
delay(100);
TMOD=0x01;
IT0=1;
EX0=1;
TR0=1;
ET0=1;
EA=1;
song=song1;
while(1)
{
switch(m)
{
case 1 :song=song1;break;
case 2 :song=song2;break;
case 3 :song=song3;break;
case 4 :song=song4;break;
case 5 :song=song5;break;
case 6 :song=song6;break;
case 7 :song=song7;break;
case 8 :song=song8;break;
case 9 :song=song9;break;
case 10 :song=song10;break;
case 11 :song=song11;break;
case 12 :song=song12;break;
default :m=1;song=song1;break;
}
j=0;
flag=1;
while(*(song+j)!=0xFF&&flag)
{
k=*(song+j)&0x0F; //取出节拍
line=*(song+j)>>4; //取出音
TH0=yin[2*line];
TL0=yin[2*line+1];
TR0=1;
if ((yin[2*line]==0xFF)&&(yin[2*line+1]==0xFF))
{
TR0=0;
}
for(i=k;i>0;--i)
{
delay187ms();
}
TR0=0;
j++;
}
for(i=0;i<20;i++)delay187ms();
m++;
}
}
/* 每个音符的发声*/
void timer1() interrupt 1
{
TH0=yin[2*line];
TL0=yin[2*line+1];
speaker=!speaker;
}
void int0() interrupt 0
{
flag=0;
TR0=0;
}
TEST.C(359): error C141: syntax error near '#'
TEST.C(359): error C129: missing ';' before 'unsigned' 展开
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit speaker=P3^7;
uint j;
uchar m=11;
uchar flag;
uchar line;
uchar code * data song;
//**********************************************************************//
// 延时程序 //
//**********************************************************************//
void delay(uint d) //延时d微秒,最大延时65536微妙
{
while(d--);
}
/*延时1/4拍时间即187ms*/
void delay187ms(void)
{
uchar t;
for(t=0;t<130;t++) delay(100);
}
void main()
{
uchar i;
uchar k;
delay(100);
TMOD=0x01;
IT0=1;
EX0=1;
TR0=1;
ET0=1;
EA=1;
song=song1;
while(1)
{
switch(m)
{
case 1 :song=song1;break;
case 2 :song=song2;break;
case 3 :song=song3;break;
case 4 :song=song4;break;
case 5 :song=song5;break;
case 6 :song=song6;break;
case 7 :song=song7;break;
case 8 :song=song8;break;
case 9 :song=song9;break;
case 10 :song=song10;break;
case 11 :song=song11;break;
case 12 :song=song12;break;
default :m=1;song=song1;break;
}
j=0;
flag=1;
while(*(song+j)!=0xFF&&flag)
{
k=*(song+j)&0x0F; //取出节拍
line=*(song+j)>>4; //取出音
TH0=yin[2*line];
TL0=yin[2*line+1];
TR0=1;
if ((yin[2*line]==0xFF)&&(yin[2*line+1]==0xFF))
{
TR0=0;
}
for(i=k;i>0;--i)
{
delay187ms();
}
TR0=0;
j++;
}
for(i=0;i<20;i++)delay187ms();
m++;
}
}
/* 每个音符的发声*/
void timer1() interrupt 1
{
TH0=yin[2*line];
TL0=yin[2*line+1];
speaker=!speaker;
}
void int0() interrupt 0
{
flag=0;
TR0=0;
}
TEST.C(359): error C141: syntax error near '#'
TEST.C(359): error C129: missing ';' before 'unsigned' 展开
展开全部
查看程序的358——360行,少了分号(注意是英文输入法下)或者程序里面有中文输入法下的符号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好!程序不全吧
你的song1-12,是怎么定义的?
yin的数组是怎么定义的?
你的song1-12,是怎么定义的?
yin的数组是怎么定义的?
追问
数组我没传上来
追答
问题解决就是好事
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
uchar code * data song;语法方面有问题吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询