資源描述:
《簡(jiǎn)易秒表程序》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、一、基本要求(1)讓一只LED燈自由閃爍(即間歇式亮滅)。(2)讓數(shù)碼管的低兩位顯示一個(gè)兩位數(shù)50。(3)使用一按鍵控制上述數(shù)字的加1,每按一下數(shù)字加1,當(dāng)加到59時(shí),再按一下,則從0開(kāi)始,即在0到59循環(huán)加。(4)使用另一按鍵控制上述數(shù)字的減1,每按一下數(shù)字減1,當(dāng)減到0時(shí),再按一下,則從59開(kāi)始,即在0到59循環(huán)減。三、提高部分(1)做一順時(shí)計(jì)時(shí)秒表,以一秒為單位計(jì)時(shí),分和秒之間用一小數(shù)點(diǎn)作間隔(2)用一個(gè)按鍵控制該計(jì)時(shí)秒表的暫停與繼續(xù),另一個(gè)按鍵使秒表復(fù)位(即數(shù)碼管歸位到0)。(3)能用按鍵設(shè)定某一時(shí)刻,當(dāng)計(jì)時(shí)到達(dá)這一
2、時(shí)刻時(shí),LED燈閃爍,且秒表停止變?yōu)?。(4)其它自由發(fā)揮一.用定時(shí)器0的方式1實(shí)現(xiàn)第一個(gè)發(fā)光管一200μm間隙閃爍,用定時(shí)器1的方式1實(shí)現(xiàn)數(shù)碼管前兩位59s循環(huán)計(jì)時(shí)#include#defineunsignedchar#defineuintunsignedintsbitdula=P2^6;//申明U1鎖存器的所存端sbitwela=P2^7;//申明U2鎖存器的所存端sbitled1=P1^0;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6b,0x7d,0x0
3、7,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelayms(uint);voiddisplay(uchar,uchar);ucharnum,num1,num2,shi,ge;voidmain(){TMOD=0x11;TH0=(65536-45872)/256;TL0=(65536-45872)%256;TH1=(65536-45872)/256;TL1=(65536-45872)%256;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;while(1){displa
4、y(she,ge);}}voiddisplay(ucharshi,ucharge){dula=1;P0=table[shi];dula=0;P0=0xff;wela=1;P0=0xfe;wela=0;delayms(5);dula=1;P0=table[ge];dula=0;P0=0xff;wela=1;P0=0xfd;wela=0;delayms(5);}voiddelayms(uintxms);{uinti,j;for(i=xms;i--)for(j=110;j>0;j--);}voidT0_time()interrup
5、t1{TH0=(65536-45872)/256;TL0=(65536-45872)%256;num1++;if(num1==4){num1=0;led=~led1;}voidT1_time()interrupt3{TH1=(65536-45872)/256;TL1=(65536-45872)%256;num2++;if(num2==20){num2=0;num++;if(num==60)Num=0;shi=num/10;ge=num%10;}}