网站首页 > 技术教程 正文
前面介绍了单片机为什么要用C语言编程、单片机编程要使用哪些编程环境。从本节开始介绍单片机编程的基本知识。第一节要介绍的是按位操作。因为在配置单片机的寄存器时,位操作是非常常用的,比如将某个单片机的GPIO配置为输出方向、且输出为0时,用位操作就非常方便。
单片机的位操作
位操作包含哪些操作呢?常用的有六种操作:按位与“&”、按位或“|”、按位取反“~”、按位异或“^”、左移“<<”、右移“>>”等,表格如下:
按位与"&"计算逻辑
按位与"&"的逻辑是输入中只要有一个0时,输出为0;输入都为1时,输出才为1。真值表格如下:
输入A | 0 | 0 | 1 | 1 |
输入B | 0 | 1 | 0 | 1 |
输出 | 0 | 0 | 0 | 1 |
按位或“|”计算逻辑
按位“|”的逻辑是输入中只要有一个1时,输出为1;输入都为0时,输出才为0。真值表格如下:
输入A | 0 | 0 | 1 | 1 |
输入B | 0 | 1 | 0 | 1 |
输出 | 0 | 1 | 1 | 1 |
按位取反(~)计算逻辑
按位取反(~)可以理解为非,即翻转,输入为0时,输出为1;输入为1时,输出为0。真值表格如下:
输入 | 0 | 1 |
输出 | 1 | 0 |
按位异或“^”计算逻辑
按位异或(^)是用来判断输入是否一致的,如果两个输入一致则为0;输入不一致则为1。真值表格如下:
输入A | 0 | 0 | 1 | 1 |
输入B | 0 | 1 | 0 | 1 |
输出 | 0 | 1 | 1 | 0 |
左移“<<”和右移">>"计算逻辑
移位操作要考虑数据是否有符号,在单片机编程时,无符号类型用的比较多,所以这里介绍无符号的移位。
无符号数据左移时,右侧补零,左侧被移走。
无符号数据右移时,左侧补零,右侧被移走。
按位计算的意义
前面说过,按位逻辑计算对寄存器的配置非常方便,因为寄存器是可“位”操作的,要寄存器的某位操作时,不能更改其他位的数值。
后面还会继续介绍位操作的编程实现方式。
如果文章有所帮助,请关注、评论并转发吧。
猜你喜欢
- 2025-06-12 正点原子I.MX6U嵌入式Linux C应用编程:第一章《应用编程概念》
- 2025-06-12 10天征服你(2)——51单片机(十天征服单片机)
- 2025-06-12 单片机零基础自学入门基础知识(新手必看)
- 2025-06-12 成长路上,被时代推着跑(成长路上,被时代推着跑的作文)
- 2025-06-12 【经典整理】90款传感器单片机代码例程(代码+原理图+说明书)
- 2025-06-12 为什么我学了几天 STM32 感觉一脸茫然?
- 2025-06-12 FlexLua单片机低代码实现SYN6288 文字转语音输出(TTS)
- 2025-06-12 单片机编程(单片机编程入门基础知识视频教程)
- 2025-06-12 大一新生如何自学单片机(大几学单片机)
- 2025-06-12 单片机为什么一直用C语言,不用其他编程语言?只有学过的知道
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)