单片机 移位操作 右移 C语言
#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharuns...
#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charvoid delayms(uint);uchar aa;void main(){ aa=0xfe; while(1) { P1=aa; delayms(500); aa=_crol_(aa,1); } } void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); }这个是做流水灯时候 运用系统文件里自带的_crol_函数进行移位 此函数是左移函数 什么函数能是此程序右移?或者如何编写 谢谢
展开
4个回答
展开全部
楼主:
看我给你修改一下,作为给你参考:
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delayms(uint);
uchar aa;
void main()
{
aa=0xfe;
//你原来的
while(1)
{
P1=aa;
delayms(500);
aa=_crol_(aa,1);
}
//下面我写的
//右移1位
while(1)
{
P1=aa;
delayms(500);
aa=aa<<1; //右移1位
}
//左移1位
while(1)
{
P1=aa;
delayms(500);
aa=aa>>1; //左移1位
}
//右移8位
while(1)
{
unsigned char i;
for(i=0;i<8;i++)
{
P1=aa;
delayms(500);
aa=aa>>1;
}
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
//这个是做流水灯时候 运用系统文件里自带的_crol_函数进行移位 此函数是左移函数 什么函数能是此程序右移?或者如何编写 谢谢
看我给你修改一下,作为给你参考:
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delayms(uint);
uchar aa;
void main()
{
aa=0xfe;
//你原来的
while(1)
{
P1=aa;
delayms(500);
aa=_crol_(aa,1);
}
//下面我写的
//右移1位
while(1)
{
P1=aa;
delayms(500);
aa=aa<<1; //右移1位
}
//左移1位
while(1)
{
P1=aa;
delayms(500);
aa=aa>>1; //左移1位
}
//右移8位
while(1)
{
unsigned char i;
for(i=0;i<8;i++)
{
P1=aa;
delayms(500);
aa=aa>>1;
}
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
//这个是做流水灯时候 运用系统文件里自带的_crol_函数进行移位 此函数是左移函数 什么函数能是此程序右移?或者如何编写 谢谢
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
_crol_是左移函数,_cror_是右移函数;
我建议使用<<左移或>>右移,这样会容易理解;
我建议使用<<左移或>>右移,这样会容易理解;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
_cror_这个是右移
#include<reg52.h>//从D0---D7依次点亮
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp;
void delay(uint);
void main()
{
temp=0xfe;
while(1)
{
for(int num=0;num<8;num++)
{
P1=temp;
delay(100);
temp=_crol_(temp,1);
P1=0xff;
delay(100);
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--)
;
}
#include<reg52.h>//从D0---D7依次点亮
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp;
void delay(uint);
void main()
{
temp=0xfe;
while(1)
{
for(int num=0;num<8;num++)
{
P1=temp;
delay(100);
temp=_crol_(temp,1);
P1=0xff;
delay(100);
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--)
;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询