51单片机记忆歌 作者/要小奇 整理/姬学瑞 一汇编指令记忆歌: 《1》/C51管脚功能歌/C51单片机/管脚排列要牢记 /引脚总共40个 /IO ,4, 8, 32 /40,20正负极。 《2》/9脚RST来复位/18,19接晶振/29低读外存/30脚锁存输脉冲。 《3》/特殊管脚31 /选外存时要置低 /编程电压VPP /最小系统接正极。 《4》/IO管脚歌/P1引脚1到8 /P2,21到28 /P3,10到17脚 /P0,39脚倒着数。(即39脚P0.0,38脚P0.1,类推)。 《5》/功能管脚歌/特殊功能P3里/串行接发10,11(脚/12,13是中断/14,15定时器了/片外写读16,17。 《6》/条件转移要记清/判断数值是否0 /JZ跳转是为0(为0转)/JNZ跳转是非0(非0转)/DJNZ减非0(减1非0转)/CJNE不相等(数值不相等转)。 《7》/判位1转用JB /不为1转JNB /转时清零JBC /进位1转是JC /进位非1JNC /判位命令要记齐。 《8》/J英文原词JMP,就是蹦,跳的意思/N英文原词NOT就是非,不是/Z英文原词ZERO就是O的第一个字母/B英文原词BIT就是位,高位1。 《9》/数据传送/传送数据MOV/查表间接送加C(MOVC)/片外传送后X(MOVX)/堆栈指针SP /压入堆栈用PUSH /弹出就用POP。 《10》/位置交换/SETB,位置1 /CLR清零位成低 /CPL,位取反/高位低位SWAP换/XCH全部换/半数据交换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个/两数相加ADD /进位相加后加C(ADDC)/加1计算INC /减1就用DEC /借位就用SUBB /算乘法MUL /低位存A高存B /DA修正BCD /DIV就是相除以/商在A中余在B。 《15》/伪指令 /伪指令须记牢/ORG通常放首句/定地址,定起始/EQU两边相等的。 《16》/重复定义DL/数据定义用DB /双字节DW /保留内存DS。 《17》/位定义,用BTT/内存定义是DATA /外存定义是XDATA /特殊符号大S($)/原地踏步等程序/程序结束END。 《18》/特殊符号/反斜杠/,位取反 /分号;加在注释前/子程序运行加冒号:/S $ 踏步不向前。 《19》/立即进(斜井)# /@(圈a)间接寻 /O是八进制,纯数十进制/B为二进制,H十六进制/全部是字母,前面加个0/(16进制数是全字母要加0,例如FAN写成0FAH)。 二汇编指令: ACALL短调用, ADD不带进位加法, ADDC带进位加法, AJMP无条件短转移, ANL逻辑与; CJNE条件比较转移, CLR清零, CPL求反; DA二/十进制调整, DEC减1, DIV除法运算, DJNZ条件循环转移, DJNE条件循环转移; INC加1; JB位条件判位变量转移, JBC位条件判位变量清零转移, JC位条件判位CY转移, JMP无条件间接转移, JNB位条件判位变量转移, JNC位条件判位CY转移, JNZ条件判A内容是否为零转移,JZ条件判A内容是否为零转移; LCALL长调用, LJMP无条件长转移; MOV通用数据传送, MOVC查表; MOVX片外数据传送; MUL乘法运算; NOP空操作; ORL逻辑或; POP出栈, PUSH进栈; RET返回, RETI中断返回, RL循环左移, RLC带进位循环左移, RR循环右移, RRC带进位循环右移; SETB置1指令, SJMP无条件相对转移, SUBB带借位减法,SWAPA高低4位交换; XCH字节交换, XCHD半字节交换, XRL逻辑异或; EQU等值伪, ORG起始地址, DB定义字节, DW定义字节, DS定义空单元, BIT位地址定义, END结束汇编. 三寻址方式: 1立即寻址# 2直接寻址dir 3寄存器址寻Rn 4寄存器间接址寻@Ri 5变址址寻(基址寄存器+变址寄存器间接址寻)DPTR PC 6相对址寻rel 7位址寻址。 四指令中的操作数标记: 1 Rn当前选中的工作寄存器组R0——R7(N=0——7),它在片内数据存储器中地址由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位立即数,即包括在指令中的8位常数。 4 #data 16 16位立即数,即包括含在指令中的16位常数。 5 dir 8位片内RAM单元(包括SFR)的直接寻地址。 6 bit 片内RAM或特殊功能寄存器的直接寻址位地址。 7 @ 间接寻址方式中,表示间接址寄存器的符号。 8 / 位操作指令中,表示对该位的值取反然后再参与操作,但不影响该位原值。 9 → 指令操作流程,将箭头左边的内容送入箭头右边的单元格内。 五特殊功能寄存器: 1 B寄存器 2 ACC累加器 3 PSW程序状态字 4 IP中断优先级控制寄存器 5 P3 P3口锁存器 6 IE中断允许控制寄存器 7 P2 P2口锁存器 8 SBUF串行口锁存器 9 P1 P1口锁存器 10 TH1定时器/记数器1(高8位) 11 TH0定时器/记数器0 (高8位) 12 TL1定时器/记数器1(低8位) 13 TL0定时器/记数器0 (低8位) 14 TMOD定时器/记数器方式控制寄存器 15 TCON定时器/记数器方式控制寄存器 16 DPH数据地址指针(高8位) 17 DPL数据地址指针(低8位) 18 SP堆栈指针 19 P0 P0口锁存器 20 PCON电源控制寄存器 21 SCON串行口控制寄存器 22 +T2CON定时器控制 23 +TH2定时器高8位 24 +TL2定时器低8位 25 +RCAP2H定时器2捕捉寄存器高字节 26 +RCAP2L定时器2捕捉寄存器低字节。
|