8片74hc164级联数码管显示

8片74hc164级联数码管显示

extern u8 LED_DIS[8];//数码管显示数组
extern u8 Table[];//数码管段码表
void LED_Init(void)
{
 
 GPIO_InitTypeDef  GPIO_InitStructure;
 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOB, ENABLE);	 //使能PA,PD端口时钟
	
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;				 //LED_Start-->PC6 端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
 GPIO_Init(GPIOC, &GPIO_InitStructure);					 //根据设定参数初始化GPIOC6
 GPIO_SetBits(GPIOC,GPIO_Pin_6);						 //PC6 输出高

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15|GPIO_Pin_14;	    		 //U0_A&&U0_B-->PB15,CLK-->PB14端口配置
 GPIO_Init(GPIOB, &GPIO_InitStructure);	  				 //推挽输出 ,IO口速度为50MHz
 GPIO_SetBits(GPIOB,GPIO_Pin_15); 						 //PD.2 输出高 
 GPIO_SetBits(GPIOB,GPIO_Pin_14); 						 //PD.2 输出高 
}
//传入数据
 void write_164(unsigned char dat)
 {
   unsigned char i;
   for(i=0;i<8;i++)     
   {
     LED_CLK=0;             
     if(dat&0x80)  
			 LED_UAB = 1;//由32的io控制芯片的A、B引脚
     else          
			 LED_UAB = 0;
     LED_CLK=1;               
     dat<<=1; 
  }
}
	```
    void LED_Display(void)
    {
        unsigned char i=0;
		LED_DIS[0] = para[3]%10;
		LED_DIS[1] = para[3]/10%10;//音乐led
		LED_DIS[2] = para[2]%10;
		LED_DIS[3] = para[2]/10%10;//处方led
		LED_DIS[4] = para[1]%10;
		LED_DIS[5] = para[1]/10%10;//角度led
		LED_DIS[6] = para[0]%10;
		LED_DIS[7] = para[0]/10%10;//时间led

	for(i=0;i<8;i++)
	{
		write_164(Table[LED_DIS[i]]);
	}
	}


猜你喜欢

转载自blog.csdn.net/zhp667788/article/details/97374515