P0=P0<<7|P0>>1gt是什么意思思

51单片机问题:有一排LED灯,先最左边的亮,然后依次向右移 到了左右后再向左移 如此重复4次_百度知道
51单片机问题:有一排LED灯,先最左边的亮,然后依次向右移 到了左右后再向左移 如此重复4次
你要程序?你用-crol--cror-来移动加for循环来控制次数就行啦
其他类似问题
51单片机的相关知识
其他4条回答
我帮你顶一下吧,你这个问题,问的一点都不清楚,让人有点看不懂,你想问什么。
描述不清楚啊,指示灯的程序应该是非常简单的.
;8个LED灯接在P1口,低电平亮灯;MOV
#4LOOP: MOV
R0 , #7MOV
#7FHLOOP1:MOV
R0 , # 7 LOOP2:RL
LOOPSTOPDELAY
延时0.5-1秒的程序END
void main(void){uchar i=0,j=0;P0=0x01;delay_ms(500);
for(i=0;i&4;i++)
//循环4次{ for(j=0;j&7;j++)
//循环7次 {
P0&&=1; //右移一位
delay_ms(500);
//延时500ms } for(j=0;j&7;j++) //循环7次 { P0&&=1; //左移一位
delay_ms(500);
//延时500ms
}}while(1); //程序挂起}随便打的,可能有问题,基本思路就这样,自己再修改下吧。
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁循环左移的原因,详细点_百度知道
循环左移的原因,详细点
for(i=0;i&8;i++)
temp = P0&&7;
P0 = P0&&1;
delay(1000);//一个延时函数
提问者采纳
这个的确是循环左移。首先,temp存的是p0的最高位,然p0左移,当然左移过后最高位被舍弃了,但循环左移要的是最高位被移到最低位,而此时temp 存的就是最高位,因此通过或运算将temp 存的最高位赋给p0的最低位,到此循环左移一位实现成功。
提问者评价
其他类似问题
temp = P0&&7;
P0 = P0&&1;
P0 = P0|这些是为了与delay(1000);一起凑够1秒多一点的时延,从而在for控制下共达到延迟8秒多一些的效果。
按默认排序
其他2条回答
估计是用于使一串指示灯依次点亮其中的一个,并循环。
是不是起清零的作用啊。
就是这个temp=p0&&7,p0初始值为p0=0x01
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁51单片机中,如何写一个程序让数码管循环显示_百度知道
51单片机中,如何写一个程序让数码管循环显示
提问者采纳
#include&reg52.h&#define&uint&unsigned&int&sbit&K1=P2^0;sbit&K2=P2^1;uint&i,a;void&delay(uint&z){ uint&x,y; for(x=z;x&0;x--)
for(y=110;y&0;y--);}void&main(){
P0=0 while(1) {
if(K1==0&K2==1)
delay(100);
if(K1==0&K2==1)
for(i=0;i&8;i++)
delay(2000);
P0=~(~P0&&1);
&if(K2==0&K1==1)
delay(100);
if(K2==0&K1==1)
for(i=0;i&8;i++)
delay(2000);&&
P0=~(~P0&&1);
提问者评价
其他类似问题
51单片机的相关知识
按默认排序
其他1条回答
高低电平循环驱间加延外部while循环即
您可能关注的推广回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁用c语言编写流水灯。_百度知道
用c语言编写流水灯。
提问者采纳
#include&reg52.h&#define uchar unsigned char
//数据类型宏定义#define uint unsigned int
//数据类型宏定义uchar code table[]={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};
//定义八LED灯工作状态
void delay(uint);void main(){
//死循环让程序断重复 {
for(a=0; a&8; a++)
//for循环让程序跑八
delay(50);
P2=table[a];
//八别让8LED灯点亮
}/******************************************函数功能:延段间*******************************************/void delay(uint i){
for(; i&0; i--) for(j=0; j&125; j++) {
其他类似问题
按默认排序
其他2条回答
#include&reg51.h&#include &intrins.h&void delayms(unsigned char ms) // 延程序{ while(ms--){for(i = 0; i & 120; i++);}}flash(){
P0=0x00;delayms(250);
P0=0delayms(250);
P0=0x00;delayms(250);
P0=0delayms(250);}main(){unsigned char LED;LED = 0P0 = LED;while(1){LED = _crol_(LED,1); //循环右移1位点亮LEDP0 = LED;delayms(250);if(LED==0x7f){
P0=0x7f;while(P0!=0xfe){P0=P0&&7|P0&&1;//循环左移delayms(250);}
flash(); }}}
C语言流水灯程序是学习的基础,一定要搞懂!给你发两个!(一)#include&reg51.h&
//51系列单片机定义文件#define uchar unsigned char //定义无符号字符#define uint unsigned int //定义无符号整数void delay(uint);
//声明延时函数void main(){ while(1) {
temp=0x01;
for(i=0;i&8;i++) //8个流水灯逐个闪动
delay(500);
//调用延时函数
} temp=0x80; for(i=0;i&8;i++) //8个流水灯反向逐个闪动
delay(500);
//调用延时函数
temp=0xFE; for(i=0;i&8;i++) //8个流水灯依次全部点亮
delay(500);
//调用延时函数
temp=0x7F;
for(i=0;i&8;i++) //8个流水灯依次反向全部点亮
delay(500);
//调用延时函数
} }}void delay(uint a)
//延时函数,毫秒级别{ while(--a!=0)
//执行空操作循环,其中a为形参,由调用该函数的函数语句提供值 {
for(i=0;i&125;i++);//执行当0加到125时,大约会用掉1ms的时间 }}(二)*****************************以下程序均采用12M晶振*****************************************************/#include&reg51.h&#define uint unsigned int#define uchar unsigned char#define ulong unsigned long sbit p2=P2^0;void main(){
TMOD=0x01;
}}timer0() interrupt 1{
p2=!p2;}(三)定时流水灯//#include&reg51.h&#define uint unsigned int#define uchar unsigned char#define ulong unsigned longbit ldelay=0;void main(){
uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};
TMOD=0x00;
if(ldelay)
P2=led[leda];
if(leda==9)leda=0;
} }}timer2() interrupt 1{
}} (四)变速流水灯//#include&reg51.h&#define uint unsigned int#define uchar unsigned char#define ulong unsigned longbit ldelay=0;uchar speed=100;void main(){
uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};
TMOD=0x00;
if(ldelay)
P2=led[leda];
if(leda==9)
speed-=10;
if(speed==0)speed=100;
} }}timer2() interrupt 1{
if(t==speed)
}} (五)//每2两圈改变一次亮度#include&reg51.h&#define uint unsigned int#define uchar unsigned char#define ulong unsigned longbit ldelay=0;uchar speeda=30;uint k=0;void main(){
uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};
uchar speed[10]={5,80,70,60,50,40,30,20,10,5};
TMOD=0x00;
if(ldelay)
P2=led[leda];
if(leda==9)
speeda=speed[i];
if(i==9)i=0;
} }}timer2() interrupt 1{
if(t==speeda)
}} (六)//在上面基础上调灯的亮度(调占空比)#include&reg51.h&#define uint unsigned int#define uchar unsigned char#define ulong unsigned longbit ldelay=0;uchar speeda=30;uint k=0;
void main(){
uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};
uchar speed[10]={5,80,70,60,50,40,30,20,10,5};
TMOD=0x00;
if(ldelay==1)
P2=led[leda];
if(scale==10)scale=0;
if(leda==9)
speeda=speed[i];
if(i==9)i=0;
} }}timer2() interrupt 1{
if(t==speeda)
if(scale==10)P2=0;
if(scale==0)P2=1;}
其他类似问题
流水灯的相关知识
您可能关注的推广回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 lt gt 的文章

 

随机推荐