大学生
最后登录1970-1-1
在线时间 小时
注册时间2019-5-18
|
#include "stm8s.h"
#include "bsp_timer.h"
#include "iostm8s103f3.h"
/*******************数码管************************/
#define a PD_ODR_ODR3
#define b PD_ODR_ODR2
#define c PD_ODR_ODR1
#define d PC_ODR_ODR7
#define e PC_ODR_ODR6
#define f PC_ODR_ODR5
#define g PC_ODR_ODR4
#define h PC_ODR_ODR3
#define CS0 PD_ODR_ODR5
#define CS1 PA_ODR_ODR1
#define CS2 PA_ODR_ODR2
#define CS3 PA_ODR_ODR3
//A共阳数码管 0,1,2,3,4,5,6,7,8,9,U,A,H,C,
//uint8_t disp[]={0xc0 , 0xf9 , 0xa4 , 0xb0 , 0x99 , 0x92 , 0x82 , 0xf8 , 0x80 , 0x90 , 0xc1,0x88,0xc6,0x7f,0x89,0x00};
//B共阴数码管 0,1,2,3,4,5,6,7,8,9,U,A,H,C,
uint8_t disp[]={0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d, 0x7d , 0x07 , 0x7f , 0x6f , 0x3e,0x77,0x76,0x39,0x00,0xff};
//位选择
uint8_t wei[]={0x0f,0x0e,0x0d,0x0b,0x07,0x00};
void SET_LED(unsigned char val)
{
//低4位
a=val&1;
b=val>>1&1;
c=val>>2&1;
d=val>>3&1;
//高4位
e=val>>4&1;
f=val>>5&1;
g=val>>6&1;
h=val>>7&1;
}
void SET_WEI(unsigned char val)
{
//低4位
CS0=val&1;
CS1=val>>1&1;
CS2=val>>2&1;
CS3=val>>3&1;
}
void GPIOInit(void)
{
PA_DDR = 0xFF;
PA_CR1 = 0xFF;
PC_DDR = 0xF8;
PC_CR1 = 0xF8;
PD_DDR = 0xAF;
PD_CR1 = 0xAF;
}
要显示就直接 SET_LED(disp[10])就可以了
|
|