0)/256;TL1=(65536-10000)%256;EA=1;ET0=1;ET1=1;TR0=1;TR1=0; //不能开启} /*********************************************************** 显示***********************************************************/void display(unsigned char hour,unsigned char minute){P0=0xFF;switch(position){case 0:smg_g=1;smg_q=0;P0=table[hour/10];delay(3);smg_q=1;break; case 1:smg_q=1;smg_b=0;P0=table[hour%10];if(tt>=10)P0|=0x80;//小数点以半秒的时间闪烁delay(3);smg_b=1;break; case 2:smg_b=1;smg_s=0;P0=table[minute/10];delay(3);smg_s=1;break;case 3:smg_s=1;smg_g=0;P0=table[minute%10];delay(3);smg_g=1;break;}position++;if(position>3)position=0;} /*********************************************************** 延时***********************************************************/void delay(unsigned int time){unsigned int x,y;for(x=time;x>0;x--)for(y=105;y>0;y--);} /*********************************************************** 定时器TO中断***********************************************************/void t0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt++;}/*********************************************************** 定时器T1中断***********************************************************/void int1() interrupt 3 //????? { TH1=(65536-10000)/256; TL1=(65536-10000)%256;m++; if(m==100){m=0;s++; if(s==100){s=0;}}} void XS(int xs,int xm )//????? { d1=(xs/1)%10; d2=(xs/10)%10; d3=(xm/1)%10; d4=(xm/10)%10; P0=table[d1]; smg_g=0; delay(1);smg_g=1; P0=table[d2]; smg_s=0; delay(1); smg_s=1; P0=table[d3]|0x80; smg_b=0; delay(1);smg_b=1; P0=table[d4]; smg_q=0; delay(1);smg_q=1; }void set_miaobiao(){if(up==0) {delay(1);if(up==0){TR1=~TR1;while(!up);}} if(down==0) {delay(1);if(down==0){TR1=0;m=0;s=0;while(!down);}}}
|