单片机逻辑电路与逻辑运算
在数字电路,我们经常会遇到逻辑电路,而在 C 语言中,我们则经常用到逻辑运算。二者在原理上是相互关联的,我们在这里就先简单介绍一下,随着学习的深入,再慢慢加深理解。
首先,在“逻辑”这个概念范畴内,存在真和假这两个逻辑值,而将其对应到数字电路或 C 语言中,就变成了“非 0 值”和“0 值”这两个值,即逻辑上的“假”就是数字电路或C 语言中的“0”这个值,而逻辑“真”就是其它一切“非 0 值”。
然后,我们来具体分析一下几个主要的逻辑运算符。我们假定有 2 个字节变量:A 和 B,二者进行某种逻辑运算后的结果为 F。
以下逻辑运算符都是按照变量整体值进行运算的,通常就叫做
逻辑运算符 : 逻辑运算符 说明 && 逻辑与 F = A && B,当 A、B 的值都为真(即非 0 值,下同)时,其运算结果 F为真(具体数值为1,下同);当 A、B 值任意一个为假(即 0,下同)时,结果 F 为假(具体数值为 0,下同)。 || 逻辑或 F = A || B,当 A、B 值任意一个为真时,其运算结果 F 为真;当 A、B 值都为假时,结果 F 为假。 ! 逻辑非 F = !A,当 A 值为假时,其运算结果 F 为真;当 A 值为真时,结果 F 为假。以下逻辑运算符都是按照变量内的每一个位来进行运算的,通常就叫做
位运算符 : 逻辑运算 说明 & 按位与 F = A & B,将 A、B 两个字节中的每一位都进行与运算,再将得到的每一位结果组合为总结果 F,例如 A = 0b11001100,B = 0b11110000,则结果 F 就等于 0b11000000。 | 按位或 F = A | B,将 A、B 两个字节中的每一位都进行或运算,再将得到的每一位结果组合为总结果 F,例如 A = 0b11001100,B = 0b11110000,则结果 F 就等于 0b11111100。 ~ 按位取反 F = ~A,将 A 字节内的每一位进行非运算(就是取反),再将得到的每一位结果组合为总结果 F,例如 A = 0b11001100,则结果 F 就等于 0b00110011;这个运算符我们在前面的流水灯实验里已经用过了,现在再回头看一眼,是不是清楚多了。 ^ 按位异或 异或的意思是,如果运算双方的值不同(即相异)则结果为真,双方值相同则结果为假。在 C 语言里没有按变量整体值进行的异或运算,所以我们仅以按位异或为例,F = A ^ B,A = 0b11001100,B = 0b11110000,则结果 F 就等于 0b00111100。我们今后要看资料或芯片手册的时候,会经常遇到一些电路符号,图 5-1 所示就是数字电路中的常用符号,知道这些符号有利于我们理解器件的逻辑结构,尤其重点认识图 5-1 中的国外流行图形符号。在这里我们先简单看一下,如果日后遇到了可以到这里来查阅。
图 5-1 逻辑电路符号
长按二维码识别关注
电子路上与你同行!
跟电师傅学单片机(15):单片机逻辑运算指令图文讲解
一:累加器A清0和取反指令(共2条)
累加器A清0和取反指令表
累加器A清0指令
CLR A;单片机软件指令功能是将累加器A中的内容清0。影响单片机标志寄存器PSW中的奇偶标志位P。
累加器A取反指令
CPL A;单片机软件指令功能是将累加器A中的内容全部取反,结果送回A中。影响单片机标志寄存器PSW中的奇偶标志位P。
常用于单片机某个存储器单元或某个存储器区域中带符号数的求补。
二:循环移位指令(共4条)
循环移位指令示意图
RL A;左循环移位指令:
单片机软件指令功能是将累加器A的8位二进制数向左移动1位,累加器A中最左边1位(即最高位A.7)移至最右边1位(即最低位A.0)。不影响单片机标志寄存器PSW中的标志位。
RR A;右循环移位指令:
单片机软件指令功能是将累加器A的8位二进制数向右移动1位,累加器A中最右边1位(即最低位A.0)移至最左边1位(即最高位A.7)。不影响单片机标志寄存器PSW中的标志位。
RLC A;带进位左循环移位指令:
单片机软件指令功能是将累加器A的8位二进制数和进位CY向左移动1位,累加器A中最左边1位(即最高位A.7)移至CY,CY原内容移至累加器A的最右边1位(即最低位A.0)。影响单片机标志寄存器PSW中的进位标志位CY。
RRC A;带进位右循环移位指令:
单片机软件指令功能是将累加器A的8位二进制数和进位CY向右移动1位,累加器A中最右边1位(即最低位A.0)移至CY,CY原内容移至累加器A的最左边1位(即最高位A.7)。影响单片机标志寄存器PSW中的进位标志位CY。
单片机标志寄存器PSW功能图
注意:
执行带进位的单片机循环移位指令之前,必须给PSW进位标志位CY置位或清零,否则会影响移动的数据。
到此为止,24条单片机逻辑运算类指令讲解完毕,谢谢阅读!欢迎留言讨论,共同提高!
相关问答
单片机逻辑 与 运算 具有什么功能?ORL能将某些位置一,对于想置一的位与行“或”逻辑,对于想保持原来的位与0进行“或”逻辑。单片机也被称为单片微控器,属于一种集成式电路芯片。在单片机中主...
51 单片机 inc指令?ⅠNC是51单片机逻辑运算指令,它只能针对RAM单元进行字节操作,功能是将单元数据加1。使用这条指令时需要注意:第一,ⅠNC不是算术指令,所以不会对进位位CY、...
单片机 指令详解?单片机指令是用于控制单片机运行的命令,通常由几个部分组成,包括指令码、寻址方式和操作数。指令码表示具体的操作,如数据移动、运算或跳转等;寻址方式用于...
什么叫 单片机 ? 单片机 的主要特点有哪些?单片机又称微电脑,他是将CPU、RAM、ROM、总线和输入输出口集成在一片集成电路上,即称为单片机。单片机具有一定的算数运算和逻辑运算的能力,通过IO口可以实现...
单片机 ANL是什么意思?单片机中的ANL全称为AndLogic,代表“逻辑与”运算。这组指令的作用是将两个单元中的内容执行逻辑与操作。如果直接地址是I/O地址,则为“读—修改—写”操作。...
单片机 cpl指令是什么?单片机cpl指汇编指令,是一个逻辑运算指令,是单片机中直接寻址位取反的指令,作用是将存储器的指定数据中的每一位转变为逻辑反的数据。CPL为单片机ConversePo...
单片机 的CPU有哪两部分?单片机的CPU由运算器ALU和控制器EU两部分组成。ALU进行算术逻辑运算,实现加减乘除移位等运算,操作结果大部分送往ACC累加器,同时修改状态寄存器PSW的值。EU...
单片机 cpa是什么意思?单片机cpa是指汇编指令,是一个逻辑运算指令单片机cpa是指汇编指令,是一个逻辑运算指令
单片机 AC是什么?AC是程序状态字PSW的一个位,名字叫辅助进位位,用于指示两个数进行加法运算时低半字节相加是否产生进位。例如,25H+72H=97H,AC=0,因为5H+2H=7H,不产生低半字...
单片机 编程其实就是控制的寄存器,这么理解对不对?这样理解不全对。单片机编程控制应分两类,一类是寄存器控制,如通讯口UART,SPI等,另一类也经常用,也就是扩展XRAM的地址控制。寄存器控制,最基本的、首先要...总...