目标:编一个流水灯

先贴上代码

单片机小白学习之路(五)---编一个流水灯

这里有一个c语言的小技巧:程序不执行#if0至#endif之间的程序,相当于注释掉了,执行#if1至#endif之间的。


上图有两种方法来弄出流水灯。


第一种是#if0里面的:

0xfe是十六进制数,变成二进制是1111 1110.

~0xfe是取反的意思,二进制是0000 0001.

~0xfe<<1 是左移一位的意思,二进制是0000 0010

然后~0xfe再次取反 ,二进制是1111 1101


第二种是#if1里面的:

-crol- 是<intrins.h>里面包含的函数,意思是左移n位,-crol-(0xfe,n)

-cror-是<intrins.h>里面包含的函数,意思是右移n位,-cror-(0xfe,n)



再来看看电路原理图

单片机小白学习之路(五)---编一个流水灯
led模块

从发光二极管就可以看出P2端口要是0才能使其发光,所以在这里是不是豁然开朗了?这就是我们要位移的原因,

第一种就是把0不断的往高位移使灯一个接一个亮。

第二种也是一样思路.


其实我们还可以把P2的每个端口的sbit下,但太耗端口,不推荐

相关文章:

  • 2021-11-01
  • 2021-10-24
  • 2022-01-07
  • 2021-06-27
  • 2022-01-07
  • 2021-07-31
  • 2021-09-14
猜你喜欢
  • 2021-10-11
  • 2021-04-05
  • 2022-01-07
  • 2022-01-07
  • 2022-01-07
  • 2022-01-07
相关资源
相似解决方案