Download presentation
Presentation is loading. Please wait.
Published byInger Andersen Modified 5年之前
1
单片机应用技术 项目一 循环彩灯装置 第5讲 MCS-51单片机指令系统及指令格式 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系
2
单片机应用技术 本讲主要内容 1. 51单片机汇编语言的指令系统 2. 51单片机汇编语言的指令格式 3. 指令表的查阅方法和指令功能的描述
4. 几种不同的寻址方法
3
单片机应用技术 1. 51单片机汇编语言的指令系统 51单片机汇编语言指令分类 分类方法 按指令占用的ROM 空间 双字节指令 单字节指令
三字节指令 按指令功能 控制转移类指令 逻辑运算类指令 位操作类指令 算术运算类指令 数据传送类指令 按指令执行的时间 双周期指令 单周期指令 四周期指令
4
单片机应用技术 1. 51单片机汇编语言的指令系统 MCS-51的指令系统按节数分为:单字节指令49条;双字节指令46条;三字节指令16条.
5
单片机应用技术 2. 51单片机汇编语言的指令格式 图3-1循环灯硬件连接电路 一个简单的循环灯实例
2. 51单片机汇编语言的指令格式 一个简单的循环灯实例 下图中的8个发光二极管代表8个彩灯,让我们看看是如何实现的. 图3-1循环灯硬件连接电路
6
单片机应用技术 2. 51单片机汇编语言的指令格式 为什么 机器码 汇编语言程序 7401 F590 790A 7AC8 7B7E DBFE
单片机汇编语言的指令格式 机器码 汇编语言程序 7401 F590 790A 7AC8 7B7E DBFE DAFA D9F6 23 024202 STAT: MOV A , #01H ;高电平对应的发光二极管亮 LOOP: MOV P1, A 从P1口输出到发光二极管 MOV R1, #10 DEL1: MOV R2 , #200 DEL2: MOV R3, #126 DEL3: DJNZ R3, DEL3 DJNZ R2, DEL2 DJNZ R1, DEL1 RL A LJMP LOOP ;左移一位,下一个发光二极管亮 END 为什么
7
单片机应用技术 2. 51单片机汇编语言的指令格式 汇编语言指令格式 [标号]: 操作码 [目的操作数] [源操作数] ;[注释]
↓ ↓ ↓ ↓ ↓ LOOP :MOVX A , @DPTR ;将外部RAM单元内容送到A 标号 又称为指令地址符号。对标号有如下规定: 一般由1~8个ASCII字符组成,以字母开头,其余字符可以是字母、数字和其他特定字符。 不能使用助记符、伪指令或者寄存器的符号名称做标号。 与操作码之间用冒号分开,带方括号表示为可选项。 一个标号只能在程序中出现一次,不能重复出现。 操作码 是由助记符表示的字符串,它规定了指令要完成的具体操作。 操作数 指令操作的对象 .操作数分为目的操作数(上例累加器A)和源操作数(. 注 释 对指令功能的说明,以便于阅读, 符号“;”后面的内容为注释。
8
单片机应用技术 2. 51单片机汇编语言的指令格式 汇编指令及其注释中常用的符号
Rn------选中当前的工作寄存器区中的寄存器R0~R7之一 @ Ri------选中当前的工作寄存器组中的寄存器R0或R1,间接寻址前缀符号 direct------直接地址,一个内部RAM单元地址或SFR地址. #data 位或16位常数,也称立即数. #为立即数前缀标志符号 addr 位目的地址 addr 位目的地址 rel 位地址偏移量,值在-128~+127范围内 bit 位地址.SFR的位地址(可用符号或名称表示) / 位操作前缀,表示该位内容求反 (×) 表示以×为地址单元中内容 ((×)) 表示以×为地址单元中内容为地址的单元中的内容
9
单片机应用技术 3. 指令表的查阅 从指令表中可以得到的信息 类型——确定是何种功能的指令 指令——确定指令的书写规范
机器码——指令在单片机中的存储内容 功能注释——指令的执行效果 指令的字节数——指令的长度(所占存储单元的个数) 指令周期——指令的执行时间(以机器周期为单位)
10
单片机应用技术 3. 指令表的查阅 根据指令表可快速找出程序中的语法错误 例如:数据交换指令 XCH R1,R2 中的语法错误。
语法错误一般会出现在标号处(标号过长、标号名称重复)、操作码处(操作码使用不当、书写错误)、操作数处(操作数使用不当、书写错误)、符号错误等处。 本条指令中目的操作数R1是错误的,在指令表中词条指令的格式为: XCH A,Rn 数据交换指令中目的操作数必须是A
11
单片机应用技术 3. 指令表的查阅 利用指令表可快速了解指令功能 例如:执行指令: XRL P1, #00110001B 结果如何
B相异 或 , 结果使: P P P1.0的 输出取反, 其它位不变.
12
单片机应用技术 4. 寻址方式 立即寻址 例: MOV A,#10H ;将立即数10H送给A累加器,即 (A)←10H
在上面这条指令中,带下划线的操作数是一个立即数,即一个指定的 常数,这种寻址方式就称为立即寻址。 注意:立即数的前面必有“#”标志。 比如: ADD A,#0AFH ;A←(A)+AFH
13
单片机应用技术 4. 寻址方式 直接寻址 例: MOV A,36H ;将内部RAM中36H单元内的数据 送到累加器A中,即 A←(36H)
在上面这条指令中,带下划线的操作数是所在存储单元的地址,这 种寻址方式称为直接寻址。直接寻址方式中操作数所在存储器的空间有板有3种: (1)内部数据存储器的128个字节单元(内部数据存储器地址00H~7FH) (2)位地址空间. (3)特殊功能寄存器,特殊功能寄存器只能用直接寻址方式进行访问.
14
单片机应用技术 4. 寻址方式 寄存器寻址(Rn) 例: MOV A,R3 ;将通用寄存器R3中的数据送给A,即A←(R3)
在上面这条指令中,带下划线的操作数(源操作数)是当前工作寄存器区 的某个寄存器,这种寻址方式称为寄存器寻址。 比如: XCH A,R ;累加器A和寄存器R1中的数互换 ADD A, R ; 累加器A和寄存器R2中的数相加
15
单片机应用技术 4. 寻址方式 间接寻址 例: MOV R0, #30H
MOV ;以R0中的内容作为操作数的地址.A ←((R0)) 在上面的指令中,带下划线的不是R0,而是以(R0)为地址,间接找到内部RAM中的30H单元,将(30H)送给A,这种寻址方式称为寄存器间接寻址。 可用R0、R1和DPTR作间址寄存器,访问片内RAM或片外64KB的RAM地址空间。 比如: MOV DPTR,#0CFA0H ;将十六位地址CFA0H赋给数据指针DPTR MOVX ;将片外RAM(CFA0H)单元内的数送给A
16
单片机应用技术 4. 寻址方式 基址加变址寻址 例: MOVC A,@A+DPTR ;将地址为(A)+(DPTR) 的ROM
在上面这条指令中,带下划线的操作数是以(DPTR)为基址,(A)为变址,将两者之和作为地址,找出该地址对应的ROM单元,再将该单元的数送给A,这种寻址方式称为基址加变址寻址方式。MCS-51单片机中还有两条变址寻址指令: MOVC MOVC
17
单片机应用技术 4. 寻址方式 相对寻址 例:CJNE A,#80H,BUDENG ;如(A)≠80H,跳转到BUDENG
JNC DAYU ;如(A)>80H,跳转到DAYU …… BUDENG: SETB FLAG ;置位标志位FLAG0 DAYU: SETB FLAG ;置位标志位FLAG1 在上面这个程序片段中,带下划线的操作数指明了程序跳转的目的位置,这个目的位置的PC相对于下一条程序语句的PC不得超出-128~+127字节的范围。
18
单片机应用技术 4.寻址方式 特定寄存器寻址 例:INC A ; 累加器内容加1. INC DPTR ; 数据指针DPTR的内容加1.
累加器A和数据指针DPTR这两个使用最频繁的寄存器又称为特定寄存器, 故称特定寄存器寻址.
Similar presentations