【技巧】位运算的一些技巧


1、把小写字母变为大写字母,清位:‘a’ & 0xDF,结果为‘A’

2、把大写字母变为小写字母,置位:‘A’ | 0x20,结果为‘a’

3、对某位取反, 某个位与1 异或即为取反( 第1 位取反):0xFF ^ 0x01,运算的结果为0xFE

4、部分乘法的化简,与2 的n 次方相乘,相当于左移n 位,例如0x02 乘以4,0x02 << 2,这里的2,表示4 = 2 的‘2’次方,结果为8

5、部分除法的化简,与2 的n 次方相除,相当于右移n 位,例如0x08 除以4,0x08 >> 2,这里的2,表示4 = 2 的‘2’次方,结果为2

原理就是让手机通过蓝牙模块向单片机发送信息,然后单片机接收信息并做出一些特定的信息,单片机的特定动作就是通过单片机的串口设置及对应的程序来控制。首先,给单片机载入串口通信程序,一般下载程序时单片机要与蓝牙断开,避免因为蓝牙占用了单片机串口导致程序无法烧写。载入程序后,照上述给出的读写连接方式连接,并给单片机及HC-05连接合适电源,一般都用单片机板子上电源。手机端需下载“蓝牙串口调试助手”APP。

6、部分求余的化简,与2 的n 次方求余,跟2 的n 次方-1 与,如15跟8 求余,相当于15 & 7,这里的7 是8-1 = 7,结果为8

7、其他乘法的化简,例如0x08 * 7 = 0x08 * (8 - 1) = (0x08 << 3) - 0x08

8、循环移位,对一个16 位的数循环左移n 位,0xXX >> (16 - n) | 0xXX << n

9、循环移位,对一个16 位的数循环右移n 位,0xXX << (16 - n) | 0xXX >> n


> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >

上初中时候喜欢一个妹子。有一次妹子快过生日了,寻思着送个什么礼物,结果就在网上翻出来了一个心形流水灯,用单片机控制,那是我第一次听说单片机这个词。照着教程组装烧程序之后便能亮了。那个时候太小,没有自己的手机,所以没留下太多的制作过程,只拍了这两张照片。

生成海报
点赞 0

钟, 广林

我还没有学会写个人说明!

相关推荐

基于8051单片机实现电子时钟+数字秒表设计

概述 电子时钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显 示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许

ESP8266 ds18b20温度传感器

先到GitHub上下载库OneWire和DallasTemperature 下载好的例程,此程序是arduino上的例程,可以修改引脚为ESP8266的引脚 // Include the libraries we

OV7670摄像头模块资料

OV7670摄像头模块资料 一、实物图和原理图 二、模块简介 OV7670 是 OV( OmniVision)公司生产的 CMOS VGA 图像传感器。该传感器体积小、工作电压低,提供单片 VGA

汇编实现LED点亮

汇编点亮一个LED MCS-51单片机 也许C语言人人都会,但使用汇编语言就不一定了。 使用汇编语言点亮一个LED灯 程序: ORG 0000H MAIN:CLR P2.0 LJMP MAINEND 注释如下&#