蓝桥杯单片机入门,赛题模板

//LED初始化程序分析
/*
#include <stc15.h>
#include <intrins.h>

unsigned char LED=0XFE;
unsigned int DT=500;

void IO_Init(void);
void Delay_MS(unsigned int MS);

void main(void)
{
	P2=0XA0;P0=0X00;
	P27=1;P26=0;P25=0;
	P0=0XFF;
	while(1)
	{
		P0=LED;
		Delay_MS(DT);
		LED=_crol_(LED,1);
	}
}
void Delay_MS(unsigned int MS)
{
	unsigned int i,j;
	for(i=0;i<MS;i++)
	for(j=845;j>0;j--);
}
*/
//蜂鸣器继电器例程
/*#include <stc15.h>
#include <intrins.h>

unsigned char LED=0XFE;
unsigned int DT=500;

void IO_Init(void);
void Delay_MS(unsigned int MS);

void main(void)
{
	P27=1;P26=0;P25=1;
	P0=0X00;
	P27=1;P26=0;P25=0;
	P0=0XFF;
	P27=1;P26=0;P25=1;
	while(1)
	{
		P0=0X10;Delay_MS(DT);
		P0=0X00;Delay_MS(DT);
		P0=0X40;Delay_MS(DT);
		P0=0X00;Delay_MS(DT);
	}
}
void Delay_MS(unsigned int MS)
{
	unsigned int i,j;
	for(i=0;i<MS;i++)
	for(j=845;j>0;j--);
}
*/
//数码管例程
/*
#include <stc15.h>
unsigned char tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};


unsigned int DT=500;
unsigned char SEG1,SEG2,SEG3,SEG4,SEG5,SEG6,SEG7,SEG8;
unsigned char Num=255;
unsigned char Num_Refresh=0;
unsigned char S7_Flag=0,S6_Flag=0,S5_Flag=0,S4_Flag=0;
unsigned char SEG_Run=0;

void Delay_MS(unsigned int MS);
void SEG_Display12(unsigned char yi,unsigned char er); 
void SEG_Display34(unsigned char san,unsigned char si); 
void SEG_Display56(unsigned char wu,unsigned char liu); 
void SEG_Display78(unsigned char qi,unsigned char ba); 
void KeyScan(void);
void All_Init(void);

void main(void)
{
	SEG1=10,SEG2=10,SEG3=10,SEG4=10,SEG5=10;
	SEG6=10;SEG7=10;SEG8=10;
	
	while(1)
	{
		KeyScan();
		 if(S7_Flag==1){S7_Flag=0;SEG1=1,SEG2=2,SEG3=5,SEG4=4,SEG5=3;SEG6=6;SEG7=7;SEG8=8;}
		 if(S6_Flag==1){S6_Flag=0;SEG1=9,SEG2=8,SEG3=7,SEG4=6,SEG5=5;SEG6=4;SEG7=3;SEG8=2;}
		 if(S5_Flag==1)
		 {
			 S5_Flag=0;
			 P2=0X80;
			 P0=0XFE;
		 }
		 if(S4_Flag==1)
		 {
			 S4_Flag=0;
			 if(SEG_Run==0)SEG_Run=1;
			 else if(SEG_Run==1)SEG_Run=0;
		 }
		 if(SEG_Run==1)
		 {
			 if(++Num_Refresh==125)
			 {
			 Num_Refresh=0;
			 Num=Num-1;
			 SEG1=11,SEG2=11,SEG3=11,SEG4=11,SEG5=11;
			 SEG6=Num/100;SEG7=Num%100/10;SEG8=Num%10;
			 if(Num==250)
			 {
				 P2=0X80;
				 P0=0X7F;
			 }
		 }
	 }
	 SEG_Display12(SEG1,SEG2);
	 SEG_Display34(SEG3,SEG4);
	 SEG_Display56(SEG5,SEG6);
	 SEG_Display78(SEG7,SEG8);
	}
}
void KeyScan(void)
 {
	 if(P30==0)
	 {
		 Delay_MS(10);
		 if(P30==0)S7_Flag=1;
		 while(!P30);
	 }
	 else if(P31==0)
		 
	 {
		 Delay_MS(10);
		 if(P31==0)S6_Flag=1;
		 while(!P31);
	 }
	 else if(P32==0)
		 
	 {
		 Delay_MS(10);
		 if(P32==0)S5_Flag=1;
		 while(!P32);
	 }
		else if(P33==0)
		 
	 {
		 Delay_MS(10);
		 if(P33==0)S4_Flag=1;
		 while(!P33);
	 }
 }
void SEG_Display12(unsigned char yi,unsigned char er) 
 {
		P2=0XC0;P0=0X01;
		P2=0XFF;P0=tab[yi];
		Delay_MS(1);
		P0=0XFF;
		P2=0XC0;P0=0X02;
		P2=0XFF;P0=tab[er];
		Delay_MS(1);
		P0=0XFF;
 }
 void SEG_Display34(unsigned char san,unsigned char si)
 {
		P2=0XC0;P0=0X04;
		P2=0XFF;P0=tab[san]; 
		Delay_MS(1);
		P0=0XFF; 
		P2=0XC0;P0=0X08; 
		P2=0XFF;P0=tab[si]; 
		Delay_MS(1); 
		P0=0XFF;
 }
 void SEG_Display56(unsigned char wu,unsigned char liu)
 {
	 P2=0XC0;P0=0X10;
	 P2=0XFF;P0=tab[wu]; 
	 Delay_MS(1); 
	 P0=0XFF; 
	 P2=0XC0;P0=0X20; 
	 P2=0XFF;P0=tab[liu]; 
	 Delay_MS(1); 
	 P0=0XFF; 
 }
 void SEG_Display78(unsigned char qi,unsigned char ba)
 {
	 P2=0XC0;P0=0X40; 
	 P2=0XFF;P0=tab[qi]; 
	 Delay_MS(1); 
	 P0=0XFF; 
	 P2=0XC0;P0=0X80; 
	 P2=0XFF;P0=tab[ba]; 
	 Delay_MS(1);
	 P0=0XFF; 
 }
 void Delay_MS(unsigned int MS)
 {
	 unsigned int i,j;
	 for(i=0;i<MS;i++)
	 for(j=845;j>0;j--);
 }
*/
//上电初始化程序
/*
#include <stc15.h>
unsigned char tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};


unsigned int DT=500;
unsigned char SEG1,SEG2,SEG3,SEG4,SEG5,SEG6,SEG7,SEG8;
unsigned char Num=255;
unsigned char Num_Refresh=0;
unsigned char S7_Flag=0,S6_Flag=0,S5_Flag=0,S4_Flag=0;
unsigned char SEG_Run=0;

void Delay_MS(unsigned int MS);
void SEG_Display12(unsigned char yi,unsigned char er); 
void SEG_Display34(unsigned char san,unsigned char si); 
void SEG_Display56(unsigned char wu,unsigned char liu); 
void SEG_Display78(unsigned char qi,unsigned char ba); 
void KeyScan(void);
void ALL_Init(void);

void main(void)
{
	ALL_Init();
	
	SEG1=10,SEG2=10,SEG3=10,SEG4=10,SEG5=10;
	SEG6=10;SEG7=10;SEG8=10;
	
	while(1)
	{
		KeyScan();
		 if(S7_Flag==1){S7_Flag=0;SEG1=1,SEG2=2,SEG3=5,SEG4=4,SEG5=3;SEG6=6;SEG7=7;SEG8=8;}
		 if(S6_Flag==1){S6_Flag=0;SEG1=9,SEG2=8,SEG3=7,SEG4=6,SEG5=5;SEG6=4;SEG7=3;SEG8=2;}
		 if(S5_Flag==1)
		 {
			 S5_Flag=0;
			 P2=0X80;
			 P0=0XFE;
		 }
		 if(S4_Flag==1)
		 {
			 S4_Flag=0;
			 if(SEG_Run==0)SEG_Run=1;
			 else if(SEG_Run==1)SEG_Run=0;
		 }
		 if(SEG_Run==1)
		 {
			 if(++Num_Refresh==125)
			 {
			 Num_Refresh=0;
			 Num=Num-1;
			 SEG1=11,SEG2=11,SEG3=11,SEG4=11,SEG5=11;
			 SEG6=Num/100;SEG7=Num%100/10;SEG8=Num%10;
			 if(Num==250)
			 {
				 P2=0X80;
				 P0=0X7F;
			 }
		 }
	 }
	 SEG_Display12(SEG1,SEG2);
	 SEG_Display34(SEG3,SEG4);
	 SEG_Display56(SEG5,SEG6);
	 SEG_Display78(SEG7,SEG8);
	}
}
void KeyScan(void)
 {
	 if(P30==0)
	 {
		 Delay_MS(10);
		 if(P30==0)S7_Flag=1;
		 while(!P30);
	 }
	 else if(P31==0)
		 
	 {
		 Delay_MS(10);
		 if(P31==0)S6_Flag=1;
		 while(!P31);
	 }
	 else if(P32==0)
		 
	 {
		 Delay_MS(10);
		 if(P32==0)S5_Flag=1;
		 while(!P32);
	 }
		else if(P33==0)
		 
	 {
		 Delay_MS(10);
		 if(P33==0)S4_Flag=1;
		 while(!P33);
	 }
 }
void SEG_Display12(unsigned char yi,unsigned char er) 
 {
	   P27=1;P26=1;P25=0;
		 P0=0X01;
		 P27=1;P26=1;P25=1;
		 P0=tab[yi];
		 Delay_MS(1);
		 P0=0XFF;
		 P27=1;P26=1;P25=0;
		 P0=0X02;
		 P27=1;P26=1;P25=1;
		 P0=tab[er];
		 Delay_MS(1);
		 P0=0XFF;
 }
 void SEG_Display34(unsigned char san,unsigned char si)
 {
		P2=0XC0;P0=0X04;
		P2=0XFF;P0=tab[san]; 
		Delay_MS(1);
		P0=0XFF; 
		P2=0XC0;P0=0X08; 
		P2=0XFF;P0=tab[si]; 
		Delay_MS(1); 
		P0=0XFF;
 }
 void SEG_Display56(unsigned char wu,unsigned char liu)
 {
	 P2=0XC0;P0=0X10;
	 P2=0XFF;P0=tab[wu]; 
	 Delay_MS(1); 
	 P0=0XFF; 
	 P2=0XC0;P0=0X20; 
	 P2=0XFF;P0=tab[liu]; 
	 Delay_MS(1); 
	 P0=0XFF; 
 }
 void SEG_Display78(unsigned char qi,unsigned char ba)
 {
	 P2=0XC0;P0=0X40; 
	 P2=0XFF;P0=tab[qi]; 
	 Delay_MS(1); 
	 P0=0XFF; 
	 P2=0XC0;P0=0X80; 
	 P2=0XFF;P0=tab[ba]; 
	 Delay_MS(1);
	 P0=0XFF; 
 }
 
 void ALL_Init(void)
 {
	 P2=0XA0;
	 P0=0X00;
	 
	 P2=0X80;
	 P0=0XFF;
	 
	 P2=0XC0;
	 P0=0XFF;
	 
	 P2=0XE0;
	 P0=0XFF;
 }
 void Delay_MS(unsigned int MS)
 {
	 unsigned int i,j;
	 for(i=0;i<MS;i++)
	 for(j=845;j>0;j--);
 }
*/


/*//综合应用模板 
#include <stc15.h>
#include <intrins.h>

unsigned char LED_Bit=0XFF;
unsigned char Actuator_Bit=0X00;

#define LEDx_ON(n) {LED_Bit&=_crol_(0XFE,n-1); P0=LED_Bit; P2|=0X80; P2&=0X9F; P2&=0X1F;}
#define LEDx_OFF(n) {LED_Bit|=_crol_(0X01,n-1); P0=LED_Bit; P2|=0X80; P2&=0X9F; P2&=0X1F;}
#define Buzzer_ON P2|=0XA0;P2&=0XBF; Actuator_Bit|=0x40; P0=Actuator_Bit;
#define Buzzer_OFF P2|=0XA0;P2&=0XBF; Actuator_Bit&=0XBF; P0=Actuator_Bit;

#define Relay_ON P2|=0XA0;P2&=0XBF; Actuator_Bit|=0x10; P0=Actuator_Bit;
#define Relay_OFF P2|=0XA0;P2&=0XBF; Actuator_Bit&=0XEF; P0=Actuator_Bit; 

unsigned char code tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};
unsigned int DT=500;
unsigned char SEG1,SEG2,SEG3,SEG4,SEG5,SEG6,SEG7,SEG8;
unsigned char Num=255;
unsigned char Num_Refresh = 0; 
unsigned char KEY_Value=0; 
unsigned char SEG_Run = 0; 

void Delay_MS(unsigned int MS);
void SEG_Display12(unsigned char yi,unsigned char er);
void SEG_Display34(unsigned char san,unsigned char si); 
void SEG_Display56(unsigned char wu,unsigned char liu); 
void SEG_Display78(unsigned char qi,unsigned char ba); 
void KeyScan(void);
void KeyScan16(void);
void ALL_Init(void);

void main(void)
{
	ALL_Init();
	SEG1=10,SEG2=10,SEG3=10,SEG4=10,SEG5=10;SEG6=10;SEG7=10;SEG8=10;
	while(1)
	{
		KeyScan();
		if(KEY_Value==7){KEY_Value=0;SEG1=1,SEG2=2,SEG3=5,SEG4=4,SEG5=3;SEG6=6;SEG7=7;SEG8=8;} 
		if(KEY_Value==6){KEY_Value=0;SEG1=9,SEG2=8,SEG3=7,SEG4=6,SEG5=5;SEG6=4;SEG7=3;SEG8=2;} 
		if(KEY_Value==5){KEY_Value=0;LEDx_ON(2);LEDx_ON(5);Buzzer_ON;}
		if(KEY_Value==4){KEY_Value=0;LEDx_OFF(2);Buzzer_OFF;} 

		SEG_Display12(SEG1,SEG2); 
		SEG_Display34(SEG3,SEG4);
		SEG_Display56(SEG5,SEG6);
		SEG_Display78(SEG7,SEG8);
	}
}
void KeyScan(void)
 {
	 if(P30==0)
	 {
		 Delay_MS(10);
		 if(P30==0)KEY_Value=7;
		 while(!P30);
	 }
	 else if(P31==0)
		 
	 {
		 Delay_MS(10);
		 if(P31==0)KEY_Value=6;
		 while(!P31);
	 }
	 else if(P32==0)
		 
	 {
		 Delay_MS(10);
		 if(P32==0)KEY_Value=5;;
		 while(!P32);
	 }
		else if(P33==0)
		 
	 {
		 Delay_MS(10);
		 if(P33==0)KEY_Value=4;;
		 while(!P33);
	 }
 }
 
 void KeyScan16(void)
 {
	 unsigned char temp;
	 P44=0;P42=1;P3=0X7F;
	 temp=P3;
	 temp=temp&0X0F;
	 if(temp!=0X0F)
	 {
		 Delay_MS(5);
		 temp=P3;
		 temp=temp&0X0F;
		 if(temp!=0X0F)
		 {
			 temp=P3;
			 switch(temp)
			 {
				 case 0X7E:KEY_Value=7;break;
				 case 0X7D:KEY_Value=6;break;
				 case 0X7B:KEY_Value=5;break;
				 case 0X77:KEY_Value=4;break;
				 
				 default : break;
			 }
			 while(temp!=0X0F)
			 {
				 temp=P3;
				 temp=temp&0X0F;
			 }
		 }
	 }
	 P44=1;P42=0;P3=0XBF;
	 temp=P3;
	 temp=temp&0X0F;
	 if(temp!=0X0F)
	 {
		 Delay_MS(5);
		 temp=P3;
		 temp=temp&0X0F;
		 if(temp!=0X0F)
		 {
			 temp=P3;
		 switch(temp)
		 {
			   case 0XBE:KEY_Value=11;break;
			   case 0XBD:KEY_Value=10;break;
				 case 0XBB:KEY_Value=9;break;
				 case 0XB7:KEY_Value=8;break;
				 
				 default : break;
		 }
		 while(temp!=0X0F)
		 {
			 temp=P3;
			 temp=temp&0X0F;
		 }
	 }
 }
   P44=1;P42=1;P3=0XDF;
	 temp=P3;
	 temp=temp&0X0F;
	 if(temp!=0X0F)
	 {
		 Delay_MS(5);
		 temp=P3;
		 temp=temp&0X0F;
		 if(temp!=0X0F)
		 {
			 temp=P3;
		   switch(temp)
		 {
			   case 0XDE:KEY_Value=15;break;
			   case 0XDD:KEY_Value=14;break;
				 case 0XDB:KEY_Value=13;break;
				 case 0XD7:KEY_Value=12;break;
				 
				 default : break;
		 }
		 while(temp!=0X0F)
		 {
			 temp=P3;
			 temp=temp&0X0F;
		 }
	 }
 }
	P44=1;P42=1;P3=0XEF;
	 temp=P3;
	 temp=temp&0X0F;
	 if(temp!=0X0F)
	 {
		 Delay_MS(5);
		 temp=P3;
		 temp=temp&0X0F;
		 if(temp!=0X0F)
		 {
			 temp=P3;
		   switch(temp)
		 {
			   case 0XEE:KEY_Value=19;break;
			   case 0XED:KEY_Value=18;break;
				 case 0XEB:KEY_Value=17;break;
				 case 0XE7:KEY_Value=16;break;
				 
				 default : break;
		 }
		 while(temp!=0X0F)
		 {
			 temp=P3;
			 temp=temp&0X0F;
		 }
	 }
 } 
}	 
void SEG_Display12(unsigned char yi,unsigned char er) 
	{
		P2|=0XC0;
		P2&=0XDF;
		P0=0X01;
		P2|=0XE0;
		P2&=0XFF;
		P0=tab[yi];
		Delay_MS(1);
		P2|=0XC0;
		P2&=0XDF;
		P0=0X02;
		P2|=0XE0;
		P2&=0XFF;
		P0=tab[er];
		Delay_MS(1);
		P0=0XFF;
	}
void SEG_Display34(unsigned char san,unsigned char si) 
{
	P2=0XC0;
	P0=0X04;P2=0XFF;
	P0=tab[san];
	Delay_MS(1);
	P0=0XFF;
	P2=0XC0;P0=0X08;
	P2=0XFF;P0=tab[si];
	Delay_MS(1);
	P0=0XFF;
}
void SEG_Display56(unsigned char wu,unsigned char liu) 
{
	P2=0XC0;
	P0=0X10;P2=0XFF;
	P0=tab[wu];
	Delay_MS(1);
	P0=0XFF;
	P2=0XC0;P0=0X20;
	P2=0XFF;P0=tab[liu];
	Delay_MS(1);
	P0=0XFF;
}
void SEG_Display78(unsigned char qi,unsigned char ba) 
{
	P2=0XC0;P0=0X40;
	P2=0XFF;P0=tab[qi];
	Delay_MS(1);
	P0=0XFF;
	P2=0XC0;P0=0X80;
	P2=0XFF;P0=tab[ba];
	Delay_MS(1);
	P0=0XFF;
}

void ALL_Init(void)
{
	P2=0XA0;P0=0X00;
	P2=0X80;P0=0XFF;
	P2=0XC0;P0=0XFF;
	P2=0XE0;P0=0XFF;
}
void Delay_MS(unsigned int MS)
 {
	 unsigned int i,j;
	 for(i=0;i<MS;i++)
	 for(j=845;j>0;j--);
 }
*/	 
			
//综合应用模板 
#include <stc15.h>
#include <intrins.h>

unsigned char LED_Bit=0XFF;
unsigned char Actuator_Bit=0X00;

#define LEDx_ON(n) {LED_Bit&=_crol_(0XFE,n-1); P0=LED_Bit; P2|=0X80; P2&=0X9F; P2&=0X1F;}
#define LEDx_OFF(n) {LED_Bit|=_crol_(0X01,n-1); P0=LED_Bit; P2|=0X80; P2&=0X9F; P2&=0X1F;}
#define Buzzer_ON P2|=0XA0;P2&=0XBF; Actuator_Bit|=0x40; P0=Actuator_Bit;
#define Buzzer_OFF P2|=0XA0;P2&=0XBF; Actuator_Bit&=0XBF; P0=Actuator_Bit;

#define Relay_ON P2|=0XA0;P2&=0XBF; Actuator_Bit|=0x10; P0=Actuator_Bit;
#define Relay_OFF P2|=0XA0;P2&=0XBF; Actuator_Bit&=0XEF; P0=Actuator_Bit; 

unsigned char code tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};
unsigned int DT=500;
unsigned char SEG1,SEG2,SEG3,SEG4,SEG5,SEG6,SEG7,SEG8;
unsigned char Num=255;
unsigned char Num_Refresh = 0; 
unsigned char KEY_Value=0; 
unsigned char SEG_Run = 0; 

void Delay_MS(unsigned int MS);
void SEG_Display12(unsigned char yi,unsigned char er);
void SEG_Display34(unsigned char san,unsigned char si); 
void SEG_Display56(unsigned char wu,unsigned char liu); 
void SEG_Display78(unsigned char qi,unsigned char ba); 
void KeyScan(void);
void KeyScan16(void);
void ALL_Init(void);

void main(void)
{
	ALL_Init();
	SEG1=10,SEG2=10,SEG3=10,SEG4=10,SEG5=10;SEG6=10;SEG7=10;SEG8=10;
	while(1)
	{
		KeyScan();
		if(KEY_Value==7){KEY_Value=0;SEG1=1,SEG2=2,SEG3=5,SEG4=4,SEG5=3;SEG6=6;SEG7=7;SEG8=8;} 
		if(KEY_Value==6){KEY_Value=0;SEG1=9,SEG2=8,SEG3=7,SEG4=6,SEG5=5;SEG6=4;SEG7=3;SEG8=2;} 
		if(KEY_Value==5){KEY_Value=0;LEDx_ON(2);LEDx_ON(5);Buzzer_ON;}
		if(KEY_Value==4){KEY_Value=0;LEDx_OFF(2);Buzzer_OFF;} 

		SEG_Display12(SEG1,SEG2); 
		SEG_Display34(SEG3,SEG4);
		SEG_Display56(SEG5,SEG6);
		SEG_Display78(SEG7,SEG8);
	}
}
void KeyScan(void)
 {
	 if(P30==0)
	 {
		 Delay_MS(10);
		 if(P30==0)KEY_Value=7;
		 while(!P30);
	 }
	 else if(P31==0)
		 
	 {
		 Delay_MS(10);
		 if(P31==0)KEY_Value=6;
		 while(!P31);
	 }
	 else if(P32==0)
		 
	 {
		 Delay_MS(10);
		 if(P32==0)KEY_Value=5;;
		 while(!P32);
	 }
		else if(P33==0)
		 
	 {
		 Delay_MS(10);
		 if(P33==0)KEY_Value=4;;
		 while(!P33);
	 }
 }
 
 void KeyScan16(void)
 {
	 unsigned char temp;
	 P44=0;P42=1;P3=0X7F;
	 temp=P3;
	 temp=temp&0X0F;
	 if(temp!=0X0F)
	 {
		 Delay_MS(5);
		 temp=P3;
		 temp=temp&0X0F;
		 if(temp!=0X0F)
		 {
			 temp=P3;
			 switch(temp)
			 {
				 case 0X7E:KEY_Value=7;break;
				 case 0X7D:KEY_Value=6;break;
				 case 0X7B:KEY_Value=5;break;
				 case 0X77:KEY_Value=4;break;
				 
				 default : break;
			 }
			 while(temp!=0X0F)
			 {
				 temp=P3;
				 temp=temp&0X0F;
			 }
		 }
	 }
	 P44=1;P42=0;P3=0XBF;
	 temp=P3;
	 temp=temp&0X0F;
	 if(temp!=0X0F)
	 {
		 Delay_MS(5);
		 temp=P3;
		 temp=temp&0X0F;
		 if(temp!=0X0F)
		 {
			 temp=P3;
		 switch(temp)
		 {
			   case 0XBE:KEY_Value=11;break;
			   case 0XBD:KEY_Value=10;break;
				 case 0XBB:KEY_Value=9;break;
				 case 0XB7:KEY_Value=8;break;
				 
				 default : break;
		 }
		 while(temp!=0X0F)
		 {
			 temp=P3;
			 temp=temp&0X0F;
		 }
	 }
 }
   P44=1;P42=1;P3=0XDF;
	 temp=P3;
	 temp=temp&0X0F;
	 if(temp!=0X0F)
	 {
		 Delay_MS(5);
		 temp=P3;
		 temp=temp&0X0F;
		 if(temp!=0X0F)
		 {
			 temp=P3;
		   switch(temp)
		 {
			   case 0XDE:KEY_Value=15;break;
			   case 0XDD:KEY_Value=14;break;
				 case 0XDB:KEY_Value=13;break;
				 case 0XD7:KEY_Value=12;break;
				 
				 default : break;
		 }
		 while(temp!=0X0F)
		 {
			 temp=P3;
			 temp=temp&0X0F;
		 }
	 }
 }
	P44=1;P42=1;P3=0XEF;
	 temp=P3;
	 temp=temp&0X0F;
	 if(temp!=0X0F)
	 {
		 Delay_MS(5);
		 temp=P3;
		 temp=temp&0X0F;
		 if(temp!=0X0F)
		 {
			 temp=P3;
		   switch(temp)
		 {
			   case 0XEE:KEY_Value=19;break;
			   case 0XED:KEY_Value=18;break;
				 case 0XEB:KEY_Value=17;break;
				 case 0XE7:KEY_Value=16;break;
				 
				 default : break;
		 }
		 while(temp!=0X0F)
		 {
			 temp=P3;
			 temp=temp&0X0F;
		 }
	 }
 } 
}	 
void SEG_Display12(unsigned char yi,unsigned char er) 
	{
		P2|=0XC0;
		P2&=0XDF;
		P0=0X01;
		P2|=0XE0;
		P2&=0XFF;
		P0=tab[yi];
		Delay_MS(1);
		P2|=0XC0;
		P2&=0XDF;
		P0=0X02;
		P2|=0XE0;
		P2&=0XFF;
		P0=tab[er];
		Delay_MS(1);
		P0=0XFF;
	}
void SEG_Display34(unsigned char san,unsigned char si) 
{
	P2=0XC0;
	P0=0X04;P2=0XFF;
	P0=tab[san];
	Delay_MS(1);
	P0=0XFF;
	P2=0XC0;P0=0X08;
	P2=0XFF;P0=tab[si];
	Delay_MS(1);
	P0=0XFF;
}
void SEG_Display56(unsigned char wu,unsigned char liu) 
{
	P2=0XC0;
	P0=0X10;P2=0XFF;
	P0=tab[wu];
	Delay_MS(1);
	P0=0XFF;
	P2=0XC0;P0=0X20;
	P2=0XFF;P0=tab[liu];
	Delay_MS(1);
	P0=0XFF;
}
void SEG_Display78(unsigned char qi,unsigned char ba) 
{
	P2=0XC0;P0=0X40;
	P2=0XFF;P0=tab[qi];
	Delay_MS(1);
	P0=0XFF;
	P2=0XC0;P0=0X80;
	P2=0XFF;P0=tab[ba];
	Delay_MS(1);
	P0=0XFF;
}

void ALL_Init(void)
{
	P2=0XA0;P0=0X00;
	P2=0X80;P0=0XFF;
	P2=0XC0;P0=0XFF;
	P2=0XE0;P0=0XFF;
}
void Delay_MS(unsigned int MS)
 {
	 unsigned int i,j;
	 for(i=0;i<MS;i++)
	 for(j=845;j>0;j--);
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花开富贵xxxx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值