位运算是指按二进制位进行的运算。在单片机中位运算通常用于I/O端口的输入输出控制和逻辑判断。

C语言提供的位运算符有:

运算符含义功能

&按位与如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。

|按位或两个相应的二进制位中只要有一个为1,该位的结果值为1。

∧按位异或若参加运算的两个二进制位同号则结果为0(假)异号则结果为1(真)

~取反~是一个单目(元)运算符,用来对一个二进制数按位取反,即将0变1,将1变0。

<

>>右移表示将a的各二进制位右移N位,移到右端的低位被舍弃,对无符号数,高位补0。

与逻辑:

将PA口的第0位清0(即最低位输出低0v电平),其余位保持不变:   PORTA口应同‘11111110’进行与运算

二进制:11111110 的十六进制为:0xFE,C语言代码:PORTA=PORTA&0xFE;一般采用c语言的“&=‘运算符,通常写成

PORTA&=0xFE;   执行此语句后,PORTA口的第0位将输出低电平。

或逻辑:

将PA口的第7位置1(即最高位输出高电平)其余为保持不变,PORTA应与‘10000000’进行或运算

即c语言:PORTA=PORTA|0x80 ;采用或赋值运算符,通常写成 PROTA|=0x80 ;  二进制‘10000000’的十六进制是0x80;

非逻辑:

c语言:PORTA~=0x0F;//将0x0F=‘00001111‘取反后 '11110000‘=0xF0 赋值给PORTA,通常和其他逻辑运算符一起使用

异或逻辑:

将PA口的第7位翻转,PORTA^=0x80,即执行此语句一次,PORTA口的第7位状态变化一次,由0变1,或由1变0,可以周期性的控制一个灯的亮灭。

移位操作:

判断PA口的第7位是否为0,c语言 if (PINA&(1<<7)==0)       1<<7  结果为0x80,也可写为 if (PINA&0x80)==0)

c语言与或非,单片机avr c语言位运算 与或非 异或逻辑 运算介绍 详解相关推荐

  1. 常见位操作及运算应用举例:1,C语言中位运算符异或“∧”的作用​​​​​​​2,异或运算的作用3,(与运算)、|(或运算)、^(异或运算)

    1 C语言中位运算符异或"∧"的作用: 异或运算符∧也称XOR运算符.它的规则是若参加运算的两个二进位同号,则结果为0(假):异号则为1(真).即0∧0=0,0∧1=1,1∧1=0 ...

  2. matlab中逻辑非运算,MATLAB:图像的与、或、非、异或逻辑运算(、|、~、xor)

    图像的与.或.非.异或逻辑运算涉及到了&.|.~和xor符号 close all;%关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量 clc; clear all; I=imrea ...

  3. 单片机c语言或运算,单片机avr c语言位运算 与或非 异或逻辑 运算介绍 详解

    位运算是指按二进制位进行的运算.在单片机中位运算通常用于I/O端口的输入输出控制和逻辑判断. C语言提供的位运算符有: 运算符 含义 功能 & 按位与 如果两个相应的二进制位都为1,则该位的结 ...

  4. 51单片机c语言除法符号,51单片机之C语言-4.4运算符及表达式

    原标题:51单片机之C语言-4.4运算符及表达式 4.4 及 前面三节实际是讲如何定义一个数据类型,所谓数据类型其实就是不同存储空间的形状,也就是不同单元格的组合方式.既然定义了数据类型,我们的目的当 ...

  5. c语言io口置1,AVR C语言编程的小技巧-IO口置位

    avr AVR C语言编程的小技巧-IO口置位 给单片机IO口置位是编程用的比较多的操作,这是我在学习C语言编程中的一点小小心得,希望大家觉得有用! AVR 单片机的IO口是标准的双向端口,首先要设置 ...

  6. 怎么用C51语言实现50ms延时,单片机入门-C51语言实现简单的红绿LED交通灯控制

    原标题:单片机入门-C51语言实现简单的红绿LED交通灯控制 视频教程如下: 本文介绍了用C51语言实现十字路口交通灯控制: 四个路口各有红.绿2个LED,模拟交通灯的控制,即东西走向的灯变红,南北走 ...

  7. c语言画曲线程序,单片机 LCD C语言画弧线的程序,哪位高手会

    当前位置:我的异常网» 单片机 » 单片机 LCD C语言画弧线的程序,哪位高手会 单片机 LCD C语言画弧线的程序,哪位高手会 www.myexceptions.net  网友分享于:2013-0 ...

  8. at89s51数码管秒表c语言程序,基于AT89C51单片机的一个2位的LED数码显示作为“秒表”设计【基于单片机系统的00-99s的定时器】...

    基于AT89C51单片机的一个2位的LED数码显示作为"秒表"设计[基于单片机系统的00-99s的定时器] 工程技术学院 课程设计 题 目:用单片机AT89C51设计一个2位的LE ...

  9. C语言---函数介绍详解

    生活的全部意义在于无穷地探索尚未知道的东西,在于不断地增加更多的知识--左拉 文章目录 前言 函数 模块化程序设计方法 函数的定义 函数的分类 函数定义角度 库函数 自定义函数 函数形式角度 无参函数 ...

  10. c语言d打开文件夹,BAT批处理之文件与文件夹操作代码(附xcopy命令详解)

    批处理中的文件.文件夹操作,xcopy命令的用法. 一,建bat文件自动执行复制,删除命令. 例1:复制cd.dll文件至windows\system32的bat文件内容: copy cd.dll % ...

最新文章

  1. 驭下术:如何让下属老实听话?用这3招,让你不怒自威
  2. JAVA_OA(十四):SSM练手项目bug-JSP页面传递参数的编码问题
  3. Python词云学习之旅
  4. 使用winform来递归实现资源管理器
  5. java swing进度条_Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)
  6. kerberos验证_SQL Server中的服务主体名称和Kerberos身份验证概述
  7. 25岁该有多少存款?数据分析带你揭露打工人的工资真相
  8. L - All in All(子序列)
  9. nginx css 304 导致图片丢失_Nginx面试三连问:如何工作?负载均衡策略有哪些?如何限流?...
  10. Linux笔记19.postfix邮件服务器配置安装
  11. 传说中人生必去的50个地方
  12. 在app上查看开发代码
  13. Linux命令学习:Linux中more和less命令以及查找用法
  14. 对抗样本(三)FGSM
  15. 【CV2】Python中cv2使用小窗口显示高分辨率图片
  16. 联想用u盘重装系统步骤_练习联想使用u盘重装win7教程
  17. 通过scheme协议启动app
  18. wordpress企业网站模板
  19. 《Graph Neural Network with Heterophily》阅读笔记
  20. vscode+CRA+TypeScript+eslint+prettier+stylelint+husky+lint-staged完整版配置

热门文章

  1. 枚举列表(enumerated list) ← LaTeX
  2. EXCEL VBA开发单元格日历选择
  3. 【踩坑专栏】主机文件复制到虚拟机
  4. 系统崩溃怎么重装系统Win10?
  5. c语言判断闰年并输出该月天数,C语言宏定义实现闰年判断并输出指定月的天数...
  6. APP消息推送-个推java端实现
  7. 【gitbub遇到的问题】新建工程后,本地无法push代码?提示鉴权失败
  8. 微信接口报错:40163
  9. Chrome 插件收集
  10. 计算机网络OSI模型的各层及主要功能