📄 main.c
字号:
#include <reg51.h>
typedef unsigned char BYTE;
typedef unsigned short WORD;
BYTE LINE;
BYTE ROW ;
BYTE VAL ;
sbit P10=P1^0;
sbit P30=P3^0;
sbit P31=P3^1;
sbit P32=P3^2;
sbit P33=P3^3;
sbit P34=P3^4;
sbit P35=P3^5;
sbit P36=P3^6;
sbit P37=P3^7;
BYTE code TABLE1[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
WORD code TABLE2[]={64021,64103,64260,64400,
4524, 64580,64684,64777,
64820,64898,64968,65030,
65058,65110,65157,65178};
void INT_T0() interrupt 1
{
TH0=TABLE2[VAL]/0x100;
TL0=TABLE2[VAL]%0x100;
P10=~P10;
}
void DELAY()
{
BYTE i=10;
do
{
BYTE j=250;
do
{}while(--j);
}while(--i);
}
main()
{
P0 =0x00;
TMOD=0x01;
while(1)
{
P3=0xF0;
while(1)
{
if(P30)
{
DELAY();
if(P30)
{
LINE=0x00; break;
}
}
else if(P31)
{
DELAY();
if(P31)
{
LINE=0x01; break;
}
}
else if(P32)
{
DELAY();
if(P32)
{
LINE=0x02; break;
}
}
else if(P33)
{
DELAY();
if(P33)
{
LINE=0x03; break;
}
}
}
P3=0x0F;
while(1)
{
if(P34)
{
ROW=0x00; break;
}
else if(P35)
{
ROW=0x01; break;
}
else if(P36)
{
ROW=0x02; break;
}
else if(P37)
{
ROW=0x03; break;
}
}
/*CALCU*/
VAL=ROW+LINE*0x04;
TH0=TABLE2[VAL]/0x100;
TL0=TABLE2[VAL]%0x100;
IE=0x82;
TR0=1;
P0=TABLE1[VAL];
while(1)
{
if(P3==0x0F||P3==0xF0)
break;
}
P0=0x00;
TR0=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -