❶ 单片机系统指令的位操作指令
一、数据位传送指令
MOV C,bit
MOV bit,C
如MOV C,06H ;(20H).6→Cy
06H是内部RAM 20H字节位6的位地址。
MOV P1.0,C ;Cy→P1.0
可寻址位的具体定义:从20H单元的第一位开始一直到2FH单元的最后一位分别为00H~7FH以及特殊功能寄存器中80H~F7H。
二、位变量修改指令
CLR C ;清“0”Cy
CLR bit ;清“0”bit位
CPL C ;Cy求反
CPL bit ;bit位求反
SETB C ;置“1” Cy
SETB bit ;置“1”bit位
三、位变量逻辑与指令
ANL C,bit ;bit ∧Cy →Cy
ANL C,/bit; ;/ bit ∧Cy →Cy
四、位变量逻辑或指令
ORL C,bit ;bit ∨ Cy →Cy
ORL C,/bit ;/ bit ∨ Cy →Cy
五、条件转移类指令
JC rel ;如果进位位Cy=1,则转移
JNC rel ;如果进位位Cy=0,则转移
JB bit,rel ;如果直接寻址位=1,则转移
JNB bit,rel ;如果直接寻址位=0,则转移
JBC bit,rel ;如果直接寻址位=1,则转移,并对bit位清0
❷ 单片机系统指令的功能指令
一、字节交换指令
XCH A, Rn
若(A)=80H,(R7)=08H,执行后(A)=08H,(R7)=80H
XCH A, direct
若(A)=80H,(40H)=F0H,执行后(A)=F0H ,(40H)= 80H
XCH A, @Ri
若(A)=80H , (R0)=6AH, (6AH)=0FH ,
执行后(A)=0FH,(6AH)=80H
二、半字节交换指令
XCHD A, @Ri 累加器的低4位与内部RAM低4位交换
三、累加器半字节交换指令
SWAP A
将累加器A的高半字节和低半字节互换。
四、算术运算指令
加、减、乘、除指令,都是针对8位二进制无符号数。执行
的结果对Cy、Ac、OV等标志位有影响,但增1和减1指令不影
响上述标志。
1、加法指令,目的操作数均为ACC。
ADD A, Rn ;(A)+(Rn)→A,n=0~7
ADD A, direct ;(A)+(direct)→A
ADD A, @Ri ;(A)+((Ri))→A,i=0,1
ADD A, #data ;(A)+#data→A
注意运算结果对各个标志位的影响:
(1)、如果位7有进位,则进位标志Cy置“1”,否则清0;
(2)、如果位3有进位,则辅助进位标志Ac置“1”,否则清0;
(3)、溢出标志位OV:
如果位6有进位,而位7没有进位;或者位7有进位,而位6 没有,则溢出标志位OV置“1”,否则清0。
OV状态,只有在带符号数加法运算时才有意义。
当两个带符号数相加时,OV=1,表示加法运算超出了累加器A所能表示的带符号数的有效范围。
2、带进位加法指令
标志位Cy参加运算,因此是三个数相加。共4条:
ADDC A, Rn ;(A)+(Rn)+C→A,n=0~7 ADDC A, direct ;(A)+(direct)+C→A
ADDC A, @Ri ;(A)+(Ri)+C→A,i=0,1
ADDC A, #data ;(A)+#data+C→A
3、增1(加1)指令(C语言的++ )
INC A
INC Rn ;n=0~7
INC direct
INC @Ri ;i=0,1
INC DPTR (除立即数以外)
(1)、不影响PSW中的任何标志局码(除了INC A 外)。
(2)、INC DPTR
该指令是16位数增1指令。指令首先对低8位指针DPL的内容执行加1的操作,当产生溢出时,就对DPH的内容进行加1操作,不影响标志Cy的状态。
4、DA A,十进制调整指令
用于对BCD码加法运算结果的修正。
两个BCD码按二进制相加之后,必须经本指令的调整才能
得到正确的压缩BCD码的和数。
调整方法:十进制调和腊让整修正,即结果加6调整。具体为:
a) 累加器低4位大于9或辅助进位位Ac=1,则进行低4位加6修正;
b) 累加器高4位大于9或进位位Cy=1,则进行高4位加6修正;
c) 累加器高4位大于9, 低4位大于9, 则高4位和低4位分别加6修正;是否加6是通过执行指令 DA A 来自动实现的。
5、带借位的减法指令(注意:减法只有带借位的)
SUBB A, Rn ;(A)-(Rn)- Cy→A,n=0~7
SUBB A, direct ; (A)-(direct)- Cy→A
SUBB A, @Ri ;(A)-((Ri))- Cy→A, i=0,1
SUBB A, #data ;(A)-#data - Cy→A
A的内容减去源操作数和进位标志Cy的值,结果存在A中。
1、如果位7需借位,则Cy置1,否则清0;
2、如果位3需借位,则Ac置1 ,否则清0;
3、如果位6需借位而位7不需要借位,或者位7需借位,位6
不需借位,则溢出标志位OV置1,否则清0。
6、减1指令(C语言的--)
DEC A ;(A)-1→A
DEC Rn ;(Rn)-1→Rn,n=0~7
DEC direct ;唤局(direct)-1→direct
DEC @Ri ;((Ri))-1→(Ri),i=0,1
1、减1指令不影响标志位。
2、增1/加1指令有INC DPTR,减1无DEC DPTR指令。
7、乘法指令
MUL AB ;A×B→BA
1、积的高字节在B中,低字节在A中;
2、如果积大于255,则置“1”溢出标志位OV
8、除法指令
DIV AB ;A/B→A(商),余数→B
如果B的内容为“0”(即除数为“0”),则存放结果的A、B中的内容不定,并置“1”溢出标志位OV。
五、左环移指令RL A
累加器A的内容向左环移一位,Acc.7移入Acc.0 ,不影响标志。
六、带进位左环移指令RLC A
累加器A的内容和进位标志位Cy一起向左环移一位,Acc.7移入进位位Cy,Cy移入Acc.0,不影响其它标志。
七、右环移指令RR A
累加器A的内容向右环移一位,Acc.0移入Acc.7,不影响标志。
八、带进位环移指令RRC A
累加器A的内容和进位标志Cy一起向右环移一位,Acc.0移入Cy,Cy移入Acc.7。不影响其它标志。
九、逻辑与指令
ANL A, Rn ; (A)∧(Rn)→A,n=0~7
ANL A, direct ; (A)∧(direct)→A
ANL A, #data ; (A)∧#data→A
ANL A, @Ri ; (A)∧((Ri))→A,i=0~1
ANL direct, A ; (direct)∧(A)→direct
ANL direct, #data ; (direct)∧#data→direct
十、逻辑或指令
ORL A, Rn ;(A) ∨(Rn)→A ,n=0~7
ORL A, direct ;(A) ∨(direct)→A
ORL A, #data ;(A) ∨data→A
ORL A, @Ri ;(A) ∨((Ri))→A,i=0,1
ORL direct, A ;(direct) ∨(A)→direct
ORL direct, #data ;(direct) ∨#data→direct
十一、逻辑异或指令
XRL A, Rn ;(A) ⊕(Rn)→A
XRL A, direct ;(A) ⊕(direct)→A
XRL A, @Ri ;(A) ⊕((Ri))→A ,i=0,1
XRL A, #data ;(A) ⊕#data→A
XRL direct, A ;(direct) ⊕(A)→direct
XRL direct, #data ;(direct) ⊕#data →direct
与1相与取反,与0相与不变。
❸ 单片机的左移指令什么意思
这是汇编语言中的指令,是对累加器A中的8位数依此向左移一位,还分带Cy的移位和不带Cy的移位。指令分别为
RLC A ;带Cy的左移位
RL A ;不带Cy的移位
以RL A为例说明:假如A=10110010,则左移位一次后,这8位数向左移一位,最高位回到最低位,就像是8个人转了一圈似。
移位后,A=01100101
❹ 单片机指令
一、
1、单片机全称单片微型计算机,就是将CPU、存储器、I/O口等集成在一个芯片内
2、设置工作模式,设置是否开中断,置入计数初值
3、P3.0,RXD(串行输入)
P3.1,TXD(串行输出)
P3.2,/INT0(外部中断0)
P3.3,/INT1(外部中断1)
P3.4,T0(定时器0外部输入)
P3.5,T1(定时器1外部输入)
P3.6,/WR(外部数据存储器写选)
P3.7,/RD(外部数据存储器读选)
4、SMOD(模式控制寄存器),TCON(定时器控制寄存器),IE(中断控制寄存器)
5、寻址方式就是寻找操作数或操作数地址的方式,MCS-51单片机有七种寻址方式:立即数寻址,直接寻址,间接寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址
6、8051有五个中断源:外部中断0、T0溢出中断、外部中断1、T1溢出中断、串口中断;其对应的入口地址分别为:0003H,000BH,0013H,001BH,0023H
7、书上讲的应该是有21个特殊功能寄存器,PSW的状态标志位从第7位到第0位分别为:Cy(借位或者进位标志位)、Ac(辅助进位标志位也叫半进位标志位)、F0(由用户来定义)、RS1、RS0(这两位合起来定义单片机选用四组通用寄存器中的哪一组)、OV(溢出标志位)、未用、P(奇偶校验位)
8、定时器/计数器有2种工作方式:定时方式和计数方式,定时方式时一个时钟周期定时器加1,计数方式时时钟脉冲为外部信号(引脚P3.4或者P3.5),如果你问的是工作‘模式’的话自己网上查一下,很容易找
二、
5、9、10是对的,其它是错的
三、
1、SP)=41H,(DPTR)=3412
2、(SP)=40H,(DPTR)=3412
3、(SP)=41H,(DPTR)=3413
4、(A)=0FAH,(B)=03H
5、(30H)=0EH
6、这个题目有错误,250后面不应该有H吧
没有的话应该是:约2.5ms 自己再算算
四、
1.将片外RAM 8000H单元的内容传送到片内RAM 20H单元。
MOV DPTR,#8000H
MOVX A,@DPTR
MOV 20H,A
2.将片外RAM 4000H单元的内容传送到片内RAM 20H单元。
MOV DPTR,#4000H
MOVX A,@DPTR
MOV 20H,A
3.将片内RAM 50H单元与51H单元的内容交换
MOV A,50H
MOV B,51H
XCH A,B
MOV 50H,A
MOV 51H,B
4.将片内RAM 20H单元的内容传送到A中
MOV A,20H
5.将片内RAM 60H单元的内容传送到A中
MOV A,60H
6. 使累加器A的内容高四位取反,低四位清零
CPL A
ANL A,#F0H
7. 使累加器A的内容最四位置1,低四位清零,其余位保持不变。
是最高位置1吗??是的话
ORL A,#80H
ANL A,#F0H
8.分别用指令实现下列各小题的要求:
1) T0开中断(允许中断),其余禁止中断
MOV IE,#82H
2) T1、串行口开中断(允许中断),其余禁止中断
MOV IE,#92H
3) 全部开中断
MOV IE #FFH
4) 全部禁止中断
CLR IE
五、计数初值=65536-(50ms/1us)=15535=3CAFH
❺ 帮忙解释一下单片机编程中的 每一个指令的意思和控制过程、急用、谢谢
mov tmod, #61h;将61h这个数赋给tmod寄存器,具体什么模式你把它拆成16进制数对着寄存器看吧,好吧,刚帮你查了下,是:仅由TR0,TR1置位分别启动定时器T0、T1,T0为计数功能,T1为定时功能。T1是自动重装8位计数器,T0是16位计数器。
mov dptr, #15536 ;令dptr(记得是数据指针)的值为15536
mov tl0,dpl ;让dptr的低8位的值给定时器t0的低8位
mov th0, dph ;把dptr的高8位的值给定时器t0的高8位
mov tl1, #236 ;让t1的值为236
setb tr0;开启t0
setb tr1;开启t1
loop: jnb tf0,$; 表示测试tf0的值,如果不为1(为0)则程序继续执行本条指令($表示当前位置),如果为1则顺序执行下一条指令。 这里就是说当定时器T0溢出时进入下面的指令
clr tf0 ;清零tf0并进入下面的程序
mov dptr, #15536 ;与上面的意思一样
mov tl0, dpl
mov th0, dph
clr p3.5 ;使3.5口为0
setb p3.5 ;使3.5口为1
jnb tf1 ,loop ;还是检测,这次检测tf1位的值,如果不为1则继续本指令
clr tf1;令tf1为0,即低电平
大概就记得这些了 给你个参考吧
❻ 51单片机指令
TF1是定时器1溢出标志位,$是取地址。JNB TF1,$ 实现的功能是查询定时器1溢出标志位,如果为0,跳转到本条指令继续执行(即继续查询)直到定时时间到,TF1置位,才执行下一条指令。
给你注释一下:
MOV TMOD,#10H //设置定时器工作方式(定时器1,工作方式2)
SETB TR1 //开启定时器1
LOOP: MOV TH1,#0D8H //装初值D8F0H 即55536,定时10mS(晶振12M)时间随晶振改变
MOV TL1,#0F0H
JNB TF1,$ //查询等待定时器1中断
CLR TF1 //定时器溢出标志位清0(定时时间到后硬件自动给TF1置位,需软件清0)
CPL P1.1 //P1.1取反
SJMP LOOP //跳到LOOP处循环(是个死循环)
该段程序实现的功能是:每隔10mS对P1.1取反一次。(10mS当然是晶振为12M的情况下)
❼ 单片机编程中都有什么指令,,代表什么意思
不知道你指的是哪一类单片机,最常用的89C51系列单片机汇编语言共有111条指令,可分为5类:
[1].数据传送类指令(共29条)
[2].算数运算类指令(共24条)
[3].逻辑运算及移位类指令(共24条)
[4].控制转移类指令(共17条)
[5].布尔变量操作类指令(共17条)
jz 指令属于第4类"控制转移类"里的条件转移指令,具体格式和作用是:
JZ rel ; A=0,(PC)+ 2 + rel→(PC),累加器中的内容为0,
则转移到偏移量所指向的地址,否则程序往下执行。
jb 是属于第5类"布尔变量操作类"指令,其格式和作用如下:
JB bit, rel ; 位状态为1转移。
❽ 单片机中指令SETB代表什么意思
单片机中指令SETB代表MCS-51的位操作命令。
作为汇编指令,SETB可以实现其后面的那个寄存器的位置为1。就SETB而言,定时/计数器0的中断允许位ET0为1时,单片机会响应定时/计数器0的溢出中断,但为0时,单片机不响应。其中的具体情况如下:
1、SETB C(进位标志置位指令)
①指令代码:D3H;
②指令功能:置进位位;
③操作内容:C←1;
④字节数: 1;
⑤机器周期:1。
2、SETB bit(直接寻址位置位指令)
①指令代码:D2H;
②指令功能:置直接地址位;
③操作内容:bit←1;
④字节数: 2;
⑤机器周期:1。
(8)单片机指令解释扩展阅读
SETB的相关情况
对于指令SETB来说,单片机的基本功能如下:
1、8位数据总线,16位地址总线的CPU。
2、具有布尔处理能力和位处理能力。
3、采用哈佛结构,程序存储器与数据存储器地址空间各自独立,便于程序设计。
4、相同地址的64KB程序存储器和64KB数据存储器。
5、0-8KB片内程序存储器(8031无,8051有4KB,8052有8KB,89C55有20KB)。
6、128字节片内数据存储器(8051有256字节)。
7、32根双向并可以按位寻址的I/O线。
8、两个16位定时/计数器(8052有3个)。
9、一个全双工的串行I/O接口。
10、多个中断源的中断结构,具有两个中断优先级。
11、片内时钟振荡器。