首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

单片机c语言编程中的一个有关问题,始终是搞不懂啊代码在上面

2012-12-18 
单片机c语言编程中的一个问题,始终是搞不懂啊,代码在下面#includereg52.h#includeabsacc.hsbitLED_BIT

单片机c语言编程中的一个问题,始终是搞不懂啊,代码在下面
#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;代码下面的话,那么编译就能够通过,并且程序能够正确运行。

[解决办法]
必须是这样的啊 变量的声明必须放在函数体的前面

热点排行