單片機并口簡單應用(流水燈) 如圖1所示,流水燈硬件電路由發光二極管、單片機并口(P0)、限流電阻等組成。發光二極管連接成共陽極結構。發光二極管點亮的條件是:陽極接高電平、各陰極接低電平。因此,二極管公共端陽極就接成高電平,然后再按一定規則從P0口輸出數據,發光二極管就會點亮。 
圖1 流水燈電路圖
2、程序流程圖如下。 1、開發板接線圖 
編寫程序
編寫程序
實 驗 名: 流水燈實驗
實驗說明 : 延時實現LED流水燈效果P0口八個燈作跑馬燈。
//--包含你要使用的頭文件
- #include <reg52.h> //此文件中定義了52的一些特殊功能寄存器
- #include <intrins.h>
-
- //--聲明全局函數--//
- void Delay10ms(unsigned int c); //延時10ms
-
- /******************************************************************************
- * 函 數 名 : main
- * 函數功能 : 主函數
- * 輸 入 : 無
- * 輸 出 : 無
- ******************************************************************************/
-
- void main()
- {
- unsigned char LED;
- LED = 0xfe; //0xfe = 1111 1110
- while (1)
- {
- P0 = LED;
- Delay10ms(50);
- LED = LED << 1; //循環右移1位,點亮下一個LED "<<"為左移位
- if (P0 == 0x00) //當它全滅的時候,重新賦值
- {
- LED = 0xfe; // 0xfe = 1111 1110
- }
-
- }
- }
- /******************************************************************************
- * 函 數 名 : Delay10ms
- * 函數功能 : 延時函數,延時10ms
- * 輸 入 : 無
- * 輸 出 : 無
- ******************************************************************************/
-
- void Delay10ms(unsigned int c) //誤差 0us
- {
- unsigned char a, b;
- //--c已經在傳遞過來的時候已經賦值了,所以在for語句第一句就不用賦值了--//
- for (;c>0;c--)
- {
- for (b=38;b>0;b--)
- {
- for (a=130;a>0;a--);
- }
-
- }
- }
復制代碼
完整的Word格式文檔51黑下載地址:
1單片機并口簡單應用(流水燈).docx
(434.04 KB, 下載次數: 8)
2018-5-28 19:20 上傳
點擊文件名下載附件
|