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个)

推荐阅读最新更新时间:2024-11-13 06:10

STM32H7的启动过程分析
本章 教程 主要跟大家讲 STM32 H7的启动过程,这里的启动过程是指从 CPU 上电复位执行第1条指令开始( 汇编 文件)到进入C程序main()函数入口之间的部分。 启动过程相对来说还是比较重要的,理解了这个过程,对于以后分析程序还是有些帮助的,要不每次看到这个启动过程都会跳过,直接去看主程序了。 还有就是以后打算学习 RTOS 的话,对于这个过程必须有个了解,因为移植的时候涉及到中断向量表。 对初学者来说,看这个可能有些吃力,不过不要紧,随着自己做过一些简单的应用之后再来看这章,应该会有很多的帮助,由于我们的V7板子是基于STM32H7XXX,所以我们这里主要针对H7系列的启动过程做一下分析,对于F1,F4系列也是大致
[单片机]
STM32<font color='red'>H</font>7的启动过程分析
C51单片机延时时间的计算方法解析
C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsignedchar类型具有比unsignedint更优化的代码,在使用时应该使用unsignedchar作为延时变量。以某晶振为12MHz的单片机为例,晶振为12MHz即一个机器周期为1us。 一.500ms延时子程序 程序: voiddelay500ms(void) { unsignedchari,j,k; for(i=15;i》0;i--) for(j=202;j》0;j--) for(k=81;k》0;k--); } 计算分析: 程序共有三层循环 一层循环n:R5*2=81*2=162usDJNZ2us 二层循环m:R6*(n+3)=202*165=333
[单片机]
C51复位电路的工作原理详细分析
C51MCU要复位需要在第9引脚接个高电平持续2us(两个时钟周期)。MCU系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。 开机的时候为什么为复位 在电路图中,电容的的大小是10uf,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。也就是说在电脑启动的0.1S内,电容两端的电压时在0~3.5V增加。这个时候10K电阻两端的电压为从5~1.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到
[单片机]
C51编写串行通信,在proteus中仿真调试————终极保姆级教学
两种通信方式 串行通信: 串行通信是将数据字节分成一位一位的形式在。 并行通信: 并行通信通常是将数据字节的各位用多条数据线同时进行传送 。 串行通信又分两种 同步通信 同步通信就是对发送方和接收方的时钟实行直接控制,使双方的数据传输达到完全同步。此时数据以位的形式连续发送 异步通信 异步通信的发送方和接收方使用各自的时钟控制数据的发射接收,发送端可以在任意时候发送字符。此时数据以帧的形式连续发送(一个帧数据有十位:分别是一个起始位、八个数据位、一个停止位) 波特率 计算 波特率用来衡量数字信号传输的速率,其大小为每秒传输二进制数的位数,单位为:bps。 例如:最常用的传输速率9600,其意思是,每秒传输960帧数据,一帧
[单片机]
<font color='red'>C51</font>编写串行通信,在proteus中仿真调试————终极保姆级教学
C51编译警告
C51编译警告“*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL” *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: ?C_START MODULE: .STARTUP.obj (?C_STARTUP) *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: ?C_START MODULE: .STARTUP.obj (?C_STARTUP) ADDRESS: 000DH 如果你在用C51编译器出现上面的警告,并且找遍了网上也没能找出个究竟
[单片机]
keil c51 的安装
1、简介 用于编写单片机加载程序 keil 分为 MTK 和 C51 两个版本 下载的时候注意看清楚,MTK 版里面没有 C51 系列的单片机 2、下载 1)官网下载 官方下载地址:https://www.keil.com/download/product 官网需要填写 很多信息 笔记麻烦 CSDN 下载: https://download.csdn.net/download/qq_27061049/10926800 4、安装 1)点击运行程序 一步一步安装,直到安装成功 2)打开程序,进行注册 3)复制 cid 4)3.打开“注册机”: (1)粘贴上面复制的CID, (2)目标选择C51, (3)生成
[单片机]
keil <font color='red'>c51</font> 的安装
C51内存优化(data/idata/xdata)
对 51 单片机内存的认识,很多人有误解,最常见的是以下两种 ① 超过变量128后必须使用compact模式编译 实际的情况是只要内存占用量不超过 256.0 就可以用 small 模式编译 ② 128以上的某些地址为特殊寄存器使用,不能给程序用 与 PC 机不同,51 单片机不使用线性编址,特殊寄存器与 RAM 使用重复的重复的地址。但访问时采用不同的指令,所以并不会占用 RAM 空间。 由于内存比较小,一般要进行内存优化,尽量提高内存的使用效率。 以 Keil C 编译器为例,small 模式下未指存储类型的变量默认为data型,即直接寻址,只能访问低 128 个字节,但这 128 个字节也不是全为我们的程序所用,
[单片机]
基于TMS320DM3730的H.264编码器移植与优化方法研究
H.264/AVC是ISO/IEC和ITU-T联合推出的新一代的视频编码标准。其具有高压缩率、高图像质量、良好的网络亲和性等优点,被广泛的应用于各个视频相关产业中。在相同的图像质量的前提下,和传统的视频标准MPEG-4相比,H.264的码率只有MPEG-4的1/3。但是,H.2 64算法非常复杂,要实现实时编码是比较困难的。因此,如何将H.264编码器进行移植和优化,使其用于实际产品中成为了研究的热点。 DSP芯片技术的快速发展为实现嵌入式多媒体技术提供了可能。TMS320DM3730(简称DM3730)作为TI公司2010年推出的高性能芯片,以其ARM+DSP结构体系、运算速度快、众多多媒体接口等优点成为进行嵌入式系统开发
[单片机]
基于TMS320DM3730的<font color='red'>H</font>.264编码器移植与优化方法研究
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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