今天是拿到单片机的第五天了,经过五天的挑灯学习,单片机的基础也算了解的三三两两了。
解决了定时器问题,早上逃课,趁热打铁,把电子钟的程序写完。有一年没有写复杂的程序了,今天的过程也是磕磕碰碰,问题颇多。废话不说了,想玩wow了。有图有真相。
#include#define unchar unsigned char //sbit beep=P1^5; unchar temp=0; unsigned char code shuzi[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; unsigned char count[]={0,0,10,5,5,10,3,2}; void delay(void) { int i=100; while(--i); } unchar time(unchar j) { if (temp==20) { temp=0 ; ++count[0]; if (count[0]==10) { count[0]=0; ++count[1]; } if(count[1]==6) { count[1]=0; ++count[3]; } if (count[3]==10) { count[3]=0; ++count[4]; } if (count[4]==6) { count[4]=0; ++count[6]; } if (count[6]==10) { count[6]=0; ++count[7]; } if (count[7]==3) count[7]=0; if (count[7]==2&&count[6]==4) count[7]=count[6]=0; } return count[j]; } void main() { unchar num,i,j; EA=1; ET0=1; TMOD=0x01; TL0=15535%256; TH0=15535/256; TR0=1; while(1) { P2=0xff; i=1; for (j=0;j<8;++j) { num=time(j); P2=P2-i; P0=shuzi[num]; i=i*2; delay(); } } } void duan() interrupt 1 { TL0=15535%256; TH0=15535/256; ++temp; }
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』