资源描述:
《c语言四位数码管万年历程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&万年历&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&include#defineucharunsignedchar#defineuintunsignedintucharcodetaba[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};ucharcodetabb[]={0x40,0x7
2、9,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};uinta,b,c,i,j,n=0,nian=2010,yue=1,ri=1,shi=0,fen=0,miao=0;sbitK1=P3^2;sbitK2=P3^3;sbitK3=P3^4;sbitK4=P3^5;sbitF=P3^0;sbitD=P0^7;voidint0()interrupt1//T0定时器中断{TH0=(65536-50000)/256;TL0=(65536-50000)%256;i++;if(i==20)i=0,miao++,P1=~P1;//定时满1秒
3、,秒进1,流水灯明灭if(miao==60)miao=0,fen++;//秒钟数满59,秒归0,分进1if(fen==60)fen=0,shi++;//分钟数满59,分归0}voiddelay(uintj)//延时函数j*1ms{for(a=1;a<=j;a++)//延时j*1msfor(b=1;b<=121;b++);}voiddel_nian()//实现数码管动态显示年{while(miao<=5&&K1)//显示5秒,--年{P0=taba[nian/1000],P2=0xf7,delay(3),P0=0xff,P2=0xff;//数码管第1位显示P0=
4、taba[nian/100%10],P2=0xfb,delay(3),P0=0xff,P2=0xff;//数码管第2位显示P0=taba[nian%100/10],P2=0xfd,delay(3),P0=0xff,P2=0xff;//数码管第3位显示P0=taba[nian%10],P2=0Xfe,delay(3),P0=0xff,P2=0xff;}//数码管第4位显示}voiddel_yue_ri()//实现数码管动态显示月,日{while(miao<=10&&K1)//显示5秒,--月--日{P0=taba[yue/10],P2=0xf7,delay(3)
5、,P0=0xff,P2=0xff;//数码管第1位显示P0=tabb[yue%10],P2=0xfb,delay(3),P0=0xff,P2=0xff;//数码管第2位显示P0=taba[ri/10],P2=0xfd,delay(3),P0=0xff,P2=0xff;//数码管第3位显示P0=taba[ri%10],P2=0Xfe,delay(3),P0=0xff,P2=0xff;}//数码管第4位显示}voiddel_shi_fen()//实现数码管动态显示时,分{while(miao>10&&miao<=60&&K1)//显示50秒,--分--钟{P0=t
6、aba[shi/10],P2=0xf7,delay(3),P0=0xff,P2=0xff;//数码管第1位显示P0=tabb[shi%10],P2=0xfb,delay(3),P0=0xff,P2=0xff;//数码管第2位显示P0=taba[fen/10],P2=0xfd,delay(3),P0=0xff,P2=0xff;//数码管第3位显示P0=taba[fen%10],P2=0Xfe,delay(3),P0=0xff,P2=0xff;}//数码管第4位显示}voiddel_tiao_nian(){while(K1)//按下K1返回{switch(n){c
7、ase2:{if(K3==0)delay(200),K3=1,nian++;//第2次按K1,按K3加,来调W2if(K4==0)delay(200),K4=1,nian--;};break;}P0=taba[nian/1000],P2=0xf7,delay(3),P0=0xff,P2=0xff;P0=taba[nian/100%10],P2=0xfb,delay(3),P0=0xff,P2=0xff;P0=taba[nian%100/10],P2=0xfd,delay(3),P0=0xff,P2=0xff;P0=tabb[nian%10],P2=0Xfe,d
8、elay(3),P0=0xff,P2=