- 打卡等级:常住居民III
- 打卡总天数:138
- 最近打卡:2025-04-29 21:28:54
高级会员
- 积分
- 703
|
本来想用IO口驱动LED灯当数码管的,但是用点数码管的方式操作,当第一组灯亮的时候其他的灯也亮了,不知道怎么处理,
代码如下
#include "config.h"
#include "STC8G_H_GPIO.h"
#include "STC8G_H_Delay.h"
u8 code ledNum[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};这个是每相当于列,但是这个列也没用上
u8 code led_1[]={0x11,0xb7,0x45,0x25,0xa3,0x29,0x09,0xb5,0x01,0x21};这个是第一组灯的代码
void GPIO_config(void) IO口初始化
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.Pin = GPIO_Pin_All; I
GPIO_InitStructure.Mode = GPIO_OUT_PP;
GPIO_Inilize(GPIO_P1,&GPIO_InitStructure);
}
void delay(u8 i)
{
while(i--);
}
void main(void)
{
EAXSFR();
GPIO_config();
P1=0X01;
while(1)
{
u8 a;
for(a=0;a<10;a++)
{
P1=led_1[a];
delay_ms(200);
P1=0X00;
}
}
}
|
-
原理图
-
实际效果
|