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

📄 main.txt

📁 51开发板调试程序
💻 TXT
字号:
#include<reg52.h>
//////////////////////////////////////////////////////////////////
                     /* ??? */

#define  UCHARCODE   unsigned char code
#define  UCHARDATA   unsigned char data
#define  UCHAR       unsigned char 
#define  UINTDATA    unsigned int  data
//////////////////////////////////////////////////////////////////
UCHARCODE  uccRemove[3]={0x03,0x05,0x06};
UCHARDATA  i;                      /* ???? */
UCHARDATA  j;                      /* ???? */
UCHARDATA  ucdKBScanResult;        /* ??????? */
UCHARDATA  ucdKBScan_Acc;          /* ????????? */
UCHARDATA  ucdReceiver;            /* P0???????? */
UCHARDATA  ucdIncrease;            /* ?? */ 
/////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
UCHARDATA   ucdINT1Acc;        /* ??1?????? */
UCHARDATA   ucdINT1Counter;    /* ??1????? */
//////////////////////////////////////////////////////////////////
/* ????? */
UCHARCODE  uccTab[20] = {
                         0x3f,0x06,0x5b,0x4f,   /* 0 1 2 3 */
                         0x66,0x6d,0x7d,0x07,   /* 4 5 6 7 */
	                     0x7f,0x6f,0x77,0x7c,   /* 8 9 a b */
                         0x58,0x5e,0x79,0x71,   /* c d e f */
                         0x00,0x0c,0x40         /*   _|  - */
                        };
////////////////////////////////////////////////////////////////////
void  KBScan(void);                                              
void  InitTimer();

//////////////////////////////////////////////////////////////////
void    main()
{
    InitTimer();   /* ????? */

	while(1)
    {
	    KBScan();     /* ???? */
 	}
}
//////////////////////////////////////////////////////////////////
void  InitTimer()
{
	TMOD = 0x11;
    EA = 1;
    ET1 = 1;
    TR1 = 1;
	ET0 = 1;
    TR0 = 1;

}

void    Display()  interrupt 3  using  2      //LED DISPLAY 
{
    TL1 = 0xf0;
    TH1 = 0xf9;

	
    P2 = 0;
    P1 = P1&0xf0;
	P1 = P1|ucdINT1Acc;
	ucdINT1Acc = ucdINT1Acc<<1;
	P2 = uccTab[ucdKBScanResult]; 
	
    //////////////////////////////////////////////////////////////////////

    ucdINT1Counter = ucdINT1Counter + 1;
	if(ucdINT1Acc >= 16)
	{
	    ucdINT1Counter = 0;
        ucdINT1Acc = 1;
    }
}


void   KBScan(void)
{
    ucdKBScan_Acc = uccRemove[ucdIncrease];
	ucdIncrease = ucdIncrease + 1;
    if(ucdIncrease >= 3)
	{
	    ucdIncrease = 0;
	}

	ucdKBScan_Acc = ucdKBScan_Acc|0xf0;

    P0 = P0&0xc0;
	P0 = P0|ucdKBScan_Acc;

    for(i = 0; i < 100; i++)
	    for(j = 0; j < 80; j++)
	        ucdReceiver = P0;

    ucdReceiver = ucdReceiver&0x3f;

	if(ucdReceiver == 0x1b)
	    ucdKBScanResult = 0;
	else if(ucdReceiver == 0x2b)
	    ucdKBScanResult = 1;
	else if(ucdReceiver == 0x33)
	    ucdKBScanResult = 2;
	else if(ucdReceiver == 0x1d)
	    ucdKBScanResult = 3;
	else if(ucdReceiver == 0x2d)
	    ucdKBScanResult = 4;
	else if(ucdReceiver == 0x35)
	    ucdKBScanResult = 5;
	else if(ucdReceiver == 0x1e)
	    ucdKBScanResult = 6;
	else if(ucdReceiver == 0x2e)
	    ucdKBScanResult = 7 ;
	else if(ucdReceiver == 0x36)
	    ucdKBScanResult = 8;
	else
	    ucdKBScanResult = 30;

	//return  ucdKBScanResult;
	 
}

⌨️ 快捷键说明

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