uchar temp=30; uchar Mode=2; void delay(int x) //定义时间间隔 { while(x--); } void PutTime() { DispBuf[7]=sec; DispBuf[6]=sec/10; DispBuf[5]=disp_null; DispBuf[4]=disp_null; DispBuf[3]=disp_null; DispBuf[2]=disp_null; DispBuf[1]=disp_null; DispBuf[0]=disp_null; } void display() {
uchar i; for(i=0;i<8;i++) { P2=0; P2=1<
if(sec>99) sec=0; } } void Button_Control() { if(Key==0) { delay(3000); if(Key==0) { Mode=(Mode+1)%3; while(Key==0); } } if(Mode==0) sec=0; if(Mode==1) time_Eclipse();
if(Mode==2); } void main() { while ( 1 ) { display(); Button_Control(); PutTime(); } } 图4 0-99码表,按一次开始计时,第二次停止
图5 0-99码,按表第三次清零 5. 扩展要求: 通过3个按键实现时钟的调整 #include\ #define uchar unsigned char #define disp_null 10 uchar code tab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf}; //共阳数码管显示0~9的段码表 uchar dispBuf[8]; uchar hour=13,min=23,sec=25; //分别给时、