http://www.zg4o1577.cn/ziliao/51hei-5/流水燈_酷.rar
實驗題:
硬件前提:用51的P0口控制8個LED,1 點亮,0 熄滅。對于這一條在向I/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個燈從第一個開始依次漸亮,直到最后一個。再從最后一個起漸暗,直到第一個。如此循環往復。這才是真正的流水燈。
初學單片機看到這題目,頭大、頭蒙呵呵,上面的思路也是論壇上的高手提出的,兩天的時間下來還算有點結果, |