教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

伪本征函数—Keil C51头文件INTRINS.H(第二版)(hotpower)

来源:网络收集 时间:2026-07-06
导读: 伪本征函数—Keil C51头文件INTRINS.H(第二版)(hotpower) 伪本征函数—Keil C51头文件INTRINS.H(第二版)(hotpower) 作者:未知 来源:大虾电子 点击数: 36 更新时间:2007年03月05日 /*------------------------------------------------------------------

伪本征函数—Keil C51头文件INTRINS.H(第二版)(hotpower)

伪本征函数—Keil C51头文件INTRINS.H(第二版)(hotpower)

作者:未知 来源:大虾电子 点击数:

36 更新时间:2007年03月05日

/*-------------------------------------------------------------------------- INTRINS.H

Intrinsic functions for C51.

Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved.

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

#ifndef __INTRINS_H__

#define __INTRINS_H__

extern void _nop_ (void);

extern bit _testbit_ (bit);

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

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

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

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

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

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

extern unsigned char _chkfloat_(float);

#endif

/*-------------------------------------------------------------------------- 伪本征函数——Keil C51头文件INTRINS.H的扩容工程

作者:HotPower@ 2004.5.27 第二版

伪本征函数—Keil C51头文件INTRINS.H(第二版)(hotpower)

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

/*------------------------------------------------------------------------*/ #define _setc_() CY = 1

#define _clrc_() CY = 0

#define _setb_(RBIT) RBIT = 1

#define _clrb_(RBIT) RBIT = 0

#define _clra_() ACC = 0

/*------------------------------------------------------------------------*/ #define _xorr_(RX) RX ^= RX //用于取奇偶位P,且RX=0 #define _andr_(RX) RX &= RX //用于取奇偶位P,且RX=不变 #define _orr_(RX) RX |= RX //用于取奇偶位P,且RX=不变 #define _notr_(RX) RX =~RX

/*------------------------------------------------------------------------*/ #define _movra_(RX) RX = ACC

#define _movar_(RX) ACC = RX

#define _movcb_(RBIT) CY = RBIT

#define _movbc_(RBIT) RBIT = CY

#define _movb0_(RBIT, RX) RBIT = RX & 0x01 //用于取RX的最低位 #define _movb7_(RBIT, RX) RBIT = RX & 0x80 //用于取RX的最高位 #define _movc0_(RX) CY = RX & 0x01

#define _movc7_(RX) CY = RX & 0x80

/*------------------------------------------------------------------------*/ #define _rrca_() CY = ACC & 0x01 //产生RRC A指令 #define _rlca_() CY = ACC & 0x80 //产生RLC A指令

/*------------------------------------------------------------------------*/ #define _rrcr_(RX) CY = RX & 0x01; RX = ACC //产生RRC RX指令

伪本征函数—Keil C51头文件INTRINS.H(第二版)(hotpower)

#define _rlcr_(RX) CY = RX & 0x80; RX = ACC //产生RLC RX指令

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

/*-------------------------------------------------------------------------- 累加器带进位右移指令 RRC A #define _rrca_() CY = ACC & 0x01 汇编代码 rrc a

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

/*-------------------------------------------------------------------------- 累加器带进位左移指令 RLC A #define _rlca_() CY = ACC & 0x80

汇编代码 rlc a

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

/*-------------------------------------------------------------------------- 寄存器带进位右移指令 RRC REG #define _rrcr_(RX) CY = RX & 0x01; RX = ACC

汇编代码 mov a,RX

rrc a

mov RX,a

/*-------------------------------------------------------------------------- 例:

C51程序

unsigned char i;

i = 0x55;

_setc_();//CY=1

_rrcr_(i);//i=0xaa,ACC=0xaa,CY=1

伪本征函数—Keil C51头文件INTRINS.H(第二版)(hotpower)

汇编代码

mov r7,#055h

setb c

mov a,r7

rrc a

mov r7,a

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

/*-------------------------------------------------------------------------- 寄存器带进位左移指令 RLC REG #define _rlcar_(RX) CY = RX & 0x80; RX = ACC

汇编代码 mov a,RX

rlc a

mov RX,a

/*-------------------------------------------------------------------------- 例:

C51程序

unsigned char i;

i = 0x55;

_setc_();//CY=1

_rlcr_(i);//i=0x55,ACC=0xab,CY=0

汇编代码

mov r7,#055h

setb c

mov a,r7

rlc a

mov r7,a

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

伪本征函数—Keil C51头文件INTRINS.H(第二版)(hotpower)

伪本征函数"汇编级"应用

----------------------------------------------------------------------------

1.写串行数据

C51程序

void writedata(unsigned char val)

{

_movar_(val);//或用ACC = val;

for (val = 8; val > 0; val--)

{

_clrb_(TXD);//或用TXD = 0;

_rrca_();

_movbc_(RXD);//或用RXD = CY;

_setb_(TXD);//或用TXD = 1;

_nop_();

}

}

A51代码

writedata:

mov a,r7

mov r7,#8

writedata_loop:

clr txd

rrc a

mov rxd,c

setb txd

nop

djnz r7,writedata_loo …… 此处隐藏:2915字,全部文档内容请下载后查看。喜欢就下载吧 ……

伪本征函数—Keil C51头文件INTRINS.H(第二版)(hotpower).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/108119.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)