1.逻辑运算指令的一般性说明
与、或、异或的逻辑运算指令可以Acc或direct为目标。但是以direct为目标时,另一操作数只能是Acc或立即数。
与、或、异或是对位逻辑运算。
其他逻辑运算指令只对Acc操作。
小循环不影响Cy,大循环Cy在循环圈内。
除了RLC和RRC,逻辑运算指令不影响P以外的标志位。
2.与、或、异或的特殊用途
用ANL指令屏蔽指定位
例:ANL A,#0FH ;屏蔽高4位
用ORL指令将指定位置1
例:ORL A,#0FH ;将低4位置1
用ORL指令拼接一个字节
例:ANL A,#0FH
ANL B,#0F0H
ORL A,B
用XRL指令将指定位取反
例:XRL A,#55H ;将D0、D2、D4、D6等位取反
3.循环移位指令的应用
除法运算
左移=无符号数乘2,右移=有符号数除2。
例:A×B,积存(BA)
算法:乘数在(A),积在(R2)(A)。
1)(A)右移一位;
2)(A)移出的一位若为1,则(R2)+被乘数(B);
3)积(R2)(A)双字节右移一位;第2、3步循环8次。
为简化,假定为4位,循环4次。(A)=1011, (B)=1111
MOV R2,#0
MOV R3,#8
CLR C
RRC A
LP:XCH A,R2
JNC RRR
ADD A,B
RRR:RRC A
XCH A,R2 ;①
RRC A ;②
DJNZ R3,LP
MOV B,R2
下表第一列为:循环次数-执行点
其余各列为执行点的操作结果。
逻辑尺
以二进制数表示二值逻辑序列,逐位移出,并据此行逻辑控制。
关键字:51单片机 逻辑运算 指令表
引用地址:
51单片机逻辑运算指令表与示例
推荐阅读最新更新时间:2024-03-16 15:40
51单片机之独立按键
按键介绍 按键种类繁多,功能有简有繁,极大的充斥着我们的生活。但是无论如何,所有的按键其实都有一个原型,来源于同一种原理,所有的按键无论多复杂,多华丽,都是从这样一个原型发展而成的。好比你就算长的再帅,你也是只猩猩变来的,呵呵。我们平日所见到的绝大部分的按键,其实都可以归类为一种,叫“接触式按键”。下图为一个典型的接触式按键(又称轻触开关)。 需要特别说明的是,这里说的“接触”,是指机械层面上的接触,而不是感光或者某些特殊涂层(比如触摸屏)一类的接触。所以,按键的工作特性其实是一种机械特性,下文会详细说明。 如上图,请对照图一想象,1、2、3、4 分别对应按键的四个引脚,其
[单片机]
51单片机对8位数码管依次显示0-7的设计
共阳极数组0~9:display[]={0xC0,0xF9,0xA4,0xB0,0x91,0xA2,0x82,0xF8,0x80,0x90} 共阳极数组A~F:display[]={0x88,0x83,0xA6,0xC1,0x86,0x8E} 共阴极数组0~9:display[]={0x3F,0x06,0x5B,0x4F,0x6E,0x6D,0x7D,0x07,0x7F,0x6F} 共阴极数组A~F:display[]={0x77,0x7C,0x59,0x3E,0x79,0x71} 共阴、两组四位一体数码管,位选接74LS138译码器,输入(位选)CBA接P20,P21,P22。段选通过74573后接P1口。 若不使用译码器,可直
[单片机]
51单片机教程:按键输入、矩阵按键(按键巧用)proteus仿真+keil
IO口原理 (P1口最简单,所以这里只介绍P1,其他IO口原理类似) P1口原理 可以看到的是P1口的工作原理比较简单,首先用P1口做输入输出较为好理解。 1、内部总线:就是内部P1.X位寄存器的值,比如说内部总线P1.0上电压为0V,那么对应P1.0=0;内部总线P1.0上电压为5V,那么对应P1.0=1; 2、P1.X引脚:对应单片机引脚接口 3、读锁存器:读锁存器为1,允许读锁存器。为0,不允许读锁存器。 4、读引脚:为0不允许读引脚,为1允许读引脚 5、写锁存器:提供一个上升沿锁存数据(写数据到单片机IO口上时自动提供一个脉冲) 几个核心问题: 1、读锁存器与读引脚区别是什么? 读锁存器:读锁存器Q的电平 读引脚:
[单片机]
51单片机的4x4矩阵键盘扫描例程(C51)
//4x4矩阵键盘扫描例程(C51) //使用P0口上的LED灯显示4x4键盘扫描得到的键值 // //广西民大物电学院 李映超 2010.4.19 #include reg52.h //52系列单片机头文件 #define uchar unsigned char #define uint unsigned int #define key_4x4_port P3 //定义4x4键盘使用的单片机端口 uchar key; //4x4键盘扫描所得的键值保存到这里 void delayms(uint xms); //声明延时子函数 void key_4x4_s
[单片机]
基于stc51单片机的光立方c语言源代码
电路图等制作资料请到这里下载: http://www.51hei.com/bbs/dpj-20613-1.html 下面是程序源码: #include STC12C5A60S2.h #define uint unsigned int #define uchar unsigned char sbit keyamenu=P4^4;//按键 sbit keyout=P4^5; sbit keymenu=P4^6; uint code tab_water ={ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0140,0x0080,0x0000,0x0000,0x0000,
[单片机]
单片机技术书籍推荐
我一般很少买书,51单片机的书曾经买过一本,当初AVR的入门完全是靠 OURAVR 网站的入门范例和论坛的资料,后来也买了本 芯艺老师的《AVR单片机GCC程序设计》,也是本非常好的书。 买书并不是为了“AVR”,我觉得读书关键是理解书中的知识,并运用到实际中,以后也不一定非用AVR做方案,其他的方案也是可以借鉴书中的设计思路。 读过多少书并不是关键,关键是能把书中的知识运用起来。 支持作者,支持正版书籍。 《AVR单片机嵌入式系统原理与应用实践》最喜欢的一本,呵呵,马老师写的,里面的很多软件编程思路都是非常好的。 《AVR单片机原理及测控工程应用》以实战案例编写的书,不错 《匠人手记》也是以实例为主,很有风格的一本书
[单片机]
89C51单片机的步进电动机用于玻璃管加热系统的设计
1 前言 步进电机是一种将电脉冲信号转换成相应的角位移或线位移的电磁机械装置,是一种输出与输入数字脉冲对应的增量驱动元件,具有快速启动和停止的能力。但大多数设计人员常常习惯于用逻辑电路实现复杂的步进电机的控制,虽然已经取得很大成效,但实现起来成本高、费时多,而且一旦组成了电路,就很难再改动,因此不得不完全重新设计控制器。微处理器与微计算机的先进技术和低廉的价格,给步进电机的控制开创了一个新的局面[1]。人们完全可以借助于软件来对步进电机实施控制,从而实现复杂而成本又不高的控制系统,同时还可以很灵活地通过改变程序来改变控制方案。为此,我们基于89C51单片机设计了步进电机控制器用于玻璃管加热系统。该控制器具有线路简洁、性能良好、成本
[单片机]
8051单片机中的寄存器是算CPU还是RAM
问题:单片机8051中的一些寄存器到底算CPU的还是RAM的? 请高手指点,像累加器DPTR,A,PSW等一些寄存器是属于CPU的,但书上又说他们都属于RAM中的特殊功能寄存器(SFR),这是什么道理? 另外,存储器和寄存器不是两个功能,结构都不同的东西么?为什么RAM中存在许多寄存器组,即二者在此是相同的? 综合理解:有以下几种可能: 1、CPU是一个抽象的概念,如同操作系统这个概念一样没有明确的界线;(cpu是由人划分出来的一块区域不明确) 2、CPU这个概念不适用与51; 3、51可以划分CPU和RAM部分,但CPU和RAM有交叉的部分(比如寄存器组等) 4、CPU部分寄存器是和RAM统一编址,访问该RAM地址即等于
[单片机]