keil出现error C141: syntax error near 'void', expected '__asm'? 5
mujiawei:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedint/************...
mujiawei:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
/********************************引脚定义*************************************/
sbit red1=P0^0; //南北方向
sbit yellow1=P0^1;
sbit green1=P0^2;
sbit red2=P0^3; //东西方向
sbit yellow2=P0^4;
sbit green2=P0^5;
sbit smg1=P3^4;//数码管引脚
sbit smg2=P3^5;
sbit smg3=P3^6;
sbit smg4=P3^7;
/**********************************变量定义************************************/
uchar code tabel[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar sec=0,miao=0; //定时
uchar nan=0,dong=0;//东西南北时间
uchar mode=0; //路灯工作顺序
uchar nan_lim=6,dong_lim=6;//自由调整时主次干道绿灯时间
uchar a,b; //南北东西时间
/***************************函数定义**************************/
void delay(uint i)//延时
{
while(i--);
}
void control()//控制路灯
{
switch(mode)
{
case 0:red1=0;yellow1=1;green1=1;red2=1;yellow2=1;green2=0;//南北红灯亮
nan=dong_lim+6;dong=dong_lim;//设置初始时间
break;
case 1:red1=0;yellow1=1;green1=1;red2=1;yellow2=0;green2=1;//东西黄灯亮
dong=6;nan=6;
mujiawei:
void display() //显示各路口时间
{
P2=tabel[nan/10];//南北
smg1=0;
delay(100);
smg1=1;
P2=tabel[nan%10];
smg2=0;
delay(100);
smg2=1;
P2=tabel[dong/10];//东西
smg3=0;
delay(100);
smg3=1;
P2=tabel[dong%10];
smg4=0;
delay(100);
smg4=1;
}
void main()//主函数
{
TMOD=0x01;//定时器设置
TH0=0x3c; //50ms
TL0=0xb0;
ET0=1; //开中断
EA=1;
TR0=1; //启动定时器
control();
while(1)
{
display();//显示
}
}
void timer0() interrupt 1//定时器0中断
{
if(sec<20)
sec++;
else
{
sec=0;
if((dong==0)||(nan==0))//一轮结束
{
if(mode<3)
mode++;
else
mode=0;
control();//显示
}
if(nan>0) //倒计时
nan--;
if(dong>0)
dong--;
}
if((sec==10)||(sec==20))
{
if(mode==1)
{
if(dong<6)
yellow2=!yellow2;//黄灯闪烁
}
if(mode==3)
{
if(nan<6)
yellow1=!yellow1;//黄灯闪烁
}
}
TH0=0x3c;//重装定时器
TL0=0xb0; 展开
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
/********************************引脚定义*************************************/
sbit red1=P0^0; //南北方向
sbit yellow1=P0^1;
sbit green1=P0^2;
sbit red2=P0^3; //东西方向
sbit yellow2=P0^4;
sbit green2=P0^5;
sbit smg1=P3^4;//数码管引脚
sbit smg2=P3^5;
sbit smg3=P3^6;
sbit smg4=P3^7;
/**********************************变量定义************************************/
uchar code tabel[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar sec=0,miao=0; //定时
uchar nan=0,dong=0;//东西南北时间
uchar mode=0; //路灯工作顺序
uchar nan_lim=6,dong_lim=6;//自由调整时主次干道绿灯时间
uchar a,b; //南北东西时间
/***************************函数定义**************************/
void delay(uint i)//延时
{
while(i--);
}
void control()//控制路灯
{
switch(mode)
{
case 0:red1=0;yellow1=1;green1=1;red2=1;yellow2=1;green2=0;//南北红灯亮
nan=dong_lim+6;dong=dong_lim;//设置初始时间
break;
case 1:red1=0;yellow1=1;green1=1;red2=1;yellow2=0;green2=1;//东西黄灯亮
dong=6;nan=6;
mujiawei:
void display() //显示各路口时间
{
P2=tabel[nan/10];//南北
smg1=0;
delay(100);
smg1=1;
P2=tabel[nan%10];
smg2=0;
delay(100);
smg2=1;
P2=tabel[dong/10];//东西
smg3=0;
delay(100);
smg3=1;
P2=tabel[dong%10];
smg4=0;
delay(100);
smg4=1;
}
void main()//主函数
{
TMOD=0x01;//定时器设置
TH0=0x3c; //50ms
TL0=0xb0;
ET0=1; //开中断
EA=1;
TR0=1; //启动定时器
control();
while(1)
{
display();//显示
}
}
void timer0() interrupt 1//定时器0中断
{
if(sec<20)
sec++;
else
{
sec=0;
if((dong==0)||(nan==0))//一轮结束
{
if(mode<3)
mode++;
else
mode=0;
control();//显示
}
if(nan>0) //倒计时
nan--;
if(dong>0)
dong--;
}
if((sec==10)||(sec==20))
{
if(mode==1)
{
if(dong<6)
yellow2=!yellow2;//黄灯闪烁
}
if(mode==3)
{
if(nan<6)
yellow1=!yellow1;//黄灯闪烁
}
}
TH0=0x3c;//重装定时器
TL0=0xb0; 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询