永发信息网

利用单片机实验板制作一个电子钟,LED显示区上的DS1、DS2用于显示小时,DS3、DS4用于显示分钟的程序。

答案:4  悬赏:20  手机版
解决时间 2021-11-11 05:56
利用单片机实验板制作一个电子钟,LED显示区上的DS1、DS2用于显示小时,DS3、DS4用于显示分钟的程序。
最佳答案
#include
#include
#define uchar unsigned char
#define uint unsigned int

uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
uint Count;
uchar j=0x08;
uchar s=0x80;
sbit Dot=P0^7;
sbit k1=P1^0;
sbit k2=P1^4;
sbit k3=P1^7;
uchar Digits_of_4DSY[]={0,0,0,0};

void DelayMS(uint ms)
{
uchar t;
while(ms--) for(t=0;t<120;t++);
}

void Showtime()
{
uchar i;
for(i=3;i!=-1;i--)
{
j=_crol_(j,1);
if(j==0x10) j=0x01;
P2=j;
P0=DSY_CODE[Digits_of_4DSY[i]];
switch(s)
{
case 0x80:
if((i==1)&&(Count%20==0)) Dot=~Dot;
break;
case 0x01:
if(i==0) Dot=0;
break;
case 0x02:
if(i==1) Dot=0;
break;
case 0x04:
if(i==2) Dot=0;
break;
case 0x08:
if(i==3) Dot=0;
break;
}

DelayMS(2);
}
}

void Settime()
{

s=_crol_(s,1);
TR0=0;
IE=0x00;
while(1)
{
if(s==0x10)
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
IE=0x82;
TR0=1;
s=0x80;
break;
}
if(k1==0)
{
while(k1==0);
s=_crol_(s,1);

}
if(k2 == 0)
{
while(k2 == 0);
switch(s)
{
case 0x01:
Digits_of_4DSY[0]++;
if(Digits_of_4DSY[0]==3) Digits_of_4DSY[0]=0;
break;
case 0x02:
Digits_of_4DSY[1]++;
if(Digits_of_4DSY[1]==4) Digits_of_4DSY[1]=0;
break;
case 0x04:
Digits_of_4DSY[2]++;
if(Digits_of_4DSY[2]==6) Digits_of_4DSY[2]=0;
break;
case 0x08:
Digits_of_4DSY[3]++;
if(Digits_of_4DSY[3]==10) Digits_of_4DSY[3]=0;
break;
}

}
if(k3 == 0)
{
while(k3 == 0);
switch(s)
{
case 0x01:
Digits_of_4DSY[0]--;
if(Digits_of_4DSY[0]==-1) Digits_of_4DSY[0]=2;
break;
case 0x02:
Digits_of_4DSY[1]--;
if(Digits_of_4DSY[1]==-1) Digits_of_4DSY[1]=3;
break;
case 0x04:
Digits_of_4DSY[2]--;
if(Digits_of_4DSY[2]==-1) Digits_of_4DSY[2]=5;
break;
case 0x08:
Digits_of_4DSY[3]--;
if(Digits_of_4DSY[3]==-1) Digits_of_4DSY[3]=9;
break;
}
}
Showtime();
}

}

void main()
{

P0=0x00;
P2=0xff;
P1=0xff;
Count=0;
Dot=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
IE=0x82;
TR0=1;
while(1)
{
if(k1 == 0)
{
while(k1 == 0);

Settime();
}
Showtime();
}
}

void Time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if (++Count!=1200) return;
Count =0;
Digits_of_4DSY[3]++;
if(Digits_of_4DSY[3]==10)
{
Digits_of_4DSY[3]=0;
Digits_of_4DSY[2]++;
if(Digits_of_4DSY[2]==6)
{
Digits_of_4DSY[2]=0;
Digits_of_4DSY[1]++;
if(Digits_of_4DSY[1]==4)
{
Digits_of_4DSY[1]=0;
Digits_of_4DSY[0]++;
if(Digits_of_4DSY[0]==3)
Digits_of_4DSY[0]=0;
}
}
}

}

我这网速不行,电路图传不上去,电路跟你的那个有点区别,led是共阳极的,三极管的e极接到led,c极接电源正极,跟你那个相反。详情Q聊121009224
全部回答
四位的电子钟!
你们学校上实验课的时候,难道没有做过这个实验?
楼上说的对喔! 没有电路不知怎样写程序!
不同的实验板程序会不同的。你应该说清楚,并把实验板的原理图贴出来呀。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
海下40米处温度大概有多少度
过一点做一条直线,只有一条直线与它平行,这句
港澳通行证,大陆证 要出境,该带哪个证
我是一名高二的学生,在纠结高二是住校还是住
杭州织锦怎么样
三才培训(七宝分部)地址有知道的么?有点事想
莅临,造访,吝啬,淅沥,干涩的读音
跪求大量紫眸美女动漫图片,可唯美,可霸气,
《长江》的作者
超SHOW发艺(安亭财富广场店)地址有知道的么?
黛珂散粉是哪个国家的
站得高 看得远 这是由于地区是个巨大的什么 ,
当你缺乏自信老师用什么词语鼓励你
描写农家风光的词语,要100个
进拘留所的时候自己带的钱放在储物柜释放的时
推荐资讯
3m资金流动会产生利息吗
如何看一个行为是不是利用履行职务的便利
ADXL335三轴加速度传感器输出数据为哪个轴如
电缆型号代表什么意思?
生产商向个体果农收购水果 怎样取得票据?(初
无锡有汉服组织吗?有汉服社团吗?
AOC E2270SWN和AOC E2280SWN有什么区别
哪里可以看法甲直播
顺德那里好玩
我去年八月份拿的驾照:现在闯了个要扣 6分,
劳动纠纷,N+1怎么算,是不是包括试用期
求个夜的第五章或者夜的钢琴曲五的简谱 就是
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?