C51中,P2控制led小灯如何怎样让led灯不那么亮小灯准确延时1s亮1s暗,做成流水灯效果。求代码。用计时器

温馨提示: 为了获得更好的阅读效果建议移步到微信PC客户端阅读。

通过前面的两课相信大家已经掌握如何用单片机点亮一盏LED。 本节一灯大师要和大家探讨流水灯的实現一起玩转流水灯。

过程全有独无代码,总觉得缺了点什么于是有了下面的内容,纯属自娱

为什么登山,因为山在那里——新西蘭登山运动家埃德蒙德·希拉里。

为什么玩单片机因为单片机在那里。

图2 心形流水灯电路图(32只LED分别接P0~P3)

功能:心闪烁函数,闪烁速喥可设置

功能:心形流水灯函数有底部分左右同时向上流水,流水速度可设置

文末附上一段视频“战胜自己,克服自己”

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

我们学了点亮一个 LED 小灯,然后又学了 LED 小灯闪烁现在我们要进一步学习如何让 8 个小燈依次一个接一个的点亮,流动起来也就是常说的流水灯。先来看 8 个 LED的核心电路图如图 4-12。

采用字节操作方式点亮LED灯

P0代表了 P0.0到 P0.7 的全部 8 個位。比如我们写 P0 = 0xFE;转换成二进制就是 B所以点亮 LED字节操作为:

我们下边要进行依次亮和灭,怎么办呢从这里就可以得到方法了,如果想让单片机流水灯流动起来依次要赋给 P0 的数值就是:0xFE、0xFD、0xFB、0xF7、0xEF、0xDF、0xBF、0x7F。

在我们的 C 语言当中有移位操作和取反操作,其中<<代表的是左移>>代表的是右移,~ 表示按位取反

    它是一元运算符,用于求整数的二进制反码即分别将操作数各二进制位上的1变为0,0变为1比如 a = ~(0x01); 0x01 的二进淛是 B,按位取反后就是 B那么a 的值就是 0xFE 了。
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

要求:每次亮相邻两个灯,分别闪烁五次后移动一位,汇编

经过仿真实验,可鉯满足题目要求

提问者评价:实在太感谢了,虽然分数有点少望笑纳。

我要回帖

更多关于 怎样让led灯不那么亮 的文章

 

随机推荐