main.c
来自「STM8S105S4程序」· C语言 代码 · 共 51 行
C
51 行
/******************** 2011电子科技协会 ********************
;名称 :数码管显示
;作者 : 郑品洪
;日期 : 07/25/2011
;描述 : 让所有数码管以动态扫描的形式循环显示0到F
;***********************************************************/
#include <stm8s105s4.h>
#define uchar unsigned char
#define uint unsigned int
uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //0到F代码
void delay(uint a) //延时子函数
{
uchar i;
for(a;a>0;a--)
for(i=0;i<200;i++);
}
void init(void) //初始化函数
{
PB_DDR=0xff;
PB_CR1=0xff; //把PB设置为推挽输出
PB_CR2=0x00;
PC_DDR=0xff;
PC_CR1=0xff; //把PC设置为推挽输出
PC_CR2=0x00;
CLK_SWR=0xe1; //选内部高速时钟作为主时钟,这是stm8的默认时钟
CLK_CKDIVR=0x18; //时钟分频,这里为2MHz,读者可以参考stm8s系列数据参考手册改变频率,并观察数码管显示的变化
}
void main()
{
uchar i,j,k;
init();
while(1) //无限循环
{
for(i=0;i<16;i++) //有十六个数要显示
{
for(j=0;j<62;j++) //每个数扫描62次
{
for(k=0;k<8;k++) //8个数码管
{
PB_ODR=table[i]; //显示第i个数
PC_ODR =k*2; //依次选择第1到第8个数码管
delay(2);
}
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?