资源描述:
《数码管显示时间》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/********************************************************计时器***用到138译码器P2^2P2^3P2^4***数码管接到P0端口***通过按K4可以切换闹铃与时间显示***按K1可以调秒数(调设置时间的秒数,后同),按K2可以调分数,K3可以调小时数*****************************************************/#include#defineuintunsignedint#defineucharunsignedcharsbitLSA=P2^
2、2;sbitLSB=P2^3;sbitLSC=P2^4;sbitBeep=P1^5;sbitK1=P3^1;sbitK2=P3^0;sbitK3=P3^2;sbitK4=P3^3;#defineFirstLSA=0;LSB=0;LSC=0//138译码器位数设置#defineSecondLSA=1;LSB=0;LSC=0#defineThirdLSA=0;LSB=1;LSC=0#defineFourthLSA=1;LSB=1;LSC=0#defineFifthLSA=0;LSB=0;LSC=1#defineSixthLSA=1;LSB=0;LSC=1#defin
3、eSeventhLSA=0;LSB=1;LSC=1#defineEighthLSA=1;LSB=1;LSC=1ucharcodeDIG_CODE[16]={0x03f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码ucharTime=0;ucharmiao1=0,miao2=0,fen1=0,fen2=0,shi1=0,shi2=0;charSetmiao1=-1,Setmiao2=0
4、,Setfen1=0,Setfen2=0,Setshi1=0,Setshi2=0;voidTimerConfiguration();voiddelayms(ucharx);voidTimer();//时间显示voidSetingTime();//时间设置voidClock();//闹铃voidSetingClock();//闹铃时间设置voidSetingClockDisplay();//闹钟设置显示voidDelay(unsignedinti);//蜂鸣器所用延时main(){ucharNum=1;Beep=0;TimerConfiguration();whi
5、le(1){if(K4==0)//通过K4来选择是计时还是设置闹铃{delayms(1);if(K4==0){Num++;while(!K4);}}if(Num==2){Num=0;}if(Num){SetingClock();}else{SetingTime();Timer();Clock();}}}voidSetingTime()//时间设置{if(K1==0){delayms(1);if(K1==0){miao1++;while(!K1);}else{}}if(K2==0){delayms(1);if(K2==0){fen1++;while(!K2);}e
6、lse{}}if(K3==0){delayms(1);if(K3==0){shi1++;while(!K3);}else{}}}voidTimer()//时间显示{if(Time==20
7、
8、Time>20)//每秒miao1++{Time=0;miao1++;}else//显示:在第一位显示秒的个位{P0=0x00;First;P0=0x00;P0=DIG_CODE[miao1];}if(miao1==10){miao1=0;miao2++;}else//显示秒的十位{P0=0x00;Second;P0=0x00;P0=DIG_CODE[miao2];}if(m
9、iao2==6){miao2=0;fen1++;}P0=0x00;//显示第三位的“-”Third;P0=0x00;P0=0x40;if(fen1==10){fen1=0;fen2++;}else//显示分的个位{P0=0x00;Fourth;P0=0x00;P0=DIG_CODE[fen1];}if(fen2==6){fen2=0;shi1++;}else//分的十位{P0=0x00;Fifth;P0=0x00;P0=DIG_CODE[fen2];}P0=0x00;//显示第六位的“-”Sixth;P0=0x00;P0=0x40;if(shi1==10){sh
10、i1=0;shi2++;