<intrins.h>库函数

发布者:csw520最新更新时间:2022-05-26 来源: eefocus关键字:intrins  库函数 手机看文章 扫描二维码
随时随地手机看文章

——Intrinsic functions for C51

常用函数:

_nop_()      空操作8051 NOP 指令

_crol_()      字符循环左移 

_cror_() 字符循环右移 

_irol_() 整数循环左移 

_iror_() 整数循环右移 

_lrol_() 长整数循环左移 

_lror_() 长整数循环右移 


函数原型:

说明:


#ifndef  _A_H // “if not define a.h” 如果不存在a.h

#define _A_H // “define a.h” 就引入a.h

#endif // 否则不需要引入


此代码为避免头文件重复包含的固定格式


/*--------------------------------------------------------------------------

INTRINS.H


Intrinsic functions for C51.

Copyright (c) 1988-2010 Keil Elektronik GmbH and ARM Germany GmbH

All rights reserved.

--------------------------------------------------------------------------*/


#ifndef __INTRINS_H__

#define __INTRINS_H__


#pragma SAVE


#if defined (__CX2__)

#pragma FUNCTIONS(STATIC)

/* intrinsic functions are reentrant, but need static attribute */

#endif


extern void          _nop_     (void);

/* 空操作指令:延时一个机器周期————直接执行NOP指令; */

extern bit           _testbit_ (bit);

/* _testbit_产生一个JBC 指令,该函数测试一个位,当置位时返回1,否则返回0。

如果该位置为1,则将该位复位为0。8051 的JBC 指令即用作此目的。

_testbit_只能用于可直接寻址的位;在表达式中使用是不允许的。*/


extern unsigned char _cror_    (unsigned char, unsigned char);

/* 字符循环右移函数————需要位移的变量———循环右移的位数————

将char型变量循环右移,移动指定位数后返回; */

extern unsigned int  _iror_    (unsigned int,  unsigned char);

/* 整数循环右移函数———需要位移的变量——循环右移的位数————

将int型变量循环右移,移动指定位数后返回; */

extern unsigned long _lror_    (unsigned long, unsigned char);

/* 长整数循环右移函数———需要位移的变量——循环右移的位数————

将long型变量循环右移,移动指定位数后返回; */

extern unsigned char _crol_    (unsigned char, unsigned char);

/* 字符循环左移函数————需要位移的变量———循环左移的位数————

将char型变量循环左移,移动指定位数后返回; */

extern unsigned int  _irol_    (unsigned int,  unsigned char);

/* 整数循环左移函数———需要位移的变量——循环左移的位数————

将int型变量循环左移,移动指定位数后返回; */

extern unsigned long _lrol_    (unsigned long, unsigned char);

/* 长整数循环左移函数———需要位移的变量——循环左移的位数————

将long型变量循环左移,移动指定位数后返回; */

extern unsigned char _chkfloat_(float);

#if defined (__CX2__)

extern int           abs       (int);

extern void          _illop_   (void);

#endif

#if !defined (__CX2__)

extern void          _push_    (unsigned char _sfr);

extern void          _pop_     (unsigned char _sfr);

#endif


#pragma RESTORE


#endif

关键字:intrins  库函数 引用地址:<intrins.h>库函数

上一篇:蜂鸣器(HC6800-EM3 V2.2开发板)
下一篇:单片机(AT89C51)中断系统详解和中断系统应用实验

推荐阅读最新更新时间:2024-11-12 08:02

8051单片机教程第二十八课:单片机音乐程序的设计
利用单片机(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。 单片机的基本发音实验 我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。 例如,要产生200HZ的音频信号,按图1接入喇叭(若属临时实验,也可将喇叭直接接在P1口线上),实验程序为: 其中子程序DEL为延时子程序,当R3为1时,延时时间约为20us,R3中存放延时常数,对200
[单片机]
80<font color='red'>51</font>单片机教程第二十八课:单片机音乐程序的设计
51单片机 蜂鸣器
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。三极管的作用为驱动,通过三极管放大驱动电流,从而可以让蜂鸣器发出声音。 有源蜂鸣器和无源蜂鸣器的区别: 这里的“源”不是指电源。而是指震荡源。 也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。 而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。 有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。 无源蜂鸣器的优点是:1。便宜,2。声音频率可控,可以做出“多来米发索拉西”的效果。
[单片机]
<font color='red'>51</font>单片机 蜂鸣器
C51: 将16进制 序列码,转换为16进制数组,逆序排列
//将16进制序列码,转换为16进制数组。 //逆序排列 #include reg51.h #include stdio.h #include ctype.h #define uchar unsigned char void main() { //ch 表示16进制 序列码 char ch = 0123456789ABCDEF ; //ch1 表示 16进制 字符数组 char ch1 ; char i; for(i=0;i 8;i++) { ch1 =toint(ch )*16+toint(ch ); } } /* 转换结果: ch1 =0xEF; ch1 =0xCD; ch1
[单片机]
电池材料提升盈利能力,藏格控股H1净利润4.45亿元实现扭亏
藏格控股8月19日晚间披露半年报,公司2021年半年度实现营业收入11.02亿元,同比增长23.93%;归属于上市公司股东的净利润4.45亿元,上年同期亏损1.42亿元。归属于上市公司股东的扣除非经常性损益的净利润3.07亿元,同比增长256.57%。基本每股收益0.2262元。 资料显示,藏格控股始终专注于钾肥行业的开发、生产和销售,现已发展成为国内第二大氯化钾生产企业。 同时,为发挥自身资源优势,拓展经营与发展空间,藏格控股于2017年8月进军新能源产业,电池级碳酸锂项目一期工程(年产1万吨碳酸锂)已顺利建成达产,上半年以来碳酸锂销售收入明显提高,进一步提升了藏格控股盈利能力。报告期内,营业收入业绩增长主要系钾肥销售价格上
[手机便携]
电池材料提升盈利能力,藏格控股<font color='red'>H</font>1净利润4.45亿元实现扭亏
基于51单片机的计算器 C语言程序
前些日子再博客上转载了一篇计算器的C程序,由于这些日子一直忙于考试,也抽不出时间来重写一下基于C51的计算器,昨晚考完信号处理,回来就着手写,一直弄到凌晨3点多,现面把代码帖出来和大家一起共免,由于时间仓促,代码部分可能还有不足,并且程序只是再我的实验板上调试,如有不足请多多执教,程序时C和汇编混合编程,汇编部分值用到延时的处理,其他代码都用C写的,希望哪为高人能够写出功能更为强大的计算器程序一起分享,对于我的程序,哪位博友增添了更多功能的话,希望发到回复里,以共同进步! 程序代码如下: #include reg51.h #define uchar unsigned char #define uint unsigne
[单片机]
基于MCS-51单片机的三个存储空间及划分解析
1.前言 MCS-51的存储器有片内RAM、片外RAM 和 ROM 三个空间。 MCS-51单片机在物理结构上有四个存储空间 1、片内程序存储器(片内ROM) 2、片外程序存储器(片外ROM) 3、片内数据存储器(片内RAM) 4、片外数据存储器(片外RAM) 在逻辑上(即从用户的角度上)MCS-51单片机有三个存储空间 1、片内外统一编址的64K的程序存储器(ROM)地址空间(MOVC) 2、256B的片内数据存储器(片内RAM)的地址空间(MOV) 3、以及64K片外数据存储器(片外RAM)的地址空间(MOVX) 注:在访问三个不同的逻辑空间时,应采用不同形式的指令以产生不同的存储器空间的选通信号。 2.存储空间划分
[单片机]
8051单片机实战分析(以STC89C52RC为例) | 07 - 独立按键驱动
按键是比较常用的也是比较简单的人机交互操作,按键实际上是一个非自锁的轻触开关,按下时触点会闭合,松开是触点断开。 1 独立式按键 常用的按键电路有两种形式,独立式按键和矩阵式按键,独立式按键比较简单,它们各自与独立的输入线相连接,如图所示。 4 条输入线接到单片机的 IO 口上,当按键 K3 按下时,K3两边的线路将会导通,P32这个单片机IO口直接接到GND,此时P32这个引脚就是低电平了。当松开按键后,当松开按键后,线路断开,就不会有电流通过,那么P32引脚就会是默认的电平状态,是一个高电平,因为被上拉电阻R8拉到了VCC状态。所以我们就可以通过 P32 这个 IO 口的高低电平来判断是否有按键按下。 2
[单片机]
80<font color='red'>51</font>单片机实战分析(以STC89C52RC为例) | 07 - 独立按键驱动
浅析H.265视频编码技术的两大亮点
    关于H.265视频压缩标准,以调整压缩率控制图像质量参数,优化了每个具体区域内图像预测编码技术和PCM编码技术,防止在压缩大图像中包含复杂图像致数据包过大。视频编码技术推陈出新自然要有些亮点,对比之前的改变又有哪些值得关注的地方呢?     首先,图像质量控制参数的预测编码技术允许用一个小的数据来代表详细的图像模式。麻雀虽小五脏俱全,不仅节省了大量的存储空间,便于网络传输,也不会遗漏任何重要的图像元素。     700线摄像机经过H.264编解码后视觉效果     通过预测编码技术来控制图像质量,调整个图像中重要区域的压缩率,并消除数据压缩时要恢复图像质量的冗余数据。现有技术无法实现在用一个极小的模块表示一张元
[安防电子]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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