|
適合stm8初學(xué)者
流水燈控制
源程序
單片機(jī)源程序如下:
- /* 添加庫(kù)函數(shù)頭文件 */
- #include "stm8s.h"
- #define LED1_ON() GPIO_WriteLow(GPIOD , GPIO_PIN_2) //LED1亮
- #define LED2_ON() GPIO_WriteLow(GPIOC , GPIO_PIN_7) //LED2亮
- #define LED3_ON() GPIO_WriteLow(GPIOC , GPIO_PIN_6) //LED3亮
- #define LED4_ON() GPIO_WriteLow(GPIOC , GPIO_PIN_3) //LED4亮
- #define LED1_OFF() GPIO_WriteHigh(GPIOD , GPIO_PIN_2) //LED1滅
- #define LED2_OFF() GPIO_WriteHigh(GPIOC , GPIO_PIN_7) //LED2滅
- #define LED3_OFF() GPIO_WriteHigh(GPIOC , GPIO_PIN_6) //LED3滅
- #define LED4_OFF() GPIO_WriteHigh(GPIOC , GPIO_PIN_3) //LED4滅
- /*******************************************************************************
- **函數(shù)名稱:void delay(unsigned int ms) Name: void delay(unsigned int ms)
- **功能描述:大概延時(shí)
- **入口參數(shù):unsigned int ms 輸入大概延時(shí)數(shù)值
- **輸出:無(wú)
- *******************************************************************************/
- void delay(unsigned int ms)
- {
- unsigned int x , y;
- for(x = ms; x > 0; x--) /* 通過(guò)一定周期循環(huán)進(jìn)行延時(shí)*/
- for(y = 3000 ; y > 0 ; y--);
- }
- /*******************************************************************************
- **函數(shù)名稱:void InitLED()
- **功能描述:初始化LED函數(shù)
- **入口參數(shù):無(wú)
- **輸出:無(wú)
- *******************************************************************************/
- void InitLED()
- {
- //設(shè)置PD2為快速推挽輸出 ,LED1
- GPIO_Init(GPIOD , GPIO_PIN_2 , GPIO_MODE_OUT_PP_LOW_FAST);
-
- //設(shè)置PC7為快速推挽輸出 ,LED2
- GPIO_Init(GPIOC , GPIO_PIN_7 , GPIO_MODE_OUT_PP_LOW_FAST);
-
- //設(shè)置PC6為快速推挽輸出 ,LED3
- GPIO_Init(GPIOC , GPIO_PIN_6 , GPIO_MODE_OUT_PP_LOW_FAST);
-
- //設(shè)置PC3為快速推挽輸出 ,LED4
- GPIO_Init(GPIOC , GPIO_PIN_3 , GPIO_MODE_OUT_PP_LOW_FAST);
- }
- /* 主函數(shù) */
- int main(void)
- {
- //內(nèi)部時(shí)鐘為1分頻 = 16Mhz
- CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);
- InitLED(); //調(diào)用LED初始化函數(shù)
- while(1)
- {
- LED1_ON(); //點(diǎn)亮LED1
- LED2_ON(); //點(diǎn)亮LED2
- LED3_ON(); //點(diǎn)亮LED3
- LED4_ON(); //點(diǎn)亮LED4
- delay(1000); //空跑大概延時(shí)
- LED1_OFF(); //點(diǎn)滅LED1
- LED2_OFF(); //點(diǎn)滅LED2
- LED3_OFF(); //點(diǎn)滅LED3
- LED4_OFF(); //點(diǎn)滅LED4
- delay(1000); //空跑大概延時(shí)
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
iar工程.7z
(264.06 KB, 下載次數(shù): 30)
2022-12-16 04:49 上傳
點(diǎn)擊文件名下載附件
|
|