51學(xué)習之定時(shí)器中斷
1.查詢(xún)
void Init_T0 (void) 定時(shí)器初始化
{
}
void Main() 主函數
{ Init_T0 ();
2.進(jìn)入中斷處理
void Init_T0 (void) 定時(shí)器初始化
{
}
void Time0_Int() interrupt 1 中斷處理函數
{
}
void Main() 主函數
{
對于查詢(xún)方式,一定要手動(dòng)清楚中斷標志。
上面2段程序,我屏蔽了,中斷時(shí)重新裝計數初值的語(yǔ)句,程序都可正常運行,所以我認為無(wú)論對于那種處理方式,重裝初值都不必要。
初始化時(shí),可定義輸出口的初始狀態(tài)。而在處理中斷時(shí),一定要用取反語(yǔ)句。手動(dòng)置0或1,程序不能正常運行。
對于方式2,開(kāi)始main中沒(méi)寫(xiě)最后的while(1),程序不正常運行。
上述定時(shí)最大為65535,約65ms.如果計時(shí)大于此,可在中斷中處理。
程序如下:
int a;
void Time0_Int() interrupt 1
{
{ a=0;
}
}
呵呵,在寫(xiě)上面這一小段時(shí),開(kāi)始沒(méi)寫(xiě)a=0,燈一直亮,后來(lái)參考下,發(fā)現不清0.a一直變大,程序只能執行一次。
評論