intrins.h,函式,套用于程式设计,一般出现在C51单片机编程中,一般程式中需要使用到空指令_nop_();字元循环移位指令_crol_等时使用。
基本介绍
- 中文名头档案
- 外文名intrins.h
- 套用C51单片机编程
- 类型函式
- 学科程式设计
概念
在C51单片机编程中,头档案INTRINS.H的函式使用起来,就会让你像在用彙编时一样简便.
内部函式
_crol_ 字元循环左移
_cror_ 字元循环右移
_irol_ 整数循环左移
_iror_ 整数循环右移
_lrol_ 长整数循环左移
_lror_ 长整数循环右移
_nop_ 空操作 (相当于8051 NOP 指令)
_testbit_ 测试并清零位 (相当于8051 JBC 指令)
函式名 _crol_,_irol_,_lrol_
原 型
unsigned char _crol_(unsigned char val,unsigned char n);
unsigned int _irol_(unsigned int val,unsigned char n);
unsigned int _lrol_(unsigned int val,unsigned char n);
举例
_crol_,_cror_将char型变数循环向左(右)移动指定位数后返回
_testbit_ 相当于JBC bitvar测试该位变数并跳转清除。
_chkfloat_ 测试并返回源点数状态。
就是彙编中的子函式。
_crol_,_cror_如果二进制数为01010101 那幺_crol_(1) 左移1位后将高位补低位。
结果10101010。
功 能_crol_,_irol_,_lrol_以位形式将val 左移n 位,该函式与8051“RLA”指令相关,上面几个函式不同于参数类型。
例
#include <intrins.h>
main()
{
unsigned int y;
y=0x00ff;
y=_irol_(y,4);
}
函式名 _cror_,_iror_,_lror_
原 型
unsigned char _cror_(unsigned char val,unsigned char n);
unsigned int _iror_(unsigned int val,unsigned char n);
unsigned int _lror_(unsigned long val,unsigned char n);
功 能_cror_,_iror_,_lror_以位形式将val 右移n 位,该函式与8051“RRA”指令相关,上面几个函式不同于参数类型。
例
#include <intrins.h>
main()
{
unsigned int y;
y=0x0ff00;
y=_iror_(y,4);
}
函式名 _nop_
原 型 void _nop_(void);
void_tuzi_(void);
void _nop_(void);
功 能_nop_产生一个NOP 指令,该函式可用作C 程式的时间比较。C51 编译器在_nop_函式工作期间不产生函式调用,即在程式中直接执行了NOP 指令。
例
P()=1;
_nop_();
P()=0;
函式名 _testbit_
原 型bit _testbit_(bit x);
功 能_testbit_产生一个JBC 指令,该函式测试一个位,当置位时返回1,否则返回0。如果该位置为1,则将该位复位为0。8051 的JBC 指令即用作此目的。_testbit_只能用于可直接定址的位;在表达式中使用是不允许的。