51單片機記憶歌 作者/要小奇 整理/姬學瑞 一匯編指令記憶歌: 《1》/C51管腳功能歌/C51單片機/管腳排列要牢記 /引腳總共40個 /IO ,4, 8, 32 /40,20正負極。 《2》/9腳RST來復位/18,19接晶振/29低讀外存/30腳鎖存輸脈沖。 《3》/特殊管腳31 /選外存時要置低 /編程電壓VPP /最小系統(tǒng)接正極。 《4》/IO管腳歌/P1引腳1到8 /P2,21到28 /P3,10到17腳 /P0,39腳倒著數(shù)。(即39腳P0.0,38腳P0.1,類推)。 《5》/功能管腳歌/特殊功能P3里/串行接發(fā)10,11(腳/12,13是中斷/14,15定時器了/片外寫讀16,17。 《6》/條件轉移要記清/判斷數(shù)值是否0 /JZ跳轉是為0(為0轉)/JNZ跳轉是非0(非0轉)/DJNZ減非0(減1非0轉)/CJNE不相等(數(shù)值不相等轉)。 《7》/判位1轉用JB /不為1轉JNB /轉時清零JBC /進位1轉是JC /進位非1JNC /判位命令要記齊。 《8》/J英文原詞JMP,就是蹦,跳的意思/N英文原詞NOT就是非,不是/Z英文原詞ZERO就是O的第一個字母/B英文原詞BIT就是位,高位1。 《9》/數(shù)據(jù)傳送/傳送數(shù)據(jù)MOV/查表間接送加C(MOVC)/片外傳送后X(MOVX)/堆棧指針SP /壓入堆棧用PUSH /彈出就用POP。 《10》/位置交換/SETB,位置1 /CLR清零位成低 /CPL,位取反/高位低位SWAP換/XCH全部換/半數(shù)據(jù)交換D(XCHD)進。 《11》/跳轉語句/要跳轉,導語句/直接跳轉JMP /左邊加A是短轉(AJMP)/左邊L長轉移(LJMP)/左邊S相對移(SJMP) /不轉不跳NOP(空語句)。 《12》/調用語句/調用讀作CALL /A短來L長調 /(短調ACALL,長調LCALL)/RET,返回了/RETI,中斷返回了。 《13》/邏輯運算8個 /邏輯運算后L /相與就是ANL /相或計算ORL /異或計算XRL /按位取反CPL /左移1位RL /帶位左移RLC/帶位右移RRC/RR右移低到高。 《14》/算術運算8個/兩數(shù)相加ADD /進位相加后加C(ADDC)/加1計算INC /減1就用DEC /借位就用SUBB /算乘法MUL /低位存A高存B /DA修正BCD /DIV就是相除以/商在A中余在B。 《15》/偽指令 /偽指令須記牢/ORG通常放首句/定地址,定起始/EQU兩邊相等的。 《16》/重復定義DL/數(shù)據(jù)定義用DB /雙字節(jié)DW /保留內(nèi)存DS。 《17》/位定義,用BTT/內(nèi)存定義是DATA /外存定義是XDATA /特殊符號大S($)/原地踏步等程序/程序結束END。 《18》/特殊符號/反斜杠/,位取反 /分號;加在注釋前/子程序運行加冒號:/S $ 踏步不向前。 《19》/立即進(斜井)# /@(圈a)間接尋 /O是八進制,純數(shù)十進制/B為二進制,H十六進制/全部是字母,前面加個0/(16進制數(shù)是全字母要加0,例如FAN寫成0FAH)。 二匯編指令: ACALL短調用, ADD不帶進位加法, ADDC帶進位加法, AJMP無條件短轉移, ANL邏輯與; CJNE條件比較轉移, CLR清零, CPL求反; DA二/十進制調整, DEC減1, DIV除法運算, DJNZ條件循環(huán)轉移, DJNE條件循環(huán)轉移; INC加1; JB位條件判位變量轉移, JBC位條件判位變量清零轉移, JC位條件判位CY轉移, JMP無條件間接轉移, JNB位條件判位變量轉移, JNC位條件判位CY轉移, JNZ條件判A內(nèi)容是否為零轉移,JZ條件判A內(nèi)容是否為零轉移; LCALL長調用, LJMP無條件長轉移; MOV通用數(shù)據(jù)傳送, MOVC查表; MOVX片外數(shù)據(jù)傳送; MUL乘法運算; NOP空操作; ORL邏輯或; POP出棧, PUSH進棧; RET返回, RETI中斷返回, RL循環(huán)左移, RLC帶進位循環(huán)左移, RR循環(huán)右移, RRC帶進位循環(huán)右移; SETB置1指令, SJMP無條件相對轉移, SUBB帶借位減法,SWAPA高低4位交換; XCH字節(jié)交換, XCHD半字節(jié)交換, XRL邏輯異或; EQU等值偽, ORG起始地址, DB定義字節(jié), DW定義字節(jié), DS定義空單元, BIT位地址定義, END結束匯編. 三尋址方式: 1立即尋址# 2直接尋址dir 3寄存器址尋Rn 4寄存器間接址尋@Ri 5變址址尋(基址寄存器+變址寄存器間接址尋)DPTR PC 6相對址尋rel 7位址尋址。 四指令中的操作數(shù)標記: 1 Rn當前選中的工作寄存器組R0——R7(N=0——7),它在片內(nèi)數(shù)據(jù)存儲器中地址由PSW中的RSI和RSO確定,可以是00H——07H(第0組),08——0FH(第1組),10——17H(第2組)或18——1FH(第3組)。 2 Ri當前選中的工作寄存器組可以作為地址指針的兩個工作寄存器R0和RI(i=0或i=1)。 3 #data 8位立即數(shù),即包括在指令中的8位常數(shù)。 4 #data 16 16位立即數(shù),即包括含在指令中的16位常數(shù)。 5 dir 8位片內(nèi)RAM單元(包括SFR)的直接尋地址。 6 bit 片內(nèi)RAM或特殊功能寄存器的直接尋址位地址。 7 @ 間接尋址方式中,表示間接址寄存器的符號。 8 / 位操作指令中,表示對該位的值取反然后再參與操作,但不影響該位原值。 9 → 指令操作流程,將箭頭左邊的內(nèi)容送入箭頭右邊的單元格內(nèi)。 五特殊功能寄存器: 1 B寄存器 2 ACC累加器 3 PSW程序狀態(tài)字 4 IP中斷優(yōu)先級控制寄存器 5 P3 P3口鎖存器 6 IE中斷允許控制寄存器 7 P2 P2口鎖存器 8 SBUF串行口鎖存器 9 P1 P1口鎖存器 10 TH1定時器/記數(shù)器1(高8位) 11 TH0定時器/記數(shù)器0 (高8位) 12 TL1定時器/記數(shù)器1(低8位) 13 TL0定時器/記數(shù)器0 (低8位) 14 TMOD定時器/記數(shù)器方式控制寄存器 15 TCON定時器/記數(shù)器方式控制寄存器 16 DPH數(shù)據(jù)地址指針(高8位) 17 DPL數(shù)據(jù)地址指針(低8位) 18 SP堆棧指針 19 P0 P0口鎖存器 20 PCON電源控制寄存器 21 SCON串行口控制寄存器 22 +T2CON定時器控制 23 +TH2定時器高8位 24 +TL2定時器低8位 25 +RCAP2H定時器2捕捉寄存器高字節(jié) 26 +RCAP2L定時器2捕捉寄存器低字節(jié)。
|