#include<reg52.h>
#include<absacc.h>
sbit LED_BIT = P1^6;
#define led_enable() LED_BIT = 1
#define led_disable() LED_BIT = 0
#define led_move_1() P0 <<= 1
#define led_move_r() P0 >>=1
#define DELAY_TIME 20
void my_delay10nms(unsigned int n)
{
unsigned i,j;
while(n--)
{
for(i = 128;i>0;i--)
for(j = 10;j>0;j--);
}
}
void main(void)
{
led_enable();
unsigned char i,cnt = 1;
// led_enable();
my_delay10nms(DELAY_TIME);
while(1)
{
P0 = (1 << cnt) - 1;
my_delay10nms(DELAY_TIME);
for(i = 0;i <8-cnt;i++)
{
led_move_1();
my_delay10nms(DELAY_TIME);
}
for(i = 0;i<8-cnt;i++)
{
led_move_r();
my_delay10nms(DELAY_TIME);
}
cnt++;
if(cnt > 7) cnt =1;
}
}
------解决方案--------------------
搞不懂什么啊?
------解决方案--------------------
跑马灯么?程序没什么问题呢 哪里不理解
------解决方案--------------------
不好意思,忘了写自己疑惑的地方了:上面的代码,编译结果是错误的,但是,讲main主函数里面unsigned char i,cnt = 1;这句代码上面的led_enable();放到unsigned char i,cnt = 1;代码下面的话,那么编译就能够通过,并且程序能够正确运行。
------解决方案--------------------
有问题啊,编译通不过啊,但是,讲main主函数里面unsigned char i,cnt = 1;这句代码上面的led_enable();放到unsigned char i,cnt = 1;代码下面的话,那么编译就能够通过,并且程序能够正确运行。
------解决方案--------------------
不好意思,忘了写自己疑惑的地方了:上面的代码,编译结果是错误的,但是,将main主函数里面unsigned char i,cnt = 1;这句代码上面的led_enable();放到unsigned char i,cnt = 1;代码下面的话,那么编译就能够通过,并且程序能够正确运行。
------解决方案--------------------
必须是这样的啊 变量的声明必须放在函数体的前面