我想做一个6位电子计时器,希望有大神帮我做程序

最好给个仿真图... 最好给个仿真图 展开
 我来答
百度网友08fa378
2016-05-18
知道答主
回答量:1
采纳率:0%
帮助的人:1156
展开全部
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit w1=P2^2;
sbit w2=P2^3;
sbit w3=P2^4;
sbit w4=P2^5;
sbit w5=P2^6;
sbit w6=P2^7;
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;

sbit beep=P1^0;
uchar code table[10]=
{0xFC,0x60,0xDA,0xF2,0x66,
0xB6,0xBE,0xE0,0xFE,0xF6};
uchar num,miao,fen,shi;
uchar fen1,shi1;
uchar d1,d2,d3,d4,d5,d6;
void delay(uint ms)
{
uchar x;
for(ms;ms>0;ms--)
for(x=110;x>0;x--);
}
void display()
{
d1=shi/10;
d2=shi%10;
d3=fen/10;
d4=fen%10;
d5=miao/10;
d6=miao%10;
w1=0;P0=table[d1];delay(10);
P0=0x00;w1=1;
w2=0;P0=table[d2]|0x01;delay(10);
P0=0x00;w2=1;
w3=0;P0=table[d3];delay(10);
P0=0x00;w3=1;
w4=0;P0=table[d4]|0x01;delay(10);
P0=0x00;w4=1;
w5=0;P0=table[d5];delay(10);
P0=0x00;w5=1;
w6=0;P0=table[d6];delay(10);
P0=0x00;w6=1;
}
void disp_set()
{
d1=shi1/10;
d2=shi1%10;
d3=fen1/10;
d4=fen1%10;
w1=0;P0=table[d1];delay(10);
P0=0x00;w1=1;
w2=0;P0=table[d2]|0x01;delay(10);
P0=0x00;w2=1;
w3=0;P0=table[d3];delay(10);
P0=0x00;w3=1;
w4=0;P0=table[d4]|0x01;delay(10);
P0=0x00;w4=1;
w5=0;P0=table[0];delay(10);
P0=0x00;w5=1;
w6=0;P0=table[0];delay(10);
P0=0x00;w6=1;
}
void didi()
{
uchar i;
beep=0;for(i=0;i<5;i++)display();
beep=1;for(i=0;i<5;i++)display();
}
void didi1()
{
uchar i;
beep=0;for(i=0;i<5;i++)disp_set();
beep=1;for(i=0;i<5;i++)disp_set();
}
void keyscan()
{
uchar k_flag,set_flag;
if(key1==0)
{
delay(10);
if(key1==0)
{
k_flag=1;
didi();
}
while(key1==0)display();
}
while(k_flag==1)
{
display();
if(key1==0)
{
delay(10);
if(key1==0)
{
k_flag=2;
didi();
}
while(key1==0)display();
}
if(key2==0)
{
delay(10);
if(key2==0)
{
shi++;didi();
if(shi==24)shi=0;
}
while(key2==0)display();
}
if(key3==0)
{
delay(10);
if(key3==0)
{
if(shi==0)shi=24;
shi--;didi();
}
while(key3==0)display();
}
}
while(k_flag==2)
{
display();
if(key1==0)
{
delay(10);
if(key1==0)
{
k_flag=3;
didi();
}
while(key1==0)display();
}
if(key2==0)
{
delay(10);
if(key2==0)
{
fen++;didi();
if(fen==60)fen=0;
}
while(key2==0)display();
}
if(key3==0)
{
delay(10);
if(key3==0)
{
if(fen==0)fen=60;
fen--;didi();
}
while(key3==0)display();
}
}
while(k_flag==3)
{
display();
if(key1==0)
{
delay(10);
if(key1==0)
{
didi();
didi();
k_flag=0;
}
while(key1==0)display();
}
if(key2==0)
{
delay(10);
if(key2==0)
{
didi();
miao++;
if(miao==60)miao=0;
}
while(key2==0)display();
}
if(key3==0)
{
delay(10);
if(key3==0)
{
didi();
if(miao==0)miao=60;
miao--;
}
while(key3==0)display();
}
}
if(key4==0)
{
delay(10);
if(key4==0)
{
didi1();
set_flag=1;
}
while(key4==0)disp_set();
}
while(set_flag==1)
{
disp_set();
if(key2==0)
{
delay(10);
if(key2==0)
{ didi1();
shi1++;
if(shi1==24)shi1=0;
}
while(key2==0)disp_set();
}
if(key3==0)
{
delay(10);
if(key3==0)
{ didi1();
if(shi1==0)shi1=24;
shi1--;
}
while(key3==0)disp_set();
}
if(key4==0)
{
delay(10);
if(key4==0)
{ didi1();
set_flag=2;
}
while(key4==0)disp_set();
}
}
while(set_flag==2)
{
disp_set();
if(key2==0)
{
delay(10);
if(key2==0)
{ didi1();
fen1++;
if(fen1==60)fen1=0;
}
while(key2==0)disp_set();
}
if(key3==0)
{
delay(10);
if(key3==0)
{ didi1();
if(fen1==0)fen1=60;
fen1--;
}
while(key3==0)disp_set();
}
if(key4==0)
{
delay(10);
if(key4==0)
{
didi1();
didi1();
set_flag=0;
}
while(key4==0)disp_set();
}
}
}
void b_s()
{
uchar i;
if((shi>=7)&&(shi<=20))
{
if((fen==0)&&(miao<=15))
{
beep=0;for(i=0;i<5;i++)display();
beep=1;for(i=0;i<5;i++)display();
}
}
if((shi1!=0)||(fen1!=0))
{
if((shi1==shi)&&(fen1==fen)&&(miao<=15))
{
beep=0;for(i=0;i<5;i++)display();
beep=1;for(i=0;i<5;i++)display();
}
}
}
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
display();
keyscan();
b_s();
}
}
void T0_time() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num==20)
{
num=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)shi=0;
}
}
}
}
追问
谢谢了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赛康精益
2025-02-24 广告
作为北京赛康精益信息技术有限责任公司的工作人员,我无法具体推荐某一家发令电子计时系统品牌,因为选择合适的发令电子计时系统需要根据具体的应用场景和技术需求进行评估。市场上有很多品牌的发令电子计时系统,性能和质量也各不相同。您可以参考相关的产品... 点击进入详情页
本回答由赛康精益提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式