本意是让8个发光管来回流动,但不知道哪里出错,请大家帮帮忙。。。
- C/C++ code
//8个发光管来回流动,每个管亮1000ms#include<reg52.h>#include <intrins.h>void delays(int m){ int x,y; for(x=m;x>0;x--) for(y=110;y>0;y--);}void main(){ char temp; int i; P1=0xfe; //先点亮第一个灯 while(1) { for(i=0;i<8;i++) { delays(1000); //亮一秒 temp=_crol_(temp,1); //左移一位,直到移到最高位亮 P1=temp; }//此时P1=0111 1111 for(i=0;i<8;i++) { delays(1000); temp=_cror_(temp,1); // 右移一位 P1=temp; } }}
本意是想让8个发光管来回流动,但实际运行,第一个灯亮一秒,然后其余的灯都亮了,不知道哪里出错了,请大家赐教,不甚感激。
[解决办法]
temp没有初始化,数据是什么都不知道就移位,有什么用呢。
[解决办法]
移位的是temp,不是0xfe
[解决办法]
不好意思,呵呵_crol_这个函数没有用过之前,呵呵 所以不知道是库函数,见笑了。
确实是temp 没有在左移的之前初始化
[解决办法]
自己跟踪看看出了什么问题