资源描述:
《基于at89c51设计的显示时钟程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#includereg52.h#defineucharunsignedchar#defineuintunsignedintunsignedcharcodetable[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};voiddisplay(uchar,uchar,uchar,uchar,uchar,uchar);voiddelayms(uint);ucharnum,num1,num2,num3,xs,xg,shi,ge,fs,fg;voidmain(){TMOD=
2、0x01;TH0=(65536-45872)256;TL0=(65536-45872)%256;EA=1;ET0=1;TR0=1;while(1){display(shi,ge,xs,xg,fs,fg);}}voiddisplay(ucharshi,ucharge,ucharxs,ucharxg,ucharfs,ucharfg){P1=0x01;P0=table[ge];delayms(10);P1=0x02;P0=table[shi];delayms(3);P1=0x04;P0=0xbf;delayms(3);P1=0x0
3、8;P0=table[xg];delayms(3);P1=0x10;P0=table[xs];delayms(3);P1=0x20;P0=0xbf;delayms(3);P1=0x40;P0=table[fg];delayms(3);P1=0x80;P0=table[fs];delayms(3);}voiddelayms(uintxms)显示延时{uinti,j;for(i=xms;i0;i--)for(j=110;j0;j--);}voidT0_1time()interrupt1{TH0=(65536-45872)256;
4、TL0=(65536-45872)%256;num++;if(num==20){num=0;num1++;if(num1==60){num1=0;num2++;if(num2==60){num2=0;num3++;if(num3==24){num3=0;}fs=num310;fg=num3%10;}xs=num210;xiaoshideshiweixg=num2%10;xiaoshidegewei}shi=num110;ge=num1%10;}}