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

📄 02.c

📁 Lap Proteus use simuretion
💻 C
字号:
#include<reg51.h>	        
sbit c1 = P2^3;           
sbit c2 = P2^2;	
sbit c3 = P2^1;		
sbit r1 = P2^4;		
sbit r2 = P2^5;	
sbit r3 = P2^6;		
sbit r4 = P2^7;
int i;
int a;
unsigned int w,x,y,z,o,p,q,r;
void  show ( int a);
void  show1 ( int a);
void Shift (void);
void Shift1 (void);
unsigned char Patturn [10] = {0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90};
unsigned char Buffer1[4],Buffer3[4];
unsigned char Buffer2[4],Buffer4[4];	
void delay_db(int time)
{
	do		
	{
	 time--;                
	}while(time>0);     
}

unsigned char scankey(void) 
{
  	unsigned char ret = 0xFF;		
	c1 = 0;                   	 	
	if(r1==0)	
  	{ 
      		delay_db(30000);        	          
		ret = 0x01;           	
	}                    
	if(r2==0)			
	{
		delay_db(30000);
		ret = 0x04;		
	}					
	if(r3==0)			
	{							
		delay_db(30000); 
		ret = 0x07;		
	} 
		if(r4==0)			
	{							
		delay_db(30000); 
		ret = 0x11;  //*+++++		
	} 	 
	
	 c1 = 1;

 //------------------------------------------------//
   	                    
	c2 = 0;				
	if(r1==0)			
	{
		delay_db(30000);   								
		ret = 0x02;		
	}							
	if(r2==0)			
	{
		delay_db(30000);  
		ret = 0x05;		
	}							
	if(r3==0)			
	{
		delay_db(30000);  	
		ret = 0x08;             
	}							
	if(r4==0)		
	{
		delay_db(30000);  		  	
  		ret = 0x00;	
	}
	c2 = 1;
			
//----------------------------------------//						
	c3 = 0;				
	if(r1==0)			
	{
		delay_db(30000);   	
		ret = 0x03;          		
	}							
	if(r2==0)			
	{
		delay_db(30000);   	
		ret = 0x06;	
	}					
	if(r3==0)			
	{
		delay_db(30000);   	
		ret = 0x09;		
	}
	if(r4==0)			
	{
		delay_db(30000);   	
		ret = 0x12;	 //#======	
	}	 
									
	c3 = 1;			
  	return(ret);			
}

/*************************** Main loop **************************/

 void main(void)     
{  
	
	unsigned char key = 0;	
	P0 = 0xff;
	P2 = 0xff;
	     		
	while(1) 
	{
  	 
			key = scankey();
			
	
					
		 	if( key != 0xFF)
		{	 
			  
				i++;
		    
			if(i<=4)
			Buffer1[i]=key;

			if (i>4) 
			{	
			i=4;
			Shift ();	 
			Buffer1[4]=key;	 	
			}  

		}   
		show (i);

				
		 
	

		  
 	}
 }

 
/***********************************************************************************************************************/
void Shift (void)
{
  	

		 Buffer2[1]= Buffer1[1];
		 Buffer2[2]= Buffer1[2];	 
		 Buffer2[3]= Buffer1[3];
		 Buffer2[4]= Buffer1[4];   
	   //--------------------

		 Buffer1[3]= Buffer2[4];
		 Buffer1[2]= Buffer2[3]; 	  
		 Buffer1[1]= Buffer2[2];  		   

}  	 


void  show(i)
{		
		 
		 switch (i)
	   {
	    case 1:
		P0 = Patturn[Buffer1 [1]]|0x0e;
		delay_db(25); 	
		break;



		case 2:
		P0 = Patturn[Buffer1 [2]]|0x0e;
		delay_db(25); 		
		P0 = Patturn[Buffer1 [1]]|0x0d;	
		delay_db(25); 	
		break;


		case 3:
		P0 = Patturn[Buffer1 [3]]|0x0E;
		delay_db(25); 		
		P0 = Patturn[Buffer1 [2]]|0x0d;
		delay_db(25); 	
		P0 = Patturn[Buffer1 [1]]|0x0b;
		delay_db(25); 		
		break;
		
		
		
		case 4:
		P0 = Patturn[Buffer1 [4]]|0x0E;
		delay_db(25); 		
		P0 = Patturn[Buffer1 [3]]|0x0d;
		delay_db(25);	
		P0 = Patturn[Buffer1 [2]]|0x0b;
		delay_db(25); 		
		P0 = Patturn[Buffer1 [1]]|0x07;
		delay_db(25);
		break;
		
		 			
		} 	

}  



⌨️ 快捷键说明

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