C51单片机里的_crol_()语句用普通的语句怎么实现

就是如何用普通的语句实现_crol_()的功能

第1个回答  2012-10-29
汇编最简单:RL A ;循环左移
C麻烦一点:
unsigned char corl(unsigned char a)
{
if(a&0x80)a=(a<<1)|0x01;
else a=a<<1;
return(a);
}追问

  #include
  #include
  #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);
  }
  }
  void delayms(uint xms)
  {
  uint i,j;
  for(i=xms;i>0;i--)
  for(j=110;j>o;j--);
  }该怎么改?

追答

#include
  #define uint unsigned int
  #define uchar unsigned char
  void delayms(uint);
  uchar aa;
  void main()
  {
  aa=0xfe;
  while(1)
  {
  P1=aa;
  delayms(500);
if(aa&0x80)aa=(aa0;i--)
  for(j=110;j>o;j--);
  }

本回答被提问者和网友采纳
第2个回答  2012-10-29
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
uint a;
void delay(z)
{

uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
while(1)
{
P1=0xfe;
delay(200);
for(a=8;a>0;a--)
{
P1=_crol_(P1,1);
delay(200);
}
}
}类似的
第3个回答  2012-10-29
unsigned char aa,bb;
aa<<=1;
bb=CY;
aa=aa|bb;

C51单片机里的_crol_()语句用普通的语句怎么实现
汇编最简单:RL A ;循环左移 C麻烦一点:unsigned char corl(unsigned char a){ if(a&0x80)a=(a<<1)|0x01;else a=a<<1;return(a);}

51单片机。用C语言的_crol_()函数实现LED灯循环左移。为什么我的程序只...
,故点亮的是p1.0引脚所对应的led灯,也就是你所谓的c0。所以你的程序没有问题啊。

51单片机如何用C程序中的_crol_和_cror_实现流水灯来回显示
define uchar unsigned char define uint unsigned int \/\/延时 void DelayMS(uint x){ uchar i;while(x--){ for(i=0;i<120;i++);} } \/\/主程序 void main(){ uchar i;P2=0x01;while(1){ for(i=0;i<7;i++){ P2=_crol_(P2,1); \/\/P2 的值向左循环移动 DelayMS(150);} fo...

关于单片机流水灯左移右移的问题?
51单片机的左移右移,首先在开始要调用"intrins.h"的文件包,这个文件包含_cror_(右移),_crol_(左移);然后通过for语句来控制;for(m=20;m>0;m--)for(n=20;n>0;n--)for(k=250;k>0;k--);理解这三句,第一句是指:m=20;m>0然后m--是真就执行:for(n=20;n>0;n--)for(k=...

请问C51单片机的循环左移和循环右移函数中的“循环”是指什么?_百度知 ...
C51单片机的循环左移函数是,_crol_(变量名,n),循环右移函数是,_cror_(变量名,n),函数中的“循环”是指变量的8位二进制数依次向左移一位,或向右移一位。你比如的,取8位数,让1111 1110循环左移一位,就是在1111 1110、1111 1101、1111 1011、1111 0111、1110 1111,等等,每移位一次,...

单片机c语言中_cror_ 这个函数是怎么用的??
1、首先要写入单片机的头函数,定义单片机P1口的8个管脚,让他们分别代表流水灯的8个led。2、写一个大约一小时的延时函数,为了清楚的看到流水灯的、效果。3、下面是流水灯的主函数,流水灯一个点亮后一个熄灭反复循环点亮熄灭。4、这样流水灯就可以反复循环了。把程序下到仿真软件或者是开发板,进行...

单片机: 为什么这样写就相当于是 _crol_函数? 其中a,b,temp,count的类 ...
crol()是循环左移,在汇编相当于多个 RL A,的组合。比如0xc3,循环左右2位,结果是0x0f;这里temp=0xc3,count=2;a=temp<<2=0x0c;b=temp>>(8-2)=0x03;a|b=0x0f;现在你明白了吗?这相当于corl()函数的执行结果。

51单片机C程序实验LED灯:[2]左到右的流水灯
说明:实现一排灯从左到右依次一个一个点亮熄灭,实现流水灯 proteus电路图 元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二极管 电阻 电路图的连接方法 程序清单 说明:本例有两种程序写法 第一种是入门级别比较基础的写法 先是依旧延时子程序,然后主程序利用直接赋值,与...

单片机 左移函数是怎么用的
左循环本征函数:函数原型:unsigned char _crol_(unsigned char a,unsigned char n);单片机左移函数用法:例如,P2=0xff; P2=_crol_(P2,1);\/\/语法是对的,但这是没意义的,因为执行程序后P2还是原值0xff P2=0xfe; P2=_crol_(P2,1);\/\/执行程序后P2=0xfd ...

求一c51单片机,8位流水灯程序
main(){ unsigned char a, b, c, i, j, k;a = 0xfe;while(1) { b = a;for(c = 0; c < 4; c++) { P1 = b;b = _crol_(b, 1);for(i = 8; i > 0; i--)for(j = 250; j > 0; j--)for(k = 250; k > 0; k--);} a = _crol_(a, 1);} } ...

相似回答
大家正在搜