让灯循环右移亮起来程序问题

2019-07-15 18:19发布

各位好,小弟我新手一枚,打算让灯循环右移浪起来,哪里错了呢
#include<reg52.h>
#define uint unsigned int;
uint z,x,i;
void delay(uintz);
void main()
{
while(1)
  {  
P1=0x7f;
     for(i=0;i<8;i++)
     {
   delay(5000);
   P1>>=1;
      }
   }
}
void delay(uintz)
{
for(x=z;x>0;x--);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
zy2014
2019-07-16 00:02
本帖最后由 zy2014 于 2014-10-15 13:27 编辑
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char

  5. void delayms(uint num)
  6. {
  7.     uint x,y;
  8.     for(x=num;x>0;x--)
  9.     for(y=110;y>0;y--);
  10. }

  11. void main()
  12. {
  13.     uint led;
  14.     led=0x7f;
  15.     while(1)
  16.     {
  17.         P1=led;
  18.         delayms(500);
  19.         led=_crol_(led,1);
  20.     }
  21. }
复制代码


1.P1>>=1;P1的值依次如下循环
0x7f 0x3f 0x1f 0x0f   0x07 0x03 0x01 0x00
2.delay的时间太短了

一周热门 更多>