⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 STM8S105S4程序
💻 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 + -