📄 d8255.c
字号:
#include<reg51.h>
#include<absacc.h>
#define PC XBYTE[0xff7E]
#define COL1 XBYTE[0xff7F]
#define PA XBYTE[0xff7C]
#define PB XBYTE[0xff7D]
//#define COL2 XBYTE[0xff7c]
#define uchar unsigned char
uchar temp,key;
void delay() //10ms延时子程序 程序:
{ unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);
}
keyscan()
{
PC=0Xfe;
temp=PC;
//temp=temp&0xf8;
if(temp!=0xfe)
delay();
temp=PC;
// temp=temp&0xf8;
if(temp!=0xfe)
{
switch(temp)
{
case 0xee : key=1;break;
case 0xde : key=2;break;
case 0xbe : key=3;break;
// case 0x7e: key='*';break;
}
}
PC=0Xfd;
temp=PC;
// temp=temp&0xf8;
if(temp!=0xfd)
delay();
temp=PC;
//temp=temp&0xf8;
if(temp!=0xfd)
{
switch(temp)
{
case 0xed : key=4;break;
case 0xdd : key=5;break;
case 0xbd : key=6;break;
// case 0x7d : key=0;break;
}
}
PC=0XfB;
temp=PC;
//temp=temp&0xf8;
if(temp!=0xf8)
delay();
temp=PC;
// temp=temp&0xf8;
if(temp!=0xf8)
{
switch(temp)
{
case 0xeb : key=7;break;
case 0xdb : key=8;break;
case 0xbb : key=9;break;
// case 0x7b : key='#';break;
}
}
PC=0Xf7;
temp=PC;
//temp=temp&0xf8;
if(temp!=0xf7)
delay();
temp=PC;
// temp=temp&0xf8;
if(temp!=0xf7)
{
switch(temp)
{
case 0xe7 : key='*';break;
case 0xd7 : key=0;break;
case 0xb7 : key='#';break;
// case 0x7b : key='#';break;
}
}
return key;
}
void main()
{
// COL1=0x89;
COL1=0x88;
while(1)
{
keyscan();
PB=key;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -