⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 74hc595.c

📁 STM32正交编码器完整程序
💻 C
字号:
/********************************************************************************
  快乐的实验室                      
  *******************************************************************************/
#include "74HC595.h"

u8 seg_wei;

u8 const duan[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,
                     0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xBF};
                    //共阳 段码0、1、2、3、4、5、6、7、8、9 ---F、-.
u8 const wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
                   //1.2.3.4.5.6.7.8位码 高电平有效共阳数码管
u8 const dispiay_temp[]={"0123456789"};
u8 num_wei1,num_wei2,num_wei3,num_wei4,num_wei5,num_wei6,num_wei7,num_wei8;
/*--------------------------------------------------------------------------------
函数功能:        74HC595数码管显示管脚配置
---------------------------------------------------------------------------------*/
void GPIO_74HC595_Config(void)
{
		 GPIO_InitTypeDef GPIO_InitStructure;
		 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOF, ENABLE);//使能pc端口时钟
		 GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;	 //	 
		 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//工作速率
		 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出
		 GPIO_Init(GPIOF,&GPIO_InitStructure); //端口结构
		// GPIO_SetBits(GPIOF, GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9); 	
}

/*--------------------------------------------------------------------------------
函数功能:        74HC595发送函数
---------------------------------------------------------------------------------*/



void send595(u8 dat1,u8 dat2)
{
 u8 i;
	for(i=0;i<8;i++)
	 {
	  SH_CP_LOW;
	  if(dat1&0x80)
		{DS_HIGH;}
	  else
	  { DS_LOW;}
	  SH_CP_HIGH;       //上升沿
	  dat1<<=1;
	 }

	for(i=0;i<8;i++)
	 {
	  SH_CP_LOW;
	  if(dat2&0x80)
		{DS_HIGH;}
	  else
		{DS_LOW;}
	  SH_CP_HIGH;       //上升沿
	  dat2<<=1;
	 }
    ST_CP_LOW;
    SysTick_delay(us,1);
    ST_CP_HIGH;
    SysTick_delay(us,1);
    ST_CP_LOW;
}

/*--------------------------------------------------------------------------------
函数功能:        74HC595发送函数
---------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------
函数功能:        74HC595显示函数
---------------------------------------------------------------------------------*/
void dis_595(u16 data1 ,u16 data2)
{
  num_wei1=data1/1000;
	num_wei2=data1%1000/100;
	num_wei3=data1%100/10;
	num_wei4=data1%10;
	
	num_wei5=data2/1000;
	num_wei6=data2%1000/100;
	num_wei7=data2%100/10;
	num_wei8=data2%10;
	
   switch(seg_wei)
     {
	    case 0:send595(wei[0],duan[num_wei1]);seg_wei=1;break;
	    case 1:send595(wei[1],duan[num_wei2]);seg_wei=2;break;
	    case 2:send595(wei[2],duan[num_wei3]);seg_wei=3;break;
		  case 3:send595(wei[3],duan[num_wei4]);seg_wei=4;break;
		  case 4:send595(wei[4],duan[num_wei5]);seg_wei=5;break;
		  case 5:send595(wei[5],duan[num_wei6]);seg_wei=6;break;
		  case 6:send595(wei[6],duan[num_wei7]);seg_wei=7;break;
		  case 7:send595(wei[7],duan[num_wei8]);seg_wei=0;break;
	    default :seg_wei=0;                      break;	
     }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -