电工学习网

 找回密码
 立即注册
查看: 2878|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-1-15 11:25:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在数字电路,我们经常会遇到逻辑电路,而在 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 逻辑电路符号

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-8-30 18:04

Powered by © 2011-2022 www.shop-samurai.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表