//*f=6MHZ,定時器0以工作方式2(自動重裝8位定時器模式)、查詢方式產(chǎn)生100us定時,//并在P0.0輸出周期為2s的連續(xù)方波r控制LED燈,即亮1s滅1s*//#include sbit d1=P0^0;void timer();unsigned int num,tt;void main(){TMOD=0X02; //調(diào)置工作方式//TH0= 0Xce; //設(shè)初值TL0=0Xce;IE=0X00; //關(guān)中斷TR0=1; //定時器啟動 while(1) //大循環(huán){if(num==10000) //必須加此大循環(huán),否則程序從頭開始,所有變量均復(fù)位,//d1的值保持不變,因?yàn)槭冀Knum到此都為0 //d1=!d1; // 也可將此三句放到定時程序后,這樣,定時程序過后,num值為10000,//即達(dá)到要求定時時,(并沒有復(fù)位,因?yàn)槌绦驔]執(zhí)行完)//num=0; // 之后再輸出d1就會按要求變化//while(num<10000)//100us定時程序{if(TF0)//查詢100us定時是否到?//timer();}}}void timer(){ TF0=0; //查詢方式必須軟件清零,否則TF一直溢出為1,計(jì)時只在第一次準(zhǔn)確//num++;}
評論