单片机逻辑电路与逻辑运算
在数字电路,我们经常会遇到逻辑电路,而在 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条单片机逻辑运算类指令讲解完毕,谢谢阅读!欢迎留言讨论,共同提高!
相关问答
单片机 中AL 运算 是什么?单片机中的AL运算是指算术逻辑运算。算术逻辑运算是指单片机中对数据进行加、减、乘、除等算术运算以及逻辑运算(与、或、非等)的操作。单片机中的ALU(算术逻...
51系列 单片机 内部包含哪些主要 逻辑 功能部件?1.51系列单片机内部包含了主要的逻辑功能部件。2.这些主要的逻辑功能部件包括中央处理器(CPU)、存储器(RAM和ROM)、输入输出端口(I/O)、定时器/计数器(T...
单片机 ANL是什么意思?单片机中的ANL全称为AndLogic,代表“逻辑与”运算。这组指令的作用是将两个单元中的内容执行逻辑与操作。如果直接地址是I/O地址,则为“读—修改—写”操作。...
Ac是什么意思 单片机 ?单片机AC(PSW.6)是辅助进位或辅助借位,用于BCD码的十进制调整运算。OV(PSW.2)是溢出位。在执行算术指令时,指示运算是否产生溢出。单片机汇编语言中YC(PS...
cpld和 单片机的 区别?本人研发cpldfpga和单片机有好多年了。这个问题对于学习cpld和单片机的人来说,必须要弄懂,要不然会深刻的影响到后续的学习进度的。cpld是硬件逻辑器件,说的...
单片机 AC是什么?AC是程序状态字PSW的一个位,名字叫辅助进位位,用于指示两个数进行加法运算时低半字节相加是否产生进位。例如,25H+72H=97H,AC=0,因为5H+2H=7H,不产生低半字...
为啥plc要 单片机 ?plc(可编程逻辑控制器)和单片机(microcontroller)在工业自动化中都起着重要的作用。下面我将分步解释为什么plc需要单片机:1.功能扩展:plc通常具有高级的...
单片机 可以处理的信息有哪些?单片机可以处理的信息包括:-数字输入/输出信号:与传感器、开关和显示器等外部设备通信。-模拟输入:将模拟信号(例如温度或电压)转换为数字值。-存...单...
挖掘机 单片机 编程原理?单片机主要由运算器、控制器和寄存器三大部分构成。其中,运算器由算术逻辑单元(ALU)、累加器、寄存器等构成,首先累加器和寄存器向ALU输入两个8位源数据,其...
单片机的 原理是什么?[回答]单片机主要由运算器、控制器和寄存器三大部分构成。其中,运算器由算术逻辑单元(ALU)、累加器、寄存器等构成。深圳市凌芯微电子有限公司专业研发单...