数码管74HC595驱动

在这里插入图片描述

u8 NixieLED[4] = {0,0,0,0}; 

uint8_t LED_0F[] = 
{// 0	 1	  2	   3	4	 5	  6	   7	8	 9	  A	   b	C    d	  E    F    -
	0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8C,0xBF,0xC6,0xA1,0x86,0xFF,0xbf
};

void LED595_100uSTask(void);
void LED595_10MSTask(void);
void LED595_100MSTask(void);
void LED595_1STask(void);

void HostIIC_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//使能PB,PE端口时钟

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;				 //LED0-->PB.5 端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
	GPIO_Init(GPIOB, &GPIO_InitStructure);					 //根据设定参数初始化GPIOB.5
	 
	SCLK = 1;
	DIO = 1;
	RCLK = 1;
}

void LED_OUT(u8 X)
{
	u8 i;
	for(i=8;i>=1;i--)
	{
		if (X&0x80) DIO=1; else DIO=0;
		X<<=1;
		SCLK = 0;
		SCLK = 1;
	}
	
}

void LED4_Display (void)
{
	u8 *led_table;          // 查表指针
	u8 i;
	
	//显示第1位
	led_table = LED_0F + NixieLED[0];
	i = *led_table;

	LED_OUT(i);			
	LED_OUT(0x01);
	RCLK = 0;
	RCLK = 1;
	//显示第2位
	led_table = LED_0F + NixieLED[1];
	i = *led_table;

	LED_OUT(i);		
	LED_OUT(0x02);
	RCLK = 0;
	RCLK = 1;
	//显示第3位
	led_table = LED_0F + NixieLED[2];
	i = *led_table;

	LED_OUT(i);			
	LED_OUT(0x04);
	RCLK = 0;
	RCLK = 1;
	//显示第4位
	led_table = LED_0F + NixieLED[3];
	i = *led_table;

	LED_OUT(i);			
	LED_OUT(0x08);	
	RCLK = 0;
	RCLK = 1;
}

void LED595_TaskManage(uint8_t TaskPeriod)
{
	switch (TaskPeriod)
	{
		case SYSCLOCK_1MS:
			LED595_100uSTask();
		break;
		case SYSCLOCK_10MS:
			LED595_10MSTask();
			break;
		case SYSCLOCK_100MS:
			LED595_10MSTask();
			break;
		case SYSCLOCK_1S:
			LED595_100MSTask();
			break;
		default:break;
	}
}

void LED595_100uSTask(void)
{
	LED4_Display();
}
void LED595_10MSTask(void)
{
}void LED595_100MSTask(void)
{

}void LED595_1STask(void)
{

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值