📄 2.c
字号:
#include<reg52.h>
#include<stdio.h>
#include<intrins.h>
#include<string.h>
#define uchar unsigned char
#define uint unsigned int
/* 0 1 2 3 4 5 6 7 8 9 H L n */
uchar code table[]={0x14,0x77,0x4c,0x45,0x27,0x85,0x84,0x57,0x04,0x05,0x26,0xf4,0xe6,0xff,0xff};
uchar idata buf[]={0,1,2,3,4,5,6,7,8,9,10,11,12};
uchar idata buf1[]={0,1,2,3,4,5,6,7,8,9,10,11,12};
void dis(uchar idata *t);
sbit keysub=P3^6;
sbit keyadd=P3^5;
sbit out=P2^4;
sbit setting=P3^7;
bit flag=1;
uint hh=25;uint ll=50;uint h=50;uint l=25; uchar nn=20;
key(){char i;uchar dy=250;
TR0=1;ET0=1;
do{ buf1[2]=nn/10;
buf1[0]=nn%10;
buf1[1]=0x0c;
buf1[3]=0x0a;
dis(buf1+3);}while(!setting);
_nop_();
do{ _nop_();
buf1[2]=nn/10;
buf1[0]=nn%10;
buf1[1]=0x0c;
buf1[3]=0x0a;
dis(buf1+3);
_nop_();
if(!keyadd)do{if(++nn>30){nn=30;}
buf1[2]=nn/10;
buf1[0]=nn%10;
buf1[1]=0x0c;
buf1[3]=0x0a;
for(i=0;i<50;i++){
while(--dy);
while(--dy);
dis(buf1+3);
while(--dy);}
}while(!keyadd);
if(!keysub)do{if(1<nn){--nn;}
else{nn=1;}
buf1[2]=nn/10;
buf1[0]=nn%10;
buf1[1]=0x0c;
buf1[3]=0x0a;
for(i=0;i<50;i++){
while(--dy);
while(--dy);
dis(buf1+3);
while(--dy);}
}while(!keysub);
}while(setting);
do{ _nop_();
buf1[2]=nn/10;
buf1[0]=nn%10;
buf1[1]=0x0c;
buf1[3]=0x0a;
dis(buf1+3);
}while(!setting);
_nop_();
_nop_();
TR0=0;ET0=0;
hh=ll=h=l=(500/nn);
TR0=1;ET0=1;
}
void main(){
TMOD=0x11;
TH0=0xfc;
TL0=0x4a;
EA=1;
ET0=1;
TR0=1;
TH1=0xd8;
TL1=0xf0;
ET1=0;
TR1=0;
while(1){
if(!setting){
_nop_();
_nop_();
_nop_();
TR0=0;ET0=0;
key();
}
else{ buf1[2]=nn/10;
buf1[0]=nn%10;
buf1[1]=0x0d;
buf1[3]=0x0d;
dis(buf1+3);
_nop_();
_nop_();}
}
}
void dis (uchar idata *t){
uchar i;uchar m=100;uchar rl=0x01;
for(i=0;i<=3;i++){
P1=table[*t];
P3=~rl;
rl=(rl<<1);
t--;
while(--m);
}
}
time0() interrupt 1 using 1{
TH0=0xfc;
TL0=0x4a;
P1=0xff;P3=0xff;
if(flag){if(h!=0){--h;}
else {out=!out;h=hh;}
}
else {if(l!=0){--l;}
else{out=!out;l=ll;}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -