产品概述

单片机逻辑与运算 单片机逻辑电路与逻辑运算

小编 2024-10-10 产品概述 23 0

单片机逻辑电路与逻辑运算

在数字电路,我们经常会遇到逻辑电路,而在 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...

单片机逻辑与逻辑 非的区别?

逻辑与是双目运算符两个条件有一个为假结果就为假;逻辑非是单目运算符条件为真则结果为假,条件为假则结果为真。逻辑与是双目运算符两个条件有一个为假...

单片机 cpl是什么?

单片机cpl指汇编指令,是一个逻辑运算指令,是单片机中直接寻址位取反的指令,作用是将存储器的指定数据中的每一位转变为逻辑反的数据。CPL为单片机ConversePo...

单片机 ANL是什么意思?

单片机中的ANL全称为AndLogic,代表“逻辑与”运算。这组指令的作用是将两个单元中的内容执行逻辑与操作。单片机中的ANL全称为AndLogic,代表“逻辑与”运...

老司机们能告诉我: 单片机 (秒表制作)?,制作 单片机 xxx如何??

[回答]有了解过一点,上次跟朋友一起吃饭的时候提到过,正好我们也需要他们的产品。单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能...

我想知道: 单片机 (秒表制作)?,制作 单片机 排名好吗?

[回答]他们专业承接单片机解决方案,以前朋友在那做了,还批量生...单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯...

单片机 和DSP的区别是什么?

单片机:以TI的MSP430系列的单片机为例,网上有很多基于此单片机的开发板。开发板有数码管显示、按键、串口、PS/2鼠标等接口。这些资源都是与单片机相连接。也...

如何提高 单片机 的算法?

多做练习,如果你现在用的C语言开发单片机,想提高自己的算法能力,那建议你多看看C语言的常用算法,然后用单片机板子上的LCD,LED等来验证自己的算法程序。举...多...

猜你喜欢