c51头文件INTRINS.H使用

发布者:Ziyu2022最新更新时间:2016-10-14 来源: eefocus关键字:c51  头文件  INTRINS.H 手机看文章 扫描二维码
随时随地手机看文章
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;

C-5 1 程序设计 37

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

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

关键字:c51  头文件  INTRINS.H 引用地址:c51头文件INTRINS.H使用

上一篇:c51数组指针使用
下一篇:c51 T2中断程序

推荐阅读最新更新时间:2024-03-16 15:15

C51/C52的定时器计数器与中断
一、定时器/计数器简介 设置等待时间,到达等待时间之后执行指定的硬件操作。 定时器最基本的功能就是定时,比如说定时发送串口数据,定时采集AD数据,如果将定时器和IO结合起来就可以实现非常丰富的功能,可以测量输入信号的脉冲宽度,可以产生PWM方波,定时器产生PWM控制电机状态是工业控制的普通。 ----------------------------------------------------------------------------------------------------------------------------------------------------------- 二、定时器/计数
[单片机]
<font color='red'>C51</font>/C52的定时器计数器与中断
c51写的日历时钟程序3
********************************************************************************************************* * DETERMINE IF WE HAVE A LEAP YEAR * * Description : This function determines whether the 'year' passed as an argument is a leap year. * Arguments : year is the year to check for lea
[单片机]
c51单片机中断详解
工程图 第一题 **每次亮一个灯的流水灯,定义P1为led1。 外部中断0允许中断:EX0=1;下降沿触发:IT0=1;总开关:EA=1; 中断要执行的是P0引脚的4个二极管闪六次。 其实这里还有个想说的是,IE在中断请求的时候,会置位为1,然后CPU同意并执行中断程序后,IE自动清零。为什么说这个,这个可以在以后的一些情况,作为中断条件。 第二题 每次亮一个灯的流水灯和第一题的一样; 中断0下降沿触发也和第二题一样; 中断0程序是:P1引脚每次亮两个二极管的流水灯 讨论一下:每次亮两个二极管,如果低电平亮,那就要11111100B→11110011B。 个人觉得在中断中使用while造成的后果是很致命的
[单片机]
<font color='red'>c51</font>单片机中断详解
C51单片机的中断号以及中断向量
一、中断号   二、interrupt 和 using 在C51中断中的使用   8051 系列 MCU 的基本结构包括:32 个 I/O 口(4 组8 bit 端口);两个16 位定时计数器;全双工串行通信;6 个中断源(2 个外部中断、2 个定时/计数器中断、1 个串口输入/输出中断),两级中断优先级;128 字节内置RAM;独立的 64K 字节可寻址数据和代码区。中断发生后,MCU 转到 5 个中断入口处之一,然后执行相应的中断服务处理程序。中断程序的入口地址被编译器放在中断向量中,中断向量位于程序代码段的最低地址处,注意这里的串口输入/输出中断共用一个中断向量。8051的中断向量表如下:
[模拟电子]
<font color='red'>C51</font>单片机的中断号以及中断向量
IAR头文件包含路径设置
IAR头文件包含路径设置  这个文件如果是IAR自带的,不需要设置。  如果不是IAR自带的,最简单的办法:和.c文件放在一个目录下,不需要设置。  如果不在同一个目录下,就需要设置, 举个例子  工程上单击右键,选择Option,打开工程设置窗口(如下图) 选择C/C++ compiler,然后再选择Preprocessor,最后在下面的空格处写上相应的路径,路径的格式在后面有专门介绍。如下图: 我的设置:工程文件在 E:S3C2440YS2440_IAR 头文件在 E:S3C2440YS2440_IARlib 则在设置窗口填入:$PROJ_DIR$lib ===========================
[单片机]
IAR<font color='red'>头文件</font>包含路径设置
C51单片机学习笔记之LCD1602
简介 简单说LCD1602这玩意就是液晶显示屏。 引脚功能: 写操作时序 读操作时序 指令集 cgrom表 原理图 代码部分 LCD1602.C #include reg52.h #include intrins.h sbit RS = P2^0; sbit RW = P2^1; sbit EN = P2^2; #define RS_CLR RS = 0 #define RS_SET RS = 1 #define RW_CLR RW = 0 #define RW_SET RW = 1 #define EN_CLR
[单片机]
<font color='red'>C51</font>单片机学习笔记之LCD1602
LCD12864的串口驱动(asm/c51)
串行数据传送共分三个字节完成: 第一字节:串口控制 格式 11111ABC A 为数据传送方向控制:H 表示数据从LCD 到MCU,L 表示数据从MCU 到LCD B 为数据类型选择:H 表示数据是显示数据,L 表示数据是控制指令 C 固定为0 第二字节:(并行)8 位数据的高4 位 格式 DDDD0000 第三字节:(并行)8 位数据的低4 位 格式 0000DDDD 串行接口时序参数:(测试条件:T=25℃ VDD=4.5V) ////////////////////////////////////////////////////////////////////////////
[单片机]
LCD12864的串口驱动(asm/<font color='red'>c51</font>)
C51单片机学习——密码锁的实现
说在前面:因为我的板子是液晶屏和数码管不能同时用,所以下面我使用的是液晶屏,下面的代码通俗易懂也有注释,如果有的控件不知到如何使用的可以查看我之前的几篇C51文章,这个密码锁就是基于之前的笔记所写的内容 #include reg52.h //#include intrins.h #define uint unsigned int #define uchar unsigned char #define data1602 P0 #define LED P2 /*******引脚定义*******/ //按键的控制引脚 sbit S1 = P3^7; sbit S2 = P3^6; sbit S3 = P3^5; sbit S4
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved