第9个:数组与万能流水灯
/* MAIN.C file
*
* Copyright (c) 2002-2005 STMicroelectronics
*/
#include"stm8s208r.h"
/********************定义一个二维数组*********************/
/********************装入使小灯花样闪亮的数据*************/
/*********************************************************/
unsigned char dis[5][8] =
{
{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f},
{0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe},
{0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff},
{0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00},
{0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f}
};
/************************函数声明**************************/
void GPIO_Init(void); //GPIO口的初始化子程序
void display(void); //用PB口显示花样小灯子程序
void delay(unsigned int time); //延时子程序
/************************主函数****************************/
int main(void)
{
GPIO_Init(); //端口初始化
while (1) //死循环
{
display(); //始终让小灯显示花样
}
}
/************************GPIO口的初始化****************************/
void GPIO_Init(void)
{
PB_ODR = 0XFF; //初始使小灯全灭
PB_DDR = 0XFF; //DDR为0是输入,1是 输出。 此处为PB的8个端口均为输出
PB_CR1 = 0XFF; //推挽输出模式
PB_CR2 = 0X00; //低速输出模式
}
/************************小灯花样显示子程序************************/
void display(void)
{
unsigned char i,j;
for(i =0;i<5;i++) //循环二维数组的行数
{
for(j= 0;j<8;j++) //循环二维数组的每行中的数据
{
PB_ODR = dis[i][j]; //把数据给PB口使小灯显示
delay(50000);
}
}
}
/*****************************延时子程序*****************************/
void delay(unsigned int time)
{
while(time--);
}