




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、AVR單片機(jī)原理及應(yīng)用關(guān)于狀態(tài)寄存器SREG 1 狀態(tài)寄存器SREG(MCS51類似的寄存器為程序狀態(tài)字PSW,有進(jìn)位/借位CY, 輔助進(jìn)位AC, 用戶標(biāo)志F0, 溢出OV, 奇偶標(biāo)志P等)其各標(biāo)志位意義如下:全局中斷觸發(fā)禁止位,為中斷總控制開關(guān)。將其清除,則禁止一切中斷(但在異步工作方式下的 T/C2 的中斷喚醒MCU功能除外):通用標(biāo)志位,可將一對(duì)程序執(zhí)行起重要作用(或常用)的標(biāo)志位放在此處,通過對(duì)它測(cè)試,實(shí)現(xiàn)執(zhí)行不同功能。如:可用BLD指令將T標(biāo)志位76543210 $3F($5F)ITHSVNZC送至寄存器某位,或用BST指令將寄存器某位存于T標(biāo)志位,實(shí)現(xiàn)快速檢測(cè)判斷:半進(jìn)位標(biāo)志位,指
2、示加、減運(yùn)算時(shí),低四位向高四位產(chǎn)生的進(jìn)(借)位。以其與進(jìn)位C配合,可實(shí)現(xiàn)十進(jìn)制加減法運(yùn)算軟件調(diào)整(DAA)功能;或用于十進(jìn)制數(shù)增(如數(shù)字鐘)調(diào)整場(chǎng)合:符號(hào)標(biāo)志位,在正常運(yùn)算條件下(,不溢出),即運(yùn)算結(jié)果最高位作為符號(hào)是正確的。而當(dāng)產(chǎn)生溢出時(shí),此時(shí) 已不能正確指示運(yùn)算結(jié)果之正負(fù),但 仍是正確的。對(duì)于單(或多)字節(jié)有符號(hào)數(shù)據(jù)來說,執(zhí)行減法或比較操作之后,標(biāo)志能正確指示參與相減或比較的兩個(gè)數(shù)的大?。阂绯鰳?biāo)志位,模補(bǔ)碼(即符號(hào)數(shù))加、減運(yùn)算溢出之標(biāo)志,溢出表示運(yùn)算結(jié)果超過了符號(hào)數(shù)所能表示的范圍(-128+127)。加法溢出表現(xiàn)為正正負(fù),或負(fù)負(fù)正;減法溢出表現(xiàn)為正負(fù)負(fù),或負(fù)正正。溢出時(shí),運(yùn)算結(jié)果最高位(
3、即 )取反才是真正的結(jié)果符號(hào)。例如: $30$50$80,正正負(fù),溢出$80$90$10,負(fù)負(fù)正,也為溢出:負(fù)數(shù)標(biāo)志位,直接取自運(yùn)算結(jié)果最高位。時(shí)運(yùn)算結(jié)果為負(fù),否則為正。但溢出時(shí)不能表示真實(shí)結(jié)果(見上條對(duì)溢出標(biāo)志的說明)。:零標(biāo)志位,用以標(biāo)示數(shù)據(jù)算術(shù)運(yùn)算或邏輯運(yùn)算結(jié)果是否為零,或多字節(jié)數(shù)據(jù)算術(shù)運(yùn)算(包括比較)結(jié)果是否為零。運(yùn)算(比較)結(jié)果為零(即所有位都清除)時(shí),標(biāo)志置位。就字節(jié)型數(shù)據(jù)運(yùn)算結(jié)果來說,的邏輯表達(dá)式為/R7/R6/R5/R4/R3/R2/R1/R0:進(jìn)/借位標(biāo)志位,標(biāo)志加法產(chǎn)生的進(jìn)位,或減法產(chǎn)生的借位。多字節(jié)加、減法(包括比較)運(yùn)算時(shí),通過將產(chǎn)生的進(jìn)位或借位提供給高位字節(jié),以實(shí)現(xiàn)多
4、字節(jié)正確相加或相減。也是判斷相減(比較)兩個(gè)無符號(hào)數(shù)大小的標(biāo)志。多字節(jié)移位操作時(shí)以傳遞銜接。對(duì)全部標(biāo)志位都可進(jìn)行置位、清位操作;都可檢測(cè)各標(biāo)志位,以檢測(cè)結(jié)果決定程序走向,引出繁多的條件轉(zhuǎn)移指令。標(biāo)志位很重要,對(duì)運(yùn)算結(jié)果的判斷處理,要以相應(yīng)標(biāo)志位為依據(jù)。它們也是分支、循環(huán)走向的路標(biāo)。初學(xué)者因?yàn)椴皇煜ぶ噶钕到y(tǒng),編程時(shí)要時(shí)時(shí)檢索各指令功能及其執(zhí)行后對(duì)標(biāo)志位的影響,故要熟記才能提高編程的速度和質(zhì)量。例:ADD運(yùn)算時(shí)各標(biāo)志位定義對(duì)于其它指令,C,Z,V,H定義式可能不同2 執(zhí)行指令對(duì)標(biāo)志位的影響各類指令對(duì)標(biāo)志位的影響歸納如下:位加減法(包括帶/不帶進(jìn)(借)位的加、減法,以及求補(bǔ)和帶/不帶借位比較等)指令
5、,影響標(biāo)志位 。 字加/減立即數(shù)(063)指令和求反指令不影響標(biāo)志位。 增、減指令不影響標(biāo)志位和。 邏輯運(yùn)算指令都不影響標(biāo)志位和,但清除溢出標(biāo)志位。其中CLR指令還清除標(biāo)志位、,并使。關(guān)于狀態(tài)寄存器SREG 邏輯左移和循環(huán)左移指令同位加法指令一樣影響標(biāo)志位 。邏輯右移和循環(huán)右移指令以及算術(shù)右移指令都不影響半進(jìn)位標(biāo)志 ,但由于這些指令的特殊性,對(duì)標(biāo)志位的影響面可進(jìn)一步縮小或可簡(jiǎn)化。如算術(shù)右移指令不影響標(biāo)志位和 ,并使 ;邏輯右移指令清除標(biāo)志位,使 等等。 轉(zhuǎn)移指令中除中斷返回指令RETI會(huì)置位全局中斷控制標(biāo)志位外,其他指令都不影響標(biāo)志位。 數(shù)據(jù)傳送指令如不向狀態(tài)寄存器SREG輸出數(shù)據(jù),對(duì)標(biāo)志位無
6、影響。 位操作指令只影響作為操作對(duì)象的標(biāo)志位。關(guān)于狀態(tài)寄存器SREG 關(guān)于狀態(tài)寄存器SREG3 標(biāo)志位與運(yùn)算結(jié)果的關(guān)系運(yùn)算時(shí),計(jì)算機(jī)按二進(jìn)制(或十六進(jìn)制)逐位運(yùn)算得到結(jié)果,但會(huì)給出相應(yīng)標(biāo)志,以讓用戶判斷結(jié)果是否正確。一般地,無符號(hào)數(shù)運(yùn)算結(jié)果是否正確只需看C和Z,而符號(hào)數(shù)運(yùn)算要看N、V、(S)和Z。(半進(jìn)位標(biāo)志H主要用于十進(jìn)制運(yùn)算調(diào)整)例1:加法 $30 + $50 = $80 運(yùn)算后C=0, Z=0, N=1, V=1, S=0作為無符號(hào)數(shù)加法時(shí), C=0(無進(jìn)位), 結(jié)果正確作為符號(hào)數(shù)加法時(shí),V=1(溢出), N=1(負(fù)數(shù)),不正確,應(yīng)軟件修正(如用2個(gè)字節(jié)表示, S=0, 應(yīng)為正數(shù) $00
7、80)3 標(biāo)志位與運(yùn)算結(jié)果的關(guān)系例2:$80 + $90 = $10運(yùn)算后,C=1, Z=0, N=0, V=1, S=1作為無符號(hào)數(shù)運(yùn)算時(shí),C=1(有進(jìn)位)應(yīng)加到高字節(jié),否則結(jié)果不正確作為符號(hào)數(shù)運(yùn)算時(shí), V=1(溢出), N=0(正數(shù)),不正確,應(yīng)軟件修正(如用2個(gè)字節(jié)表示, S=1, 應(yīng)為負(fù)數(shù) $FF10)-128 + -112 = -240例3:$EB + $CA = $B5運(yùn)算后,C=1, Z=0, N=1, V=0, S=1, H=1作為無符號(hào)數(shù)運(yùn)算時(shí),C=1(有進(jìn)位)應(yīng)加到高字節(jié),否則結(jié)果不正確作為符號(hào)數(shù)運(yùn)算時(shí), V=0(未溢出), N=1(負(fù)數(shù)),S=1(=N), 結(jié)果正確,不必
8、修正(-21 + -54 = -75)關(guān)于狀態(tài)寄存器SREG 4 用軟件實(shí)現(xiàn)十進(jìn)制加、減法調(diào)整子程序的設(shè)計(jì)方法(即軟件DAA)計(jì)算機(jī)采用的十進(jìn)制操作數(shù)一般為壓縮型8421 BCD 碼.每個(gè) BCD 代表位十進(jìn)制數(shù),每位BCD碼共存于同一字節(jié)單元中。BCD運(yùn)算涉及狀態(tài)寄存器中的進(jìn)位和半進(jìn)位 ,它們分別為高、低位 BCD的進(jìn)(借)位。在進(jìn)行 BCD碼的加減運(yùn)算時(shí),計(jì)算機(jī)是按二進(jìn)制數(shù)對(duì)待的,因此會(huì)產(chǎn)生與十進(jìn)制運(yùn)算規(guī)則不相符合的情況:關(guān)于狀態(tài)寄存器SREG 當(dāng)產(chǎn)生進(jìn)(借)位(或)時(shí),該進(jìn)(借)位等于16(對(duì)涉及的一位BCD碼而言),而在十進(jìn)制運(yùn)算時(shí)應(yīng)等于10,二者相差6。 可能產(chǎn)生非法 BCD 碼(A
9、F)。產(chǎn)生原因有二:一是在十進(jìn)制加法運(yùn)算時(shí),該產(chǎn)生進(jìn)位而按二進(jìn)制運(yùn)算卻不能產(chǎn)生進(jìn)位,使和成為非法 BCD 碼;二是相減產(chǎn)生借位時(shí),借位應(yīng)為10而按二進(jìn)制運(yùn)算為16,使差多并可能使差變?yōu)榉欠˙CD碼。軟件 DAA 即為糾正以上“錯(cuò)誤”而設(shè)。從以上說明看到,“糾錯(cuò)”的方法是做加減調(diào)整以及解決相關(guān)問題。關(guān)于狀態(tài)寄存器SREG (1)加法DAA經(jīng)實(shí)踐考察,BCD碼加法運(yùn)算可產(chǎn)生以下種情況,注意這里講的進(jìn)位是對(duì)和的泛指。 不須調(diào)整。特點(diǎn)是既不產(chǎn)生進(jìn)位,也不產(chǎn)生非法,如$22$11$33。 產(chǎn)生非法BCD,必須對(duì)非法BCD加調(diào)整。特點(diǎn)是BCD碼相加后不產(chǎn)生進(jìn)位,但加調(diào)整后產(chǎn)生進(jìn)位,如$36$37$6D,加
10、$06調(diào)整后變?yōu)?73(產(chǎn)生半進(jìn)位)。$68$87$EF,加$66調(diào)整后變?yōu)?155(產(chǎn)生進(jìn)位和半進(jìn)位)等。關(guān)于狀態(tài)寄存器SREG 產(chǎn)生進(jìn)位,必須加調(diào)整。特點(diǎn)是BCD碼相加只產(chǎn)生進(jìn)位,不會(huì)同時(shí)產(chǎn)生非法BCD碼;而加調(diào)整后既不會(huì)再產(chǎn)生進(jìn)位(而是清除了原來的進(jìn)位),也不會(huì)產(chǎn)生非法BCD。例$99$99$132,進(jìn)位和半進(jìn)位都置位,故加$66來調(diào)整:$32$66$98,并要恢復(fù)進(jìn)位。綜合以上種情況,得出下面加法DAA之實(shí)現(xiàn)方法:首先保存BCD碼相加后的狀態(tài)寄存器SREG(保存其中的進(jìn)位和半進(jìn)位,分別稱為Co和 Ho),再將BCD碼之和加上立即數(shù)$66,產(chǎn)生出新的進(jìn)位Cn和半進(jìn)位Hn。關(guān)于狀態(tài)寄存器S
11、REG 若Co、Cn中有一個(gè)置位(只能有一個(gè)),說明高位BCD滿足調(diào)整條件并調(diào)整完畢;否則為不夠調(diào)整條件,應(yīng)減$60恢復(fù)。若Ho、Hn中有一個(gè)置位(只能有一個(gè)),說明低位BCD滿足調(diào)整條件并調(diào)整完畢;否則為不夠調(diào)整條件,應(yīng)減恢復(fù)。程序中是將新舊進(jìn)位、半進(jìn)位對(duì)應(yīng)或起來,只對(duì)或結(jié)果進(jìn)行判斷。注意,軟件DAA功能既要保證本字節(jié)壓縮BCD碼相加值的正確性,又要保證對(duì)高位BCD產(chǎn)生進(jìn)位的正確性,故要將 CoCn 的結(jié)果返還給SREG中的進(jìn)位,使下一步能正確實(shí)現(xiàn)高位字節(jié)BCD帶進(jìn)位加。ADDAA為BCD 碼相加調(diào)整子程序,使用寄存器 R16作為工作單元,使用 R17、R6兩個(gè)寄存器作為輔助工作單元,所有調(diào)整工作都在R16中進(jìn)行關(guān)于狀態(tài)寄存器SREG 關(guān)于狀態(tài)寄存器SREG (2)減法DAA由實(shí)踐可知,減法DAA要比加法來得簡(jiǎn)單:只須對(duì)產(chǎn)生借位(泛指和 )的BCD碼進(jìn)行調(diào)整。BCD碼減法運(yùn)算,只有以下兩種情況: 不產(chǎn)生借位,不須調(diào)整,如$2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中長(zhǎng)期的借款合同
- 展覽館管理合作協(xié)議
- 新材料研發(fā)與應(yīng)用在制造業(yè)中的推廣方案設(shè)計(jì)
- 農(nóng)村電商農(nóng)村電商國(guó)際合作與交流方案
- 環(huán)??萍荚谒Y源管理中的應(yīng)用合作協(xié)議
- 保證金質(zhì)押擔(dān)保協(xié)議書
- 房屋租賃合同三方協(xié)議
- 可再生能源設(shè)備采購(gòu)合同
- 項(xiàng)目季度工作總結(jié)與前景展望報(bào)告
- 大數(shù)據(jù)平臺(tái)開發(fā)協(xié)議
- 《生物經(jīng)濟(jì)學(xué)》課程教學(xué)大綱
- 2018中國(guó)技能?賽全國(guó)選拔賽“3D數(shù)字游戲藝術(shù)”項(xiàng)?技能樣題
- 家庭清潔課件教學(xué)課件
- 2024-2025學(xué)年北師版八年級(jí)生物上學(xué)期 第18章 生物圈中的微生物(知識(shí)清單)
- 2024年重慶客運(yùn)駕駛員考試卷及答案
- API設(shè)計(jì)與文檔規(guī)范
- 物流無人機(jī)垂直起降場(chǎng)選址與建設(shè)規(guī)范
- 2024年綠化工職業(yè)技能理論知識(shí)考試題庫(含答案)
- JT-T-775-2016大跨度斜拉橋平行鋼絲拉索
- 醫(yī)學(xué)檢驗(yàn)技術(shù)專業(yè)《血液學(xué)檢驗(yàn)》課程標(biāo)準(zhǔn)
- 2024年高考改革新方案
評(píng)論
0/150
提交評(píng)論