標題: 單片機八位LED控制程序 [打印本頁]
作者: hanhongyi 時間: 2018-11-2 11:21
標題: 單片機八位LED控制程序
① 開啟電源:
5S后,所有燈【8個】亮2S檢測是否正常
② 播放亮燈模式:
按下*鍵,延遲5S后,自動播放上次的亮燈模式【如果第一次使用,默認選擇亮燈模式1】
③ 選擇亮燈模式:
按下相應數字鍵【0-9,3秒內按下2個數字鍵,默認為相應的2位數字,如21】,延遲3S,所有燈閃爍2次,延遲1S后,開始播放相應的亮燈模式
④ 停止播放:
按下#鍵,延遲1S后,所有燈閃爍3次,延遲1S后,停止程序運行:所有燈滅
⑤ 超時關機:
未按下任何按鍵,選擇的亮燈模式循環播放,最多運行100個循環,自動停止,所有燈滅
⑥ 曲首提示:
循環播放過程中,每次亮燈模式開始,所有燈一起閃爍2
次,延遲1S后,開始播放相應的亮燈模式;
單片機源程序如下:
- #include <reg52.h>
- #include <intrins.h> //
- 包含循環移動函數的頭文件
- //
- 定義一下
- ,
- 方便使用
- #define uchar unsigned char
- #define uint unsigned int
- /***********
- 延時函數(大約一毫秒)
- ****************/
- void delayms(uint z)
- {
- uint x,y;
- for(x=0;x<=76;x++)
- for(y=0;y<=z;y++);
- }
- void main( )//
- 主函數
- {
- uchar i=0;
- P0=0xfe;//
- 點亮第一個
- LED
- delayms(500); //
- 延時(大約)
- 0.5
- 秒
- while(1)//
- 程序循環
- {
- for(i=0;i<7;i++) //
- 右移
- 7
- 次
- {
- P0=_crol_(P0,1);//
- 循環右移一位,此處調用函數
- _cror_
- 的功能為循環
- 右移
- delayms(500); //
- 延時(大約)
- 0.5
- 秒
- }
- for(i=0;i<7;i++) //
- 左移
- 7
- 次
- {
- P0=_cror_(P0,1);//
- 循環左移一位,此處調用函數
- _croL_
- 的功能為循環
- 左移
- delayms(500); //
- 延時(大約)
- 0.5
- 秒
- }
- }
- }
復制代碼
所有資料51hei提供下載:
ST033-八位LED模塊.pdf
(373.79 KB, 下載次數: 8)
2018-11-2 11:20 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者: 快樂眼淚 時間: 2018-11-2 19:00
感謝分享!
作者: xiexugang 時間: 2018-11-3 00:07
簡單程序,入門實驗很好.
歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |