这是个单片机控制流水灯的c程序,但是我还个弱智问题为什么让temp=0xfe;第一个灯就能亮呢???

#include<reg51.h>
#include<intrins.h>
sbit D1=P0^0;
sbit D2=P0^3;
void delay(unsigned int z);
unsigned char temp;
void main()
{ temp=0xfe;
P0=temp;
while(1)
{
temp=_crol_(temp,1);
delay(5);
P0=temp;
}
}
void delay(unsigned int z)
{
unsigned int x,y;
for(x=0;x<1800;x++)
{
for(y=0;y<z;y++);
}
}

temp=0xfe 中的0xfe 就是变量temp中的值,,十六进表示法,,二进是01111111, 最高位为0,,,,送到P0口,,,那个P0.7为低电平,,,,LED就亮了
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-01
temp=0xfe // 0xfe = 11111110
P0=temp // 1 灯灭 0 灯亮 所有 11111110 第一个灯就能亮
// 如果 0xfb = 11111101 为第二个灯就能亮
第2个回答  2011-11-01
temp=0xfe;
P0=temp; 
就是P0=0xfe ,即1111 1110 。LED 阳极接正电源,此时第一个灯亮,本回答被提问者采纳
第3个回答  2011-11-01
程序本身没有问题,我刚刚自己在板子上实验了一遍!

好好检查哈自己的仿真!

这是个单片机控制流水灯的c程序,但是我还个弱智问题为什么让temp=0xfe...
temp=0xfe 中的0xfe 就是变量temp中的值,,十六进表示法,,二进是01111111, 最高位为0,,,送到P0口,,,那个P0.7为低电平,,,LED就亮了

请高手解释一下这个单片机流水灯C语言程序,新手~~
temp =_cror_(temp,1); \/\/循环右移 同RR 下面的就是控制P2口了 同上面类似 } \/\/这个程序实现的效果是:先让P0口控制的LED自右向左点亮(只亮一个灯)再自左向右点亮 然后就是P2口...temp=0xfe;for(num1=0;num1<8;num1++){ P2=temp;P0=0xff;Delay(100);temp = _crol_(t...

单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)
void main(void){ uint i;uchar temp;while(1){ temp=0x01;for(i=0;i<8;i++) \/\/8个流水灯逐个闪动 { P1=~temp;delay(100); \/\/调用延时函数 temp<<=1;} temp=0x80;for(i=0;i<8;i++) \/\/8个流水灯反向逐个闪动 { P1=~temp;delay(100); \/\/调用延时函数 temp>>=1;} temp...

temp=0xfe什么意思
带前缀o的代表八进制,带前缀ox的代表十六进制。temp(temporary 临时的)是变量名,把0xfe赋给它,以二进制为 11111110。

谁能帮我解释以着这个51单片机的c语言程序,说的详细些,谢谢!
估摸着是点亮流水灯的代码吧,首先delay();是延时这能明白吧!while(1){ temp=0xfe;P1=temp; \/\/先让P1口值为0xfe,估计是先点亮一个LED灯 delay();for(i=1;i<8;i++){ a=temp<>(8-i); \/\/temp右移8-i位 P1=a|b; \/\/P1赋值,实际上就是让P1=(temp循环左移i位),...

51单片机流水灯延时的问题,仿真软件proteus。
你程序就是这样的 temp=0xfe;P1=temp; 第一个灯亮 delay(840); 灯亮的时间 while(1)循环里 P1=0xff;灯全灭 delay(840); 灭的时间 temp=_crol_(temp,1); 循环移位 P1=temp;delay(840); 灯亮的时间

单片机LED流水灯循环问题
define uint unsigned int define uchar unsigned char uint temp,i,cishu;void delay(uint);void main(){ temp=0xfe;P1=temp;cishu=0; \/\/为次数 赋值0 while(cishu<2) \/\/ 规定流水灯来回循环2次 { cishu++; \/\/每一次循环 次数 +1 for(i=7;i>0;i--) { temp=_crol_(t...

51单片机流水灯用C语言编写的设计程序???
include<intrins.h> define uchar unsigned char define uint unsigned int void delay(uint z);main(){ uchar aa;while(1){ aa=0xfe;P1=aa;delay(100);while(1){ aa=_crol_(aa,1);P1=aa;delay(100);} } } void delay(uint z){ uint x,y;for(x=z;x>0;x--)for(y=110;y>0...

...新手流水灯疑问 为什么要设置临时变量temp 作用呢?
void main(){ while(1){ P1=_crol_(P1,1);delay(255);P1=0xfe;\/\/写在这试一下 } }

keil软件用单片机控制8个LED流水灯来回点亮(C语言程序)
\/\/程序中使用_crol_函数,所以要包含头文件"intrins.h"include "intrins.h"void delay(unsigned int t){ unsigned int i,j;for(i=t;i>0;i--)for(j=110;j>0;j--);} main(){ unsigned char temp;temp=0xfe;while(1){ P1=temp;delay(500); \/\/延时 temp=_crol_(temp,1); ...

相似回答