freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機(jī)原理教程(經(jīng)典)(參考版)

2024-08-26 21:00本頁面
  

【正文】 一個匯編語言源程序中 , 可以多次。 第三章 33 一、偽指令簡介 ?1. ORG ——匯編起始地址偽指令 ? 指令格式: ORG m ? m為十六進(jìn)制數(shù)或十進(jìn)制 。注釋的長度 不限,但應(yīng)盡量簡明扼要。它規(guī)定了語句執(zhí)行的操作屬性,是不可缺少的。 標(biāo)號以 “ : ” 結(jié)束,且同一個標(biāo)號名在一個程序中只能使用一次,不能重復(fù)定義。通常是在一段程序的入口或程序的轉(zhuǎn)向點(diǎn)設(shè)置一個標(biāo)號。 它們都是機(jī)器不執(zhí)行的指令 , 無機(jī)器碼 匯編語言的語句格式 匯編語言一般由四部分組成 。 它們都是機(jī)器能夠執(zhí)行的指令 , 每一條指令都有對應(yīng)的機(jī)器碼 。 第三節(jié) 程序設(shè)計方法 MCS51單片機(jī)匯編語言 , 包含兩類不同性質(zhì)的指令 。 3)確定數(shù)據(jù)結(jié)構(gòu):合理地選擇和分配內(nèi)存單元以 及工作寄存器 。 ANL C, bit ; C←C ∧ ( bit) ANL C, /bit ; C←C ∧ /( bit) ORL C, bit ; C←C ∨ ( bit) ORL C, /bit ; C←C ∨ /( bit) 第三章 31 用匯編語言編寫程序 ,一般可分為以下幾個步驟: 1)分析題意 ,確定算法 。 例: MOV , C;把 C中的值送到 ( 6條 ) CLR C ; C←0 CLR bit ;( bit) ← 0 SETB C ; C←1 SETB bit ;( bit) ← 1 CPL C ; C←/C CPL bit ; ( bit) ← /( bit) 第三章 218 五、位操作類指令 這組指令用來實(shí)現(xiàn)對位清 0,取反,置 1,不影響其它標(biāo)志位。 4. 空操作指令 ( 1條 ) NOP; 指令的執(zhí)行時間為一個機(jī)器周期 , 占一個字節(jié) 。RETI指令用在中斷服務(wù)子程序中 , 作最后一條返回指令 。 不影響 PSW。 ?解: ORG 0000H ? AJMP MAIN ? ORG 0030H ?MAIN: MOV A, R1 ? CJNE A, 02H, NEXT ?NEXT: JC/JNC DONE (?) ? MOV A, R2 ?DONE: MOV R3, A ? LP: SJMP JP ? END 條件轉(zhuǎn)移指令的應(yīng)用 : 例 37:根據(jù) A中的數(shù)是大于 /等于 /小于 64H這三種情況去執(zhí)行三種不同的處理程序 。 主要應(yīng)用在循環(huán)結(jié)構(gòu)的編程中,作循環(huán)結(jié)束控制用。 第三章 216 2. 條件轉(zhuǎn)移指令 ( 8條 ) 此類指令 均為相對尋址 指令 。 實(shí)際應(yīng)用時 , addr1 addr1 rel一般用符號地址形式 。 ( 4條 ) ( 1) 長轉(zhuǎn)移指令 LJMP addr16 ; PC ← addr16 范圍 64K ( 2) 絕對轉(zhuǎn)移指令 AJMP addr11 ; PC10~ 0 ← addr11 指令中包含有 11位的目的地址( a10 a9…… a0), PC 高 5位不變 *轉(zhuǎn)移范圍 2K字節(jié) ——目的地址必須和 PC+2 在同一頁內(nèi) *機(jī)器碼為兩字節(jié) a10 a9 a8 0 0 0 0 1 a7a0 第三章 216 ( 3) 短 ( 相對 ) 轉(zhuǎn)移指令 SJMP rel ; PC ← PC + 2 + rel 其目的地址是由 PC中的當(dāng)前值和指令的第二字節(jié)中帶符號的相對地址相加而成的 。兩條帶 CY位的逐位循環(huán)移位一次指令,僅影響 CY位。 ⒌ 清 0指令 ( 1條 ) CLR A ; 將累加器 A的內(nèi)容清 0。 例如: ORL A, 80H 可將 A中的最高位置 1,其他位保持不變。 例如: ANL A, 0FH;將 A中的高 4位清零 0FH稱為屏蔽字,屏蔽字中的 0對應(yīng)于需要清 0的位。另外兩條指令的第一操作數(shù)為 direct,第二操作數(shù)為 A和# data。 注意: DA A指令只能用于加法指令后 第三章 211 三 . 邏輯運(yùn)算與循環(huán)類指令 特點(diǎn):是當(dāng) A作目的操作數(shù)(第一操作數(shù))時,影響 P位;帶進(jìn)位的移位指令影響 Cy位,其余都不影響 PSW。 第三章 210 1指令 INC ( 5條 ) INC A INC Rn INC direct INC Ri INC DPTR 1指令( 4條) 注意:沒有對 DPTR 的減 1操作指令 DEC A DEC Rn DEC direct DEC Ri 只有 INC A 和 DEC A這兩條指令影響影響 P, 其他不影響任何標(biāo)志 。 MUL( 1條) MUL AB ; B A ← ( A) ( B) DIV( 1條) DIV AB ; A ← A/B (商) B ← 余數(shù) 說明: 無符號數(shù) 相除 , 當(dāng)除數(shù) ( B) =0時 , 結(jié)果為無意義 , 并置OV=1; CY位總是 0。 方法 1( 直接地址傳送法 ) : MOV 31H, 30H MOV 30H, 40H MOV 40H, 31H SJMP $ 方法 2( 間接地址傳送法 ) : MOV R0, 40H MOV R1, 30H MOV A, R0 MOV B, R1 MOV R1, A MOV R0, B SJMP $ 方法 4( 字節(jié)交換傳送法 ) : MOV A, 30H XCH A, 40H MOV 30H, A SJMP $ 方法 3( 堆棧傳送法 ) : PUSH 30H PUSH 40H POP 30H POP 40H SJMP $ 第三章 28 二 、 算術(shù)運(yùn)算類指令 算術(shù)運(yùn)算類指令有加 、 減 、 乘 、 除法指令 , 增 1和減 1指令 , 十進(jìn)制調(diào)整指令 , 共 24條 , 使用時應(yīng)注意判斷各種結(jié)果對哪些標(biāo)志位 ( CY、 OV、AC、 P) 產(chǎn)生影響 。 出棧; POP direct ;數(shù)據(jù)先出棧 , 再 SP減 1。 (A)←→(Rn) XCH A, direct XCH A, Ri 2)半字節(jié)交換 XCHD A, Ri ; SWAP A 例:已知( A) =34H,( R6) =29H,執(zhí)行以下指令后,( A) =? XCH A, R6 SWAP A 思考:用不同的方法實(shí)現(xiàn)片內(nèi) RAM ( 20H) → R1 第三章 272 5. 堆棧操作指令 ( 共 2條 ) 堆棧是在內(nèi) RAM開辟的一個數(shù)據(jù)的暫存空間 , 遵守 “ 后進(jìn)先出 ” 原則操作 , 其地址指針為 SP, 它指出棧頂?shù)奈恢?, 復(fù)位時 SP=07H。 第三章 27 4. 交換指令 ( 共 5條 ) 其中 3條為整個字節(jié)相互交換 , XCHD指令為低 4位相互交換 ,SWAP為 ACC中的高 、 低 4位互換 。 程序段如下: MOV A, 20H ;取數(shù) N ADD A, 01 ;加查表偏移量 MOVC A, A+PC ;查表 NOP TAB: DB 00H, 01H, 04H, 09…… ;定義數(shù)表 由于 PC為程序計數(shù)器,總是指向下一條指令的地址在執(zhí)行第二條指令“ MOVC A, A+PC”時, 在查表前應(yīng)在 A累加器中加上該指令與表之間的偏移量。 1) 外部 RAM低 256字節(jié)單元與A之間的傳送 ? MOVX A , @R i ? MOVX @R i, A 2 ) 64KB外部 RAM單元與A之間的傳送 ? MOVX A , @ DPTR ? MOVX @ DPTR, A 例 : MOV DPTR, 2022H ? MOVX A , @ DPTR ; 將外部 RAM中 2022H單元內(nèi)容 → A ?思考: 將片內(nèi) RAM 50H單元 ? 內(nèi)容 → 片外 RAM 5000H單元 第三章 25 3.用于 ROM傳送的指令(共 2條) MOVC A, A+DPTR ; (A)←((A)+DPTR) ) MOVC A, A+PC ; (A)←((A)+(PC)) 以 PC的當(dāng)前值為基址 , A為變址 例 31:在 ROM 1000H開始存有 5個字節(jié)數(shù) , 編程將第二個字節(jié)數(shù)取出送片內(nèi) RAM 30H單元中 。 指令中的操作數(shù)為指令的具體操作對象 , 有些指令中有 3個操作數(shù) , 有些只有一個 , 有些無操作數(shù) , 僅有操作碼 。 例如: MOV C, 00H ;把 20H單元中 D0位的值送 C位 MOV , C ;把 C位中的值送 P1口的 D0位 SETB 20H. 0 ;把 00H位置 1 位地址的表示方法 位名稱 例: CY、 RS0 寄存器名加序號 例: 、 字節(jié)地址加序號 例: 直接位地址 例: 00H、 07H 第三章 17 操作數(shù)的 7種尋址方式和尋址的空間 尋址方式 相關(guān)寄存器 尋址的空間 立即尋址 程序存儲器 ROM 直接尋址 片內(nèi) RAM和 SFR 寄存器尋址 R0~ R7, A, B,DPTR R0~ R7, A, B, DPTR 寄存器間接 尋址 R0, R1 片內(nèi) RAM R0, R1,DPTR 片外 RAM 變址尋址 A+PC,A+DPTR ROM區(qū) 相對尋址 PC ROM區(qū) 位尋址 可位尋址的 SFR 片內(nèi) RAM20H~2FH,SFR可尋址位 第三章 18 MCS— 51匯編語言指令格式如下: 標(biāo)號:操作碼 操作數(shù) 1, 操作數(shù) 2, 操作數(shù) 3 ;注釋 其中標(biāo)號實(shí)際上為符號地址 , 表示這條指令在程序存儲器中的存放首地址 , 以字母開始 , 后可跟 1~8個字母或數(shù)字 , 但標(biāo)號不能用操作碼或?qū)S梅?。 相對尋址方式為相對轉(zhuǎn)移指令所采用 。 例如: MOV R1, 30H ;把立即數(shù) 30H送 R1寄存器 MOV A,@ R1 ;把 30H單元中的數(shù)送到 A中 五、變址尋址 變址尋址用于訪問 程序存儲器 中的一個字節(jié) , 該字節(jié)的地址是:基址寄存器 ( DPTR或 PC) 的內(nèi)容與變址寄存器 A中的內(nèi)容之和 。 例如: MOV A, 30H 比較以上兩指令的區(qū)別 第三章 14 三、寄存器尋址 寄存器尋址是指指令中的操作數(shù)為寄存器中的內(nèi)容 。 例如: MOV R0, 30H 尋址方式 二、直接尋址 直接尋址是指在指令中直接給出存放數(shù)據(jù)的地址 ( 注意:不是立即數(shù) ,并且只限于片內(nèi) RAM范圍 ) 。 第三章 13 第一節(jié) MCS— 51單片機(jī)的尋址方式 一 、 立即尋址 立即尋址是指在指令中直接給出其操作數(shù) , 該操作數(shù)稱為立即數(shù) 。 Ri:可用作間接尋址的工作寄存器 , 只能是 R0、 R1。 A:累加器 A; ACC則表示累加器 A的地址 。 rel:相對轉(zhuǎn)移指令中的偏移量 , 為 8位帶符號數(shù) ( 補(bǔ)碼形式 ) 。 direct:片內(nèi) RAM單元地址 ( 8位 ) , 也可以指特殊功能寄存器的地址或符號名稱
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1