- 單片機C語言程序設(shè)計實訓(xùn)100例
- 彭偉編著
- 520字
- 2018-12-27 05:12:02
3.3 左右來回循環(huán)的流水燈
本例運行時,8只LED左右來回循環(huán)滾動點亮,產(chǎn)生來回走馬燈效果。
本例電路如圖3-3所示。

圖3-3 左右來回循環(huán)的流水燈電路
程序設(shè)計調(diào)試與實訓(xùn):
本例中的8只LED連接在P2端口,LED陽極連接P2,陰極通過限流電阻接地,對于P0端口,這樣連接時任何LED都不會點亮,即使P0端口輸出的是0xFF。
由于本例所有LED共陰連接,P2端口相應(yīng)引腳輸出1時,才會使相應(yīng)LED點亮,為產(chǎn)生單個LED循環(huán)滾動效果,P2端口初值設(shè)為0x01(00000001),這會使第1只LED點亮,主程序中第1個for循環(huán)使其循環(huán)左移,依次為00000010,00000100,00001000,……直到變?yōu)?0000000。第2個for循環(huán)使其循環(huán)右移,依次為01000000,00100000,00010000,……直到變?yōu)?0000001如此重復(fù)。
另外,讀者還要注意兩個并列的for循環(huán)都只需要執(zhí)行7次而不是8次。
調(diào)試本例后,讀者可將LED改為共陽連接,重新修改程序,看能否實現(xiàn)同樣的效果,同時,還可以在每次來回滾動顯示后再添加全亮和全滅的閃爍效果。
源程序代碼:
//----------------------------------------------------------------- // 名稱: 8只LED左右來回點亮 //----------------------------------------------------------------- // 說明:程序利用循環(huán)移位函數(shù)_crol_和_cror_形成來回滾動效果。 //----------------------------------------------------------------- #include <reg51.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int //----------------------------------------------------------------- // 延時 //----------------------------------------------------------------- void DelayMS(uint x) { uchar t; while(x--) { for(t = 0; t < 120; t++); } } //----------------------------------------------------------------- // 主程序 //----------------------------------------------------------------- void main() { uchar i; P2 = 0x01; while(1) { for (i = 0; i < 7; i++) { P2 = _crol_(P2,1); //P2端口向左循環(huán)移動1位 DelayMS(150); } for (i = 0; i < 7; i++) { P2 = _cror_(P2,1); //P2端口向右循環(huán)移動1位 DelayMS(150); } } }
推薦閱讀
- Instant Testing with CasperJS
- Learning Java Functional Programming
- Data Analysis with IBM SPSS Statistics
- Getting Started with Hazelcast(Second Edition)
- Mastering ArcGIS Enterprise Administration
- 大話Java:程序設(shè)計從入門到精通
- Python網(wǎng)絡(luò)爬蟲技術(shù)與應(yīng)用
- .NET 4.0面向?qū)ο缶幊搪劊簯?yīng)用篇
- Python物理建模初學(xué)者指南(第2版)
- 零基礎(chǔ)PHP從入門到精通
- Mastering R for Quantitative Finance
- Hands-On Data Visualization with Bokeh
- 微信公眾平臺服務(wù)號開發(fā):揭秘九大高級接口
- Mastering Assembly Programming
- Real-time Web Application Development using Vert.x 2.0