#include<reg52h>
#include<intrinsh>
#define uint unsigned int
#define uchar unsigned char
sbit wela=P2^7;
sbit dula=P2^6;
sbit key1=P3^4;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar bai,shi,ge;
void display(uchar,uchar,uchar);
uchar num;
void keyscan();
void init();
void delay(uint z)
{
uchar i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
init();
while(1)
{
display(bai,shi,ge);
keyscan();
}
}
void keyscan()
{
if(key1==0)
{
delay(10);
if(key1==0)
{
TR0=0;
while(!key1);
TR0=1;
}
}
}
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void display(uchar a,uchar b,uchar c)
{
dula=1;
P0=table[a];
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay(10);
dula=1;
P0=table[b];
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delay(10);
dula=1;
P0=table[c];
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay(10);
}
void T0_time() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num==1000)
num=0;
bai=num/100;
shi=num%100/10;
ge=num%10;
}
我刚写的
1、电子表上一般有四个按键,如果是5个的话最后一个是调节指针表盘的,这里是最基本的四个键:
1、左上角light键,灯光键,按一下灯就亮了。
2、左下角mode键,模式键,点击可以转化不同的模式。
3、右上角start键,开始键,加减时间用的,也可能标为ST/SP。
4、右下键rest键,用于转换下一个修改参数。
2、计时:从时间界面按一次mode键,点击start键就开始计时了,再点击一下就停止及时,当然再按一次start键又继续计时。按rest键恢复0:00。
3、设置闹钟:从时间界面按两次mode键,就进入闹铃设置模式,按rest键调整时或分,按start键,开始上调时间,同时闹铃按标志自动出现(第一次设闹铃时)闹铃响时可按rest键停止铃响。 在时间界面同时按rest键与start键即可关闭闹铃(关闭后闹铃标志取消)。
4、调整时间:从时间界面按三次mode键就进入时间调整界面,按rest键可调整时分、秒、月、日、星期,调整到哪一个哪一个就数字闪烁,按start键可向上调整各自的数字大小。
我的回答希望可以帮到你,望采纳!
以上就是关于数码管前三位显示一个跑表从000到999之间以一秒的速度运行,按下一个独立键盘跑表停止,松手跑表继续运行全部的内容,包括:数码管前三位显示一个跑表从000到999之间以一秒的速度运行,按下一个独立键盘跑表停止,松手跑表继续运行、儿童防水夜光手表四个按键为什么进入不了跑表状态、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)