Keil 中#include <intrins.h>里边的“_crol_和 _cror_”函数是怎么用C语言实现的?

我问这个的初衷是想把51的程序移植到AVR里边。我知道51单片机有个CY位,不知道AVR是否有。希望能有高手帮帮小弟。

第1个回答  2012-06-20
temp=_crol_(temp,1);表示temp进行循环左移若原为11111110移后为11111101
temp=_crol_(temp,1);表示temp进行循环右移若原为01111111移后为10111111本回答被网友采纳
第2个回答  2012-06-14
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,num,num1;
sbit beep=P2^3;
void delay(uint);

void main()
{

temp=0xfe;
while(1)
{
for(num1=0;num1<3;num1++)
{
for(num=0;num<8;num++)
{
P1=temp;
beep=0;
delay(100);
temp=_crol_(temp,1);
P1=0xff;
beep=1;
delay(100);
}
}
for(num1=0;num1<3;num1++)
{
for(num=0;num<8;num++)
{
P1=temp;
beep=0;
delay(100);
temp=_cror_(temp,1);
P1=0xff;
beep=1;
delay(100);
}
}
while(1);
}
}

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}追问

我是要实现CROR和CROL的功能而不是怎么使用。我知道怎么使用这两函数。

第3个回答  2017-11-20
好吧,我都是直接用(右移temp>>=1;左移temp<<=1;)一条语句就搞定的事情,不用那么复杂,保证能用
第4个回答  2012-06-13
debug的时候看能否跟进去? 不过一般情况下,可能不是C写的追问

我想从51移植到AVR中,51没有debug吧?

Keil 中#include <intrins.h>里边的“_crol_和 _cror_”函数是怎么用C...
temp=_crol_(temp,1);表示temp进行循环右移若原为01111111移后为10111111

51单片机如何用C程序中的_crol_和_cror_实现流水灯来回显示
include<intrins.h> 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 的值向左循环移动...

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

Keil里intrins.h头文件中各函数是做什么用?
c51中的intrins.h库 _crol_ 字符循环左移 _cror_ 字符循环右移 _irol_ 整数循环左移 _iror_ 整数循环右移 _lrol_ 长整数循环左移 _lror_ 长整数循环右移 _nop_ 空操作8051 NOP 指令 _testbit_ 测试并清零位8051 JBC 指令

KEIL用C语言加入PUSH,POP
在keil C51中,直接调用库函数:#include<intrins.h> \/\/ 其中包含了对部分汇编指令的调用申明 _nop_(); \/\/ 产生一条NOP指令 _push_(acc); \/\/ 产生一条push指令 以下是intrins.h的内容 \/*--- INTRINS.H Intrinsic functions for C51.Copyright (c) 1988-2004 Keil Elektronik GmbH and Keil...

51单片机流水灯程序中头文件#include<intrinsh>的解析
intrins.h 编辑本段intrins.h 在C51单片机编程中,头文件INTRINS.H的函数使用起来,就会让你像在用汇编时一样简便. 内部函数 描述 _crol_ 字符循环左移 _cror_ 字符循环右移 _irol_ 整数循环左移 _iror_ 整数循环右移 _lrol_ 长整数循环左移 _lror_ 长整数循环右移 _nop_ 空操作8051 NOP ...

intrins.h的内部函数 描述
_crol_ 字符循环左移_cror_ 字符循环右移_irol_ 整数循环左移_iror_ 整数循环右移_lrol_ 长整数循环左移_lror_ 长整数循环右移_nop_ 空操作 (相当于8051 NOP 指令)_testbit_ 测试并清零位 (相当于8051 JBC 指令)函数名: _crol_,_irol_,_lrol_原 型:unsigned char _crol_(...

使用_crol_()和_cror_()函数的前提是什么?
这两个函数在编写c语言程序时表示左移和右移,在使用这两个函数时需要先定义,#include<intrinsic. h>

单片机C语言如何实现8个LED流水灯来回流动?
1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:

关于intrins.h头文件的介绍
此外,`intrins.h`头文件中包含了其他几种循环移位函数:`irol`:整数循环左移;`iror`:整数循环右移;`lrol`:长整数循环左移;`lror`:长整数循环右移。其中循环移位的类型由函数首字母表示:`char`型使用`_crol_`和`_cror_`,`int`型使用`irol`和`iror`,`long`型使用`lrol`和`lror`...

相似回答