📄 8870try.c
字号:
#include<At89x51.h>
#include<INTRINS.H>
unsigned int out,in,ms,zd0,zd1,i;
//unsigned int shu[]={0xcc,0xcd,0xce,0xcf,0xdc,0xdd,0xde,0xdf,0xec,0xed,0xee,0xef,0xfc,0xfd,0xfe,0xff};
unsigned int shu[]={0xcc,0xcd,0xce,0xcf,0xdc,0xdd,0xde,0xdf,0xec,0xed,0xee,0xef,0xfc,0xfd,0xfe,0xff};
void zhongduan0(void) interrupt 0 using 0 //8870 over
{
in=P3;zd0=1;
}
void zhongduan1(void) interrupt 2 using 2 //button
{
zd1=1;
}
void timer1(void) interrupt 3 using 3 //定时器1程序
{
TH1=0xfc;TL1=0x16;ms--;
}
void delay(unsigned int s) //1 ms延时程序
{
TR1=1;
ms=s;
while(ms){;}
TR1=0;
}
void start(void) //初始化程序
{
TMOD=0x11;TR0=0;TR1=0;IT1=1;EA=1;PT0=1;P1=0xff;P3=0xff;
ET1=1;EX1=1;EX0=1;TH1=0xfc;TL1=0x16;out=1;IT0=1;zd0=0;
}
void main(void)
{
start();
S:
while(1)
{
P1=out;
i=1;
P1_6=1;
delay(10);
P3_7=0;
delay(100);
P3_7=1;
P1_6=0;
if(out>=10){P1=(out-10);P1_5=1;} else P1_5=0;
delay(10);
while(!zd0){delay(10);i++;if(i>=100)break;}
in=(in|0xcc);
if(in==shu[out]){out++;zd0=0;}
else break;
in=P3;
if(in!=0)zd0=1;
if(out>=16)break;
}
while(1)
{
zd1=0;if(P1_6==1)P1_6=0;
if(out>=16){P1_7=1;if(zd1){zd1=0;P1_7=0;out=1;goto S;}}
else {P1_7=1;delay(200);P1_7=0;delay(200);if(zd1){zd1=0;out=1;goto S;}}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -