数码管时钟显示C程序.doc

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数码管时钟显示C程序

/*数码管时钟显示led移动C程序使用共阳极数码管*/#include#include#defineuintunsignedint#defineucharunsignedchar sbitwela1=P2 ;//数码管wela管脚定义sbitwela2=P2 ;sbitwela3=P2 ;sbitwela4=P2 ;uchartime,d1,d2,d3, d4,temp,tem,aa;unsignedcharcodetable[]={0xC0,0xF9,0xA4,0xB0,0 x99,0x92,0x82,0xF8,0x80,0x90};voiddispl(chara,charb,charc,chard) ;voiddelay(uintz)//延时程序{uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}//主函数voidmain(){time=0;TMOD=0x01;//中断定时初始化TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1; TR0=1;aa=0;temp=0xfe;tem=0xff;d1=0;d2=0;d3=0;d4=0;while(1){i f(time==12月1号********//#include“at89x52.h“#defineucharunsignedchar#defineuin tunsignedintucharcodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80,0x90,0xbf,0xff};ucharn;ucharhh,mm,ss;ucharnhh,nmm,ns s;uintyear;ucharday,mon,week;ucharhhs,hhg,mms,mmg,sss,ssg;ucha rdays,dayg,mons,mong;ucharnhhs,nhhg,nmms,nmmg,nsss,nssg;ucha rset1=1,set2=1;sbitfm=P3 ;sbitk1=P3 ;sbitk2=P3 ;sbitk3=P3 ;s bitk4=P3 ;uchartable1[]={31,31,29,31,30,31,30,31,31,30,31,30,31} ;//闰年uchartable2[]={31,31,28,31,30,31,30,31,31,30,31,30,31};//非闰年

voidjishi();voidbaoshi();voidalarm();voidset_time();voidset_alarm(); voidset_mdw();voidkey_change();voidkey_set();voiddelay(intm)//延时程序,延时m*0.5ms{uinti;uintj;for(i=0;i=250)//半秒,五百一秒{i=0;k++;flash=~flash;dop=!dop;}if(k>=2)//大于二归零{k=0;sec++;}if(sec>=60)//秒{sec=0;min++;}if(min>=60)//分{min=0;hour++;}if(hour>=24)//小时hour=0;P0=0xff;//P0初始化为全111111111if(mode==0)//正常显示{switch(j)//控制语句{case0:P0=seven_seg[sec%10];P2=0xfe;break;//秒个位case1:P0=seven_seg[sec/10];P2=0xfd;break;//秒十位case2:P0=seven_seg[min%10];P0_7=dop;P2=0xfb;break;case3:P0= seven_seg[min/10];P2=0xf7;break;case4:P0=seven_seg[hour%10];P 0_7=dop;P2=0xef;break;//dop为小数点case5:P0=seven_seg[hour/10];P2=0xdf;break;}}////////////////////if(mo de==1)//模式一C1状态{switch(j){case0:P0=seven_seg[min%10];P2=0xfe;break;case1:P0= seven_seg[min/10];P2=0xfd;break;case2:P0=seven_seg[hour%10]|fl ash;P2=0xfb;break;//flash为闪烁case3:P0=seven_seg[hour/10]|flash;P2=0xf7;break;case4:P0=seven_ seg[1];P2=0xef;break;//1为C1状态case5:P0=0xc6;P2=0xdf;break;//0xc6为显示C}}////////////////////if(mode==2)//模式二C1状态{switch(j){case0:P0=seven_seg[min%10]|flash;P2=0xfe;break;case1

:P0=seven_seg[min/10]|flash;P2=0xfd;break;case2:P0=seven_seg[h our%10];P2=0xfb;break;case3:P0=seven_seg[hour/10];P2=0xf7;bre ak;case4:P0=seven_seg[1];P2=0xef;break;case5:P0=0xc6;P2=0xdf;b reak;}}////////////////////if(mode==3)//模式三C2状态{switch(j){case0:P0=seven_seg[min_rom%10];P2=0xfe;break;case1 :P0=seven_seg[min_rom/10];P2=0xfd;break;case2:P0=seven_seg[h our_rom%10]|flash;P2=0xfb;break;case3:P0=seven_seg[hour_rom/1 0]|flash;P2=0xf7;break;case4:P0=seven_seg[2];P2=0xef;break;case5 :P0=0xc6;P2=0xdf;break;}}////////////////////if(mode==4)//模式四C2状态{switch(j){case0:P0=seven_seg[min_rom%10]|flash;P2=0xfe;break; case1:P0=seven_seg[min_rom/10]|flash;P2=0xfd;break;case2:P0=se ven_seg[hour_rom%10];P2=0xfb;break;case3:P0=seven_seg[hour_r om/10];P2=0xf7;break;case4:P0=seven_seg[2];P2=0xef;break;case5 :P0=0xc6;P2=0xdf;break;}}j++;if(j>=6)j=0;}voidkey(void)//调用开关函数{////////////////if(key_set==0)//设置{delay(300);if(key_set==0)key_set_s=1;}if(key_set==1if(mode>=5) mode=1;key_set_s=0;}/////////if(key_up==0)//上调{delay(300);if(key_up==0)key_up_s=1;}if(key_up==1if(mode==2) min++;if(mode==3)hour_rom++;if(hour_rom>=24)hour_rom=0;if( mode==4)min_rom++;if(min_rom>=60)min_rom=0;key_up_s=0;}// ///////////////if(key_down==0)//下调

相关文档
最新文档