欧美午夜欧美,台湾成人av,久久av一区,最近看过的日韩成人

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 單片機(jī) >> 正文

C51單片機(jī)中斷及寄存器使用的總結(jié)

作者:佚名    文章來源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2016-11-21

關(guān)鍵字:中斷寄存器

如果在中斷服務(wù)函數(shù) ISR 中使用寄存器,那么必須處理好 using 的使用問題:
1、中斷服務(wù)函數(shù)使用 using 指定與主函數(shù)不同的寄存器組(主函數(shù)一般使用 Register bank 0)。
2、中斷優(yōu)先級(jí)相同的ISR 可用 using 指定相同的寄存器組,但優(yōu)先級(jí)不同的 ISR 必須使用不同的寄存器組,在 ISR 中被調(diào)用的函數(shù)也要使用 using 指定與中斷函數(shù)相同的寄存器組。用reentranr指明可重入函數(shù)。
3、如果不用 using 指定,在 ISR 的入口,C51 默認(rèn)選擇寄存器組0,這相當(dāng)于中斷服務(wù)程序的入口首先執(zhí)行指令:
MOV PSW #0
這點(diǎn)保證了,沒使用 using 指定的高優(yōu)先級(jí)中斷。可以中斷使用不同的寄存器組的低優(yōu)先級(jí)中斷。
4、使用 using 關(guān)鍵字給中斷指定寄存器組,這樣直接切換寄存器組而不必進(jìn)行大量的 PUSH 和 POP 操作,可以節(jié)省RAM空間,加速 MCU 執(zhí)行時(shí)間。寄存器組的切換,總的來說比較容易出錯(cuò),要對(duì)內(nèi)存的使用情況有比較清晰的認(rèn)識(shí),其正確性要由你自己來保證。特別在程序中有直接地址訪問的時(shí)候,一定要小心謹(jǐn)慎!至于“什么時(shí)候要用到寄存器組切換”,一種情況是:當(dāng)你試圖讓兩個(gè)(或以上)作業(yè)同時(shí)運(yùn)行,而且它們的現(xiàn)場(chǎng)需要一些隔離的時(shí)候,就會(huì)用上了。在 ISR 或使用實(shí)時(shí)操作系統(tǒng) RTOS 中,寄存器非常有用。

寄存器組使用的原則:
1、8051 的最低32 個(gè)字節(jié)分成 4 組 8 寄存器。分別為寄存器R0 到R7。寄存器組由PSW 的低兩位選擇。在 ISR 中,MCU 可以切換到一個(gè)不同的寄存器組。對(duì)寄存器組的訪問不可位尋址,C51 編譯器規(guī)定使用using 或 禁止中斷的函數(shù)(#pragma disable )均不能返回 bit 類型的值。
2、主程序(main函數(shù))使用一組,如 bank 0;低中斷優(yōu)先級(jí)的所有中斷均使用第二組,如 bank 1;高中斷優(yōu)先級(jí)的所有中斷均使用再另外一組,如 bank 2。顯然,同級(jí)別的中斷使用同一組寄存器不會(huì)有問題,因?yàn)椴粫?huì)發(fā)生中斷嵌套;而高優(yōu)先級(jí)的中斷則要使用與低優(yōu)先級(jí)中斷不同的一組,因?yàn)橛锌赡艹霈F(xiàn)在低優(yōu)先級(jí)中斷中發(fā)生高優(yōu)先級(jí)中斷的情況。編譯器會(huì)自動(dòng)判斷何時(shí)可使用絕對(duì)寄存器存取。
3、在 ISR 中調(diào)用其它函數(shù),必須和中斷使用相同的寄存器組。當(dāng)沒用 NOAREGS 命令做明確的聲明,編譯器將使用絕對(duì)寄存器尋址方式訪問函數(shù)選定(即用 using 或 REGISTERBANK 指定)的寄存器組,當(dāng)函數(shù)假定的和實(shí)際所選的寄存器組不同時(shí),將產(chǎn)生不可預(yù)知的結(jié)果,從而可能出現(xiàn)參數(shù)傳遞錯(cuò)誤,返回值可能會(huì)在錯(cuò)誤的寄存器組中。
舉一例子:當(dāng)需要在中斷內(nèi)和中斷外調(diào)用同一個(gè)函數(shù),假定按照程序的流程控制,不會(huì)出現(xiàn)函數(shù)的遞歸調(diào)用現(xiàn)象,這樣的調(diào)用會(huì)不會(huì)出現(xiàn)問題?若確定不會(huì)發(fā)生重入情況,則有以下兩種情況:
1、如果 ISR 和主程序使用同一寄存器組(主程序缺省使用BANK 0,若 ISR 沒有使用 using 為其指定寄存器區(qū),則缺省也使用 BANK 0),則不需其他設(shè)置。
2、如果 ISR 和主程序使用不同的寄存器組(主程序缺省使用BANK 0,ISR 使用 using 指定了其他BANK),則被調(diào)用函數(shù)必須放在:
#pragma NOAREGS
#pragma AREGS
控制參數(shù)對(duì)中,指定編譯器不要對(duì)該函數(shù)使用絕對(duì)寄存器尋址方式;或者也可在 Options->C51,選中“Dont use absolute register accesses”,使所有代碼均不使用絕對(duì)寄存器尋址方式(這樣,執(zhí)行效率將稍有降低)。不論以上的哪一種情況,編譯器均會(huì)給出重入警告,需手工更改 OVERLAY 參數(shù),做重入說明。
3、還有一種辦法:如果被調(diào)用函數(shù)的代碼不是很長,還是將該函數(shù)復(fù)制一份,用不同的函數(shù)名代替,這種情況適合ROM有足夠多余的空間。
因此,對(duì)using關(guān)鍵字的使用,如果沒把握,寧可不用,交給編譯系統(tǒng)自己去處理好了。

#pragma disable
在函數(shù)前聲明,只對(duì)一個(gè)函數(shù)有用,該函數(shù)調(diào)用過程中,將不可被中斷。

遞歸或可重入函數(shù)指定


在主程序和中斷程序都調(diào)用的函數(shù)容易出現(xiàn)問題,用寄存器傳遞參數(shù),內(nèi)部變量在RAM中,函數(shù)重入時(shí)候,會(huì)破壞上次的數(shù)據(jù),用下面兩種方法解決函數(shù)重入問題:
在相應(yīng)的函數(shù)前,加“#pramga disable”聲明,只允許主程序或者中斷之一調(diào)用該函數(shù);
將該函數(shù)說明為可重入:VOID func(para..) reentrant;


指定存儲(chǔ)模式
由small compact 及l(fā)arge 說明,例如:
void fun1(void) small { }
提示:small 說明的函數(shù)內(nèi)部變量全部使用內(nèi)部RAM。關(guān)鍵的經(jīng)常性的耗時(shí)的
地方可以這樣聲明,以提高運(yùn)行速度。

Tags:C51單片機(jī),中斷,寄存器  
責(zé)任編輯:admin
請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評(píng)論
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
欧美午夜欧美,台湾成人av,久久av一区,最近看过的日韩成人
偷拍日韩校园综合在线| 亚洲精品伦理在线| 69堂精品视频| 91精品国产综合久久精品图片| 欧美三级韩国三级日本三斤| 欧美日韩一级片网站| 69久久夜色精品国产69蝌蚪网| 欧美色视频在线| 欧美刺激午夜性久久久久久久| 欧美一区二区视频网站| 欧美va在线播放| 日本一区二区三区久久久久久久久不 | 欧美在线一二三| 欧美午夜精品一区二区三区| 欧美精品久久久久久久久老牛影院| 欧美高清www午色夜在线视频| 欧美大尺度电影在线| 国产网站一区二区三区| 亚洲一区二区综合| 久久99精品国产.久久久久 | 中文字幕在线一区| 亚洲精品写真福利| 久久国产精品一区二区| 99久久精品一区| 777奇米四色成人影色区| 久久久久久亚洲综合| 亚洲精品日产精品乱码不卡| 日本vs亚洲vs韩国一区三区二区| 国产精品一区二区久久精品爱涩 | 国产麻豆一精品一av一免费 | 久久伊人中文字幕| 亚洲欧美日韩国产另类专区| 麻豆91精品91久久久的内涵| 丁香亚洲综合激情啪啪综合| 欧美日韩中文一区| 国产日韩欧美麻豆| 麻豆成人av在线| 天天综合日日夜夜精品| 26uuu色噜噜精品一区| 中文字幕中文乱码欧美一区二区| 亚洲一区二区三区四区在线| 国产一区二区伦理片| 欧美性猛交xxxx黑人交| 国产免费久久精品| 欧美bbbbb| 91国产精品成人| 中文幕一区二区三区久久蜜桃| 日韩影视精彩在线| 91免费观看视频在线| 欧美精品一区二区三区蜜桃 | 日本成人在线电影网| 成人涩涩免费视频| 精品国产成人系列| 五月婷婷综合网| 欧美性大战xxxxx久久久| 国产精品国产三级国产普通话蜜臀 | 欧美亚洲禁片免费| 亚洲色图在线看| 从欧美一区二区三区| 久久欧美中文字幕| 麻豆精品一区二区| 这里是久久伊人| 亚洲最快最全在线视频| 91在线视频在线| 国产精品传媒入口麻豆| 国产91丝袜在线18| 国产欧美日韩卡一| 国产91露脸合集magnet | 欧美剧在线免费观看网站| 一区二区三区四区亚洲| www.欧美色图| 亚洲欧美在线视频观看| 日本黄色一区二区| 亚洲成人久久影院| 欧美日韩综合不卡| 午夜伦欧美伦电影理论片| 欧美色老头old∨ideo| 亚洲一区二区av电影| 91精品国产综合久久久久| 日韩国产欧美在线观看| 911精品国产一区二区在线| 美女尤物国产一区| 久久精品免费在线观看| k8久久久一区二区三区| 一区二区三区高清| 欧美一区二区三区免费大片| 精品一区二区三区视频| 欧美精彩视频一区二区三区| 91色porny蝌蚪| 香蕉加勒比综合久久| 日韩你懂的电影在线观看| 国产一区二区导航在线播放| 国产精品无遮挡| 欧美女孩性生活视频| 国产一区二区三区观看| 中文字幕av在线一区二区三区| 一本大道久久a久久综合婷婷| 亚洲一区二区三区四区在线免费观看 | 色www精品视频在线观看| 天堂av在线一区| 2017欧美狠狠色| 日本精品一级二级| 国产一区二区三区免费| 亚洲最快最全在线视频| 久久久不卡网国产精品一区| 97久久精品人人澡人人爽| 视频一区视频二区在线观看| 久久九九全国免费| 欧美日高清视频| 国产成人午夜精品5599| 香蕉成人伊视频在线观看| 欧美国产成人在线| 日韩欧美视频一区| 色一情一伦一子一伦一区| 国产麻豆午夜三级精品| 日日骚欧美日韩| 亚洲女人****多毛耸耸8| 久久这里只有精品视频网| 在线成人小视频| 99国产精品久久久久久久久久久| 精品亚洲成a人在线观看| 亚洲高清在线视频| 最新不卡av在线| 久久精品水蜜桃av综合天堂| 欧美一区二区三区系列电影| 91视频你懂的| www.欧美日韩国产在线| 国产高清在线精品| 激情综合网av| 日本不卡123| 日本不卡123| 日韩av电影天堂| 日韩成人午夜电影| 亚洲一区二区三区小说| 一区二区成人在线| 亚洲日本在线视频观看| 亚洲婷婷综合久久一本伊一区| 久久久久久9999| 国产亚洲1区2区3区| 26uuu国产在线精品一区二区| 欧美成人伊人久久综合网| 欧美精品日韩一区| 91精品麻豆日日躁夜夜躁| 欧美日精品一区视频| 91成人免费网站| 在线看日韩精品电影| 日本乱人伦aⅴ精品| 欧美亚洲动漫制服丝袜| 欧美日韩二区三区| 69堂成人精品免费视频| 777奇米成人网| 欧美精品一区二区三区在线| 国产欧美一区二区在线| 国产精品久久久久影院亚瑟| 亚洲欧洲成人精品av97| 亚洲靠逼com| 日韩成人免费电影| 精品一区二区成人精品| 懂色av噜噜一区二区三区av| 99麻豆久久久国产精品免费| 在线中文字幕一区| 51午夜精品国产| 国产亚洲欧美色| 亚洲猫色日本管| 日本不卡一区二区| 国产精品羞羞答答xxdd| 色综合久久天天综合网| 在线播放一区二区三区| 精品国产不卡一区二区三区| 国产精品免费网站在线观看| 一卡二卡三卡日韩欧美| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产麻豆午夜三级精品| jlzzjlzz国产精品久久| 欧美一级欧美三级| 国产精品美女久久久久aⅴ| 亚洲国产精品久久久男人的天堂| 久久精品噜噜噜成人av农村| 成人爱爱电影网址| 日韩一级在线观看| 国产精品乱人伦| 亚洲成人综合在线| 高清成人在线观看| 欧美日韩精品一区二区三区| 久久精品一区二区三区四区| 一个色妞综合视频在线观看| 国产毛片精品视频| 欧美日韩在线播放| 国产人妖乱国产精品人妖| 亚洲午夜羞羞片| 成人激情免费视频| 日韩精品一区二区三区三区免费 | 亚洲视频免费在线| 麻豆免费看一区二区三区| 日本黄色一区二区| 久久久久国产免费免费| 男女男精品网站| 欧美视频日韩视频| 亚洲美腿欧美偷拍| 处破女av一区二区|