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

📄 untitled1.c

📁 一个32*64点阵屏的驱动程序
💻 C
字号:
#include"iom8.h"
#include"intrinsics.h"
#include"stdbool.h"
#include"math.h"

#define uchar unsigned char
#define uint  unsigned int

#define sec 7372800    //__delay_cycles(1*sec)
#define ms  1000       //__delay_cycles(1*ms)
#define us 1          //__delay_cycles(1*us)
//-----------------------------------------------------

uchar data_595_line_1[8]={0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA};
uchar data_595_line_2[8]={0XFE,0XfE,0XfE,0XfE,0XfE,0XfE,0XfE,0XfE};
uchar data_595_line_3[8]={0XAC,0XAC,0XAC,0XAC,0XAC,0XAC,0XAC,0XAC};
uchar data_595_line_4[8]={0XF0,0XF0,0XF0,0XF0,0XF0,0XF0,0XF0,0XF0};

#define LED1_ON     PORTD_Bit2 =0
#define LED1_OFF    PORTD_Bit2 =1

#define HC138_EN        PORTB_Bit0 =1
#define HC138_disable   PORTB_Bit0 =0
#define HC138_A         PORTD_Bit5
#define HC138_B         PORTD_Bit6
#define HC138_C         PORTD_Bit7


#define HC138_SWITCH    PORTD_Bit0    //0为选择左边的138//1时选择右边的138


#define HC595_RCLK_H     PORTD_Bit1=1
#define HC595_RCLK_L     PORTD_Bit1=0
#define HC_595_CLK_H     PORTD_Bit2=1
#define HC_595_CLK_L     PORTD_Bit2=0
#define HC_595_DATA_1    PORTD_Bit3
#define HC_595_DATA_2    PORTC_Bit5
#define HC_595_DATA_3    PORTC_Bit4
#define HC_595_DATA_4    PORTB_Bit1

void data_in(unsigned char *data_HC595_in , unsigned char line)
{
 uchar i=0,j=0;

 HC595_RCLK_L ;         //输出锁存端口为低
 HC_595_CLK_L ;

 
for(i=0;i<8;i++)
{
  
  for(j=0;j<8;j++)
  {
   HC_595_CLK_L ;
   
   switch(line)
   {
   
   case 1:
          HC_595_DATA_1  = data_HC595_in[i]&0x01;
          break;
   case 2:
          HC_595_DATA_2  = data_HC595_in[i]&0x01;
          break;
   case 3:
          HC_595_DATA_3  = data_HC595_in[i]&0x01;
          break;
   case 4:
          HC_595_DATA_4  = data_HC595_in[i]&0x01;
          break;
   }
   
   HC_595_CLK_H ;
   data_HC595_in[i] = data_HC595_in[i]>>1;
}

}

HC595_RCLK_H;        //上升沿数据锁存

}

main(void)
{
uchar k;

DDRD =0xff;
PORTD =0xff;  

DDRB =0xff;
PORTB =0xff;  

DDRC =0xFF;
PORTC =0xFF;  

   

  HC138_disable;
  
  
  HC138_SWITCH=0;   //选择左边的138

  
   
 //data_in(data_595_line_1,1); 
   data_in(data_595_line_4,4);  
     
   HC138_EN;
 
 while(1){ 
  
 for(k=0;k<8;k++)
  {
  
  
// data_in(data_595_line_4,4);
  
//data_in(data_595_line_3,3);   
    
 HC138_A=0;      
 HC138_B=1;       
 HC138_C=1;   
 
 __delay_cycles(7*ms);
  
 HC138_A=0;      
 HC138_B=0;       
 HC138_C=0;  
 
 __delay_cycles(7*ms);
 HC138_A=1;      
 HC138_B=0;       
 HC138_C=0; 
 __delay_cycles(7*ms); 
 
 
 
  }

  /*
 LED1_ON;
 __delay_cycles(0.5*sec);
 LED1_OFF;
 __delay_cycles(0.5*sec);

 */
 
 
        }

}



⌨️ 快捷键说明

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