📄 1274.c
字号:
//数码管前三位显示一个跑表,从000到999之间以1%秒速度运行,
//当按下一个独立键盘时跑表停止,松开手后跑表继续运行。
#include<reg52.h>
#define uc unsigned char
#define ui unsigned int
sbit L4=P3^4;
sbit dus=P2^6;
sbit wes=P2^7;
uc code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77};
uc code tableh[]={
0xbf,0x86,0xdb,0xcf,0xe6,0xed,
0xfd,0x87,0xff,0xef,0xf7};
uc a2,a1,a0,count;
ui num;
display(uc,uc,uc);
delay(uc);
void main()
{
EA=1;
ET1=1;
TMOD=0x10;
TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
TR1=1;
while(1)
{
if(count==1)
{
count=0;
num++;
if(num==999)num=0;
if(L4==0)
{
delay(60);
if(L4==0)
{
TR1=0;
while(!L4)
{ display(a2,a1,a0);}
while(!L4);
TR1=1;
}
}
}
a2=num/100;
a1=num%100/10;
a0=num%100%10;
display(a2,a1,a0);
}
}
delay(uc x)
{
uc i,j;
for(i=20;i>0;i--)
for(j=x;j>0;j--);
}
void time1() interrupt 3 using 1
{
TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
count++;
}
display(uc bi,uc si,uc ge)
{
P0=0xff;
wes=1;
wes=0;
P0=tableh[bi];
dus=1;
dus=0;
P0=0xfe;
wes=1;
wes=0;
delay(1);
P0=0xff;
wes=1;
wes=0;
P0=table[si];
dus=1;
dus=0;
P0=0xfd;
wes=1;
wes=0;
delay(1);
P0=0xff;
wes=1;
wes=0;
P0=table[ge];
dus=1;
dus=0;
P0=0xfb;
wes=1;
wes=0;
delay(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -