单片机常用指令.docx
- 文档编号:26128092
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:18
- 大小:24.58KB
单片机常用指令.docx
《单片机常用指令.docx》由会员分享,可在线阅读,更多相关《单片机常用指令.docx(18页珍藏版)》请在冰豆网上搜索。
单片机常用指令
常用单片机汇编指令:
1MOVA,Rn寄存器内容送入累加器
2MOVA,direct直接地址单元中的数据送入累加器
3MOVA,@Ri间接RAM中的数据送入累加器
4MOVA,#data立即数送入累加器
5MOVRn,A累加器内容送入寄存器
6MOVRn,direct直接地址单元中的数据送入寄存器
7MOVRn,#data立即数送入寄存器
8MOVdirect,A累加器内容送入直接地址单元
9MOVdirect,Rn寄存器内容送入直接地址单元
10MOVdirect,direct直接地址单元中的数据送入另一个直接地址单元
11MOVdirect,@Ri间接RAM中的数据送入直接地址单元
12MOVdirect,#data立即数送入直接地址单元
13MOV@Ri,A累加器内容送间接RAM单元
14MOV@Ri,direct直接地址单元数据送入间接RAM单元
15MOV@RI,#data立即数送入间接RAM单元
16MOVDRTR,#dat1616位立即数送入地址寄存器
17MOVCA,@A+DPTR以DPTR为基地址变址寻址单元中的数据送入累加器
18MOVCA,@A+PC以PC为基地址变址寻址单元中的数据送入累加器
19MOVXA,@Ri外部RAM(8位地址)送入累加器
20MOVXA,@DPTR外部RAM(16位地址)送入累加器
21MOVX@Ri,A累计器送外部RAM(8位地址)
22MOVX@DPTR,A累计器送外部RAM(16位地址)
23PUSHdirect直接地址单元中的数据压入堆栈
24POPdirect弹栈送直接地址单元
25XCHA,Rn寄存器与累加器交换
26XCHA,direct直接地址单元与累加器交换
27XCHA,@Ri间接RAM与累加器交换
8XCHDA,@Ri间接RAM的低半字节与累加器交换
算术操作类指令:
1ADDA,Rn寄存器内容加到累加器
2ADDA,direct直接地址单元的内容加到累加器
3ADDA,@Ri间接ROM的内容加到累加器
4ADDA,#data立即数加到累加器
5ADDCA,Rn寄存器内容带进位加到累加器
6ADDCA,direct直接地址单元的内容带进位加到累加器
7ADDCA,@Ri间接ROM的内容带进位加到累加器
8ADDCA,#data立即数带进位加到累加器
9SUBBA,Rn累加器带借位减寄存器内容
10SUBBA,direct累加器带借位减直接地址单元的内容
11SUBBA,@Ri累加器带借位减间接RAM中的内容
12SUBBA,#data累加器带借位减立即数
13INCA累加器加1
14INCRn寄存器加1
15INCdirect直接地址单元加1 16INC@Ri间接RAM单元加1
17DECA累加器减1
18DECRn寄存器减1112
19DECdirect直接地址单元减1
20DEC@Rj间接RAM单元减1
21INCDPTR地址寄存器DPTR加1
22MULABA乘以B,结果放在A
23DIVABA除以B,结果放在A
24DAA累加器十进制调整
布尔变量操作类指令:
1CLRC清进位位
2CLRbit清直接地址位
3SETBC置进位位
4SETBbit置直接地址位
5CPLC进位位求反
6CPLbit置直接地址位求反
7ANLC,bit进位位和直接地址位相“与”
8ANLC,bit进位位和直接地址位的反码相“与”
9ORLC,bit进位位和直接地址位相“或”
10ORLC,bit进位位和直接地址位的反码相“或”
11MOVC,bit直接地址位送入进位位
12MOVbit,C进位位送入直接地址位
13JCrel进位位为1则转移
14JNCrel进位位为0则转移
15JBbit,rel直接地址位为1则转移
16JNBbit,rel直接地址位为0则转移
17JBCbit,rel直接地址位为1则转移,该位清零
逻辑操作数指令:
1ANLA,Rn累加器与寄存器相“与”
2ANLA,direct累加器与直接地址单元相“与”
3ANLA,@Ri累加器与间接RAM单元相“与”
4ANLA,#data累加器与立即数相“与”
5ANLdirect,A直接地址单元与累加器相“与”
6ANLdirect,#data直接地址单元与立即数相“与”
7ORLA,Rn累加器与寄存器相“或”
8ORLA,direct累加器与直接地址单元相“或”
9ORLA,@Ri累加器与间接RAM单元单元相“或”
10ORLA,#data累加器与立即数相“或”
11ORLdirect,A直接地址单元与累加器相“或”
12ORLdirect,#data直接地址单元与立即数相“或”
13XRLA,Rn累加器与寄存器相“异或”
14XRLA,direct累加器与直接地址单元相“异或”
15XRLA,@Ri累加器与间接RAM单元单元相“异或”
16XRLA,#data累加器与立即数相“异或”
17XRLdirect,A直接地址单元与累加器相“异或”
18XRLdirect,#data直接地址单元与立即数相“异或”
19CLRA累加器清“0”
20CPLA累加器求反
21RLA累加器循环左移
22RLCA累加器带进位位循环左移
23RRA累加器循环右移
24RRCA累加器带进位位循环右移
25SWAPA累加器半字节交换
控制转移类指令:
1ACALLaddr11绝对(短)调用子程序
2LCALLaddr16长调用子程序
3RET子程序返回
4RETI中数返回
5AJMPaddr11绝对(短)转移
6LJMPaddr16长转移
7SJMPrel相对转移
8JMP@A+DPTR相对于DPTR的间接转移
9JZrel累加器为零转移
10CJNErel累加器非零转移
11CJNEA,direct,rel累加器与直接地址单元比较,不相等则转移
12CJNEA,#data,rel累加器与立即数比较,不相等则转移
13CJNERn,#data,rel寄存器与立即数比较,不相等则转移
14CJNE@Ri,#data,rel间接RAM单元与立即数比较,不相等则转移
15DJNZRn,rel寄存器减1,非零转移
16DJNZdirect,erl直接地址单元减1,非零转移
17NOP空操作
MOV指令表示单片机内部的寄存器或者存储器之间相互传递数据,而MOVX则表示单片机内部的A累加器与片外的数据存储器传送数据.还有两条是MOVC的指令,它们表示A向ROM(程序存储器)读取数据,因为程序存储器是固定的不可以写的,所以,A只能读数据,却不能向它写数据.换句话说MOVX和MOVC是针对两种不同的存储器而言,一个是数据存储器,另一个却是程序存储器.
1.MCS—51单片机引脚信号中,信号名称带上划线的表示该信号
或有效。
2.通过堆栈操作实现子程序调用,首先要把的内容入栈,以进行断点保护。
调用返回时再进行出栈操作,把保护的断点送回。
3.某程序初始化时使(SP)=40H,则此堆栈地址范围为,若使(SP)=50H,则此堆栈深度为。
4.在相对寻址方式中,“相对”两字是指相对于,寻址得到的结果是。
在寄存器寻址方式中,指令中指定寄存器的内容就是。
在变址寻址方式中,以作变址寄存器,以或作基址寄存器。
5.假定累加器(A)=49H,执行指令:
201AH:
MOVCA,@A+PC
后,送入A的是程序存储器单元的内容。
6.若(DPTR)=5306H,(A)=49H,执行下列指令:
MOVCA,@A+DPTR
后,送入A的是程序存储器单元的内容。
7.假定(SP)=45H,(ACC)=46H,(B)=47H,执行下列指令:
PUSHACC
PUSHB
后,(SP)=,(46H)=,(47H)=。
8.假定(SP)=47H,(46H)=46H,(47H)=47H。
执行下列指令:
POPDPH
POPDPL
后,(DPTR)=,(SP)=。
9.若(A)=56H,(R0)=56H,(56H)=56H。
执行指令:
ADDA,@R0
后,(A)=,(CY)=,(AC)=,(OV)=。
10.若(A)=0FFH,(R0)=46H,(46H)=0FFH,(CY)=1。
执行指令:
ADDCA,@R0
后,(A)=,(CY)=,(AC)=,(OV)=。
11.假定(A)=45H,(B)=67H。
执行指令:
MULAB
后,寄存器(B)=,累加器(A)=,(CY)=,(OV)=。
12.假定(A)=0FCH,(B)=35H。
执行指令:
DIVAB
后,累加器(A)=,寄存器(B)=,(CY)=,(OV)=。
13.执行如下指令序列:
MOVC,P1.0
ANLC,P1.1
ORC,/P1.2
MOVP1.3,C
后,所实现的逻辑运算式为。
14.假定addr11=00100011001B,标号MN的地址为2099H。
执行指令:
MN:
AJMPaddr11
后,程序转移到地址去执行。
15.假定标号MN的地址为2000H,标号XY值为2022H。
应执行指令:
MN:
SJMPXY
该指令的相对偏移量为。
16.累加器A中存放着一个其值小于63的8位无符号数,CY清“0”后执行指令:
RLCA
RLCA
则A中数变为原来的倍。
17.在MCS—51单片机系统中,采用的编址方式是。
MCS—51可提供和两种存储器,其编址方式为,扩展后其最大存储空间分别为和。
对80C51而言,片内ROM和片外ROM的编址方式为,片外ROM的地址从开始;片内RAM和片外RAM的编址方式为,片外RAM的地址从开始。
18.为实现内外程序存储器的衔接,应使用信号进行控制,对8031,EA=,CPU对进行寻址;对80C51,EA=1,CPU对寻址。
19.访问内部RAM使用指令,访问外部RAM使用指令,访问内部ROM使用指令,访问外部ROM使用指令。
20.当计数器产生记数溢出时,定时器/记数器的TF0(TF1)位=。
对记数溢出的处理,在中断方式时,该位作为位使用;在查询方式时,该位作为位使用。
21.在定时器工作方式0下,计数器的宽度为位,其记数范围为,如果系统晶振频率为6MHZ,则最大定时时间为。
22.利用定时器/计数器产生中断时,应把定时器/计数器设置成工作状态,当计数器设置成方式0时,记数初值应为;设置成方式1时,记数初值应为;设置成方式2或方式3时,记数初值应为。
23.对单片机而言,连接到数据总线上的输出口应具有功能,连接到数据总线上的输入口应具有功能。
24.在多位LED显示器接口电路的控制信号中,必不可少的是控信号和控信号。
25.与8255比较,8155的功能有所增强,主要表现在8155具有单元的和一个位的。
26.单片机实现数据通讯时,其数据传送方式有和两种。
串行数据传送方式分为和两种。
27.专用寄存器“串行发送数据缓冲寄存器”,实际上是寄存器和寄存器的总称。
28.在串行通讯中,若发送方的波特率为1200bps,则接收方的波特率为。
29.D/A转换电路之前必须设置数据锁存器,这是因为
。
30.对于由8031构成的单片机应用系统,EA脚应接,中断响应并自动生成长调用指令LCALL后,应转向去执行中断服务程序。
单选题:
1.80C51与8031的区别在于
内部ROM的容量不同
内部RAM的容量不同
内部ROM的类型不同
80C51使用EEPROM,而8031使用EPROM
2.PC的值是
A.当前指令前一条指令的地址B.当前正在执行指令的地址
C.下一条指令的地址D.控制器中指令寄存器的地址
3.假定(SP)=37H,在进行子程序调用时把累加器A和断点地址进栈保护后,SP的值为
A.3AHB.38HC.39HD.40H
4.在80C51中,可使用的堆栈最大深度为
A.80个单元B.32个单元C.128个单元D.8个单元
5.在相对寻址方式中,寻址的结果体现在
A.PC中B.累加器A中
C.DPTR中D.某个存储单元中
6.在寄存器间接寻址方式中,指定寄存器中存放的是
A.操作数B.操作数地址
C.转移地址D.地址偏移量
7.执行返回指令时,返回的断点是
A.调用指令的首地址B.调用指令的末地址
C.返回指令的末地址D.调用指令下一条指令的首地址
8.可以为访问程序存储器提供或构成地址的有
A.只有程序计数器PC
B.只有PC和累加器A
C.只有PC、A和数据指针DPTR
D.PC、A、DPTR和堆栈指针SP
9.若原来工作寄存器0组为当前寄存器组,现要改2组为当前寄存器组,不能使用指令
A.SETBPSW.3B.SETBD0H.4
C.MOVD0H,#10HD.CPLPSW.4
10.执行以下程序段
MOVSP,#40H
MOVB,#30H
MOVA,#20H
PUSHB
PUSHACC
POPB
POPACC
后,B和A的内容分别为
A.20H,30HB.30H,20H
C.40H,30HD.40H,20H
11.执行以下程序段
MOVR0,#70H
MOVA,R0
RLA
MOVR1,A
RLA
RLA
ADDA,R1
MOV@R0,A
后,实现的功能是
A.把立即数70H循环左移3次B.把立即数70H×10
C.把70H单元的内容循环左移3次D.把70H单元的内容×10
12.下列叙述中,不属于单片机存储器系统特点的是
A.扩展程序存储器与片内程序存储器存储空间重叠
B.扩展数据存储器与片内数据存储器存储空间重叠
C.程序和数据两种类型的存储器同时存在
D.芯片内外存储器同时存在
13.如在系统中只扩展两片Intel2764,其地址范围分别为0000H~1FFFH、8000H~9FFFH,除应使用P0口的8条口线外,至少还应使用P2口的口线
A.6条B.7条C.5条D.8条
14.下列有关MCS—51中断优先级控制的叙述中,错误的是
A.低优先级不能中断高优先级,但高优先级能中断低优先级
B.同级中断不能嵌套
C.同级中断请求按时间的先后顺序响应
D.同级中断按CPU查询次序响应中断请求
15.执行中断返回指令,要从堆栈弹出断点地址,以便去执行被中断了的主程序。
从堆栈弹出的断点地址送给
A.AB.CYC.PCD.DPTR
16.中断查询确认后,在下列各种单片机运行情况中,能立即进行响应的是
A.当前指令是ORLA,Rn指令
B.当前正在执行RETI指令
C.当前指令是MUL指令,且正处于取指令机器周期
D.当前正在进行1优先级中断处理
下列功能中不是由I/O接口实现的是
A.数据缓冲和锁存B.数据暂存
C.速度协调D.数据转换
18.为给扫描法工作的键盘提供接口电路,在接口电路中需要
A.一个输入口B.一个输出口
C.一个输入口和一个输出口D.两个输入口
19.下列理由中,能说明MCS—51的I/O编址是统一编址方式而非独立编址方式的理由是
用存储器指令进行I/O操作
有专用的I/O指令
有区分存储器和I/O的控制信号
I/O和存储器的地址可以重叠
20.把8155的A2、A1、A0分别与80C51的P0.2、P0.1、P0.0连接,则8155的PA、PB、PC口的地址可能是
A.××00H~××03HB.00××H~03××H
C.××01H~××03HD.××00H~××02H
21.调制解调器(MODEM)的功能是
A.串行数据与并行数据的转换
B.数字信号与模拟信号的转换
C.电平信号与频率信号的转换
D.基带传送方式与频带传送方式的转换
22.通过串行口发送数据时,在程序中应使用
A.MOVXSBUF,AB.MOVCSUBF,A
C.MOVSUBF,AD.MOVA,SUBF
23.通过串行口接收数据时,在程序中应使用
A.MOVXA,SBUFB.MOVCA,SUBF
C.MOVSUBF,AD.MOVA,SUBF
24.在多机通讯中,有关第9数据位的说明中,正确的是
A.接收到的第9数据位送SCON寄存器的TB8中保存
B.帧发送时使用指令把TB8位的状态送入移位寄存器的第9位
C.发送的第9数据位内容在SCON寄存器的RB8中预先准备好
D.帧发送时使用指令把TB8位的状态送入发送SBUF中
25.在使用多片DAC0832进行D/A转换,并分时输入数据的应用中,它的两级数据锁存结构可以
A.提高D/A转换速度B.保证各模拟电压能同时输出
C.提高D/A转换精度D.增加可靠性
26.8279芯片与80C51接口电路时,其内部时钟信号是由外部输入的时钟信号经过分频产生的。
如80C51的fosc=6MHz,8279为取得100KHz的内部时钟信号,则其定时值为
A.20DB.10DC.20HD.10H
分析程序后,回答问题。
若(A)=80H,R0=17H,(17H)=34H,执行下段程序后,(A)=?
ANLA,#17H
ORL17H,A
XRLA,@R0
CPLA
写出程序执行后有关寄存器和RAM中有关单元的内容:
MOV30H,#A4H
MOVA,#0D6H
MOVR0,#30H
MOVR2,#47H
ANLA,R2
ORLA,R0
SWAPA
CPLA
XRLA,#0FFH
ORL30H,A
下列程序执行后,(SP)=?
(A)=?
(B)=?
ORG2000H
MOVSP,#40H
MOVA,#30H
LCALL2500H
ADDA,#10H
MOVB,A
SJMP$
ORG2500H
MOVDPTR,#200AH
PUSHDPL
PUSHDPH
RET
在程序存储器中,数据表格为:
1010H:
02H
1011H:
04H
1012H:
06H
1013H:
08H
执行程序
1000H:
MOVA,#0DH
1002H:
MOVCA,@A+PC
1003H:
MOVR0,A
问结果:
(A)=?
(R0)=?
(PC)=?
在程序存储器中,数据表格为:
7010H:
02H
7011H:
04H
7012H:
06H
7013H:
08H
执行程序
1004H:
MOVA,#10H
1006H:
MOVDPTR,#7000H
1009H:
MOVCA,@A+DPTR
问结果:
(A)=?
(PC)=?
程序如下:
CLRRS1
CLRRS0
MOVA,#38H
MOVR0,A
MOV29H,R0
SETBRS0
MOVC,RS0
MOVR1,A
MOV26H,A
MOV28H,C
ADDCA,26H
试问:
(1)区分哪些是位操作指令?
哪些是字节操作指令?
(2)写出程序执行后有关寄存器和RAM中有关单元的内容。
设单片机采用6MHz晶振,计算如下一段程序的执行时间,并说明这段程序的作用。
MOVR0,#20H
MOVR3,#05H
MOVA,@R0
CPLA
ADDA,#01H
MOV@R0,A
NEXT:
INCR0,
MOVA,@R0
CPLA
ADDCA,#00H
MOV@R0,A
DJNZR3,NEXT
SJMP$
用80C51单片机的P1端口作输出,经驱动电路接8只发光二极管,如图,输出位是“1”时,发光二极管点亮,输出“0”时为暗。
试分析下述程序执行过程及发光二极管点亮的工作规律。
LP:
MOVP1,#81H
LCALLDELAY
MOVP1,#42H
LCALLDELAY
MOVP1,#24H
LCALLDELAY
MOVP1,#18H
LCALLDELAY
MOVP1,#24H
LCALLDELAY
MOVP1,#42H
LCALLDELAY
SJMPLP
子程序:
DELAY:
MOVR2,#0FAH
L1:
MOVR3,#0FAH
L2:
DJNZR3,L2
DJNZR2,L1
RET
改错题:
把在R4和R5中的两字节数取补(高位在R4中):
CLRC
MOVA,R5
CPLA
INCA
MOVR5,A
MOVA,R4
CPLA
ADDCA,#00H
MOVR4,A
SJMP$
问答题
单片机MCS—51系列产品80C51/87C51/80C31三种单片机的区别是什么?
如何选用?
试说明MCS—51单片机内部程序存储器中6个特殊功能单元(5个中断源和1个复位)的作用及在程序编制中如何使用?
内部RAM低128单元划分为哪3个主要部分?
说明各部分的使用特点。
堆栈有哪些功能?
堆栈指示器(SP)的作用是什么?
在程序设计时,为什么还要对SP重新赋值?
如果CPU在操作中要使用两组工作寄存器,你认为SP的初值应为多大?
开机复位后,CPU使用的是哪组工作寄存器?
它们的地址是什么?
CPU如何确定和改变当前工作寄存器组?
MCS—51单片机运行出错或程序进入死循环,如何摆脱困境?
在MCS—51单片机系统中,外接程序存储器和数据存储器共用16位地址线和8位数据线,为什么不会发生冲突?
一个定时器的定时时间有限,如何实现两个定时器的串行定时,以满足较长定时时间的要求?
使用一个定时器,如何通过软硬件结合的方法,实现较长时间的定时?
10.MCS—51单片机属哪一种I/O编址方式?
有哪些特点可以证明。
11.多片D/A转换器为什么必须采用双缓冲接口方式?
12.说明利用MCS-51单片机的串行口进行多机通信的原理,应特别指出第9数据位在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 常用 指令
![提示](https://static.bdocx.com/images/bang_tan.gif)