📄 main.c
字号:
/******************** 2011电子科技协会 ********************
;名称 :流水灯
;作者 : 郑品洪
;日期 : 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) //延时子函数,约延时1ms
{
uint i;
for(s;s>0;s--)
for(i=0;i<500;i++);
}
void init(void) //stm8初始化函数
{
PB_DDR = 0xff;
PB_CR1 = 0xff; // 将PB设置成推挽输出
PB_CR2 = 0x00;
CLK_SWR = 0xE1; //选内部高速时钟作为主时钟
CLK_CKDIVR = 0x08; //将CPU主频设置为2M(STM8默认的就是内部高速时钟的八分频,即2MH,这里只是告诉大家设置方法)
}
void main()
{
uchar i;
init();
while (1) //无限循环
{
PB_ODR = 0xff; //先将所有的LED关闭
for(i=0;i<9;i++) //一开始是所有的LED熄灭,再逐点亮所有LED,共九种状态
{
DelayMS(500); //延时500毫秒
PB_ODR<<=1; //将PB_ODR向左移动一位,逐渐点亮所有LED
}
for(i=0;i<8;i++)
{
PB_ODR=table[i]; //将table中的数依次赋给PB_ODR ,从上至下依次点亮LED
DelayMS(500);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -