單片機跑馬燈源程序如下:
- /*編譯環境**************************************
- 功能:跑馬燈實驗,依靠程序延時控制跑馬燈
- CPU: STC12C5A系列
- IDE: KEIL uVission2 V2.4a
- ************************************************/
- /*資源分配**************************************
- P0: 跑馬燈
- P33:跑馬燈整體控制
- P24-P27:數碼管控制
- ************************************************/
- #include "stc12c5a.h"
- #define Dtube_SEG3 P27 //每一位的數碼管總控IO定義
- #define Dtube_SEG2 P26
- #define Dtube_SEG1 P25
- #define Dtube_SEG0 P24
- #define LED_SEG P33 //跑馬燈總控IO定義
- #define HORSE_BUS P0 //跑馬燈定義
- void Delay_Time(unsigned int time) //延時函數
- {
- while(time>0)
- time--;
- }
- void main(void)
- {
- unsigned char horse_led;
- P2M1&=~0xf0; //P2口 7 6 5 4 3 2 1 0
- // O O O O :數碼管總控IO為強推挽輸出
- //P2M1 0 0 0 0
- P2M0|=0xf0; //P2M0 1 1 1 1
- P3M1&=~0x08; //P3口 7 6 5 4 3 2 1 0
- // O :跑馬燈總控IO為強推挽輸出
- //P3M1 0
- P3M0|=0x08; //P3M0 1
- Dtube_SEG0=0; //關閉數碼管顯示
- Dtube_SEG1=0;
- Dtube_SEG2=0;
- Dtube_SEG3=0;
- LED_SEG=1; //打開跑馬燈顯示
- horse_led=1; //跑馬燈初始值
- for(;;)
- {
- HORSE_BUS=horse_led; //把跑馬燈的值送出,點亮一個燈
- horse_led<<=1; //把跑馬燈的值左移,準備點亮下一個燈.更改此處可以改變方向
- if(horse_led==0) //直到點亮最后一個燈,
- {
- horse_led=1; //再回到第一個燈
- }
- Delay_Time(50000); //延時,更改此處可以改變周期
- }
- }
復制代碼
所有資料51hei提供下載:
跑馬燈1.zip
(19.19 KB, 下載次數: 8)
2018-4-9 22:04 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|