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

📄 456.c

📁 The file is used to show the number on the led
💻 C
字号:
#include<reg51.h>
#define unint unsigned int 
#define unchar unsigned char
sbit G1=P0^5;
sbit G2=P0^4;
sbit stcp=P3^2;
sbit shcp=P3^1;
sbit DS=P3^0;

sbit p20=P2^0;
sbit p21=P2^1;
sbit p27=P2^7;                              //键盘扫描
sbit p26=P2^6;
sbit p25=P2^5;
sbit p24=P2^4;

unchar nub; 

unchar  code  stry1[12][16]=
{ /*3(0) 8(1) 4(2) 6(3) 3(4) 9(5)*/
/* 1(0) 8(1) 3(2) 7(3)*/

{0xFF,0xFF,0xFF,0xEF,0x8F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0x83,0xFF,0xFF},/*"1",0*/

{0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xDB,0xE7,0xDB,0xBD,0xBD,0xBD,0xC3,0xFF,0xFF},/*"8",1*/

{0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xFB,0xE7,0xFB,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF},/*"3",2*/

{0xFF,0xFF,0xFF,0x81,0xBB,0xBB,0xF7,0xF7,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xFF,0xFF},/*"7",3*/

{0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xFB,0xE7,0xFB,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF},/*"3",0*/

{0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xDB,0xE7,0xDB,0xBD,0xBD,0xBD,0xC3,0xFF,0xFF},/*"8",1*/

{0xFF,0xFF,0xFF,0xFB,0xF3,0xEB,0xDB,0xDB,0xBB,0xBB,0x81,0xFB,0xFB,0xE1,0xFF,0xFF},/*"4",2*/

{0xFF,0xFF,0xFF,0xE3,0xDB,0xBF,0xBF,0xA7,0x9B,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,0xFF},/*"6",3*/

{0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xFB,0xE7,0xFB,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF},/*"3",4*/

{0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xD9,0xE5,0xFD,0xFD,0xDB,0xC7,0xFF,0xFF},/*"9",5*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},//   c0 //

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},//   c0 //
};
unchar code stry2[14][16]=
{ 
/*w(0) e(1)  (2) a(3) r(4) e(5)  (6) r(7)
 e(8) a(9) d(10) y(11)*/
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x28,0x6D,0x6D,0x55,0x55,0xBB,0xBB,0xFF,0xFF},/*"w0*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0xBD,0x81,0xBF,0xBF,0xBD,0xC3,0xFF,0xFF},/*"e1*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" 2*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0xBD,0xE1,0xDD,0xBD,0xBD,0xC0,0xFF,0xFF},/*"a3*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x11,0xCD,0xDF,0xDF,0xDF,0xDF,0x07,0xFF,0xFF},/*"r4*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0xBD,0x81,0xBF,0xBF,0xBD,0xC3,0xFF,0xFF},/*"e5*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" 6*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x11,0xCD,0xDF,0xDF,0xDF,0xDF,0x07,0xFF,0xFF},/*"r7*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0xBD,0x81,0xBF,0xBF,0xBD,0xC3,0xFF,0xFF},/*"e8*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0xBD,0xE1,0xDD,0xBD,0xBD,0xC0,0xFF,0xFF},/*"a9*/

{0xFF,0xFF,0xFF,0xF9,0xFD,0xFD,0xFD,0xE1,0xDD,0xBD,0xBD,0xBD,0xD9,0xE4,0xFF,0xFF},/*"d10*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x18,0xBD,0xDB,0xDB,0xD7,0xE7,0xEF,0xEF,0x1F},/*"y11*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},//c0*//

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},//   c0 //

};
unchar code  stry3[10][16]=
{/* 5(0) 6(1) 3(2) 4(3) 2(4) 8(5) 4(6) 9(7)*/


{0xFF,0xFF,0xFF,0x81,0xBF,0xBF,0xBF,0xA7,0x9B,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF},/*"5",0*/

{0xFF,0xFF,0xFF,0xE3,0xDB,0xBF,0xBF,0xA7,0x9B,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,0xFF},/*"6",1*/

{0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xFB,0xE7,0xFB,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF},/*"3",2*/

{0xFF,0xFF,0xFF,0xFB,0xF3,0xEB,0xDB,0xDB,0xBB,0xBB,0x81,0xFB,0xFB,0xE1,0xFF,0xFF},/*"4",3*/

{0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xFB,0xFB,0xF7,0xEF,0xDF,0xBD,0x81,0xFF,0xFF},/*"2",4*/

{0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xDB,0xE7,0xDB,0xBD,0xBD,0xBD,0xC3,0xFF,0xFF},/*"8",5*/

{0xFF,0xFF,0xFF,0xFB,0xF3,0xEB,0xDB,0xDB,0xBB,0xBB,0x81,0xFB,0xFB,0xE1,0xFF,0xFF},/*"4",6*/

{0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xD9,0xE5,0xFD,0xFD,0xDB,0xC7,0xFF,0xFF},/*"9",7*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},//c0*//

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},//   c0 //

};

unchar code stry4[12][16]=
{ /*w(0) e(1)  (2) c(3) a(4) n(5)  (6) f(7)
 l(8) y(9)*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x28,0x6D,0x6D,0x55,0x55,0xBB,0xBB,0xFF,0xFF},/*"w",0*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0xBD,0x81,0xBF,0xBF,0xBD,0xC3,0xFF,0xFF},/*"e",1*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",2*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE3,0xDD,0xBF,0xBF,0xBF,0xDD,0xE3,0xFF,0xFF},/*"c",3*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0xBD,0xE1,0xDD,0xBD,0xBD,0xC0,0xFF,0xFF},/*"a",4*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x23,0x9D,0xBD,0xBD,0xBD,0xBD,0x18,0xFF,0xFF},/*"n",5*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",6*/

{0xFF,0xFF,0xFF,0xF0,0xEE,0xEF,0xEF,0x81,0xEF,0xEF,0xEF,0xEF,0xEF,0x83,0xFF,0xFF},/*"f",7*/

{0xFF,0xFF,0xFF,0x8F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0x83,0xFF,0xFF},/*"l",8*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x18,0xBD,0xDB,0xDB,0xD7,0xE7,0xEF,0xEF,0x1F},/*"y",9*/

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},//c0*//

{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},//   c0 //
};

void delay(void)
{

     unchar i,j;
	 for(i=20;i>0;i--)
	  for(j=248;j>0;j--)
	   ;
}
void write(unchar dat)	  //数据传输函数
{
	unchar l,kdat;
	kdat=dat;
    for(l=0;l<8;l++)
    {
		shcp=0;
        DS=(kdat&0x01);	//按位传数据
		kdat=kdat>>1;
	 	shcp=1;
	}
}

 
void keboard(void)
{  
 
   p21=0;                      //令p24为低电平
   if(p27==0)                //p27按下侧奴nub为5
   {
   delay();
	if(p27==0)
     nub=5;
   }
   if(p26==0)                    //p26按下侧奴nub为6
	 {
       delay();
	   if(p26==0)
     	 nub=6;
     }
   if(p25==0)                 //p25按下侧奴nub为7
	  {
	    delay();
		if(p25==0)
	      nub=7;
	  }
	if(p24==0)                  //p24按下侧奴nub为8
		{
		 delay();
		  if(p24==0)
	    	 nub=8;
		 }
}

unchar bin=8;	   //补偿位控制

void write1(unchar dat)	  //补偿传输函数   和write函数一样
{
	unchar l,kdat;
	kdat=dat;
    for(l=bin;l>0;l--)
    {
		shcp=0;
        DS=(kdat&0x01);
		kdat=kdat>>1;
	 	shcp=1;
	}
}


unchar i=0;		//列控制
unchar j=1;		//行控制
unchar k=0;		//时间控制

void initTimer(void)	   //定时器1,方式1 定时50us
{
	TMOD=0x1;
	TH0=0xfe;
	TL0=0xc;
}


void timer0(void) interrupt 1
{   	keboard();              //调用键盘扫描函数
 if(nub==5)
 {
	EA=0;		
	TH0=0xfe;
	TL0=0xc;

	stcp=0;
		keboard();              //调用键盘扫描函数
   
	write(stry1[j+1][i+1]);
	write(stry1[j+1][i+1]);
	write(stry1[j+0][i+1]);
	write(stry1[j+0][i+1]);
	
	write(stry1[j-1][i+1]);
		
	   

	write1(stry1[j-1][i+1]);	   
	
	P0=i;	
	
	stcp=1;

	i+=1; 
	if(i==16) {i=0; k+=1;}
	if(k==15) {k=0; bin-=1;}
	if(bin==0) {bin=8; j+=1;}
	if(j==11) j=1;

	EA=1;
	}
if(nub==6)
 {
	EA=0;		
	TH0=0xfe;
	TL0=0xc;

	stcp=0;
		keboard();              //调用键盘扫描函数
   
	write(stry2[j+1][i+1]);
	write(stry2[j][i+1]);
	write(stry2[j+0][i+1]);
	write(stry2[j+0][i]);
	
	write(stry2[j-1][i+1]);
		
	   

	write1(stry2[j-1][i+1]);	   
	
	P0=i;	
	
	stcp=1;

	i+=1; 
	if(i==16) {i=0; k+=1;}
	if(k==15) {k=0; bin-=1;}
	if(bin==0) {bin=8; j+=1;}
	if(j==13) j=1;

	EA=1;
	}
if(nub==7)
 {
	EA=0;		
	TH0=0xfe;
	TL0=0xc;

	stcp=0;
		keboard();              //调用键盘扫描函数
   
	write(stry3[j+1][i+1]);
	write(stry3[j+1][i+1]);
	write(stry3[j+0][i+1]);
	write(stry3[j+0][i+1]);
	
	write(stry3[j-1][i+1]);
		
	   

	write1(stry3[j-1][i+1]);	   
	
	P0=i;	
	
	stcp=1;

	i+=1; 
	if(i==16) {i=0; k+=1;}
	if(k==15) {k=0; bin-=1;}
	if(bin==0) {bin=8; j+=1;}
	if(j==9) j=1;

	EA=1;
	}
if(nub==8)
 {
	EA=0;		
	TH0=0xfe;
	TL0=0xc;

	stcp=0;
		keboard();              //调用键盘扫描函数
   
	write(stry4[j+1][i+1]);
	write(stry4[j+1][i+1]);
	write(stry4[j+0][i+1]);
	write(stry4[j+0][i+1]);
	
	write(stry4[j-1][i+1]);
		
	   

	write1(stry4[j-1][i+1]);	   
	
	P0=i;	
	
	stcp=1;

	i+=1; 
	if(i==16) {i=0; k+=1;}
	if(k==15) {k=0; bin-=1;}
	if(bin==0) {bin=8; j+=1;}
	if(j==11) j=1;

	EA=1;
	}

}

void main(void)
{
	G1=0;
	G2=0;
	initTimer();
	TR0=1;
	ET0=1;
	EA=1;

	while(1)
	{
		;
	}
}

⌨️ 快捷键说明

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