已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
51單片機(jī)共有111條指令 分成6類 它的主要特點是 1 指令較短 最長的只有3個字節(jié) 所以執(zhí)行速度快 請看下面3條指令 第2章MCS51單片機(jī)的指令系統(tǒng) 2 功能強(qiáng)大 8位的乘除運(yùn)算可用一條指令完成 3 位操作豐富 適于進(jìn)行開關(guān)量的控制 4 片內(nèi)RAM統(tǒng)一編址 片外存儲器獨立編址 端口操作直接用傳送命令 MOV 使用方便 指令的構(gòu)成 標(biāo)號 操作碼目的操作數(shù) 源操作數(shù) 注釋AAA MOVA 20H 將立即數(shù)20H送累加器A 1 指令中的常用符號 Rn n 0 7 表示當(dāng)前工作寄存器R0 R7中的一個Ri i 0 1 代表R0和R1寄存器中的一個 用作間接尋址寄存器 dir 8位直接尋址的字節(jié)地址 片內(nèi)RAM和SFR data 8位立即數(shù) 即8位常數(shù) 可以為2進(jìn)制 B 10進(jìn)制 16進(jìn)制 H 字符 等 data16 表示16位立即數(shù) 即16位常數(shù) 取值范圍為 0000H 0FFFFHaddr16 表示16位地址addr11 表示11位地址rel 相對偏移量 為一字節(jié)補(bǔ)碼 用于相對轉(zhuǎn)移指令中bit 位地址 在位地址空間中 表示當(dāng)前指令的地址 用來表示存儲單元的內(nèi)容 間接尋址的前綴A B C 分別是累加器 B寄存器和進(jìn)位標(biāo)志位 位操作時的取反前綴 2 2 1尋址方式尋址就是尋找操作數(shù)的地址 在計算機(jī)中 就是用來確定操作數(shù) 用什么方式從什么地方來找到所需要的操作數(shù) 尋址方式是衡量CPU的性能的重要指標(biāo)之一 因為尋址方式的快捷就決定了執(zhí)行速度 尋址方式的多樣性就決定了編程的靈活程度 MCS51具有7種尋址方式 它們是 立即 直接 寄存器直接 寄存器間接 變址 相對和位尋址 1 立即尋址指令中直接給出操作數(shù)的尋址方式 在51系列單片機(jī)的指令系統(tǒng)中 立即數(shù)用一個前面加 號的8位數(shù) data 如 30H 或16位數(shù) data16 如 2052H 表示 立即尋址中的數(shù) 稱為立即數(shù) 立即數(shù)不能做源地址 例如 MOVA 30HMOVDPTR 1234H 3 3 寄存器尋址操作數(shù)存放在寄存器中 尋址空間 工作寄存器組和所有的SFR寄存器 A在使用PUSH POP指令的時候要記作ACC 例如 MOVA R0 R0 AMULAB A B BAINCDPTR DPTR 1 DPTRPUSHACC 將ACC壓入堆棧 2 直接尋址操作數(shù)的地址直接出現(xiàn)在指令中 尋址空間 51系列片內(nèi)的128字節(jié)的RAM和SFR中的寄存器 對SFR操作的時候 既可使用它的地址 也可以直接使用寄存器名 52系列內(nèi)部RAM有256個字節(jié)時 80H之后的地址空間只能使用寄存器間接的方式來尋址 例如 MOV30H 40HMOVR5 DPH 等價于MOVR5 83H 4 4 寄存器間址 寄存器間接尋址 操作數(shù)存放在以寄存器內(nèi)容為地址的單元中 尋址空間 片內(nèi)RAM00H FFH的地址空間和片外數(shù)據(jù)存儲器0000H FFFFH的地址空間 可使用的寄存器只有DPTR和Ri 用它們之前要先把要尋的地址裝入這些寄存器中 凡是間接尋址的寄存器之前都要加 號來和直接尋址的方式區(qū)分 可用于間接尋址的寄存器只有工作寄存器組中的R0和R1 DPTR和SP SP是隱含的 不出現(xiàn)在指令中 當(dāng)采用寄存器間接尋址方式時 由于片內(nèi)的存儲單元只有128個 所以只用R0或R1就夠了 如果是訪問外部存儲單元時 由于有16位地址 所以要先設(shè)置好P2高8位 再通過R0或R1送低8位 通過P0口 或者就由DPTR直接給出16位地址到P2和P0口來實現(xiàn)地址的查找 例如 MOVR0 20HMOV R0 A A 20H 地址的內(nèi)部RAMMOVXA R1 外部RAM 地址P2R1 的內(nèi)容 AMOVX DPTR A A 以DPTR內(nèi)容為地址的外部RAM 5 5 位尋址尋址空間 片內(nèi)RAM中20H 2FH中的128個位地址及SFR中的可位尋址的位地址尋址 通常把進(jìn)位位C當(dāng)作位操作的累加器 為直觀起見 當(dāng)位地址有地址名時 建議選地址名做地址 例如 MOVC 20H 20H位的內(nèi)容送CY標(biāo)志位 C稱為位累加器 MOV5FH CANLC P1 0SETBTR0CLR8CH由于位地址和字節(jié)地址相同 所以在編程的時候注意如何將其區(qū)分 一般的方法有3種 用地址的別名 別名是唯一的 所以不會弄錯且便于程序的閱讀 有專門的位操作指令 SETB CLR CPL 可憑借位指令的操作碼來區(qū)別 根據(jù)指令的操作數(shù) 是字節(jié)還是位來予以區(qū)分 例如 MOVC P0 0SETB20HMOV5FH P1 1 6 6 變址尋址主要用于程序存儲器的尋址 所以有專門的MOVC指令 它的尋址方法是將PC或DPTR作為基址 再加上作為偏移量的A寄存器的內(nèi)容 形成一個完整的16位的地址 將某程序存儲單元的內(nèi)容讀出 7 7 相對尋址主要用于各種跳轉(zhuǎn) 它的尋址方法是以當(dāng)前的PC為基址 加上指令給出的一個字節(jié)的補(bǔ)碼 讓PC指針實現(xiàn)前跳或者后跳 由于跳轉(zhuǎn)指令自身有2字節(jié)或3字節(jié)之分 相對尋址的執(zhí)行是在跳轉(zhuǎn)指令執(zhí)行之后 所以通常計算的公式是 PC 2 3 指令給出的補(bǔ)碼 SJMP 13H 5112H 13H SJMP13H 片外ROM 5112H PC 2 5127H 執(zhí)行完后PC的位置 5112H 2 13H 5127H 8 2 2傳送與交換指令為了能簡潔地介紹指令功能和操作規(guī)則 采用圖解的方式來加以說明 先介紹符號及方法 箭頭 指出源操作數(shù)到目的操作數(shù)的方向 其上的英文是操作碼符圓框 累加器A或C的符號實線矩形框 操作數(shù)虛線操作數(shù) 表示立即數(shù)2 2 1傳送類指令MOV1 MOV 內(nèi)部RAM SFR之間的傳送指令 共18條 9 2 堆棧操作指令入棧指令 PUSHdir SP SP 1 SP dir 出棧指令 POPdir dir SP SP SP 1 SP 錯誤的 PUSHAPUSHDPTRPUSHR0PUSHR1 10 3 外部程序存儲器和A累加器之間的傳送 共2條 11 4 外部數(shù)據(jù)存儲器和A累加器之間的傳送 共4條 12 2 2 2數(shù)據(jù)交換指令 共5條 13 2 3邏輯運(yùn)算和算術(shù)運(yùn)算指令2 3 1對標(biāo)志位的影響P標(biāo)志僅對A操作的指令有影響 傳送類 加1 減1和邏輯運(yùn)算指令不影響CY OV AC 加減運(yùn)算影響OV CY P和AC 乘除指令使CY 0 當(dāng)乘積大于255或除數(shù)為0 OV 1 2 3 2邏輯運(yùn)算類指令 25條 14 2 3 3算數(shù)運(yùn)算類指令 23條 Rn Ri direct data ADD ADDC SUBB ADD ADDC SUBB ADD ADDC SUBB INC DEC DA ADD ADDC SUBB B INCDEC INCDEC INCDEC MULDIV DPTR INC 1 乘除指令MULAB A B BADIVAB A B A 商 B 余數(shù) 2 十進(jìn)制調(diào)整指令DA它只能對用BCD碼進(jìn)行加法運(yùn)算之后存放在累加器中的結(jié)果進(jìn)行操作 它調(diào)整的規(guī)則如下 15 16 2 3 4綜合例子 17 18 2 4控制轉(zhuǎn)移指令 共23條 這一類指令的功能是改變指令的執(zhí)行順序 轉(zhuǎn)到指令指示的新的PC地址執(zhí)行 MCS 51單片機(jī)的控制轉(zhuǎn)移指令有以下類型 無條件轉(zhuǎn)移 無需判斷 執(zhí)行該指令就轉(zhuǎn)移到目的地址 條件轉(zhuǎn)移 需判斷標(biāo)志位是否滿足條件 滿足條件轉(zhuǎn)移到目的地址 否則順序執(zhí)行 絕對轉(zhuǎn)移 轉(zhuǎn)移的目的地址用絕對地址指示 通常為無條件轉(zhuǎn)移 相對轉(zhuǎn)移 轉(zhuǎn)移的目的地址用相對于當(dāng)前PC的偏差 偏移量 指示 通常為條件轉(zhuǎn)移 長轉(zhuǎn)移或長調(diào)用 16位 目的地址可以在整個64KB地址范圍內(nèi) 絕對轉(zhuǎn)移或絕對調(diào)用 11位 目的地址在當(dāng)前的2KB地址范圍內(nèi) 短轉(zhuǎn)移 8位 目的地址距當(dāng)前PC 128 127 地址范圍 上面轉(zhuǎn)移指令類型雖然多 功能都是轉(zhuǎn)移到新地址執(zhí)行 差別僅在于有條件還是無條件及目的地址在指令機(jī)器碼中的表現(xiàn)形式 實際源程序編程中 轉(zhuǎn)移的目的地址均是以符號地址表示 它對應(yīng)機(jī)器碼會由編譯系統(tǒng)自行填入 19 2 4 1調(diào)用和返回指令1 長調(diào)用指令 LCALLAddr16 3字節(jié)指令 2 絕對調(diào)用指令 ACALLAddr11 2字節(jié)指令 它們都是絕對調(diào)用 只是一個調(diào)用的空間可達(dá)64K 16位地址 另一個只能在規(guī)定的2K 11位地址 的范圍內(nèi)調(diào)用 3 子程序返回指令 RET4 中斷子程序返回指令 RETI它們必須出現(xiàn)在子程序的結(jié)尾 執(zhí)行后從棧頂彈出斷點到PC 返回原來的斷點處繼續(xù)執(zhí)行 20 解 根據(jù)程序存儲區(qū)域的分布 0100H和0205H都位于0000H 0800H的第一個2K的區(qū)域 所以 只要入口為0205H的子程序的長度不超過800H的范圍 就可以使用ACALL的指令 2 4 2轉(zhuǎn)移指令1 無條件轉(zhuǎn)移指令 1 長轉(zhuǎn)移指令LJMPaddr16 2 絕對轉(zhuǎn)移指令A(yù)JMPaddr11 3 間接轉(zhuǎn)移 散轉(zhuǎn) 指令JMP A DPTR可以用它來實現(xiàn)多分支轉(zhuǎn)移 2 條件轉(zhuǎn)移指令根據(jù)右圖 很容易地可寫出相應(yīng)的指令 JZrelJNZrelDJNZRn relDJNZdirect rel CJNE Ri data relCJNEA data relCJNERn data relCJNEA direct rel 21 2 4 3空操作指令NOP該指令經(jīng)取指 譯碼后不進(jìn)行任何操作 空操作 而轉(zhuǎn)到下一條指令 常用于產(chǎn)生一個機(jī)器周期的延時 或上機(jī)修改程序時作填充指令 以方便增減指令 例1 試說明以下一段程序運(yùn)行后A中的結(jié)果 MOV23H 0AHCLRALOOP ADDA 23HDJNZ23H LOOPSJMP 根據(jù)程序分析可知 A 10 9 8 7 6 5 4 3 2 1 55 37H 2 4 4應(yīng)用舉例 例2 編寫程序 要求讀P1端口上的信息 若不為55H 則程序等待 直到P1端口為55H時 程序才往下繼續(xù)執(zhí)行 MOVA 55H A 55HCJNEA P1 P1 55H 則程序循環(huán)執(zhí)行 22 23 2 5位操作指令 MCS 51單片機(jī)的特色之一就是具有豐富的位處理功能 以進(jìn)位標(biāo)志CY為位累加器C 使得開關(guān)量控制系統(tǒng)的設(shè)計變得十分方便 在程序中位地址的表達(dá)有多種方式 用直接位地址表示 如D4H 用 操作符號表示 如PSW 4 或D0H 4用位名稱表示 如RS1 用用戶自定義名表示 如
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- xx區(qū)高速公路改造項目可行性研究報告
- 算力產(chǎn)業(yè)園項目規(guī)劃方案
- 文化消費促進(jìn)社會和諧發(fā)展的路徑
- 二零二五年度實習(xí)生實習(xí)期間住宿安排協(xié)議3篇
- 二零二五年度國際貿(mào)易進(jìn)出口合同履行與品牌價值評估3篇
- 二零二五年公共安全教育培訓(xùn)服務(wù)合同2篇
- 財經(jīng)法規(guī)與會計職業(yè)道德四川財經(jīng)職業(yè)學(xué)院學(xué)習(xí)通測試及答案
- 2025年度養(yǎng)老產(chǎn)業(yè)現(xiàn)金借款合同模板6篇
- 鹽城淇岸環(huán)境科技有限公司年處理 3000 噸醫(yī)療廢物處置項目環(huán)評報告書
- 重慶市社會保險登記表
- 高血壓疾病證明書
- GA 763-2008警服V領(lǐng)、半高領(lǐng)毛針織套服
- 10000中國普通人名大全
- (完整word版)兒童迷宮圖 清晰可直接打印
- 醫(yī)院財務(wù)科出納崗位說明書
- DB37-T 5076-2016 賓館酒店建筑能耗限額標(biāo)準(zhǔn)
- 數(shù)據(jù)中心機(jī)房裝修標(biāo)準(zhǔn)規(guī)范(精簡)
- 某機(jī)修廠供配電系統(tǒng)設(shè)計
- (完整)公共衛(wèi)生基本知識考試題題庫及答案
評論
0/150
提交評論