日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]中斷函數(shù)注意如下:(1)中斷函數(shù)不能進(jìn)行參數(shù)傳遞,如果中斷函數(shù)中包含任何參數(shù)聲明都將導(dǎo)致編譯出錯(cuò)。(2)中斷函數(shù)沒有返回值,如果企圖定義一個(gè)返回值將得不到正確的結(jié)果,建議在定義中斷函數(shù)時(shí)將其定義為void類

中斷函數(shù)注意如下:
(1)中斷函數(shù)不能進(jìn)行參數(shù)傳遞,如果中斷函數(shù)中包含任何參數(shù)聲明都將導(dǎo)致編譯出錯(cuò)。
(2)中斷函數(shù)沒有返回值,如果企圖定義一個(gè)返回值將得不到正確的結(jié)果,建議在定義中斷函數(shù)時(shí)將其定義為void類型,以明確說明沒有返回值。
(3)在任何情況下都不能直接調(diào)用中斷函數(shù),否則會(huì)產(chǎn)生編譯錯(cuò)誤。因?yàn)橹袛嗪瘮?shù)的返回是由8051單片機(jī)的RETI指令完成的,RETI指令影響8051單片機(jī)的硬件中斷系統(tǒng)。如果在沒有實(shí)際中斷情況下直接調(diào)用中斷函數(shù),RETI指令的操作結(jié)果會(huì)產(chǎn)生一個(gè)致命的錯(cuò)誤。
(4)如果在中斷函數(shù)中調(diào)用了其它函數(shù),則被調(diào)用函數(shù)所使用的寄存器必須與中斷函數(shù)相同。否則會(huì)產(chǎn)生不正確的結(jié)果。
(5)C51編譯器對(duì)中斷函數(shù)編譯時(shí)會(huì)自動(dòng)在程序開始和結(jié)束處加上相應(yīng)的內(nèi)容,具體如下:在程序開始處對(duì)ACC、B、DPH、DPL和PSW入棧,結(jié)束時(shí)出棧。中斷函數(shù)未加using n修飾符的,開始時(shí)還要將R0~R1入棧,結(jié)束時(shí)出棧。如中斷函數(shù)加using n修飾符,則在開始將PSW入棧后還要修改PSW中的工作寄存器組選擇位。
(6)C51編譯器從絕對(duì)地址8m+3處產(chǎn)生一個(gè)中斷向量,其中m為中斷號(hào),也即interrupt后面的數(shù)字。該向量包含一個(gè)到中斷函數(shù)入口地址的絕對(duì)跳轉(zhuǎn)。

void IsrTimer0(void) interrupt [n] n為中斷號(hào),編譯器將n*8+3=中斷(入口)向量地址

也就是說:

中斷號(hào) 中斷名 中斷向量地址

0 INT 0(外部中斷0) 0003H

1 TIMER/COUNTER 0(定時(shí)/計(jì)數(shù)器0) 000BH

2 INT 1(外部中斷1) 0013H

3 TIMER/COUNTER 1(定時(shí)/計(jì)數(shù)器1) 001BH

4 SERIAL PORT(串口中斷) 0023H

5 TIMER/COUNTER 2(定時(shí)/計(jì)數(shù)器2) 002BH

外注: 上電復(fù)位 0000H


(7)中斷函數(shù)最好寫在文件的尾部,并且禁止使用extern存儲(chǔ)類型說明。防止其它程序調(diào)用。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉