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

📄 pt2262.txt

📁 利用pt2262作为发射端的主控芯片
💻 TXT
字号:
/*PT2262*/

#include<AT89X52.h>


unsigned char code dispbit[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
unsigned char code table[]={0X40,0x06,0x5b,0x4f,

                            0x66,0x6d,0x7d,0x07,

                            0x7f,0x3f};

unsigned char data sendtemp[10]={0x0e,0,0,0,0,0,0,0,0,0x0c};
unsigned char data rectemp[8];


unsigned char keyscan(void);
void senddata(void);

signed char data keycount;
		 

bit rec_done;

void main()
{
unsigned char getkey,i,delay;

TMOD=0x01;
EA=0;ET0=0;
TH0=0xb1;
TL0=0xe0;
TR0=0;

rec_done=0;
keycount=0;

while(1){
getkey=keyscan();
if(getkey){
switch(getkey){
case 12:{if(keycount<0) keycount=0;else {rectemp[keycount]=0;keycount--;}}break;

case 15:rec_done=1;break;

default:{if(keycount<=8) {rectemp[keycount]=getkey;keycount++;} else keycount=8;}break;

}
}

if(rec_done) senddata();

for(i=8-keycount;i<8;i++) 
{
P2=table[rectemp[i]];
P0=dispbit[i];
for(delay=0;delay<200;delay++);
}

}

}


unsigned char keyscan(void)
{
unsigned char temp,i,j,key;
unsigned int overdelay;

key=0;
overdelay=1;

      P3=0xff;

      P3_4=0;

      temp=P3;

      temp=temp & 0x0f;

      if (temp!=0x0f)

        {

          for(i=50;i>0;i--)

          for(j=200;j>0;j--);

          temp=P3;

          temp=temp & 0x0f;

          if (temp!=0x0f)

            {

              temp=P3;

              temp=temp & 0x0f;              

              switch(temp)

                {

                  case 0x0e:

                    key=1;

                    break;

                  case 0x0d:

                    key=4;

                    break;

                  case 0x0b:

                    key=7;

                    break;

                  case 0x07:

                    key=10;

                    break;

                }

              temp=P3;

              temp=temp & 0x0f;              

              while((temp!=0x0f)&&(overdelay++))

                {

                  temp=P3;

                  temp=temp & 0x0f;              

                }

            }

        }

 

      P3=0xff;

      P3_5=0;

      temp=P3;

      temp=temp & 0x0f;

      if (temp!=0x0f)

        {

          for(i=50;i>0;i--)

          for(j=200;j>0;j--);

          temp=P3;

          temp=temp & 0x0f;

          if (temp!=0x0f)

            {

              temp=P3;

              temp=temp & 0x0f;              

              switch(temp)

                {

                  case 0x0e:

                    key=2;

                    break;

                  case 0x0d:

                    key=5;

                    break;

                  case 0x0b:

                    key=8;

                    break;

                  case 0x07:

                    key=0x0c;

                    break;

                }

              temp=P3;

              temp=temp & 0x0f;              

              while((temp!=0x0f)&&(overdelay++))

                {

                  temp=P3;

                  temp=temp & 0x0f;              

                }

            }

        }

 

      P3=0xff;

      P3_6=0;

      temp=P3;

      temp=temp & 0x0f;

      if (temp!=0x0f)

        {

          for(i=50;i>0;i--)

          for(j=200;j>0;j--);

          temp=P3;

          temp=temp & 0x0f;

          if (temp!=0x0f)

            {

              temp=P3;

              temp=temp & 0x0f;              

              switch(temp)

                {

                  case 0x0e:

                    key=3;

                    break;

                  case 0x0d:

                    key=6;

                    break;

                  case 0x0b:

                    key=9;

                    break;

                  case 0x07:

                    key=0x0f;

                    break;

                }

              temp=P3;

              temp=temp & 0x0f;              

              while((temp!=0x0f)&&(overdelay++))

                {

                  temp=P3;

                  temp=temp & 0x0f;              

                }

            }

        }

 return key;
}



void senddata(void)
{
unsigned char i;

for(i=0;i<8;i++) sendtemp[i+1]=rectemp[i];


for(i=0;i<10;i++) {
                   TR0=1;
                   P1=sendtemp[i]&0x0f;
                   while(!TF0){};
                   TF0=0;
                   TH0=0xb1;
                   TL0=0xe0;

}

TR0=0;
rec_done=0;
keycount=0;

for(i=0;i<8;i++) {sendtemp[i+1]=0;rectemp[i]=0;}

}

⌨️ 快捷键说明

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