国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

文/嚴(yán)成武

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

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

2 中斷現(xiàn)場保護(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型號單片機(jī)為例,說明中斷現(xiàn)場保護(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)前頁。

(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)場保護(hù)要求分析

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

又寫作“籠羅”。《晉書·劉元海載記》:“及元海僣號,人謂元達(dá)曰,‘往劉公相屈,君蔑而不顧,今稱號龍飛,君其懼乎?’元達(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)場的過程則與保護(hù)現(xiàn)場的過程相反。

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

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

語句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)場

語句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)場保護(hù)功能。

5 結(jié)束語

文章在對EM78P451單片機(jī)的中斷現(xiàn)場保護(hù)要求和指令功能進(jìn)行了分析之后,提出了一種簡單、可靠的單片機(jī)中斷現(xiàn)場保護(hù)方法,并給出了具體的保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場的程序。文章使用的方法具有通用性和易用性,并在基于義隆電子EM78P451型號單片機(jī)的中斷服務(wù)程序中得到應(yīng)用,取得了良好的效果,對單片機(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的信號發(fā)生器設(shè)計(jì)原理
分簇結(jié)構(gòu)向量寄存器分配策略研究*
基于霍夫變換的工位點(diǎn)識別算法設(shè)計(jì)與實(shí)現(xiàn)
水利工程施工監(jiān)理服務(wù)程序及質(zhì)量控制
用于時(shí)間延遲積分型圖像傳感器的流水采樣列級運(yùn)放共享累加器*
思茅市| 长沙市| 西华县| 丰城市| 开鲁县| 城口县| 汾阳市| 平南县| 米脂县| 定襄县| 通许县| 神木县| 东光县| 西峡县| 筠连县| 聂拉木县| 安西县| 格尔木市| 鄯善县| 石景山区| 收藏| 呼图壁县| 万源市| 云霄县| 安庆市| 雷山县| 高青县| 治多县| 会昌县| 会东县| 台北县| 乌海市| 常山县| 潢川县| 双流县| 隆化县| 萝北县| 嫩江县| 永清县| 屏边| 永登县|