整理基于普中开发板多功能数码显示电子钟.docx
- 文档编号:12302798
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:13
- 大小:17.10KB
整理基于普中开发板多功能数码显示电子钟.docx
《整理基于普中开发板多功能数码显示电子钟.docx》由会员分享,可在线阅读,更多相关《整理基于普中开发板多功能数码显示电子钟.docx(13页珍藏版)》请在冰豆网上搜索。
整理基于普中开发板多功能数码显示电子钟
/*此程序是按照普中开发板的电路连接,能显示时间,日期,闹钟,带有设置和闰年补偿*/
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineplayP0
sbitLSA=P1^0;
sbitLSB=P1^1;
sbitLSC=P1^2;
sbitled=P2^2;//闹钟检测
sbitk1=P2^7;//功能切换
sbitk2=P2^6;//设置加
sbitk3=P2^5;// 设置减
sbitk4=P2^4;//设置位选
sbitbeet=P1^5;//蜂鸣器输出口
uchary;//按键松开
ucharkai;//闹钟开启标志
ucharshe;//设置标志
uchart;//时间计数
ucharnum;//功能切换
ucharfen;
ucharshi;
ucharmiao;
ucharyue;
ucharnian;
ucharri;
ucharshijian[8];
uchar shi1;//闹铃时
ucharfen1; //闹铃分
unsignedcharcodeshuma[12]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, //数码管显示数组0到9
0x7f,0x6f,0x40,0x00};
ucharbrunyue[12]={31,28,31,30,31,30,31,31,30,31,30,31};
ucharrunyue[12]={31,29,31,30,31,30,31,31,30,31,30,31};
voidzhongshe();
voidqishe();
voidnaoshe();
voidshezhi();
voiddelay10ms(void) //误差0us
{
unsignedchara,b,c;
for(c=1;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
voidnaozhong()
{ uinta,m;
if((shi1==shi)&&(fen1==fen)&&(kai%2))
{ for(m=20;m>0;m--)
for(a=10;a>0;a--)
if((k1==0)||(k2==0)||(k3==0)||(k4==0))
{kai=0;break; }
else
beet=~beet;
}
}
voidplays() //输出显示
{
unsignedchari;
unsignedintj;
for(i=0;i<8;i++)
{
switch(i) //位选,选择点亮的数码管,
{
case(0):
LSA=0;LSB=0;LSC=0;break;//显示第0位
case
(1):
LSA=1;LSB=0;LSC=0;break;//显示第1位
case
(2):
LSA=0;LSB=1;LSC=0;break;//显示第2位
case(3):
LSA=1;LSB=1;LSC=0;break;//显示第3位
case(4):
LSA=0;LSB=0;LSC=1;break;//显示第4位
case(5):
LSA=1;LSB=0;LSC=1;break;//显示第5位
case(6):
LSA=0;LSB=1;LSC=1;break;//显示第6位
case(7):
LSA=1;LSB=1;LSC=1;break;//显示第7位
}
play=shuma[shijian[i]];
if(t>50)
{ switch(she)
{
case(3):
if((i==0)||(i==1))
play=0x00;break;
case
(2):
if((i==3)||(i==4))
play=0x00;break;
case
(1):
if((i==6)||(i==7))
play=0x00;break;
}
}
j=10; //扫描间隔时间设定
while(j--);
play=0x00;//消隐
}
}
voidnao()//闹钟赋值
{ shijian[7]=kai;
shijian[6]=11;
shijian[5]=11;
shijian[4]=fen1%10;
shijian[3]=fen1/10;
shijian[2]=10;
shijian[1]=shi1%10;
shijian[0]=shi1/10;
}
voidrili() //日期赋值
{ shijian[7]=ri%10;
shijian[6]=ri/10;
shijian[5]=10;
shijian[4]=yue%10;
shijian[3]=yue/10;
shijian[2]=10;
shijian[1]=nian%10;
shijian[0]=nian/10;
}
voidzhong()//电子钟赋值
{shijian[7]=miao%10;
shijian[6]=miao/10;
shijian[5]=10;
shijian[4]=fen%10;
shijian[3]=fen/10;
shijian[2]=10;
shijian[1]=shi%10;
shijian[0]=shi/10;
}
voidInitTimer0(void)
{
TMOD=0x01;
TH0=0x0D8;
TL0=0x0F0;
EA=1;
ET0=1;
TR0=1;
}
voidshezhi()//功能设置函数
{ if((she!
=0)&&((k2==0)||(k3==0)))
{ delay10ms();
if((she!
=0)&&((k2==0)||(k3==0)))
{
switch(num)
{case(0):
zhongshe();break;
case
(1):
qishe();break;
case
(2):
naoshe();break;
}
}
}
}
voidmain()
{
num=0;kai=1;she=0;
fen1=59;shi1=23;
miao=0;fen=58;shi=23;
ri=19;yue=12;nian=13;
InitTimer0();
while
(1)
{
if(k1==0)
{delay10ms();
if(k1==0)
{num=(num+4)%3;
she=0;}
led=~led;
while(!
k1);}
if(k4==0)
{delay10ms();
if(k4==0)
she=(she+5)%4;
while(!
k4);
}
shezhi();
naozhong();
plays();
}
}
voidTimer0Interrupt(void)interrupt1
{
TH0=0x0D8;
TL0=0x0F0;
t++;
if(t==100)
{t=0;
miao++;
if(miao>59)
{miao=0;
fen++;
if(fen>59)
{
fen=0;
shi++;
if(shi>23)
{
shi=0;
ri++;
if(nian%4==0)
{if(ri>runyue[yue-1])
{ ri=1;
yue++; }
if(yue>12)
{ yue=1;
nian++;}
}
else
{if(ri>brunyue[yue-1])
{
ri=0;
yue++;
}
if(yue>12)
{
yue=0;
nian++;
}
}
}
}
}
}
switch(num)
{
case(0):
zhong();break;
case
(1):
rili();break;
case
(2):
nao();break;
default:
zhong();
}
}
voidzhongshe()
{ switch(she)
{
case
(1):
miao=0;InitTimer0();break;
case
(2):
if(k2==0)
fen=(fen+61)%60;
else
fen=(fen+59)%60;
break;
case(3):
if(k2==0)
shi=(shi+25)%24;
else
shi=(shi+23)%24;
break;
}
while((!
k2)||(!
k3));
}
voidnaoshe()
{ switch(she)
{
case
(1):
if(kai==1)
kai=0;
elsekai=1;break;
case
(2):
if(k2==0)
fen1=(fen1+61)%60;
else
fen1=(fen1+59)%60;
break;
case(3):
if(k2==0)
shi1=(shi1+25)%24;
else
shi1=(shi1+23)%24;
break;
}
while((!
k2)||(!
k3));
}
voidqishe()
{ switch(she)
{
case
(1):
if(k2==0)
{if(nian%4==0)
ri=(ri+runyue[yue-1]+2)%(runyue[yue-1]+1);
else
(2)评价方法的适当性; ri=(ri+brunyue[yue-1]+2)%(brunyue[yue-1]+1);
大纲要求 }
规划编制单位应当在报送审查的环境影响报告书中附具对公众意见采纳与不采纳情况及其理由的说明。
else
{ if(nian%4==0)
(三)环境价值的定义 ri=(ri+runyue[yue-1])%(runyue[yue-1]+1);
6.建设项目环境影响评价文件的其他要求 else
1)规划实施对环境可能造成影响的分析、预测和评估。
主要包括资源环境承载能力分析、不良环境影响的分析和预测以及与相关规划的环境协调性分析。
ri=(ri+brunyue[yue-1])%(brunyue[yue-1]+1);
}
break;
case
(2):
if(k2==0)
第1页 yue=(yue+14)%13;
else
5.建设项目环境影响评价文件的重新报批和重新审核 yue=(yue+12)%13;
break;
case(3):
if(k2==0)
②既包括天然的自然环境,也包括人工改造后的自然环境。
nian++;
目前,获得人们的偏好、支付意愿或接受赔偿的意愿的途径主要有以下三类:
①从直接受到影响的物品的相关市场信息中获得;②从其他事物中所蕴含的有关信息间接获得;③通过直接调查个人的支付意愿或接受赔偿的意愿获得。
else
nian--;
}
while((!
k2)||(!
k3));}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 基于 开发 多功能 数码 显示 电子钟