一、知识点
(1)寻址方式
(2)指令系统分类
(3)数据传送指令:通用传送指令、堆栈操作指令、交换指令、访问外部RAM的指令、访问ROM的指令
(4)算术运算指令:加法、十进制加法调整、减法、乘法和除法指令
(5)逻辑运算指令:逻辑操作(清零、取反、移位)、逻辑运算(与、或、异或)
(6)位操作指令:位逻辑操作(清零、置位、取反)、位逻辑运算(与、或)
(7)控制转移指令:跳转指令(绝对跳转、相对跳转、散转)、条件转移指令、循环指令、子程序调用及返回、空操作指令
二、重点
(1)数据传送指令:通用传送指令、堆栈操作指令、交换指令、访问外部RAM的指令、访问ROM的指令
(2)算术运算指令:加法、十进制加法调整、减法、乘法和除法指令
(3)逻辑运算指令:逻辑操作(清零、取反、移位)、逻辑运算(与、或、异或)
(4)位操作指令:位逻辑操作(清零、置位、取反)、位逻辑运算(与、或)
(5)控制转移指令:跳转指令(绝对跳转、相对跳转、散转)、条件转移指令、循环指令、子程序调用及返回、空操作指令
三、难点
(1)数据存储与单元的关系:内部RAM地址8位,外部RAM及输入/输出口地址16位
(2)含有寄存器间接寻址的指令
(3)指令功能:二进制数加减法指令,十进制数加法调整指令,条件判断指令
(4)指令的正确使用
四、授课方法
课堂授课(PPT),板书、Proteus演示
五、授课内容
3.1 MCS-51单片机指令格式和寻址方式
(一)指令系统
(1)指令、指令系统的概念
(2)机器语言指令:用二进制代码表示,又称指令码。计算机能直接识别,执行和分析;
(3)汇编语言指令:用助记符表示,便于程序员阅读、编写、记忆和识别程序。不能被计算机识别和执行。
(4)指令系统:一台计算机所有指令的集合。
(5)汇编语言和机器语言的关系
(6)汇编语言的格式
(二)MCS-51寻址方式
寻址方式:计算机CPU获取参与运算的操作数的方式。
操作数:在指令中指定了参与运算的数或者数所在单元的地址。
(1)立即寻址
(2)直接寻址
(3)寄存器寻址
(4)寄存器间接寻址
(5)变址寻址(基址寄存器加变址寄存器间接寻址)
(6)相对寻址
3.2 MCS-51指令系统介绍
(一)分类,按功能、字节、执行时间等
(二)数据传送指令
(1)通用传送指令:MOV [目的操作数],[源操作数]
以A累加器为目的操作数的传送指令
以Rn为目的操作数的指令
以内RAM单元地址为目的操作数的传送指令:直接给出单元地址
以内RAM单元地址为目的操作数的传送指令:用地址寄存器@Ri指出单元地址
十六位二进制数传送指令
例题:程序段分析
(2)数据堆栈操作指令:入栈指令,出栈指令
例题:程序段分析
(3)数据交换指令
字节交换指令,半字节交换指令,高低四位互换指令
例题1:2个变量值的交换。
例题2:2个变量值的低四位交换。
例题3:1个给定单元内容的高、低四位交换。
(3)访问外部RAM和I/O口的指令
读(输入)、写(输出)操作
例题1:单片机内部RAM单元与外部RAM单元内容的互换
例题2:对外部I/O口的操作
(4)访问程序存储器的指令(查表指令)
例题:查ASCII码表获取给定单元内容的ASCII码
(三)算术运算指令
(1)加法运算指令:不带/带进位位的加法指令
标志位变化,进位位处理方法
例题1:加法指令使用(重点:进位位处理方法)
例题2:双字节加法
(2)十进制加法调整指令
调整原因及调整原理
例题1:4位十进制数加法
(3)加1指令
上溢现象,地址修正原理
(4)十六位二进制数加1指令
上溢现象,外部RAM单元地址修正原理
(5)减法运算:带进位位的减法指令
例题:多字节二进制减法
(6)减1指令
下溢现象,地址修正原理
(7)乘法指令
例题:多字节二进制乘法
(8)除法指令
例题:单字节数转换为BCD码
(四)逻辑运算指令
(1)对A累加器的逻辑操作指令:清零,取反,左移、右移
例题1:多字节求补码
例题2:多字节二进制数乘2
例题3:多字节二进制数除2
(2)逻辑运算指令:与、或、异或运算指令
例题1:屏蔽操作
例题2:置位操作
例题3:取反操作
例题4:多字节求补码
(五)位操作指令(布尔操作指令)
(1)位传送指令
(2)位状态控制指令:清零,取反,置位
(3)位运算指令:与,或
例题: 组合逻辑电路的软件实现。
(六)控制转移指令
(1)无条件转移指令:长跳转指令、短跳转指令、相对短跳转指令、散转指令
例题:根据键值转移到预先设置的功能处理程序。
(2)条件转移指令
判断条件的实现方法
例题1:判断2个变量(单字节)的大小
例题2:使用条件判断指令实现程序循环
例题3:按键的多重定义方法——标志位的使用
(3)循环转移指令
例题1:循环指令的使用方法
例题2:多个单元内容求和
(4)调用和返回指令
例题1:清0子程序及调用
(5)空操作指令 NOP
例题1:软件延时
例题2:走马灯程序演示