C51单片机寄存器功能_指令_助记符_第1页
C51单片机寄存器功能_指令_助记符_第2页
C51单片机寄存器功能_指令_助记符_第3页
C51单片机寄存器功能_指令_助记符_第4页
C51单片机寄存器功能_指令_助记符_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机整理8051单片机的引脚图内存单元:0000H:系统复位后PC值为0000H,一般0000H开始前三个单元放一个无条件转移指令0003H-0033H中断服务程序的入口地址:0003H:外部中断0中断服务程序的入口地址000BH:定时/计数器0中断服务程序的入口地址0013H:外部中断1中断服务程序的入口地址001BH:定时/计数器1中断服务程序的入口地址0023H:串行口中断服务程序的入口地址002BH:预留0033H:LVD(内部低电压检测)中断服务程序的入口地址特殊功能寄存器:与运算相关1、ACC-是累加器,通常用A表示地址为E0H,复位值00H,自身带有全零标志Z,若A0则Z1;若

2、A0则z0。该标志常用作程序分枝转移的判断条件。2、B-一个寄存器地址为F0H,复位值00H,在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。3、PSW状态位控制寄存器地址B7B6B5B4B3B2B1B0复位值D0HCYACF0RS1RS0OVF1P0000 0000 (1) P:奇偶标志位每个机器周期都有硬件来复位。改为用以累加器为1的位数是奇数还是偶数。若累加器A中为1位数是奇数,则P标志位置1,否则P标志位清0.在串行口通信中,此标志位具有重要的定义,用来传送奇偶校验位,以检验传输数据的可靠性,应用时将P置入串行帧中的奇偶校验为即可。(2) OV:溢出标志位进行算术运算时,如果产生

3、溢出,则由硬件将OV置1,可以理解为溢出为真,标识运算结果超出了目的寄存器A所能标识的有效数范围(-128127),否则OV清0,可以理解为溢出为假。(3) RS1、RS0:工作寄存器区选择通过对RS1、RS0置位,选择当前工作寄存器区。组号SM0SM1R0R1R2R3R4R5R6R700000H01H02H03H04H05H06H07H10108H09H0AH0BH0CH0DH0EH0FH21010H11H12H13H14H15H16H17H31118H19H1AH1BH1CH1DH1EH1FH(4)F0:用户标志位由用户置位或复位,可以作为一个用户自定义的状态标志(5)AC:辅助进位标志进

4、行加法或减法运算时,若低4位向高4位有进位或借位时,AC将被元件置1,否则置0.AC位常用于十进制调整指令和压缩BCD运算等。(6)CY:进位标志进行算术运算时,由硬件置位或复位,表示运算过程中,最高位是否有进位或借位的状态,进行位操作时,CY被认为是位累加器,它的作用相当于CPU中的累加器A。注意:PSW中的4个标志位P、OV、AC和CY 是由硬件根据指令的执行情况自动置位或复位的,一般用户不要轻易修改指针类1、SP:堆栈指针8051单片机复位,SP默认07H即默认栈底为08H2、DPTR(DPH、DPL)-数据指针可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用寄存器来用

5、,由我们自已决定如何使用。分成DPL(低8位)和DPH(高8位)两个寄存器。用来存放16位地址值,以便用间接寻址或变址寻址的方式对片外数据AM或程序存储器作64K字节范围内的数据操作。与定时器/计数器相关1、TH0、TL0:16位定时/计数器T0高低8位状态寄存器TH1、TL1:16位定时/计数器T1高低8位状态寄存器定时时间(微秒)=( M - T0(T1) ) * 系统时钟周期 * 12( 1- T0x12(T1x12) )M= 216 = 65536系统采用12MHZ晶振,分频系数为12,即定时脉冲周期(机器周期)为1us,则T0(T1)的初值为:T0(T1) = M-定时时间(微秒,即

6、计数值)注:1/N(秒)=N(HZ赫兹) 所以 12MHZ=1/(12*106) (秒)=1/12 us(微秒),即晶振周期例:12MHZ晶振做10毫秒定时计算:T0(定时初值)=M-(10*103 us)=55536;将55536化为16进制为0x D8F0,即T0=0xD8F0;即:TH0=0xD8TL0=0xF0若24MHZ晶振做10毫秒定时计算:T0(定时初值)=M-(2 * 10*103 us)=45536;将45536化为16进制为0xB1E0,即T0=0xB1E0;即:TH0=0xB1TL0=0xE02、TMOD定时器/计数器工作方式控制寄存器( 注:不可位寻址)地址D7D6D5

7、D4D3D2D1D0复位值89HGATEGATE1C/TC/T1M1M1_1M0M1_0GATEGATE0C/TC/T0M1M0_1M0M0_00000 0000注:8位分2组,高4位控制T1,低4位控制T0(1) M1、M0工作方式选择位组号M1M0工作方式000方式0,为13位定时器/计数器。101方式1,位16位定时器/计数器。210方式2,8位的常数自动重新装载的定时器/计数器。311方式3,仅适用于T0,T0分成2个8位计数器,T1停止计数(2)C/T=1,计数(外部计数)C/T=0,计时(内部定时器)(3)GATE-门控位(可以不设置)定时操作开关控制位GATE=0时,以运行控制位

8、TRX(X=0,1)来启动定时器计数器的运行。GATE=1时,用外中断引脚(/INT0或/INT1)上的高电平来启动定时器/计数器运行。3、AUXR:辅助寄存器地址B7B6B5B4B3B2B1B0复位值A2HT0x12T1x12UART_M0x6BRTR-BRTx12XRAMS1BRS0000 x000(1) S1BRS:独立波特率发生器选择控制位。置1时,串行口在方式1、3时选择独立波特率发生器作为波特率发生器;清零时,串行口在方式1、3时选择T1定时器作为波特率发生器。(2)XRAM:XRAM=0允许访问内部扩展RAM,XRAM=1禁止访问内部扩展RAM扩展了片外RAM或I/O时,应禁止访

9、问内部RAM(3)BRTx12:BRT定时器定时是脉冲分频系数控制位。置1时,BRT定时脉冲就是系统时钟信号;清0时,BRT定时计数脉冲为系统时钟周期(震荡周期)的12分频信号。(4)BRTR:独立波特率发生的启动控制位。置1时,启动。(5)UART_M0x6:串行口方式0波特率的分频系数控制位。清零时,串行口方式0波特率为系统时钟的12分频信号,置1时,串行口方式0波特率为系统时钟的2分频信号。(课本195页,BRT溢出率计算)(6)T0x12(T1x12):S1BRS清0时,设置定时/计数器0(1)定时计数脉冲的分频系数。T0x12(T1x12)=0定时计数脉冲为系统时钟周期(震荡周期)的

10、12倍,即12分频。T0x12(T1x12)=1,无分频,即T0(T1)定时脉冲就是系统时钟信号。注:WAKE_CLKO、AUXR、BRT组合,课本161页4、TCON 定时器/计数器控制寄存器( 可位寻址 )地址D7D6D5D4D3D2D1D0复位值88HTF1TR1TF0TR0IE1IT1IE0IT00000 0000(1)IT0-当IT0=0,为电平触发方式,CUP在每个机器周期采样/INT0引脚若/INT0(P3.2)引脚为低电平,则置1 IE0,说明有中断请求,否则清0 IE0. 当IT0=1,即外部中断请求0设置为跳沿触发方式时,当第一个机器周期采样到/INT0为低电平时,则置1

11、IE0。IE0=1表示外部中断0正向CPU请求中断。当CPU响应该中断,转向中断服务程序时,由硬件清0 IE0.(2)IT1-外部中断源1触发方式控制位。IT10,外部中断1程控为电平触发方式,当/INT1(P3.3)输入低电平时,置位IE1。(3)IE0-外部中断请求0的中断请求标志位。(4)IE1-外部中断请求1的中断请求标志位,其意义与IE0类似。(5)TR1、TR0-计数运行控制位TR1(TR0)=1,启动定时器/计数器工作TR1(TR0)=0,停止定时器/计数器工作,该位可由软件置1或清0.(6)TF0-片内定时器/计数器T0溢出中断请求标志位T1:T1充许计数控制位,为1时充许T1

12、计数。 T0:T0充许计数控制位,为1时充许T0计数。当启动T0计数后,定时器/计数器T0从初值开始加1计数,当最高位产生溢出时,由硬件将TF0置1,向CPU申请中断,CPU响应TF0中断时,TF0清0,TF0也可以由软件清0.(7)TF1-片内的定时器/计数器T1的溢出中断请求标志位。5、T2CON定时器/计数器2控制器地址D7D6D5D4D3D2D1D0复位值0C8HTF2EXF2RCLKTCLKEXEN2TR2C/T2CP/RL2(1)CP/L2:捕捉和常数自动再装入方式选择位。为1时工作于捕捉方式,为0时T2工作于常数自动再装入方式。当TCLK或CLK为1时,CP/L2被忽略,T2总是

13、工作于常数自动再装入方式。 (2)C/T2:外部计数器/定时器选择位。C/T2=1时,T2为外部事件计数器,计数脉冲来自T2(P1.0);C/T2=0时,T2为定时器,振荡脉冲的十二分频信号作为计数信号。(3)T2:T2计数/定时控制位。T1为1时充许计数,为0时禁止计数。 (4)EXEN2:T2的外部中断充许标志。(5)RCLK:串行接口的接收时钟选择标志位。RCLK1时,T2工作于波特率发生器方式。(6)TCLK:串行接口的发送时钟选择标志。TCLK=1时,T2工作于波特率发生器方式。 (7)EXF2:定时器T2外部中断标志。EXEN2为1时,当T2EX(P1.1)发生负跳变时置1中断标志

14、DXF2,EXF2必须由用户程序清“0”。 (8)TF2:T2溢出中断标志。TF2必须由用户程序清“0”。当T2作为串口波特率发生器时,TF2不会被置“1”。 注:下面对T2CON的D0、D2、D4、D5几位主要控制T2的工作方式,下面对这几位的组合关系进行总结定时器T2方式选择CLK+TCLKCP/L2T2工作方式00116位常数自动再装入方式01116位捕捉方式1X1串行口波特率发生器方式XX0停止计数定时器/计数器的溢出率计算T=Tc*(2n-Ta)=12Fosc*(2n-Ta) t:定时时间 Tc:机器周期 Fosc:振荡器频率 n:计数器的长度 Ta:初值6、WDT_CONTR:看门

15、狗定时控制寄存器地址R7R6R5R4R3R2R1R0复位值C1HWDT_FLAG-EN_WDTCLR_WDTIDLE_WDTPS2PS1PS0xx00 0000(1)PS2、PS1、PS0:WDT预分频系数控制位。预分频系数设置,见下表:PS2PS1PS0预分频系数WDT溢出时间(ms)11.0592MHZ12MHZ20MHZ000271.165.539.30014142.2131.078.60108284.4262.1157.301116568.8524.2314.6100321137.71048.5629.1101642275.52097.11250.1101284551.14194.32

16、5001112569.10228388.65000WDT溢出时间的计算方法: WDT溢出时间=(12*预分频系数*32768)/时钟频率(2)IDLE_WDT:IDLE模式(空闲模式)位,置1时,WDT在“空闲模式”计数。(3)CLR_WDT:看门狗清零位,置1时看门狗将重新计数。启动后,硬件自动清零该位(4)EN_WDT:看门狗允许位,置1时,看门狗启动。(5)WDT_FLAG:看门狗溢出标志位,溢出时,该位由硬件置1,可用软件清零。7、WAKE_CLKO:时钟输出与唤醒中断控制寄存器地址D7D6D5D4D3D2D1D0复位值8FH-RXD_PIN_IET1_PIN_IET0_PIN_IE-

17、BRTCLKOT1CLKOT0CLKOx000 x000(1)T0CLKO:置1时,允许T0脚输出T0(P3.4)溢出脉冲,输出时钟频率=1/2 T1溢出率;清0时,不允许T0脚输出T0(P3.4)溢出脉冲。(2)T1CLKO:置1时,允许T1脚输出T1(P3.5)溢出脉冲,输出时钟频率=1/2 T1溢出率;清0时,不允许T1脚输出T1(P3.5)溢出脉冲。(3)BRTCLKO:置1时,允许P1.0脚输出时钟,输出时钟频率=1/2 BRT溢出率;清0时,不允许BRT在P1.0脚输出时钟。(4)T0_PIN_IE:置1时,允许T1(P3.4)引脚的下降沿置位TF0标志,也也使能T0引脚唤醒单片机

18、的空闲模式和停机模式。(5)T1_PIN_IE:置1时,允许T1(P3.5)引脚的下降沿置位TF1标志,也使能T1引脚唤醒单片机的空闲模式和停机模式。(6)RXD_PIN_IE:置1时,允许RXD/P3.0(RXD/P1.6)下降沿置位RI标志,也能使RXD唤醒停机模式和空闲模式。8、WKTCH、WKTCL:内部停机唤醒专用定时器课本203页与串行口相关1、SCON 串行口控制寄存器地址D7D6D5D4D3D2D1D0复位值98HSM0/FESM1SM2RENTB8RB8TIRI0000 0000(1) RI-接收中断标志位串行口工作在方式0时,接收完第8位数据时,RI由硬件置1.在其它工作方

19、式中,串行口接收到停止位时,该位置1。RI=1表示一帧数据接收完毕,并申请中断,要求CPU从接收SBUF取走数据。该位的状态也可供软件查询。RI必须由软件清0.(2)TI-发送中断标志位串行口工作在方式0时,串行发送第8位数据结束时由硬件置1.在其它工作方式中,串行口发送停止位的开始时置1.TI=1,表示一帧数据发送结束,可供软件查询,也可申请中断。CPU响应中断后,在服务程序中向SBUF写入要发送的下一帧数据。TI必须由软件清0.(3)RB8:接收到的第9位数据,工作在方式2和3时,RB8存放接收到的第9位数据。在方式1,如果SM2=0,RB8是接收到的停止位。在方式0,不使用RB8。用于区

20、别是地址还是数据。(4)TB8:第9位发送的数据,多机通信时(方式2、方式3)TB8标明主机发送的是地址还是数据,TB8=0为数据,TB8=1为地址。TB8由指令置位或复位。(5)REN:允许接收位。REN=1时允许接收,REN由指令置位或复位。REN=0 禁止串行口接收数据。(6)SM2 :多级通信控制位。在方式2、方式3中用于多机通信控制。在方式2、方式3的接收状态中,若SM2=1,接收到第九位(RB8)为0时,舍弃接收到的数据,RI清0;RB8为1时将接收到的数据送接收SBUF中,将RI置1,对于方式1,接收到有效停止位时,激活RI;对于方式0,SM2应清0。(7)SM0,SM1:串行口

21、工作方式选择位。当电源控制寄存器MS0D0相关时用到FE各位的状态对应的方式功能如下:SM0SM1方式功能说明0008位同步移位寄存器方式(用于扩展I/O口)Fosc/12或Fosc/201110位异步收发,波特率可变(由定时器控制)10211位异步收发,波特率位Fosc/64或Fosc/3211311位异步收发,波特率可变(由定时器控制)2、SBUF:串行口数据缓冲器例: MOVSBUF,A3、PCON 电源控制控制寄存器地址D7D6D5D4D3D2D1D0复位值87HSMODSM0D0LVDFPOFGF1GF0PDIDL0011 0000(1)IDL:待机方式控制位,IDL=1,系统进入空

22、闲(待机)模式。(2)PD:掉电方式控制位,PD=1,系统进入掉电(停机)模式。片内的外围结构均停MOV PCON,#00000010B (3)GF0:通用标志0,用户可任意使用。(4)GF1:通用标志1,用户可任意使用。(4)POF:上电检测置1,记住是否是第一次工作(5)LVDF:检测到低电压则LVDF=1;LVDF中断请求低电压标志由软件清零,与ELVD=1允许低电压对应判断LVDF: MOV A,PCON ANL A,#00100000B JZ FY ;若FY=0,则LVDF不等于1 (6)SMOD0=1时,SCON寄存器中的SM0/FE用于帧错误检测,检测到一个无效停止位时,通过UA

23、RT接收器设置该位,它必须由软件清零。SM0D0=0时,SCON寄存器中的SM0/FE与SM1一起指定串行通信的工作方式(7)SMOD:串行口波特率倍增系数选择位,影响方式1、2、3时串行通信的波特率。当SMOD=1时,串行口通信波特率加倍。系统复位默认为SMOD=0,串行口通信速度为基本波特率。(方式1波特率=2SMOD/32*定时器T1的溢出率)4、AUXR:辅助寄存器(与计数器共用)5、AUXR1:辅助寄存器1,其中AUXR_P1位用于串行口数据通道切换AUXR1:地址B7B6B5B4B3B2B1B0复位值A2HUART_P1-GF2-DPS0xxx 0xx0(1)DPS:DPS=0选择

24、DPTR0 DPS=1选择DPTR1(2)GF2:通用标志位(3)UART_P1:清0时,工作在P3.0(RXD)与P3.1(TXD),与传统8051单片机相同;置1时,工作在P1.6(RXD)与P1.7(TXD)。注:一般建议,用户将自己的工作串口设置在P1.6(RXD)与P1.7(TXD),将P3.0(RXD)与P3.1(TXD)作为ISP下载的专用通信口。6、BUS_SPEED:单片机片外(64K)数据总线速度控制寄存器地址R7R6R5R4R3R2R1R0复位值A1H-ALES1ALES0-RWS2RWS1RWS0xx10 x011与中断管理有关1、IE中断允许控制寄存器地址D7D6D5

25、D4D3D2D1D0复位值0A8HEAELVDET2ESET1EX1ET0EX000x0 0000(1) (IE.0)-外部中断0中断允许位MCS-51复位以后,IE被清0,所有的中断请求被禁止EX0 EX0=0,禁止外部中断0中断EX0=1,允许外部中断0中断(2)ET0(IE.1)-定时器/计数器T0的溢出中断允许位ET0=0,禁止T0溢出中断;ET0=1,允许T0溢出中断(3)EX1(IE.2)-外部中断1中断允许位EX1=0,禁止外部中断1中断EX1=1,允许外部中断1中断(4)ET1(IE.3)-定时器/计数器T1的溢出中断允许位ET1=0,禁止T1溢出中断;ET1=1,允许T1溢出

26、中断(5)ES(IE.4)-串行口中断允许位ES=0,禁止串行口中断;ES=1,允许串行口中断; (6)ET2(IE.5)-定时器/计数器T2的溢出中断允许位ET2=0,禁止T2溢出中断;ET2=1,允许T2溢出中断(7)ELVD(IE.6):电压检测(8)EA(IE.7)-中断允许总控制位EA=0,CPU屏蔽所有的中断请求(CPU关中断);EA=1,CPU开放所有中断(CPU开中断)2、IP中断优先级控制器地址D7D6D5D4D3D2D1D0复位值0B8H-PLVDPT2PSPT1PX1PT0PX0x0x0 0000(1) PX0(IP.0)-外部中断0中断优先级控制位PX0=1,外部中断0

27、定义为高优先级中断PX0=0,外部中断0定义为低优先级中断(2) PT0(IP.1)-定时器T0中断优先级控制位PT0=1,定时器T0定义为高优先级中断;PT0=0,定时器T0定义为低优先级中断(3) PX1(IP.2)-外部中断1中断优先级控制位PX1=1,外部中断1定义为高优先级中断PX1=0,外部中断1定义为低优先级中断(4) PT1(IP.3)-定时器T1中断优先级控制位PT1=1,定时器T1定义为高优先级中断;PT1=0,定时器T1定义为低优先级中断(5) PS(IP.4)-串行口中断优先级控制位PS=1,串行口定义为高优先级中断PS=0,串行口定义为低优先级中断(6) PT2(IP

28、.5)-定时器T2中断优先级控制位PT2=1,定时器T2定义为高优先级中断;PT2=0,定时器T2定义为低优先级中断MCS-51复位以后,IP的内容为0,各个中断源均为低优先级中断。/INT0-T0-/INT1-T1-串行口(优先级由高到低)3、TCON: 定时计数控制器4、SCON:串行口控制寄存器5、PCON:电源控制寄存器6、WAKE_CLKO:唤醒和时钟控制寄存器与ISP/IAP有关的特殊功能寄存器IAP_DATA:ISP/IAP数据寄存器IAP_ADDRH:ISP/IAP地址寄存器高8位IAP_ADDRL:ISP/IAP地址寄存器低8位IAP_CMD:ISP/IAP命令寄存器IAP_

29、TRIG:ISP/IAP命令触发寄存器IAP_CONTR:ISP/IAP控制寄存器IAP_CONTR:地址B7B6B5B4B3B2B1B0复位值C7HIAPENSWBSSWBSTCMD_FAIL-WT2WT1WT00000 000X(1)WT2、WT1、WT0:设置等待时间(2)CMD_FAIL:如果送了ISP/IAP命令,并对IAP_TRIG送5AH/A5H触发失败,则为1,须由软件清零。(3)SWRST:置1时,产生软件系统复位,硬件自动清零;清0时,不操作。(4)SWBS:软件选择从用户应用程序区启动(清0),还是从ISP监控程序区启动(置1)。要与SWRST直接配合才能实现。例:MOV

30、 IAP_CONTR,#20H;切换到用户程序区 MOV IAP_CONTR,#60H;切换到ISP监控程序区(5)IAPEN:ISP/IAP功能允许位;清0时,禁止;置1时,允许。与并行口相关1、P0、P1、P2、P3、P4-输入输出口(I/O)寄存器四个并行输入/输出口(I/O)的寄存器。它里面的内容对应着管脚的输出。1、P1口地址B7B6B5B4B3B2B1B0复位值90HTXDRXD/INTCLKOUT2FFH(1)CLKOUT2:可编程时钟输出引脚2,利用独立波特率发生器BRT的溢出作为时钟输出(2)RXD/INT:第二串口接收或INT输入(3)TXD:第二串口发送2、P4口地址R7

31、R6R5R4R3E2R1R0复位值C0HP4.7/RSTP4.6P4.5/ALEP4.4FFH(1)ALE:访问片外数据存储器的地址锁存脉冲输出(2)RST:片外复位信号输入端3、P4SW:允许P4.5/P4.5/P4.6管脚作为I/O实用的控制寄存器:地址D7D6D5D4D3D2D1D0复位值BBH-NA_P4.6ALE_P4.5NA_P4.4-X000XXXX(1)与P4口相对应P4SW中D6/D4=0,P4中对应R6/R4无任何功能。(2)P4.5:置1时,用作ALE所存信号,访问XRAM时起作用。(2)P4.7引脚的功能选择是在ISP下载程序时进行选择的,可选择复位或I/O口P4.7,

32、若选I/O口,单片机必须使用外部时钟。4、系统时钟与时钟分频CLR_DIV:地址B7B6B5B4B3B2B1B0复位值97H-CLKS2CLKS1CLKS0XXXX X000CLKS2 CLKS1 CLKS0三位组合000、001、010、011、100、101、110、111分别为0、2、4、8、16、32、64、128分频汇编语言:CLK_DIV EQU 97H或CLK_DIV DATA 97HC51:sfr CLK_DIV=0x97;特殊功能寄存器SFR的名称和地址序号标识符名称字节地址位地址1P0P0口80H80H87H2SP堆栈指针81H3DPL数据指针低8位82H4DPH数据指针高

33、8位83H5PCON电源控制87H6TCON定时器/计数器控制88H88H8FH7TMOD定时器/计数器方式控制89H8TL0定时器/计数器0低8位8AH9TL1定时器/计数器1低8位8BH10TH0定时器/计数器0高8位8CH11TH1定时器/计数器1高8位8DH12P1P1口90H90H97H13SCON串行口控制98H98H9FH14SBUF串行口数据缓冲器99H15P2P2口0A0H0A0H0A7H16IE中断允许控制0A8H0A8H0AFH17P3P3口0B0H0B0H0B7H18IP中断优先级控制0B8H0D0H0DFH19PSW程序状态字0D0H0E0H0EFH20ACC累加器0

34、E0H0F0H0FFH21BB寄存器0F0H0C8H0CFH22T2CON定时器/计数器2控制0C8H23RCAP2L定时器/计数器2自动装载低8位0CAH24RCAP2H定时器/计数器2自动装载高8位0CBH25TL2定时器/计数器2低8位0CCH26TH2定时器/计数器2高8位0CDH常用的函数INTRINS.H实现函数unsigned char _crol_(unsigned char a, unsigned char n) 可以使变量a循环左移n位。单片机的指令助记符助记符指令说明字节数周期数(数据传递类指令)MOVA, Rn寄存器传送到累加器11MOVA, direct直接地址传送到

35、累加器21MOVA, Ri累加器传送到外部RAM(8 地址)11MOVA, #data立即数传送到累加器21MOVRn, A累加器传送到寄存器11MOVRn, direct直接地址传送到寄存器22MOVRn, #data累加器传送到直接地址21MOVdirect, Rn寄存器传送到直接地址21MOVdirect, direct直接地址传送到直接地址32MOVdirect, A累加器传送到直接地址21MOVdirect, Ri间接RAM 传送到直接地址22MOVdirect, #data立即数传送到直接地址32MOVRi, A直接地址传送到直接地址12MOVRi, direct直接地址传送到间接

36、RAM21MOVRi, #data立即数传送到间接RAM22MOVDPTR, #data1616 位常数加载到数据指针31MOVCA, A+DPTR代码字节传送到累加器12MOVCA, A+PC代码字节传送到累加器12MOVXA, Ri外部RAM(8 地址)传送到累加器12MOVXA, DPTR外部RAM(16 地址)传送到累加器12MOVXRi, A累加器传送到外部RAM(8 地址)12MOVXDPTR,A累加器传送到外部RAM(16 地址)12PUSHdirect直接地址压入堆栈22POPdirect直接地址弹出堆栈22XCHA,Rn寄存器和累加器交换11XCHA, direct直接地址和

37、累加器交换21XCHA, Ri间接RAM 和累加器交换11XCHDA, Ri间接RAM 和累加器交换低4 位字节11(算术运算类指令)INCA累加器加111INCRn寄存器加111INCdirect直接地址加121INCRi间接RAM 加111INCDPTR数据指针加112DECA累加器减111DECRn寄存器减111DECdirect直接地址减122DECRi间接RAM 减111MULAB累加器和B 寄存器相乘14DIVAB累加器除以B 寄存器14DAA累加器十进制调整11ADDA,Rn寄存器与累加器求和11ADDA,direct直接地址与累加器求和21ADDA,Ri间接RAM 与累加器求和

38、11ADDA,#data立即数与累加器求和21ADDCA,Rn寄存器与累加器求和(带进位)11ADDCA,direct直接地址与累加器求和(带进位)21ADDCA,Ri间接RAM 与累加器求和(带进位)11ADDCA,#data立即数与累加器求和(带进位)21SUBBA,Rn累加器减去寄存器(带借位)11SUBBA,direct累加器减去直接地址(带借位)21SUBBA,Ri累加器减去间接RAM(带借位)11SUBBA,#data累加器减去立即数(带借位)21(逻辑运算类指令)ANLA,Rn寄存器“与”到累加器11ANLA,direct直接地址“与”到累加器21ANLA,Ri间接RAM“与”到

39、累加器11ANLA,#data立即数“与”到累加器21ANLdirect,A累加器“与”到直接地址21ANLdirect, #data立即数“与”到直接地址32ORLA,Rn寄存器“或”到累加器12ORLA,direct直接地址“或”到累加器21ORLA,Ri间接RAM“或”到累加器11ORLA,#data立即数“或”到累加器21ORLdirect,A累加器“或”到直接地址21ORLdirect, #data立即数“或”到直接地址31XRLA,Rn寄存器“异或”到累加器12XRLA,direct直接地址“异或”到累加器21XRLA,Ri间接RAM“异或”到累加器11XRLA,#data立即数“

40、异或”到累加器21XRLdirect,A累加器“异或”到直接地址21XRLdirect, #data立即数“异或”到直接地址31CLRA累加器清零12CPLA累加器求反11RLA累加器循环左移11RLCA带进位累加器循环左移11RRA累加器循环右移11RRCA带进位累加器循环右移11SWAPA累加器高、低4 位交换11(控制转移类指令)JMPA+DPTR相对DPTR 的无条件间接转移12JZrel累加器为0 则转移22JNZrel累加器为1 则转移22CJNEA,direct,rel比较直接地址和累加器,不相等转移32CJNEA,#data,rel比较立即数和累加器,不相等转移32CJNERn

41、,#data,rel比较寄存器和立即数,不相等转移22CJNERi,#data,rel比较立即数和间接RAM,不相等转移32DJNZRn,rel寄存器减1,不为0 则转移32DJNZdirect,rel直接地址减1,不为0 则转移32NOP 空操作,用于短暂延时11ACALLadd11绝对调用子程序22LCALLadd16长调用子程序32RET 从子程序返回12RETI 从中断服务子程序返回12AJMPadd11无条件绝对转移22LJMPadd16无条件长转移32SJMPrel无条件相对转移22(布尔指令)CLRC清进位位11CLRbit清直接寻址位21SETBC

42、置位进位位11SETBbit置位直接寻址位21CPLC取反进位位11CPLbit取反直接寻址位21ANLC, bit直接寻址位“与”到进位位22ANLC, /bit直接寻址位的反码“与”到进位位22ORLC, bit直接寻址位“或”到进位位22ORLC, /bit直接寻址位的反码“或”到进位位22MOVC, bit直接寻址位传送到进位位21MOVBit, C进位位位传送到直接寻址22JCrel如果进位位为1 则转移22JNCrel如果进位位为0 则转移22JBBit, rel如果直接寻址位为1 则转移32JNBBit, rel如果直接寻址位为0 则转移32JBCBit, rel直接寻址位为1

43、则转移并清除该位22(伪指令)ORG指明程序的开始位置DB定义数据表DW定义16 位的地址表EQU给一个表达式或一个字符串起名DATA给一个8 位的内部RAM 起名XDATA给一个8 位的外部RAM 起名BIT给一个可位寻址的位单元起名END指出源程序到此为止(指令中的符号标识)Rn工作寄存器R0-R7Ri工作寄存器R0 和R1Ri间接寻址的8 位RAM 单元地址(00H-FFH)#data88 位常数#data1616 位常数addr1616 位目标地址,能转移或调用到64KROM 的任何地方addr1111 位目标地址,在下条指令的2K 范围内转移或调用Rel8 位偏移量,用于SJMP 和所有条件转移指令,范围-128+127Bit片内RAM 中的可寻址位和SFR 的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论