STC8单片机(51)中的逻辑非(!)与按位取反(~)

发布者:breakthrough3最新更新时间:2025-11-05 来源: bilibili关键字:STC8单片机 手机看文章 扫描二维码
随时随地手机看文章

//对P5这个寄存器所有位进行取返:例如:0000 1111 按位取反后变为1111 0000,

P5 = ~P5;  

//这是逻辑非操作,1变0,0变1

P5_4 = !P5_4;

-------------------------------------------------------------------------------

//下面逻辑就会有问题,只会对最低位有效,如: 0000 1111就会变为0000 1110

//在不同的编译器下有不同的效果,不要使用这种方式!!

//P5 = !P5;

-------------------------------------------------------------------------------

结论:在进行批量位操作时使用~, 只需要单独对某一位控制时使用!

-------------------------------------------------------------------------------


关键字:STC8单片机 引用地址:STC8单片机(51)中的逻辑非(!)与按位取反(~)

上一篇:51单片机的电路图看不懂,该补充哪些基础知识?
下一篇:89C51单片机弹TruE

推荐阅读最新更新时间:2026-03-20 21:06

STC8单片机OLED通过SPI硬件中断方式驱动(中)
前面的已经说了如何去初始化SPI了,接下来说说发送函数,先上代码 void OLED_Writ_Bus(uint8_t _data) { Delay20us(); if (SPI_Busy == 0) { SPI_Busy = 1; OLED_CS_Clr(); SPDAT = _data; } } SPI_Busy是一个状态机,判断SPI是否在忙碌,在OLED的例程中已经是软件模拟SPI,模拟的时钟跟不上硬件的速度,所以我们只需要稍加就该,把软件的模拟更换成硬件驱动就完事了,看看两者的速度差,软件模拟在400k左右,硬件驱动(中断)能达到3M左右,轮询在1M左右,拉低CS(SS)
[单片机]
<font color='red'>STC8</font><font color='red'>单片机</font>OLED通过SPI硬件中断方式驱动(中)
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved