C51的中斷函數(shù)

C51的中斷函數(shù)

ID:38152919

大?。?16.67 KB

頁(yè)數(shù):3頁(yè)

時(shí)間:2019-05-27

C51的中斷函數(shù)_第1頁(yè)
C51的中斷函數(shù)_第2頁(yè)
C51的中斷函數(shù)_第3頁(yè)
資源描述:

《C51的中斷函數(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、C51的中斷函數(shù)C51編譯器允許用C51創(chuàng)建中斷服務(wù)程序。僅僅需要關(guān)心中斷號(hào)與寄存器組的選擇就可以了。編譯器自動(dòng)產(chǎn)生中斷向量與程序的入棧及出棧代碼。在函數(shù)聲明時(shí)包括interrupt,將把所聲明的函數(shù)定義為一個(gè)中斷服務(wù)程序。另外,可以用using定義此中斷服務(wù)程序所使用的寄存器組。(關(guān)于51單片機(jī)的中斷系統(tǒng)可以閱讀相關(guān)章節(jié))在介紹中斷函數(shù)的定義之前,先來(lái)介紹一個(gè)51單片機(jī)的通用工作寄存器區(qū):00H~1FH單元共32個(gè)字節(jié),是4個(gè)通用工作寄存器區(qū),每個(gè)區(qū)含8個(gè)寄存器,編號(hào)為R0~R7。在專(zhuān)用寄存器PSW(程序狀態(tài)字)中由RS0、RS1來(lái)確定采用哪一個(gè)工作寄存

2、器區(qū)。若程序中并不需要4組工作寄存器,那么剩下的工作寄存器區(qū)所對(duì)應(yīng)的單元也可以作一般的數(shù)據(jù)緩沖器使用。(1)中斷函數(shù)的定義:中斷函數(shù)定義的格式為:函數(shù)類(lèi)型函數(shù)名interruptnusingn其中:1.interrupt后面的n是中斷號(hào)。2.關(guān)鍵字using后面的n是所選擇的寄存器組,取值范圍是0~3。(這里所說(shuō)的0~3號(hào)寄存器組就是上面所述的4個(gè)通用工作寄存器區(qū))定義中斷函數(shù)中,using是一個(gè)選項(xiàng),可以省略不用。如果不用using選項(xiàng),則由編譯器選擇一個(gè)寄存器組作為絕對(duì)寄存器組。51單片機(jī)的中斷過(guò)程通過(guò)使用interrupt關(guān)鍵字與中斷號(hào)來(lái)實(shí)現(xiàn),中斷號(hào)

3、告訴編譯器中斷程序的入口地址。中斷號(hào)對(duì)應(yīng)著IE寄存器中的全能位,換句話說(shuō),IE寄存器中的0位對(duì)應(yīng)著外部中斷0,相應(yīng)的外部中斷0的中斷號(hào)是0。(關(guān)于IE寄存器的詳細(xì)內(nèi)容請(qǐng)參加相關(guān)章節(jié))IE寄存器中的全能位與外部中斷對(duì)應(yīng)關(guān)系如下表:IE寄存器中的使能位與C51中的中斷號(hào)中斷源0外部中斷01定時(shí)器0溢出2外部中斷13定時(shí)器1溢出4串行口中斷5定時(shí)器2溢出以下是兩個(gè)中斷函數(shù)的例子,分別是串口與定時(shí)器0中斷:voidsio_int()interrupt4using3{//中斷處理程序}voidtimer0(void)interrupt1{//中斷處理程序}以上只是簡(jiǎn)

4、單的例子,完整詳細(xì)的對(duì)中斷系統(tǒng)的講解請(qǐng)見(jiàn)專(zhuān)門(mén)的章節(jié)。使用中斷函數(shù)時(shí)要注意的幾個(gè)問(wèn)題:1)在設(shè)計(jì)中斷地,要注意的是哪些功能應(yīng)該放在中斷程序中,哪些功能應(yīng)該放在主程序中。一般來(lái)說(shuō)中斷服務(wù)程序應(yīng)該做最少量的荼,這樣做有很多好處。首先系統(tǒng)對(duì)中斷的反應(yīng)面更寬了,有些系統(tǒng)如果丟失中斷或?qū)χ袛喾磻?yīng)太慢將產(chǎn)生十分嚴(yán)重的后果。這時(shí)有充足的時(shí)間等待中斷是十分重要的。其次它可使中斷服務(wù)程序的結(jié)構(gòu)簡(jiǎn)單,不容易出錯(cuò)。2)中斷函數(shù)不能傳遞參數(shù)。3)中斷函數(shù)沒(méi)有返回值。4)中斷函數(shù)調(diào)用其他函數(shù),則要保證使用相同的寄存器組,否則出錯(cuò)。5)中斷函數(shù)使用浮點(diǎn)運(yùn)算要保存浮點(diǎn)寄存器的狀態(tài)。(2)

5、C51的庫(kù)函數(shù)C51的開(kāi)發(fā)環(huán)境提供了很多短小精悍的函數(shù),可以很方便地使用。如:#include#include/*此程序用以說(shuō)明C51庫(kù)函數(shù)的使用*/voidmain(){floatx=2.00,y?y=cos(x)?//調(diào)用數(shù)學(xué)庫(kù)中的余弦函數(shù)while(1)?}在本書(shū)后面的章節(jié)中有結(jié)C51庫(kù)函數(shù)的詳細(xì)介紹,敬請(qǐng)翻閱。

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。