📄 top1838.c
字号:
#include <reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit wei=P2^7;
sbit input=P3^2;
uchar n=0,n0=0;
uint sum=0,get=0,get1=0,get0=0;shu=0x0001;
uchar code table1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf};
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint checkdata();
void systeminitial()
{
TMOD=0x21;
TH1=0xfd;//初值
TL1=0xfd;
TR1=1;//开启T1
PCON=0x80;
SM0=0;//波特率的方式
SM1=1;
IT0=1;
EX0=1;
EA=1;
ET0=1;
TH0=0x00;
TL0=0x00;
}
void main()
{
systeminitial();
while(1);
}
void in()interrupt 0
{
EX0=0;
TR0=1;
while(input==0);
TR0=0;
sum=TH0*256+TL0;
TH0=0x00;
TL0=0x00;
if(sum>8000)
{
TR0=1;
while(input==1);
TR0=0;
sum=TH0*256+TL0;
TH0=0x00;
TL0=0x00;
if(sum>3500)
{
for(n=0;n<16;n++) get0=checkdata();
shu=0x0001;
for(n=0;n<16;n++) get1=checkdata();
shu=0x0001;
while(input==0);
get1=get1%256;
wei=0;
if(get1==0x56)
{
P0=table1[n0];
n0++;
if(n0==6) n0=0;
SBUF=0x75;
while(!TI);
TI=0;
SBUF=0x70;
while(!TI);
TI=0;
SBUF=0x20;
while(!TI);
TI=0;
}
else if(get1==0x57)
{
if(n0>0) n0--;
P0=table1[n0];
if(n0==0) n0=6;
SBUF=0x64;
while(!TI);
TI=0;
SBUF=0x6f;
while(!TI);
TI=0;
SBUF=0x77;
while(!TI);
TI=0;
SBUF=0x6e;
while(!TI);
TI=0;
SBUF=0x20;
while(!TI);
TI=0;
}
else
{
get1=get1%16;
P0=table[get1];
SBUF=get1+0x30;
while(!TI);
TI=0;
SBUF=0x20;
while(!TI);
TI=0;
n0=0;
}
get=0;
get0=0;
get1=0;
}
}
IE0=0;
EX0=1;
}
uint checkdata()
{
while(input==0);
TR0=1;
while(input==1);
TR0=0;
sum=TH0*256+TL0;
TH0=0x00;
TL0=0x00;
if(sum>1000)
{
get=get|shu;
shu=_irol_(shu,1);
}
else shu=_irol_(shu,1);
return get;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -