伪本征函数—Keil C51头文件INTRINS.H(第二版)(hotpower)
伪本征函数—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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




