c语言单片机模拟红绿灯程序 请各位高手帮忙
#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharuchari,a,b,c,d,e,f;uin...
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar i,a,b,c,d,e,f;
uint x,y,z;
sbit a=P1^0,b=P1^1,c=P1^2,d=P1^3,e=P1^4,f=P1^5;
void delay(uint);
void main()
{
while(1)
{
e=0;
a=0;
delay(100); //延时20秒
for(i=0;i<=2;i++)
{
c=0;
f=0;
delay(100); //延时一秒
c=1;
f=1;
delay(100); //延时一秒
}
d=0;
b=0;
delay(100); //延时20秒
}
}
void delay (uint z)
{
for(x=z;x>=0;x--)
for(y=10000;y>=0;y--);
}
请各位看下哪错了 ·· 然后就是按照上面注释的延时时间怎样合理的选取Z值 展开
#define uint unsigned int
#define uchar unsigned char
uchar i,a,b,c,d,e,f;
uint x,y,z;
sbit a=P1^0,b=P1^1,c=P1^2,d=P1^3,e=P1^4,f=P1^5;
void delay(uint);
void main()
{
while(1)
{
e=0;
a=0;
delay(100); //延时20秒
for(i=0;i<=2;i++)
{
c=0;
f=0;
delay(100); //延时一秒
c=1;
f=1;
delay(100); //延时一秒
}
d=0;
b=0;
delay(100); //延时20秒
}
}
void delay (uint z)
{
for(x=z;x>=0;x--)
for(y=10000;y>=0;y--);
}
请各位看下哪错了 ·· 然后就是按照上面注释的延时时间怎样合理的选取Z值 展开
2个回答
展开全部
uchar i,a,b,c,d,e,f;
sbit a=P1^0,b=P1^1,c=P1^2,d=P1^3,e=P1^4,f=P1^5;
你的错误是:a,b,c,d,e,f重复定义;sbit 要单独一行。可以修改如下:
sbit aa=P1^0;
sbit bb=P1^1;
sbit cc=P1^2;
sbit dd=P1^3;
sbit ee=P1^4;
sbit ff=P1^5;
你的延时函数这样取可以,没有问题。
sbit a=P1^0,b=P1^1,c=P1^2,d=P1^3,e=P1^4,f=P1^5;
你的错误是:a,b,c,d,e,f重复定义;sbit 要单独一行。可以修改如下:
sbit aa=P1^0;
sbit bb=P1^1;
sbit cc=P1^2;
sbit dd=P1^3;
sbit ee=P1^4;
sbit ff=P1^5;
你的延时函数这样取可以,没有问题。
追问
sbit aa=P1^0;
换成sbit a=P1^0;
不行么 为什么两个a
追答
aa这个名字我是随便取的,根据你的习惯,你重新取一个名字就行了。
你的程序中,变量重复定义了,也就是变量的名字重了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询