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

📄 led_test.c

📁 LED屏的测试、用的单片机检测LED的好坏、电子元件的正常工作
💻 C
字号:

//74123的第1脚A1接地
//74123的第3脚/CLR接+5V
//74123的第4脚/Q1接138第4脚G2A
//CK=P2^3;5026的第3脚CLK及123的第2脚B1
/*#include  "reg52.h"
sbit  A_data=P2^0;
sbit  B_data=P2^1;
sbit  C_data=P2^2;
sbit  CK=P2^3; //5026的第3脚CLK及123的第2脚B1
sbit  ST=P2^4; //5026的第4脚LE
sbit  OE=P2^5; //138的第5脚/G2B、E接+5V、G2A接触发器
sbit  R1=P1^2;
sbit  G1=P1^3;
sbit  B1=P1^4;
sbit  R2=P1^5;
sbit  G2=P1^6;
sbit  B2=P1^7;
sbit  KEY=P2^6;*/
#include  "reg52.h"
sbit  A_data=P2^0;
sbit  B_data=P2^1;
sbit  C_data=P2^2;
sbit  CK=P2^3;
sbit  ST=P2^4;
sbit  OE=P2^5;
sbit  R1=P1^2;
sbit  G1=P1^3;
sbit  B1=P1^4;
sbit  R2=P1^5;
sbit  G2=P1^6;
sbit  B2=P1^7;
sbit  KEY=P2^6;
sfr   AUXR         =0x8e;

void Delay(unsigned char mS);
void Delay_Sec(unsigned char mS);          
void key(void);  
void init(void);  //开始  
void dis1_R(unsigned char n);
void dis2_G(unsigned char n);
void dis3_B(unsigned char n);
void dis4_RG(unsigned char n);
void dis5_RB(unsigned char n);
void dis6_GB(unsigned char n);
void dis7_RGB(unsigned char n);
//void POWER_control();
//------------系统变量---------------//
unsigned char data  Timer_Out,Fdata,SPdata,Fcount;
unsigned char data  R_Grey_G,G_Grey_G,B_Grey_G,i3, //全局调值
                    rhy_Console;
unsigned char  data  POWER_data,con_data;                

bit data isrhy_Timer;
void Delay(unsigned char mS)
{unsigned char i;
 for(i=0;i<mS;i++){;}
}
void Delay_Sec(unsigned char mS)
{unsigned int i;
 unsigned char j;
 for(j=0;j<mS;j++)
 for(i=0;i<5000;i++){;}
}
//************定时为了检测按键*******// 
void timer0(void) interrupt 1
{
  
 // TH0	=	254;
 // TL0	=	192;
  ++POWER_data;
  //if(++POWER_data>8)  POWER_data=1;
  switch(POWER_data){       
                   case 0x01:{OE=0;A_data=B_data=C_data=0;CK=0;CK=1;CK=0;} break;
				   case 0x02:{OE=0;A_data=1;B_data=C_data=0;CK=0;CK=1;CK=0;} break;
            	   case 0x03:{OE=0;B_data=1;A_data=C_data=0;CK=0;CK=1;CK=0;} break;
				   case 0x04:{OE=0;A_data=B_data=0;C_data=1;CK=0;CK=1;CK=0;} break;
				   case 0x05:{OE=0;A_data=B_data=1;C_data=0;CK=0;CK=1;CK=0;} break;				   
				   case 0x06:{OE=0;A_data=C_data=1;B_data=0;CK=0;CK=1;CK=0;} break;
				   case 0x07:{OE=0;A_data=0;B_data=C_data=1;CK=0;CK=1;CK=0;} break;
				   case 0x08:{OE=0;A_data=B_data=C_data=1;CK=0;CK=1;CK=0;} break;
				   default:   OE=1; break;
 			      }
}

//**********主程序*************//
void init(void)
{//***初始化引脚电压***//
AUXR=0x40;
P1=0x00;P2=0xc0;P3=0xff;
POWER_data=0;OE=0;
con_data=1;
//***开定时计数器0***//
TMOD|=2;
TH0=136;
TL0=136;
//TR0=1;
//----中断管理----//
 EA=1;
 IT1=1;
 ES=1;  //开串口中断
 ET0=1; //开定时器中断
 IP=2 ;
 //PS=0;  //设置串口中断高优先级
}
//*************主程序**************//
void main(void)
{//unsigned char tt;
 //tt=1;
 init();  //---装载初始化---// 
 dis1_R(28); 
 TR0=1;
 OE=0 ;                             
while(1){ if(!KEY)  
            {Delay_Sec(20);
			 if(!KEY)
             {TR0=0;
			  if(++con_data>7)  con_data=1;
              switch(con_data)
			  {       
                   case 0x01:dis1_R(28); break;
				   case 0x02:dis2_G(30); break;
            	   case 0x03:dis3_B(30); break;
				   case 0x04:dis4_RG(30); break;
				   case 0x05:dis5_RB(30); break;				   
				   case 0x06:dis6_GB(30); break;
				   case 0x07:dis7_RGB(30); break;				   
 			  }while(!KEY) ;
		       TR0=1;
			 }
		    }
        }
}
//*******************************************
//*******************************************
void dis1_R(unsigned char n)  //数码管显示
 { unsigned char bitcnt;
   ST=0;                 //ST=1串行数据会传入至输出栓锁器
                         //ST=0串行资料会被栓锁住
   for(bitcnt=0;bitcnt<4;bitcnt++)
          {R1=R2=G1=G2=B1=B2=0;
           CK=0;
          // Delay(1);
           CK=1;
           CK=0;
		  // Delay(5);
		  }
   ST=1;  ST=0;	 
   G1=G2=B1=B2=0;
   for(bitcnt=0;bitcnt<n;bitcnt++)
          {R1=R2=1;
           CK=0;
          // Delay(1);
           CK=1;
           CK=0;
		  // Delay(5);
		  }
   ST=1;  ST=0;	      
 }
void dis2_G(unsigned char n)  //数码管显示
 { unsigned char bitcnt;
   ST=0;                 //ST=1串行数据会传入至输出栓锁器
                         //ST=0串行资料会被栓锁住 
   for(bitcnt=0;bitcnt<2;bitcnt++)
          {R1=R2=G1=G2=B1=B2=0;
           CK=0;
          // Delay(1);
           CK=1;
           CK=0;
		  // Delay(5);
		  }
   ST=1;  ST=0;	 
   R1=R2=B1=B2=0;
   for(bitcnt=0;bitcnt<n;bitcnt++)
          {G1=G2=1;
           CK=0;
           Delay(200);
           CK=1;
		   //Delay(5);
		  }
   ST=1;ST=0;	      
 }
//******************************//
void dis3_B(unsigned char n)
 { unsigned char bitcnt;
   ST=1;                 //ST=1串行数据会传入至输出栓锁器
                         //ST=0串行资料会被栓锁住  
   R1=R2=G1=G2=0;
   for(bitcnt=0;bitcnt<n;bitcnt++)
          {B1=B2=1;
           CK=0;
           //Delay(1);
           CK=1;
		  // Delay(5);
		  }
  // ST=0;	      
 }
//*******************************//
void dis4_RG(unsigned char n)
{ unsigned char bitcnt;
   ST=1;                 //ST=1串行数据会传入至输出栓锁器
                         //ST=0串行资料会被栓锁住  
   B1=B2=0;
   for(bitcnt=0;bitcnt<n;bitcnt++)
          {R1=R2=G1=G2=1;
           CK=0;
           //Delay(1);
           CK=1;
		   //Delay(5);
		  }
   //ST=0;	      
 }
//*****************************//
void dis5_RB(unsigned char n)
{ unsigned char bitcnt;
   ST=1;                 //ST=1串行数据会传入至输出栓锁器
                         //ST=0串行资料会被栓锁住  
   G1=G2=0;
   for(bitcnt=0;bitcnt<n;bitcnt++)
          {R1=R2=B1=B2=1;
           CK=0;
           //Delay(1);
           CK=1;
		   //Delay(5);
		  }
  // ST=0;	      
 }
//*****************************//
void dis6_GB(unsigned char n)
{ unsigned char bitcnt;
   ST=1;                 //ST=1串行数据会传入至输出栓锁器
                         //ST=0串行资料会被栓锁住  
   R1=R2=0;
   for(bitcnt=0;bitcnt<n;bitcnt++)
          {G1=G2=B1=B2=1;
           CK=0;
           //Delay(1);
           CK=1;
		   //Delay(5);
		  }
   //ST=0;	      
 }
//****************************//
void dis7_RGB(unsigned char n)
{ unsigned char bitcnt;
   ST=1;                 //ST=1串行数据会传入至输出栓锁器
                         //ST=0串行资料会被栓锁住  
   for(bitcnt=0;bitcnt<n;bitcnt++)
          {R1=R2=G1=G2=B1=B2=1;
           CK=0;
           //Delay(1);
           CK=1;
		   //Delay(5);
		  }
   //ST=0;	      
 }                                              
                                           

⌨️ 快捷键说明

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