野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 54|回复: 1

stm8 数码管定义在不同组io口方法

[复制链接]
发表于 6 天前 | 显示全部楼层 |阅读模式
#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])就可以了


回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
手动点赞+
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|联系站长|手机版|站点地图|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号-2 ) 大学生ARM嵌入式2群

GMT+8, 2020-5-28 15:12 , Processed in 0.214927 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表