• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      單片機(jī)的中斷現(xiàn)場(chǎng)保護(hù)

      2018-12-25 19:07:06嚴(yán)成武
      電子技術(shù)與軟件工程 2018年8期
      關(guān)鍵詞:服務(wù)程序累加器寄存器

      文/嚴(yán)成武

      1 中斷現(xiàn)場(chǎng)保護(hù)概念

      如果在中斷服務(wù)程序中要占用一些寄存器進(jìn)行運(yùn)算,而在主程序中這些寄存器也是很重要的,為了二者互不干擾,所以在進(jìn)入中斷服務(wù)程序時(shí)就要保存寄存器的數(shù)值,以便在從中斷返回后繼續(xù)正常的往下執(zhí)行,這種保存寄存器數(shù)值的過程就是現(xiàn)場(chǎng)保護(hù)。

      2 中斷現(xiàn)場(chǎng)保護(hù)要求

      在單片機(jī)運(yùn)行程序時(shí),一般要用到多個(gè)寄存器,特別是累加器、狀態(tài)寄存器等等,中斷服務(wù)程序是屬于一種處理突發(fā)性事件的程序,在正常運(yùn)行程序任意時(shí)刻都可以插入進(jìn)來的程序。所以,在進(jìn)入中斷程序時(shí),可能累加器保存著數(shù)據(jù),這時(shí)中斷程序也要用累加器,如果不保存,到退出中斷時(shí),原來的數(shù)據(jù)已經(jīng)變了,這樣就不知會(huì)發(fā)生什么狀況了。

      本文以義隆電子EM78P451型號(hào)單片機(jī)為例,說明中斷現(xiàn)場(chǎng)保護(hù)實(shí)現(xiàn)的方法。在EM78P451的硬件結(jié)構(gòu)中,有3個(gè)很重要的特殊功能寄存器,分別為:

      (1)累加器A。用于內(nèi)部數(shù)據(jù)傳輸。

      (2)狀態(tài)寄存器R3。保存單片機(jī)的各種狀態(tài)位和選擇ROM的當(dāng)前頁(yè)。

      (3)RAM選擇寄存器R4。選擇RAM的BANK區(qū)。

      通常,在使用EM78P451時(shí),主程序和中斷服務(wù)程序都會(huì)用到這3個(gè)寄存器。因此,進(jìn)入中斷程序時(shí),需要先將這3個(gè)寄存器保存到普通RAM中;在退出中斷程序時(shí),要將保存的值恢復(fù)到這3個(gè)寄存器中。

      3 指令功能及現(xiàn)場(chǎng)保護(hù)要求分析

      由于EM78P451沒有象51系列單片機(jī)那樣的PUSH、POP指令,所以我們要用一段程序來實(shí)現(xiàn)類似的功能。

      又寫作“籠羅”。《晉書·劉元海載記》:“及元海僣號(hào),人謂元達(dá)曰,‘往劉公相屈,君蔑而不顧,今稱號(hào)龍飛,君其懼乎?’元達(dá)曰,‘彼人姿度卓犖,有籠羅宇宙之志,吾固知之久矣?!庇謱懽鳌盎\落”?!墩f文·竹部》:“笯,鳥籠也?!薄冻o·九章》:“鳳皇在笯兮。王逸注云,‘笯,籠落也。’”《方言》:“笯,籠,南楚江沔之閑謂之篣。”以上“籠絡(luò)”“籠羅”“籠落”皆有“包羅、覆蓋”之義。

      要實(shí)現(xiàn)將這3個(gè)寄存器保存到普通RAM中,必須要用到數(shù)據(jù)傳送指令,而EM78P451中的所有數(shù)據(jù)傳送指令都要用到累加器A。因此,我們第一步必須先保存累加器A。而EM78P451中的絕大部分?jǐn)?shù)據(jù)傳送指令在運(yùn)行的過程中會(huì)改變狀態(tài)寄存器R3的數(shù)據(jù),所以在保護(hù)好狀態(tài)寄存器R3之前禁止使用會(huì)改變狀態(tài)寄存器R3的指令 。數(shù)據(jù)傳送指令不會(huì)改變選擇寄存器R4的值,可放在最后保存。

      綜上所述,我們應(yīng)首先用一條不會(huì)改變狀態(tài)寄存器R3的指令,將累加器A保存到普通RAM中;然后,再保存狀態(tài)寄存器R3;最后,保存選擇寄存器R4。

      恢復(fù)現(xiàn)場(chǎng)的過程則與保護(hù)現(xiàn)場(chǎng)的過程相反。

      4 中斷現(xiàn)場(chǎng)保護(hù)實(shí)現(xiàn)方法

      4.1 保護(hù)現(xiàn)場(chǎng)

      語句1:MOV TEMP_A,A ;保存累加器A,這條指令不影響R3的值

      語句2:SWAPA R3 ;將R3高低4位交換,并傳送到A

      語句3:MOV TEMP_R3,A ;保存R3

      語句4:MOV A,R4 ;將R 4傳送到A語句5:MOV TEMP_ R4,A ;保存R4

      4.2 恢復(fù)現(xiàn)場(chǎng)

      語句1:MOV A,TEMP_R4 ;將之前保存的R 4值傳送到A

      語句2:MOV R4,A ;恢復(fù)R4的值

      語句3:SWAPA TEMP_R3 ;將之前保存的R3的值,高低4位交換,并傳送到A

      語句4:MOV R3,A ;恢復(fù)R3的值

      語句5:SWAP TEMP_A ;將之前保存的A的值,高低4位交換,這條指令不影響R3的值

      語句6:SWAPA TEMP_A ;將之前保存的A的值再高低4位交換,并恢復(fù)A的值,這條指令不影響R3的值

      這樣,就完整地實(shí)現(xiàn)EM78P451單片機(jī)的中斷現(xiàn)場(chǎng)保護(hù)功能。

      5 結(jié)束語

      文章在對(duì)EM78P451單片機(jī)的中斷現(xiàn)場(chǎng)保護(hù)要求和指令功能進(jìn)行了分析之后,提出了一種簡(jiǎn)單、可靠的單片機(jī)中斷現(xiàn)場(chǎng)保護(hù)方法,并給出了具體的保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)的程序。文章使用的方法具有通用性和易用性,并在基于義隆電子EM78P451型號(hào)單片機(jī)的中斷服務(wù)程序中得到應(yīng)用,取得了良好的效果,對(duì)單片機(jī)的程序開發(fā)具有實(shí)際的參考價(jià)值。

      參考文獻(xiàn)

      [1]徐惠民,安德寧編著.單片微型計(jì)算機(jī)[M].北京郵電學(xué)院出版社,2013.

      [2]馬忠梅編著.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)[M].北京航空航天大學(xué)出版社,2014.

      猜你喜歡
      服務(wù)程序累加器寄存器
      基于移動(dòng)終端的人事信息員工自助服務(wù)系統(tǒng)設(shè)計(jì)
      基于移動(dòng)終端的人事信息員工自助服務(wù)系統(tǒng)設(shè)計(jì)
      密碼累加器研究進(jìn)展及應(yīng)用
      基于C#的進(jìn)程守護(hù)程序的設(shè)計(jì)
      視聽(2020年3期)2020-06-11 14:28:18
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      Fpga的信號(hào)發(fā)生器設(shè)計(jì)原理
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      基于霍夫變換的工位點(diǎn)識(shí)別算法設(shè)計(jì)與實(shí)現(xiàn)
      水利工程施工監(jiān)理服務(wù)程序及質(zhì)量控制
      用于時(shí)間延遲積分型圖像傳感器的流水采樣列級(jí)運(yùn)放共享累加器*
      化德县| 博湖县| 西盟| 泾源县| 永福县| 东明县| 静海县| 漯河市| 长子县| 台北市| 共和县| 渑池县| 平乡县| 景宁| 哈尔滨市| 论坛| 兴安盟| 荥阳市| 孝昌县| 射洪县| 虎林市| 泽普县| 来宾市| 安义县| 莱芜市| 阿尔山市| 正镶白旗| 依兰县| 宝兴县| 澄江县| 宝山区| 邵阳县| 敦煌市| 敦化市| 平顶山市| 醴陵市| 铜川市| 津南区| 从江县| 华亭县| 楚雄市|