C51 中斷服務(wù)程序的寫法
格式:void 函數(shù)名()interrupt 中斷號 using 工作組
{
中斷服務(wù)程序內(nèi)容
}
注意:中斷不能返回任何值,所以前面是 void 后面是函數(shù)名,名字可以自己起,但不要與c語言的關(guān)鍵字相同;中斷函數(shù)不帶任何參數(shù),所以 函數(shù)名后面的() 內(nèi)是 空的,中斷號是指單片機(jī)的幾個中斷源的序號。這個序號是單片機(jī)識別不同中斷的唯一標(biāo)志。所以一定要寫正確。
后面的using 工作組 是指這個這個中斷使用單片機(jī)內(nèi)存中 4 個工作寄存器的哪一組,c51 編譯后會自動分配工作組,因此最后這句話我們通常省略不寫。 c51 中斷寫法實(shí)例
void T1-time() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
}
上面的意思是定時器1 的中斷服務(wù)程序,定時器1的中斷服務(wù)序號是3 ,因此我們要寫成 interrupt 3 ,服務(wù)程序的內(nèi)容是給 兩個初值寄存器裝入新值。。
寫中斷前的準(zhǔn)備
1TMOD 賦值確定工作方式。T0還是T1的工作方式。
2計(jì)算初值裝入 TH0 TL0 或者TH1 TL1
3中斷方式時 ,對 IE 賦值,開放中斷。
4使 TR0 和 TR1 置位,啟動定時器/計(jì)數(shù)器定時/計(jì)數(shù)。