intrins.h 简介

发布者:BlissfulJourney最新更新时间:2024-08-08 来源: cnblogs关键字:intrins  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

  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 int val,unsigned char n);

  功 能:_cror_,_iror_,_lror_以位形式将val 右移n 位,该函数与8051“RRA”指令相关,上面几个函数不同于参数类型。

  例:

  #include

  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_只能用于可直接寻址的位;在表达式中使用是不允许的。


关键字:intrins  C51  单片机编程 引用地址:intrins.h 简介

上一篇:8x8LED点阵+单片机+普中+江科大自化协
下一篇:Keil C51 采用ANSIC标准关键字(共32个)

推荐阅读最新更新时间:2026-03-23 10:17

C51中的INTRINS.H:内部函数
函数名: _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_,_irol_,_lrol_以位形式将val 左移n 位,该函数与8051 RLA 指令 相关,上面几个函数不同于参数类型。 例: #include main() { unsigned int y; C
[单片机]
intrins.h内部函数
在C51单片机编程中,头文件INTRINS.H的函数如下: (1)_crol_ 字符循环左移 将char型变量循环向左(右)移动指定位数后返回 (2)_cror_ 字符循环右移 将char型变量循环向左(右)移动指定位数后返回 (3)_irol_ 整数循环左移 (4)_iror_ 整数循环右移 (5)_lrol_ 长整数循环左移 (6)_lror_ 长整数循环右移 (7)_nop_ 空操作 (相当于8051 NOP 指令) 1s=1000ms=1000 000us _nop_表示空循环一个机器指令的时间,12M中表示1us;6M中表示2us;24M中表示0.5us(微妙) (8)_testbit_ 测试并清零位 (相当于8051
[单片机]
#include<intrins.h>中包含的函数说明
#include intrins.h 中包含的函数: _crol_ 字符循环左移 将char型变量循环向左移动指定位数后返回(将高位补低位) _cror_ 字符循环右移 将char型变量循环向右移动指定位数后返回(将低位补高位) _irol_ 整数循环左移 将int型变量循环向左移动指定位数后返回(将高位补低位) _iror_ 整数循环右移 将int型变量循环向右移动指定位数后返回(将低位补高位) _lrol_ 长整数循环左移 将long型变量循环向左移动指定位数后返回(将高位补低位) _lror_ 长整数循环右移 将long型变量循环向右移动指定位数后返回(将低位补高位) _nop_ 空操
[单片机]
Keil 中头文件INTRINS.H的作用
Abstract: 在C51单片机编程中,头文件INTRINS.H的函数使用起来,就会让你像在用汇编时一样简便. Introduction: 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); unsign
[单片机]
C51单片机编程规范总则
简介:本标准规定了程序设计人员进行程序设计时必须遵循的规范。本规范主要针对C51编程语言和keil编译器而言,包括排版、注释、命名、变量使用、代码可测性、程序效率、质量保证等内容。 1.单片机C51编程规范-总则 格式清晰 注释简明扼要 命名规范易懂 函数模块化 程序易读易维护 功能准确实现 代码空间效率和时间效率高 适度的可扩展性 2. 单片机C51编程规范-数据类型定义 编程时统一采用下述新类型名的方式定义数据类型。 建立一个datatype.h文件,在该文件中进行如下定义: typedef bit BOOL; // 位变量 // typedef unsigned char INT8U; // 无符号8位整型变量 //
[单片机]
c51单片机编程要点总结
c51单片机编程要点总结 1、头文件:#include (我用的是 STC 89C54RD+) 2、预定义:sbit LED = P1^0// 定义 P1 口的 0 位为 LED 注:“P1^0”这个写法,与 A51 不同(A51 是 P1.0),P1 是一组端口,端口号范围 0~7 注2:sbit 用于定义 SFR(特殊功能寄存器)的位变量,上例中 LED 作为“全局变量”进行定义 注3:以下写法是错误的: sbit code table = {P1^0, P1^1, P1^2, P1^3};// 想用 table 指定不同的引脚,但这么做会报错 sbit table = {P1^0, P1^1, P1^2, P1^3}
[单片机]
51单片机编程开发(九)之UART通信应用
51单片机UART通信接口 通过上一节的学习,我们知道51单片机UART通信要实现通信需要RX和TX两跟线,再加上电源VCC,GND则是4线。如果两通信芯片是共电源,那我们直接交叉连接他们的RX,TX就行了。当然在很多两芯片工作环境电压是相同,但他们没有共电源,这时候我们就使用RX,TX和GND这三根线进行连接。如果遇到两芯片工作电压不一致时我们就需要做电平转换电路,最简单的就是分别在RX,TX上使用MOS管进行隔离,但这需要具体问题具体分析了,有兴趣的朋友可以了解一下。 如果两通信端的电平差别实在是太大,甚至有些可能出现负电平的,这可怎么进行通信呢?我们知道我们使用的51单片机串口引脚输入输出信号电平是TTL电平,它是识别不
[单片机]
51单片机编程开发(六)之按键与外部中断
按键 按键也是一种元器件,这时一种控制电路短暂启停的一种器件,在生活中也是非常的常见,比如电梯按钮,键盘按键,遥控器,计算器,电话,手机按键,等等,比比皆是具体长什么样就不用举例了吧,各种各样的形状都有。 键盘 我们在使用电脑时都需要通过键盘进行打字输入,键盘上的所有按键构成一个按键矩阵,当我们按下某一个按键时,键盘上的芯片将对键值进行解码,然后将键值通过键盘驱动程序传递给CPU,CPU收到信号后就会显示按键内容或执行该按键对应的功能。单片机当然也有这样的功能,我们在产品开发时不可避免的都可能会用到按键进行相应的控制操作,简单的应用中可能只需要少数几个按键就可以实现产品功能,这时使用几个I/O口分别连接一个按键来实现。如果是一
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved