单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用.

Slides:



Advertisements
Similar presentations
主讲人:刘利 交通大学网络控制课程系列 上海交通大学机电控制研究所 交通大学网络控制课程系列 考试课、专业基础课、必修课
Advertisements

第7章 AT89S51单片机的 串行口 1.
第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
第四章 指令系统及汇编语言程序设计.
8051 指令.
單晶片MCS-51 C語言入門實習 第1章 微電腦與單晶片MCS-51架構 作者:董勝源.
第四章 指令系统及汇编语言程序设计.
本章分为四节,主要介绍: 4.1 程序编制的方法和技巧 4.2 源程序的编辑和汇编 4.3 基本程序结构 4.4 常用程序举例.
项目2 2个LED发光二极管控制 知识与能力目标 熟悉单片机的I/O口功能与特性。
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
本章小结 C51单片机指令系统概述 C51单片机寻址方式 C51单片机指令系统
单片机原理与应用.
第9章 数模转换器与模数转换器 本章学习目标 了解数模转换器的工作原理及性能指标 掌握模数转换器的应用 掌握数模转换器的应用.
第2章 MCS-51单片机指令系统与汇编语言程序设计
報告者:朱耿育 紀翔舜 組員:詹以群 張永傑 指導老師:梁新潁
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
第二部分 微机原理 第4章 汇编语言 程序设计 主讲教师:喻红.
单片机应用技术 项目一 循环彩灯装置 第6讲 指令功能及汇编语言程序设计(一) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
6.3 定时器/计数器的应用 初始化 初始化的内容如下:
第8章 模拟接口 8.1 模拟接口概述 8.2 DAC及其接口 8.3 ADC及其接口.
第二部分 微机原理 第3章 MCS-51的 指令系统 主讲教师:喻红.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第14章 单片机应用系统抗干扰 与可靠性设计 1.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
本章分为三节,主要介绍: 6.1 计算机串行通信基础 C51的串行口 6.3 单片机串行口应用举例.
第七章 MCS-51系统扩展 一、程序存储器扩展
第3章 AT89C51指令系统 3.1基本概念内部结构和引脚功能 指令、指令系统、机器代码
逻辑运算类指令 包括与、或、非、异或、清0及移位等共24条;一般不影响PSW中的标志位;助记符有:ANL、ORL、XRL、RL、RLC、RR、RRC、CLR和CPL共9种。 一、逻辑与指令 ANL A,Rn ;A←(A)∧( Rn) ANL A,direct;A←(A)∧(direct)
第七章 MCS-51并行口的扩展 MCS51单片机内部有4个并行口,当内部并行口不够用时可以外扩并行口芯片。可外扩的并行口芯片很多,分成2类:不可编程的并行口芯片(74LS3734和74LS245)和可编程的并行口芯片(8255)。 7.1 不可编程并行口芯片的扩展 7.2 可编程并行口芯片的扩展.
单片机原理及应用 ——基于Proteus与Keil C 哈工大出版社
4.A/D与D/A转换器 1).DAC0832与MCS-51接口
第2章 单片机的结构原理与 简单应用 (课时:10学时).
第八章 MCS-51与数码显示器和键盘的接口 一、MCS-51与数码显示器接口 数码显示器是单片机应用产品中最常用的廉价的输 出设备,它由8个发光二极管按一定规律排列而成, 当某一发光二极管导通时,则会被点亮,控制不同 组合的二极管导通,就能显示出各种字符。 1.显示器的结构.
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
单片机原理 单 片 机 单片机接口技术 单片机应用技术.
第三章 指令系统.
第3章 指令系统及程序设计举例 3.1 指令格式与寻址方式 一、指令格式 1. 指令 操作码 目标操作数,源操作数
第10章 综合实训 课题一 水温控制系统设计 一、实训目的 二、课题要求 熟悉常用温度传感器AD590的特性及接口电路的设计方法;
第8章 MCS-51串行口 8.1 串行口及其通信方式 8.2 IBM-PC系列机与 单片机 的通信技术.
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第四章 指令系统及汇编语言程序设计.
第4章 中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。
单片机系统设计 教师:朱华贵 2016年03月01日
数码管数字时钟电路的设计 1. 系统硬件电路的设计
第3章 MCS-51指令系统 介绍MCS—51系列单片机的寻址方式 介绍MCS—51系列单片机的指令系统
第4章 80C51系列指令系统 教学目的:熟悉80C51系列单片机的寻址方式及 每一种寻址方式对应的寻址空间;掌 握每一条指令功能。
本章内容 MCS-51单片机指令系统的格式 MCS-51单片机寻址方式 指令系统的分析
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
CPU中的专用寄存器(SFR) 一、累加器Acc 二、通用寄存器B 三、程序计数器PC 四、堆栈指针SP 五、数据指针DPTR
第五讲:AT89C51单片机存储器结构 一、半导体存储器 二、存储器空间划分方法 三、数据存储器(RAM) 四、程序存储器(ROM)
3.1 指令系统简介 一、几个概念 二、汇编语言指令格式 三、指令的分类 四、指令的符号说明 主讲:吴政江 下一页.
第三章 计算机系统的组成与工作原理.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
2. MCS-51单片机的组成及结构分析 2.1 MCS-51单片机的内部结构及结构特点
四、手工汇编 完成汇编的方法有两种:手工汇编和汇编程序汇编 1.手工汇编步骤 A
单片机原理与应用.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
简单芯片扩展I/O接口 8155可编程接口芯片及其使用 键盘及显示器接口设计 A/D和D/A转换接口技术
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
第二章 MCS-51单片机程序设计 第一章 8086程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
第2章 80C51单片机的硬件结构 教学基本要求: (1)、熟悉单片机的定义、名称、分类方法;
第1章 微型计算机基础.
Presentation transcript:

单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用

一、 MCS-51系列单片机的基本硬件结构 硬件结构原理 工作方式

1.1 硬件结构原理 1.1.1 概述 1.1.2 CPU 1.1.3 存储器 1.1.4 并行I/O口 1.1.5 串行I/O口 1.1.6 定时器/计数器 1.1.7 中断 1.1.8 时钟

1.1 硬件结构原理 1.1.1 概述 A.产品简介 Intel公司 MCS—51系列高档8位单片机 1)基本特征 A.产品简介 Intel公司 MCS—51系列高档8位单片机 8051/80C51 8052/80C52 8751 8031 B.主要性能 40脚双列直插式封装 ⑴ 一个8位CPU ⑵ 片内振荡定时电路 ⑶ 内部数据存贮器(RAM)容量 128B/256B ⑷ 内部程序存贮器(ROM)容量 2KB/4KB/…… ⑸ 特殊功能寄存器(SFR) 21个/26个 ⑹ 具有位寻址功能 寻址空间00H ~ FFH ⑺ 外部数据存贮器寻址空间 64KB ⑻ 外部程序存贮器寻址空间 64KB ⑼ 输入/输出口线 32根 ⑽ 16位可编程定时器/计数 2个/3个 ⑾ 可编程为2个优先级的中断源 5个/6个 ⑿ 可通过编程选定的全双工同步/异步的串行口 1个

1.1 硬件结构原理 2种封装形式:40引脚双列直插(DIP)/ 44引脚的PLCC 1.1.1 概述(续) 2)8051的内部总体结构 3) 外部引脚功能 2种封装形式:40引脚双列直插(DIP)/ 44引脚的PLCC 六大部分:数据总线、地址总线、控制总线、I/O线、时钟、电源。 A. 数据总线  P0(BUS) B. 地址总线  P0 (BUS)、 P2 C. 控制总线 ALE/PROG PSEN EA/ VDD RST/VPD D. I/O线 P0 P1 P2 P3 P30— RXD P31—TXD P32 — INT0 P33 —INT1 P34 — T0 P35 —T1 P36 — WR P37 — RD E. 时钟 XTAL1 XTAL2 F. 电源 VSS VCC

MCS-51 VCC P0/BUS VSS P1 XTAL1 XTAL2 P2/AB PSEN P30(RXD) P31(TXD) /8 VSS P1 /8 XTAL1 XTAL2 MCS-51 /8 P2/AB PSEN P30(RXD) P31(TXD) ALE/PROG P32(INT0) P33(INT1) P34(T0) EA/VDD P35(T1) P36(WR) RST/VPD P37(RD)

1.1 硬件结构原理 1.1.2 C P U 1)ALU和布尔处理机 2)累加器A 3)程序状态字寄存器PSW   7 6 5 4 3 2 1 0 C AC F0 RS1 RS0 OV 1 P   4)堆栈指针SP 5)数据指针DPTR

1.1 硬件结构原理 1.1.3 存储器 1) 数据存储器 分内部数据存储器(00H ~ 7FH/00H ~ FFH)和外部数据存储器(0000H ~ FFFFH) A. 内部数据存储器 ①作用  ②寻址空间 内部数据RAM地址空间256B(00H ~ FFH) 特殊功能寄存器地址空间 128B(80H ~ FFH) ③重叠地址的寻址 内部RAM(80H ~ FFH) 只能用寄存器间接寻址 SFR  (80H ~ FFH) 只能用直接寻址 ④结构

1.1 硬件结构原理 1.1.3 存储器(续) ⑤SFR 主要功能、分类、名称 ⅰ 算术运算寄存器 A B PSW ⑤SFR 主要功能、分类、名称 ⅰ 算术运算寄存器   A   B   PSW ⅱ 指针寄存器     SP    DPTR ⅲ 并行I/O口(对应PIO) P0 P1 P2  P3 ⅳ 串行I/O口(对应SIO)   SCON   SBUF   PCON ⅴ 定时器/计数器   TMOD   TCON    TH0 TL0 TH1 TL1 (T2CON TH2 TL2 RCAP2H RCAP2L) ⅵ 中断系统(对应中断控制逻辑) IE IP

1.1 硬件结构原理 7FH(FFH) FFH 数据缓冲区 30H 可直接位寻址 2FH 16个单元,位 地址空间00H ~7FH 20H 工作寄存器区3 18H 17H 工作寄存器区2 10H 0FH 工作寄存器区1 08H 07H 工作寄存器区0 00H 80H 内部RAM 特殊功能寄存器SFR

1.1 硬件结构原理 1.1.3 存储器(续) B. 外部数据存储器 ①作用 存储数据 ②地址空间 0000H ~ FFFFH 64KB ①作用 存储数据 ②地址空间 0000H ~ FFFFH 64KB ③寻址 i )DPTR间接寻址 P0口(BUS) 输出AB7~0 (DPL值) P2口 输出AB15~8(DPH值) 在读写周期保持不变;此时P2口的SFR内容不变,并在读/写选通结束后将在P2口恢复其信息。 ⅱ)R0/R1间接寻址 P0口 输出AB7~0(R0/R1中内容) P2口 输出AB15~8,这不是R0/R1间接寻址本身的功能,而是寻址前用指令事先输出的; R0/R1间接寻址不访问内部RAM而访问外部数据存储器,是由于采用MOVX指令的缘故,这时将产生RD或WR信号(P3口)。

1.1 硬件结构原理 1.1.3 存储器(续) 1)程序存储器 A 作用 存放程序及一些常数(常为表格) B 地址空间 分为片内ROM/EPROM/FLASH 4KB(0000H ~ 0FFFH)和外部程序存储器 64KB (0000H ~ FFFFH) C 寻址 ① 片内程序存储器寻址 PC寻址,EA=1,PC中地址在0000H ~ 0FFFH(或1FFFH )范围内,则不产生PSEN信号,从片内程序存储器寻址 ② 外部程序存储器寻址 PC寻址,两种情况 i EA=1:当PC中地址>0FFFH(或1FFFH)时,产生PSEN信号,在外部程序存储器寻址。 ii EA=0:无论PC中地址为何地址,均产生PSEN信号,在外部程序存储器寻址。

1.1 硬件结构原理 1.1.3 存储器(续) D 专用地址矢量 0000H:复位矢量 0000H~0002H:初始化程序 0003H:外部中断0矢量 0003H~000AH:外部中断0服务程序 000BH:定时器0中断矢量 000BH~0012H:定时器0中断服务程序 0013H:外部中断1矢量 0013H~001AH:外部中断1服务程序 001BH:定时器1中断矢量 001BH~0022H:定时器1中断服务程序 0023H:串行中断矢量 0023H~002AH:串行中断服务程序 (002BH:定时器2中断矢量 002BH~0032H:定时器2中断服务程序) 在固定分配的矢量地址中,若放不下初始化程序或中断服务程序,可在相应矢量地址中放一条转移指令,转到相应程序入口地址。 当不使用某种中断时,该中断的矢量地址8个单元可用作一般程序存储器单元使用。

1.1 硬件结构原理 3) 存储器地址空间的重叠 A 存储器映像 FFFFH FFFFH EA=0/1 1.1.3 存储器(续) 3) 存储器地址空间的重叠 A 存储器映像 FFFFH FFFFH EA=0/1 (1FFFH) (1FFFH) 特殊功能寄存器 0FFFH 0FFFH FFH FFH EA=1 EA=0 7FH 80H 0000H 0000H 00H 0000H 内部程序存储器 外部程序存储器 内部数据RAM 外部数据存储器 程序存储器 数据存储器 B 各地址空间寻址的区分

B 各地址空间寻址的区分 FFFFH FFFFH 程序存储器 数据存储器 FFH FFH @Rj DIRECT MOVC bit 1.1.3 存储器(续) B 各地址空间寻址的区分 FFFFH FFFFH FFH FFH @Rj DIRECT MOVC bit 指令 7FH @Rj 80H DIRECT 特殊功能寄存器 MOVX @Rj 指令 (1FFFH ) DIRECT 0FFFH bit MOVC @Rj 指令 DIRECT Rr 0000H 0000H 00H 0000H 内部程序存储器 外部程序存储器 内部数据RAM 外部数据存储器 程序存储器 数据存储器

1.1 硬件结构原理 1) 结构与工作原理 32根I/O线 4个双向并行I/O口 P0 P1 P2 P3 地址/数据 CPU控制 VCC 1) 结构与工作原理 32根I/O线 4个双向并行I/O口 P0 P1 P2 P3 地址/数据 CPU控制 VCC 读锁存器 D Q P0 . X 锁存器 CL Q 写锁存器 内部总线 读引脚数据 P0. X引脚 MUX

VCC VCC 地址/控制 MUX 读锁存器 P1. X引脚 内部总线 D Q P1 . X 锁存器 CL Q 写锁存器 P2 . X 读引脚数据 P1. X引脚 P2 . X VCC 地址/控制 读锁存器 D Q P2 . X 锁存器 CL Q 写锁存器 内部总线 读引脚数据 P2 . X引脚 MUX

1.1 硬件结构原理 A 输入功能 a)读锁存器 “读–改–写”指令 ANL、JBC、CLR PXY b)读引脚 B 输出功能 VCC 第二输出功能 读锁存器 D Q P0 . X 锁存器 CL Q 写锁存器 内部总线 读引脚数据 I/O引脚 第二输入功能 2) 输入/输出功能 A 输入功能 a)读锁存器 “读–改–写”指令 ANL、JBC、CLR PXY b)读引脚 B 输出功能

1.1 硬件结构原理 1.1.5 串行I/O口 1.1.6 定时器/计数器 1) 定时器/计数器功能

1.1 硬件结构原理

单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用

二、 MCS-51指令系统 概述 寻址方式 指令系统 汇编语言程序设计

2.1 概述 2.1.1 指令系统简况 2.1.3 符号及含义 单字节指令 49条 双字节指令 45条 三字节指令 17条 2.1 概述 2.1.1 指令系统简况 111条指令。其中 单字节指令 49条 双字节指令 45条 三字节指令 17条 单周期指令 64条 双周期指令 45条 四周期指令 2条 组合情况 单字节单周期 单字节双周期 单字节四周期 双字节单周期 双字节双周期 三字节双周期 2.1.2 二级表达形式 机器语言 汇编语言 2.1.3 符号及含义 A 累加器 AB 乘除法寄存器对 addr 程序存储器地址 rel 相对地址 Rj 间接寻址用寄存器 Rr 工作寄存器

2.1 概述 bit 位 C 进位标志 data 立即数 DIRECT 直接寻址地址 PC 程序计数器 PSW 程序状态字 2.1 概述 bit 位 C 进位标志 data 立即数 DIRECT 直接寻址地址 PC 程序计数器 PSW 程序状态字 SP 堆栈指针 X 外部数据存储器 # 立即数前缀 @ 寄存器间接寻址前缀 $ 程序计数器的当前值 (X) X中的内容 ((X)) X中的内容为地址的单元中的内容 → 送入

2.2 寻址方式 2.2.1 寻址方式总表 直接寻址 寄存器寻址 间接寻址 寄存器 立即寻址 方式 直接寻址 方式: 间接寻址 直接位寻址 2.2 寻址方式 2.2.1 寻址方式总表 直接寻址 寄存器寻址 间接寻址 寄存器 立即寻址 方式 直接寻址 方式: 间接寻址 直接位寻址 方式: 变址寻址 方式: 立即寻址 变址寻址 相对寻址 直接位寻址 方式 类页面寻址 简表 Rr @Rj DIRECT # data @A+PC bit @A+DPTR rel (AJMP ACALL)

2.2 寻址方式 2.2.2 寻址方式 A 立即寻址 B 寄存器寻址 概念:操作数包含于指令中(指令中直接给出操作数) 2.2 寻址方式 2.2.2 寻址方式 A 立即寻址 类别:立即寻址 概念:操作数包含于指令中(指令中直接给出操作数) 表达:汇编语言 #data 机器语言 n OR nn 例: MOV A,#0FH 74H,0FH MOV DPTR,#1046H 90H,10H,46H 寻址区域:程序存储器 寻址过程及时序 B 寄存器寻址 类别:直接寻址 概念:指令中直接指明存放操作数的寄存器 表达:汇编语言 Rr(r = 0 ∼ 7) 机器语言 ╳8H ∼ ╳FH 例: ADD A,R4 2CH 寻址区域:R0 ~ R7(含4个工作寄存器区,区号以RS1、RS0表达) A、B、AB、DPTR(一般隐含) SFR不是用寄存器寻址方式 寻址过程及时序

2.2 寻址方式 C 直接寻址 类别:直接寻址 概念:指令中直接给出存放操作数的1字节地址,即操作数的有效地址EA存放于操作码后续的1个字节中 表达:汇编语言 m(DIRECT) 机器语言 OP CODE,m 例: ADDC A,61H 35H,61H 寻址区域:内部数据RAM阵列中的任何一个单元,即00H ~ 7FH 特殊功能寄存器SFR:80H ~ FFH 寻址过程及时序 D 寄存器间接寻址 类别:间接寻址 概念:指令中指出存放操作数的1或2字节地址由哪个寄存器给出(仅含Rj和DPTR) 表达:汇编语言 @R0、@R1、@DPTR(此外堆栈操作) 机器语言 略 例: ADD A, @R0 寻址区域:ⅰ) @R0或@R1方式或堆栈指针访问的内部数据RAM区域(00H ~ FFH);ⅱ) @R0、@R1或@DPTR方式访问的外部数据存储器(0000H ~ FFFFH) 寻址过程及时序

2.2 寻址方式 E 变址寻址 类别:变址寻址 概念:基地址(PC和DPTR)和变址(偏移量)寄存器A中内容相加形成操作数的地址或转移地址,这里A中偏移量为无符号数(仅出现在MOVC及转移指令中) 表达:汇编语言 @A+DPTR @A+PC 机器语言 OP CODE表示 例: MOVC A,@A+DPTR MOVC A,@A+PC JMP @A+DPTR 寻址区域:程序存储器(往往是表格形式) 寻址过程及时序 F 相对寻址 类别:变址寻址 概念:指令中给出偏移量(补码),以下条指令的PC值作基地址加上指令给定的相对偏移量即得转移地址 表达:汇编语言 标号 机器语言 rel 例: JNZ NEXT 70H,rel 寻址区域:程序存储器 寻址过程及时序

2.2 寻址方式 G (类页面寻址) 类别:变址寻址 概念:以下条指令的PC值的高 5 位与指令中给出的 11 位相连接而获得所寻址地址(转移地址或子程序入口地址) 表达:汇编语言 AXXXX 符号地址( AJMP 符号地址/ACALL 符号地址) 机器语言 mn(11位地址,A10~0) ,其中m( A10~8)即OP码D7~5,而n在OP码后的一字节,表 A7~0 例: AJMP NEXT 寻址区域:程序存储器 寻址过程及时序 H 直接位寻址 类别:位寻址 概念:指令中指出存放位操作数(0或1)的直接位地址(00H~FFH),该位地址由操作码中的相应位来表达。 表达:汇编语言 bit(00H~FFH或ACC.4、PXY等) 机器语言 bit(00H~FFH) 例: MOV C,P10 A2H,,90H ANL C,90H B0H,90H 寻址区域:内部数据RAM阵列中20~2FH单元中的位:00H~7FH 特殊功能寄存器SFR中的可直接位寻址的位: 80H~FFH 寻址过程及时序

2.2 寻址方式 I 隐含寻址 类别:隐含寻址 概念:指令中以隐含方式指出存放操作数的地址,该地址以操作码来指定,而不提供地址的任何信息。隐含寻址方式是一种不可选择的寻址方式。 表达:汇编语言 指令本身 机器语言 无 例: MOV A,51H MOV DPTR,#4089H MUL AB 寻址区域:专对A、B、AB、DPTR等

2.3 指令系统 MCS-51系列指令系统可分为四大类指令,即:数据传送类指令、算术/逻辑运算类指令、程序控制类指令、位操作类指令。 学习指令系统必须掌握的内容:ⅰ)类别:大类、子类、次级子类;ⅱ)寻址方式:源地址、目标地址允许采用的寻址方式;ⅲ)指令结构及表达格式:单/双操作数指令(源、目地址)、条件等(指令所提供的信息);汇编语言表达格式、机器语言表达格式;ⅳ)指令功能及对标志位的影响;ⅴ)指令执行过程及时序 2.3.1数据传送类指令 A 通用传送指令 ⅰ) MOV 目,源 ;目←(源),1B,寻址:A,#data,Rr,DIRECT,@Rj ⅱ) PUSH 源 ;SP←(SP)+1,(SP) ←(源), 1B,DIRECT ⅲ) POP 目 ; 目← ((SP)), SP←(SP)-1,1B,DIRECT B 累加器专用传送指令

2.3 指令系统 B 累加器专用传送指令 ⅰ) XCH A,源 ;A←(源)同时 源←(A),1B,寻址:Rr,DIRECT,@Rj 2.3 指令系统 B 累加器专用传送指令 ⅰ) XCH A,源 ;A←(源)同时 源←(A),1B,寻址:Rr,DIRECT,@Rj XCHD A,源 ;AD←(源)D同时 源D←(A)D,高半字节不变,寻址:@Rj ⅱ) MOVX A,源 ;A←(源),外部,1B,寻址:@Rj/@DPTR MOVX 目,A ;目←(A),外部,1B,寻址:@Rj/@DPTR ⅲ) MOVC A,源 ;A←(源),源为程序存储器单元,1B,寻址:@A+DPTR/@A+PC C 目标地址传送指令 MOV DPTR,#data ;DPTR←#data ,2B 本大类指令,除对PSW执行POP或MOV指令外,均不影响标志位。 本系列单片机的并行I/O操作、串行I/O操作、定时/计数器操作、中断的某些控制处理,都归于统一的形式——直接寻址SFR的数据传送指令,其区别仅在于寻址不同的(相关的)SFR而已。 直接地址与立即数的区别:立即数有前缀“#”。

2.3 指令系统 2.3.2 算术/逻辑运算类指令 A 算术运算指令 2.3 指令系统 2.3.2 算术/逻辑运算类指令 A 算术运算指令 算术运算指令分为一般算术运算(加、减、乘、除)指令和增量/减量指令两部分。 a)一般算术运算指令 ⅰ) ADD A,* ;A←(A)+(*),寻址:#data、Rr、DIRECT、@Rj ADDC A,* ;A←(A)+(*)+C,寻址:#data、Rr、DIRECT、@Rj ⅱ) DA A ;二→十进制调整(不能用于:二进制数转换为十进制数,减法的二→十进制调整) ⅲ) SUBB A,* ; A←(A)-(*)-C,寻址:#data、Rr、DIRECT、@Rj ⅳ) MUL AB ; AB←(A)(B),8位无符号整数相乘,积的低8位在A,高8位在B,C=0,若积 > FFH,则 OV=1 ⅴ) DIV AB ;A←(A)(B),8位无符号整数相除,无符号整数商送A,无符号整数余送B,C=0,若除数为0,则 (A)、(B)不定,且OV=1

2.3 指令系统 b) 增量/减量指令 ⅰ) INC * ;*←(*)+1,寻址:A、DPTR、Rr、DIRECT、@Rj,其中仅INC DPTR 为双字节运算 ⅱ) DEC * ;*←(*)-1,寻址:A、Rr、DIRECT、@Rj B 逻辑运算指令 逻辑运算指令又分为双操作数指令和单操作数指令。 a)双操作数逻辑运算指令 ⅰ) ORL A,* ;A←(A)∨(*),寻址:#data、Rr、DIRECT、@Rj ORL DIRECT,* ;DIRECT ←(DIRECT)∨(*),寻址:#data、A ⅱ) ANL A,* ;A←(A)∧(*),寻址:#data、Rr、DIRECT、@Rj ANL DIRECT,* ;DIRECT ←(DIRECT)∧(*),寻址:#data、A ⅲ) XRL A,* ;A←(A)(*),寻址:#data、Rr、DIRECT、@Rj XRL DIRECT,* ;DIRECT ←(DIRECT)(*),寻址:#data、A b)单操作数逻辑运算指令

2.3 指令系统 b)单操作数逻辑运算指令 ⅰ) CLR A ;A←0 CPL A ;A←(A) ⅱ) RL A ; RLC A ; 2.3 指令系统 b)单操作数逻辑运算指令 ⅰ) CLR A ;A←0 CPL A ;A←(A) ⅱ) RL A ; RLC A ; RR A ; RRC A ; ⅲ) SWAP A ; C C D7 ~D4 D3 ~D0

2.3 指令系统 2.3.3 控制转移类指令 本大类指令分为三个子类:转移指令(无条件转移指令、条件转移指令)、调用和返回指令、中断控制指令。 A 转移指令 a)无条件转移指令 ⅰ) AJMP addr10~0 ;PC←(PC)+2, PC10~0 ← addr10~0,在2KB范围内跳转,仅当该指令处于2KB页面的最后2B时,方可转移入下一页 ⅱ) LJMP addr15~0 ;PC15~0 ← addr15~0,可转移到任意处 ⅲ) SJMP rel ;PC←(PC)+2, PC←(PC)+rel(rel为补码),可转移到以下一条指令的首地址为中心的256B(-128B,+127B) ⅳ) AJMP @A+DPTR ;PC←(A)+(DPTR),可转移到64KB范围内的任意一处地址 ⅴ) NOP ;空操作,用于调整地址空间或定时时间以及用作调试/修改程序时使用的缓冲单元 b)条件转移指令

2.3 指令系统 b)条件转移指令 ⅰ) JZ rel ; 当(A)= 00H 时,PC←(PC)+2, PC←(PC)+rel(rel为补码);当(A)≠ 00H 时,PC←(PC)+2 JNZ rel ; 当(A)≠ 00H 时,PC←(PC)+2, PC←(PC)+rel(rel为补码);当(A)= 00H 时,PC←(PC)+2 ⅱ) DJNZ *,rel ;*←(*)-1,*寻址方式:Rr、DIRECT,若(*)≠0, PC←(PC)+2(Rr方式)或PC←(PC)+3(DIRECT方式), PC←(PC)+rel(rel为补码);若(*)= 0, PC←(PC)+2(Rr方式)或PC←(PC)+3(DIRECT方式) ⅲ) CJNE *,*′,rel ;(*)-(*′),*寻址方式:A、Rr、@Rj---*′为#data时,*寻址方式:A---*′为DIRECT时,若(*)<(*′),则PC←(PC)+3, PC←(PC)+rel,C←1;若(*)>(*′), 则 PC←(PC)+3 , PC←(PC)+rel,C←0;若(*)=(*′), 则 PC←(PC)+3 B 子程序调用和返回指令

2.3 指令系统 B 子程序调用和返回指令 ⅰ) ACALL addr10~0 ; PC←(PC)+2, SP←(SP)+1,(SP)←(PC7~0), SP←(SP)+1,(SP)←(PC15~8),PC10~0 ← addr10~0 可调用下一条指令所在2KB页内任意指定地址处的子程序;该指令若位于2KB页面的最后2字节,则调用将转向下一页。 ⅱ) LCALL addr15~0 ; PC←(PC)+3, SP←(SP)+1,(SP)←(PC7~0), SP←(SP)+1,(SP)←(PC15~8),PC ← addr15~0 ⅲ) RET ; PC15~8 ←((SP)), SP←(SP)-1, PC7~0 ←((SP)), SP←(SP)-1 C 中断控制指令 RETI ; 主要功能同RET,区别在于:能恢复中断逻辑以准备接收与刚处理完的中断有相同优先级的其它中断。

2.3 指令系统 2.3.4 位操作类指令 本大类指令分为三个子类:位传送指令、位逻辑运算指令、位条件判转指令。 A 位传送指令 2.3 指令系统 2.3.4 位操作类指令 本大类指令分为三个子类:位传送指令、位逻辑运算指令、位条件判转指令。 A 位传送指令 MOV C,* ; C←(*), *寻址:bit MOV *,C ; *←(C), *寻址:bit B 位逻辑运算指令 a) 基本的位逻辑运算指令 ORL C,* ; C←(C)∨(*), *寻址:bit、bit ANL C,* ; C←(C)∧(*), *寻址:bit 、bit b) 位状态控制指令 SETB * ;*←1, *寻址:C、bit CLR * ;*←0, *寻址:C、bit CPL * ;*←(*), *寻址:C、bit

2.3 指令系统 C 位条件判转指令 ⅰ) JC rel ; 若(C)=0, PC←(PC)+2;若(C)=1, PC←(PC)+2, PC←(PC)+rel JNC rel ; 若(C)=1, PC←(PC)+2;若(C)=0, PC←(PC)+2, PC←(PC)+rel ⅱ) JB *,rel ; 若(*)=0, PC←(PC)+3;若(*)=1, PC←(PC)+3, PC←(PC)+rel, *寻址:bit JBC *,rel ; 若(*)=0, PC←(PC)+3;若(*)=1, PC←(PC)+3, PC←(PC)+rel,*←0, *寻址:bit JNB *,rel ; 若(*)=1, PC←(PC)+3;若(*)=0, PC←(PC)+3, PC←(PC)+rel, *寻址:bit

2.4 汇编语言程序设计 2.4.1 简单程序设计 · 简单程序设计 · 结构程序设计 · 算术运算程序设计 2.4 汇编语言程序设计 · 简单程序设计 · 结构程序设计 · 算术运算程序设计 · 代码和数制转换程序设计 · 排序、搜索程序设计 · 浮点运算子程序设计 2.4.1 简单程序设计 例. RAM中60H单元中存有一个带符号数,求其绝对值,存入外部数据存储器2460H单元。 解.源程序可编制为: MOV A,60H JNB ACC.7,DONE CPL A INC A DONE: MOV DPTR,#2460H MOVX @DPTR,A

2.4 汇编语言程序设计 例. 外部数据存储器自2400H单元开始的区域中存储有100个带符号一字节数,找出其中最大的一个,存入RAM60H单元中。 解. 源程序可编制为: MOV DPTR,#2400 MOV R2,#63H MOVX A,@DPTR MOV R0,A AGAIN: INC DPTR CLR C SUBB A,R0 JNB PSW.2,NEXT JNB ACC.7,UNEXCH EXCH: MOVX A,@DPTR SJMP UNEXCH NEXT: JNB ACC.7,EXCH UNEXCH: DJNZ R2,AGAIN MOV 60H,R0

2.4 汇编语言程序设计 例. 将内部RAM中SOURCE开始的二个字节拆成四个半字节,并将结果存入内部RAM中RESULT开始的四个单元中。 DISA: MOV A,SOURCE RR A MOV R0,# RESULT RR A ANL A,#0F0H RR A RR A RR A RR A MOV @R0,A RR A INC R0 RR A MOV A, SOURCE+1 MOV @R0,A ANL A,#0FH INC R0 MOV @R0,A MOV A, SOURCE ANL A,#0FH MOV @R0,A INC R0 MOV A,SOURCE+1 ANL A,#0F0H

2.4 汇编语言程序设计 例. 查表求数字 0 ~9的显示字模子程序 功能:将ACC中存放的 0 ~ 9 的数字的字模从程序后面的字模表中查出, 存入内部数据存储器 RAM中 RESULT单元中。 DISP: CLR C SUBB A,#$0AH JNC RRET MOV DPTR,#TAB MOVC A,@A+DPTR MOV RESULT,A DRET: RTS RRET: TAB: DB 3FH, 06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH

2.4 汇编语言程序设计 2.4.2 结构程序设计 例. 将自外部数据存储器SOURCE开始的50个数据的累加和存放到自内部数据存储器DESI开始的二字节中。 SADD: MOV DPTR,#SOURCE CLR A MOV B,A MOV R2,#50 LOOP: ADD A,@DPTR JNC NEXT INC B NEXT: INC DPTR DJNZ R2,LOOP MOV DESI,A MOV DESI+1,B

2.4 汇编语言程序设计 例. 将自内部数据存储器SOURCE开始的100个数据中的所有正数相加,并将其累加和存放到自内部数据存储器BUFF开始的二字节中。 SPAD: MOV R0,#SOURCE CLR A MOV BUFF,A MOV BUFF+1,A MOV R2,#100 LOOP: MOV A,@DPTR JZ NEXT JB ACC.7,NEXT MOV A,BUFF ADD A,@DPTR JNC NEXT INC BUFF+1 NEXT: INC DPTR DJNZ R2,LOOP

Copyright@Keter.com 2003-2003 All right