?? main.c
字號:
/******************** 2011電子科技協(xié)會 ********************
;名稱 :流水燈
;作者 : 鄭品洪
;日期 : 07/25/2011
;描述 : ;先從上至下點亮所有的LED,再逐個點亮單個LED
;***********************************************************/
#include "stm8s105s4.h"
#define uchar unsigned char
#define uint unsigned int
uchar table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //存放點亮單個LED的代碼
void DelayMS(uint s) //延時子函數(shù),約延時1ms
{
uint i;
for(s;s>0;s--)
for(i=0;i<500;i++);
}
void init(void) //stm8初始化函數(shù)
{
PB_DDR = 0xff;
PB_CR1 = 0xff; // 將PB設置成推挽輸出
PB_CR2 = 0x00;
CLK_SWR = 0xE1; //選內(nèi)部高速時鐘作為主時鐘
CLK_CKDIVR = 0x08; //將CPU主頻設置為2M(STM8默認的就是內(nèi)部高速時鐘的八分頻,即2MH,這里只是告訴大家設置方法)
}
void main()
{
uchar i;
init();
while (1) //無限循環(huán)
{
PB_ODR = 0xff; //先將所有的LED關閉
for(i=0;i<9;i++) //一開始是所有的LED熄滅,再逐點亮所有LED,共九種狀態(tài)
{
DelayMS(500); //延時500毫秒
PB_ODR<<=1; //將PB_ODR向左移動一位,逐漸點亮所有LED
}
for(i=0;i<8;i++)
{
PB_ODR=table[i]; //將table中的數(shù)依次賦給PB_ODR ,從上至下依次點亮LED
DelayMS(500);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -