单片机初学者几乎都做的一个实验就是流水灯实验,因为大家都做,所以就觉得很简单,很多人对这个实验几乎不屑。其实要彻底的玩转这个实验也是很不简单的事情,不信看看你能不能应付我下面的实验题:
硬件前提:用51的P1口控制8个LED,1 点亮,0 熄灭。
(1)第1,3,5,7个灯半亮,其余的全亮。
(2)第1个亮1/8,第2个亮2/8,第3个亮3/8,第4个亮4/8,第5个亮5/8,第6个亮6/8,第7个亮7/8,第8个全亮。
(3)来点小难的,所有的灯逐渐从暗到全亮,再由全亮到暗。
(4)最难的:8个灯从第一个开始依次渐亮,直到最后一个。再从最后一个起渐暗,直到第一个。如此循环往复。这才是真正的流水灯。
理解是:
(1)第1,3,5,7个灯半亮,其余的全亮。
把显示时间分成2个时间段,半亮的灯只在一个时间段内点亮,另一个时间段关闭
(2)第1个亮1/8,第2个亮2/8,第3个亮3/8,第4个亮4/8,第5个亮5/8,第6个亮6/8,第7个亮7/8,第8个全亮。
和第一个类似,只是分成了8个时间段,当然8个时间段加起来的时间最好小于20MS(满足刷新率大于50HZ)
(3)来点小难的,所有的灯逐渐从暗到全亮,再由全亮到暗。
这个可以按照第二个例子来延伸一下,分成8个时间段,如果要明显一点可以多分几个时间段,所有灯同时工作就相当于一个LED一样。
(4)最难的:8个灯从第一个开始依次渐亮,直到最后一个。再从最后一个起渐暗,直到第一个。如此循环往复。这才是真正的流水灯。