单片机程序交通灯,帮忙编译下,改正下里面的错误

#include<reg51.h>sbitsn_green=P3^6;sbitsn_yellow=P3^5;sbitsn_red=P3^4;sbitew_green=P3... #include<reg51.h>
sbit sn_green=P3^6;
sbit sn_yellow=P3^5;
sbit sn_red=P3^4;
sbit ew_green=P3^2;
sbit ew_yellow=P3^3;
sbit ew_red=P3^7;
#define uchar usingned char data cnt_sn,cnt_ew;
#define uintusingned int data T1_cnt;
#define char usingned char data state_val_sn,state_val_ew;
uchar code led_seg_code[10]={0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code init_sn[3]={24,4,29};
char code init_sn[3]={29,24,4};
viod delay(unsigned int i)//延时
{while(--i);}
viod led_show(unsigned int u)
{
unsigned char i;
i=u%10;
P0=led_seg_code[i]
P2^1=0;
delay(100);
i=u%100/10;
P0=led_seg_code[i];
P2^0=0;
delay(100);
}

viod timer1() interrupt 3
{
T1_cnt++;
if(T1_cnt>3999)
{T1_cnt=0;
if (cnt_sn!=0)
{cnt_sn--;
}
else
{
state_val_sn++;
if (cnt_val_sn>2) starte_val_sn=0;
cnt_sn=init_cal_sn[state_val_sn];
switch(state_val_sn)
{
case 0:sn_green=0;
sn_yellow=1;
sn_red=1;
break;
case 1:sn_green=1;
sn_yellow=0;
sn_red=1;
break;
case 2:sn_green=1;
sn_yellow=1;
sn_red=0;
break;
}}
if(cnt_ew!=0)
{cnt_ew--;
}
else
{
state_val_ew++;
if (cnt_val_ew>2) starte_val_ew=0;
cnt_sn=init_cal_ew[state_val_ew];
switch(state_val_ew)
{
case 0:ew_green=1;
ew_yellow=1;
ew_red=0;
break;
case 1:ew_green=0;
ew_yellow=1;
ew_red=1;
break;
case 2:ew_green=1;
ew_yellow=0;
ew_red=1;
break;
}}}}

main()
{
cnt_sn=init_sn[0];
cnt_ew=init_ew[0];
T1_cnt=0;
state_val_sn=0;
state_val_ew=0;
sn_green=0;
sn_yellow=1;
sn_red=1;
ew_green=1;
ew_yellow=1;
ew_red=0;
TMOD=0X20;
TH1=0X19;
TL1=0X19;
EA=1;
ET=1;
TR1=1;
while(1)
{
led_show(cnt_sn,cnt_ew);
}}
展开
 我来答
海蚀之心
2013-03-03 · TA获得超过4575个赞
知道大有可为答主
回答量:8326
采纳率:0%
帮助的人:2512万
展开全部
#包括
和SBIT sn_green = P3 ^ 6
SBIT sn_yellow = P3 ^ 5;
SBIT sn_red = P3 ^ 4;
和SBIT ew_green = P3 ^ 2; ;
SBIT ew_yellow = P3 ^ 3;
SBIT ew_red = P3 ^ 7;
SBIT P21 = P2 ^ 1;
SBIT P20 = P2 ^ 0;
定义的UCHAR无符号字符
UCHAR数据cnt_sn,cnt_ew
定义uint无符号整数
uint数据T1_cnt;
无符号字符型数据state_val_sn,state_val_ew;
UCHAR代码led_seg_code [ 10] = {的0x3F,0X06,0x05b,0x04f,0x66,0x6d,0x7d,为0x07,到0x7f,0x6f};
UCHAR代码init_sn [3] = {24,4,29};
UCHAR代码init_cal_sn [3] = {29,24,4};
UCHAR代码init_ew [3] = {24,4,29};
UCHAR代码init_cal_ew [3] = {29,24,4}
无效延迟(无符号整数I)/ /延迟
{( - );}
无效led_show(无符号整数U)
{
无符号字符型我;
I = U 10%;
P0 = led_seg_code [I];
P21 = 0;
延迟(100);
I = U%100 / 10;
P0 = led_seg_code [I];
P20 = 0;
延迟(100);
}
无效定时器1()中断3
{
T1_cnt + +;
(T1_cnt 3999)
{T1_cnt = 0;
(cnt_sn! = 0)
{cnt_sn -
}
其他
{
state_val_sn + +;
(state_val_sn> 2)state_val_sn = 0;
cnt_sn = init_cal_sn [state_val_sn];
开关( state_val_sn)
{
情况下,0:sn_green = 0;
sn_yellow = 1;
sn_red = 1;
突破;
情况1:sn_green = 1
sn_yellow = 0;
sn_red = 1;
突破;
案例2:sn_green = 1;
sn_yellow = 1;
sn_red = 0;
突破;
}
(cnt_ew! = 0)
{cnt_ew -
}
其他
{
state_val_ew + +;
(state_val_ew> 2)state_val_ew = 0;
cnt_sn = init_cal_ew [state_val_ew];
开关(state_val_ew)的
{
情况下,0:ew_green = 1;
ew_yellow = 1;
ew_red = 0;
突破;
案例1:ew_green = 0;
ew_yellow = 1;
ew_red 1
突破;
案例2:ew_green = 1;
ew_yellow = 0;
ew_red = 1;
突破;
}}}} BR />
()
{
cnt_sn init_sn [0];
cnt_ew init_ew [0];
T1_cnt = 0;
state_val_sn = 0;
state_val_ew = 0;
sn_green = 0;
sn_yellow = 1;
已sn_red = 1;
ew_green = 1;
ew_yellow = 1 ;
ew_red = 0;
TMOD = 0X20;
TH1 = 0×19;
TL1 = 0×19;
EA = 1;
ET1 = 1; BR /> TR1 = 1;
(1)
{
led_show(cnt_sn);
led_show(cnt_ew);
}}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
peterliu01
2013-03-01 · TA获得超过787个赞
知道小有建树答主
回答量:286
采纳率:100%
帮助的人:210万
展开全部
建议请别人帮忙的时候
1: 给出代码注释 ,让别人来猜你的代码功能是很痛苦的事情
2: 给出大致的错误提示,或你的疑问所在。
3:给出电路图,你的那个口输出别人怎么知道?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liyao6077433
2013-03-01 · 超过27用户采纳过TA的回答
知道答主
回答量:160
采纳率:0%
帮助的人:63.6万
展开全部
太长了 连注释也没有
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhxiufan
2013-03-01 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38375
国家科技进步奖

向TA提问 私信TA
展开全部
#include<reg51.h>
sbit sn_green=P3^6;
sbit sn_yellow=P3^5;
sbit sn_red=P3^4;
sbit ew_green=P3^2;
sbit ew_yellow=P3^3;
sbit ew_red=P3^7;
sbit p21=P2^1;
sbit p20=P2^0;
#define uchar unsigned char
uchar data cnt_sn,cnt_ew;
#define uint unsigned int
uint data T1_cnt;
unsigned char data state_val_sn,state_val_ew;
uchar code led_seg_code[10]={0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code init_sn[3]={24,4,29};
uchar code init_cal_sn[3]={29,24,4};
uchar code init_ew[3]={24,4,29};
uchar code init_cal_ew[3]={29,24,4};
void delay(unsigned int i)//延时
{while(--i);}
void led_show(unsigned int u)
{
unsigned char i;
i=u%10;
P0=led_seg_code[i];
p21=0;
delay(100);
i=u%100/10;
P0=led_seg_code[i];
p20=0;
delay(100);
}
void timer1() interrupt 3
{
T1_cnt++;
if(T1_cnt>3999)
{T1_cnt=0;
if (cnt_sn!=0)
{cnt_sn--;
}
else
{
state_val_sn++;
if (state_val_sn>2) state_val_sn=0;
cnt_sn=init_cal_sn[state_val_sn];
switch(state_val_sn)
{
case 0:sn_green=0;
sn_yellow=1;
sn_red=1;
break;
case 1:sn_green=1;
sn_yellow=0;
sn_red=1;
break;
case 2:sn_green=1;
sn_yellow=1;
sn_red=0;
break;
}}
if(cnt_ew!=0)
{cnt_ew--;
}
else
{
state_val_ew++;
if (state_val_ew>2) state_val_ew=0;
cnt_sn=init_cal_ew[state_val_ew];
switch(state_val_ew)
{
case 0:ew_green=1;
ew_yellow=1;
ew_red=0;
break;
case 1:ew_green=0;
ew_yellow=1;
ew_red=1;
break;
case 2:ew_green=1;
ew_yellow=0;
ew_red=1;
break;
}}}}

main()
{
cnt_sn=init_sn[0];
cnt_ew=init_ew[0];
T1_cnt=0;
state_val_sn=0;
state_val_ew=0;
sn_green=0;
sn_yellow=1;
sn_red=1;
ew_green=1;
ew_yellow=1;
ew_red=0;
TMOD=0X20;
TH1=0X19;
TL1=0X19;
EA=1;
ET1=1;
TR1=1;
while(1)
{
led_show(cnt_sn);
led_show(cnt_ew);
}}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式