test.c
来自「MT8880单片机控制的测试程序」· C语言 代码 · 共 108 行
C
108 行
#include<REG52.H>
typedef unsigned char uchar;
sbit LED = P2^0;
char Buff;
uchar Key_Scan();
void Serial_Init();
void delay();
main()
{
uchar kv , fgk;
Serial_Init();
while(1)
{
kv = Key_Scan();
if(!(kv & 0x20))
{
fgk = (fgk + 1)&0x01;
LED = fgk;
}
else if(!(kv & 0x10))
if(fgk)
SBUF = 9;
else
SBUF = 4;
else if(!(kv & 0x08))
if(fgk)
SBUF = 8;
else
SBUF = 3;
else if(!(kv & 0x04))
if(fgk)
SBUF = 7;
else
SBUF = 2;
else if(!(kv & 0x02))
if(fgk)
SBUF = 6;
else
SBUF = 1;
else if(!(kv & 0x01))
if(fgk)
SBUF = 5;
else
SBUF = 10;
}
}
void Serial_Init()
{
PCON = 0;
SCON = 0xD0;
TMOD = 0x21;
TH1 = 0xFD;
TL1 = 0xFD;
//EA = 1;
TR1 = 1;
}
uchar Key_Scan()
{
uchar aa , pf , fgks;
int kcount;
P1 = 0xFF;
fgks = 1;
kcount = 0;
while(fgks)
{
delay();
aa = P1;
if(aa == 0xFF)
if(kcount > 50)
fgks = 0;
else
kcount = 0;
else
if(pf != aa)
{
pf = aa;
kcount = 0;
}
else
{
if(kcount < 200)
kcount ++;
}
}
return pf;
}
void delay()
{
int i = 0;
for(i = 0; i < 100;)
i++;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?