注册 登录
编程论坛 单片机编程

新手求助,帮我看哈这个程序怎么错了

ttanyi 发布于 2010-04-21 08:50, 895 次点击
#include<reg51.H>
#define uchar unsigned char
void delay();
uchar a,b;
void main()
{
P0=0;
P1=0;
while(1)
{
P0=a;
P1=b;
a=ox1;
b=ox3f;
delay(2000);
P0>>=1;
P1<<=1;
}
}
我想用P0和P1口各控制三盏灯。
我是大一的学生,希望大家帮帮我,谢谢!
6 回复
#2
lijm19892010-04-26 16:25
是0x不是ox。。。。
程序也有问题~~~不知道LZ解决了没 ··
#3
2010-04-30 22:03
延时程序是你忘写了吗?还是没有?
另外,>>=,<<=,有这两个运算符吗?
楼上也说对了一点。
#4
软编小虫2010-05-28 14:19
首先,你的头文件必须隔开  #include  <reg51.h>
就像上边的一样,不然C语言将不识别,其次,你的头文件里的H应为小写,因为C语分大小写,而U3编辑器的头文件是用小写声明的。
你调用的delay()函数从那弄来?你并还没编写就调用了。

P0=a;
P1=b;
a=ox1;
b=ox3f;
顺序倒了,你也可这样写,但我看不出有什么意义。因为你还没对a,b进行初始化,就把它赋给了P1,P0,这样两个端口的值将不确定,然后你又对A,B进行赋值,但却没用它们。。。。。
兄弟,你的程序主要是用来控三盏灯的,但我看不出你的程序中有这种逻辑,while()里边的逻辑完全是错的,
好好学C语。。。。。
<<=与>>=这些符号都是对的。

#5
ty3593931852010-06-08 17:51
你的延时程序没有写啊,怎么就调用了呢 ,建议延时程序写成
先在main()前面声明unsigned  int  delay(int a)

unsigned  int  delay(int a)

  unsigned  int  i,j;
  for(i=a;i>0;i--)
    for (j=110;j>0;j--);
 }
这个延时程序大概延时1毫秒  要想准确延时就要用中断才行
#6
renpei2010-07-12 21:25
程序全是错的,
1