版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,微控制器与嵌入式系统,课程名称微控制器与嵌入式系统 选用教材单片机基础 李广弟主编 北京航空航天大学出版社 学时总数43学时 授课学时数38学时 实验学时数5学时,2,1 单片机概述 2 单片机芯片的硬件结构 3 MCS-51单片机指令系统 4 MCS-51汇编语言程序设计 5 单片机存储器扩展 6 单片机的中断与定时系统 7 单片机I/O扩展及应用 8 单片机串行数据通信 9 单片机与数/模及模/数转换器接口 10 MCS-51单片机应用及开发技术,单片机基础,3,1.1 单片机的概念 1.2 单片机的发展 1.3 单片机的应用,1 单片机概述,4,1.1.1 单片机的名称 1.1.2
2、通用单片机和专用单片机 1.1.3 单片机与单片机系统 1.1.4 单片机应用系统与单片机开发系统 1.1.5 单片机程序设计语言和软件,1 单片机概述,Single Chip MicroComputer(SCMC)单片机 MicroController Unit(MCU)微控制器 Embedded MicroController Unit(EMCU) 嵌入式控制器,5,1 单片机概述,MicroComputer Development System(MDS) 微型机开发系统 In Circuit Emulator(ICE)在线仿真器,6,1 单片机概述,7,1.2.1 单片机发展概述 1.2
3、.2 MCS-51单片机系列 1.2.3 80C51单片机系列,1 单片机概述,8,1.2.2 MCS-51单片机系列 MCS-51可分为两个子系列和4种类型,如表1-1所示。 按资源的配置数量,MCS-51系列分为51和52两个子系列,其中51子系列是基本型,而52子系列属于增强型。 表1-1 MCS-51系列单片机分类,1 单片机概述,9,80C51与8051的比较 (1)MCS-51系列芯片采用HMOS工艺,而80C51芯片则采用CHMOS工艺。CHMOS工艺是COMS和HMOS的结合。 (2)80C51芯片具有COMS低功耗的特点。例如8051芯片的功耗为630mW,而80C51的功耗
4、只有120mW。 (3)80C51在功能增加了待机和掉电保护两种工作方式,以保证单片机在掉电情况下能以最低的消耗电流维持。 (4)此外,在80C51系列芯片中,内部程序存储器除了ROM型和EPROM型外,还有E2PROM型,例如89C51就有4KB E2PROM。并且随着集成技术的提高,80C51系列片内程序存储器的容量也越来越大,目前已有64KB的芯片了。另外,许多80C51芯片还具有程序存储器保密机制,以防止应用程序泄密或被复制。,1 单片机概述,10,MCS-96系列单片机 MCS-96系列单片机是Intel公司在1983年推出的16位单片机,它与8位机相比,具有集成度高、运算速度快等特
5、点。它的内部除了有常规的I/O接口、定时器计数器、全双工串行口外,还有高速I/O部件、多路AD转换和脉宽调制输出(PWM)等电路,其指令系统比MCS-51更加丰富。 ATMEL公司单片机 ATMEL公司于1992年推出了全球第一个3V超低压F1ash存储器,并于1994年以E2PROM技术与Intel公司的80C31内核进行技术交换,从此拥有了80C31内核的使用权,并将ATMEL特有的Flash技术与80C31内核结合在一起,生产出AT89C51系列单片机。,1 单片机概述,11,1.3.1 单片机应用的特点 1.3.2 单片机的应用领域,1 单片机概述,12,单片机应用系统的结构 单片机应
6、用系统的结构通常分为以下三个层次。 (1) 单片机:通常指应用系统主处理机,即所选择的单片机器件。 (2) 单片机系统:指按照单片机的技术要求和嵌入对象的资源要求而构成的基本系统。时钟电路、复位电路和扩展存储器等与单片机共同构成了单片机系统。 (3) 单片机应用系统:指能满足嵌入对象要求的全部电路系统。在单片机系统的基础上加上面向对象的接口电路,如前向通道(传感器通道接口) 、后向通道(伺服驱动、控制通道接口)、人机交互通道(键盘、显示器、打印机等)和串行通信口(RS232)以及应用程序等。,1 单片机概述,13,1 单片机概述,单片机应用系统三个层次的关系,14,单片机系统的开发过程 通常开
7、发一个单片机系统可按以下6个步骤进行。 (1) 明确系统设计任务,完成单片机及其外围电路的选型工作。 (2) 设计系统原理图和PCB板,经仔细检查PCB板后送工厂制作。 (3) 完成器件的安装焊接。 (4)根据硬件设计和系统要求编写应用程序。 (5)在线调试软硬件。 (6) 使用编程器烧写单片机应用程序,独立运行单片机系统。,1 单片机概述,15,单片机的应用 1. 单片机在机、电、仪一体化等智能产品中的应用 日常生活中含单片机的电器产品 智能化的仪器仪表 2. 单片机在工业测控中的应用 3. 单片机在通信技术中的应用,1 单片机概述,16,2.1 MCS-51单片机的逻辑结构及信号引脚 2.
8、2 MCS-51单片机的内部存储器 2.3 MCS-51单片机并行输入/输出口电路 2.4 MCS-51单片机时钟电路与时序 2.5 MCS-51单片机工作方式,2 单片机芯片的硬件结构,17,2.1.1 MCS-51单片机结构框图 图 2.1 MCS-51单片机系统结构框图,2 单片机芯片的硬件结构,18,由图2.1可以看出,单片机内部主要包含下列几个部件: 一个8位CPU; 一个时钟电路; 4KByte程序存储器; 128Byte数据存储器; 两个16位定时/计数器; 64KByte扩展总线控制电路; 四个8-bit并行I/O端口; 一个可编程串行接口; 五个中断源,其中包括两个优先级嵌套
9、中断。,2 单片机芯片的硬件结构,19,2.1.2 MCS-51单片机芯片内部逻辑结构 图 2.2 MCS-51单片机芯片内部逻辑结构图,2 单片机芯片的硬件结构,20,2 单片机芯片的硬件结构,21,1. CPU CPU即中央处理器的简称,是单片机的核心部件,它完成各种运算和控制操作,CPU由运算器和控制器两部分电路组成。 (1)运算器电路 运算器电路包括ALU(算术逻辑单元)、ACC(累加器)、B寄存器、状态寄存器、暂存器1和暂存器2等部件,运算器的功能是进行算术运算和逻辑运算。 (2)控制器电路 控制器电路包括程序计数器PC、PC加1寄存器、指令寄存器、指令译码器、数据指针DPTR、堆栈
10、指针SP、缓冲器以及定时与控制电路等。控制电路完成指挥控制工作,协调单片机各部分正常工作。,2 单片机芯片的硬件结构,22,2. 存储器 MCS51系列单片机的存储器包括数据存储器和程序存储器,其主要特点是程序存储器和数据存储器的寻址空间是相互独立的,物理结构也不相同。 3. 定时器/计数器 MCS51单片机片内有两个16位的定时/计数器,即定时器0和定时器1。它们可以用于定时控制、延时以及对外部事件的计数和检测等。 4. 并行I/O口 MCS51单片机共有4个8位的I/O口(P0、P1、P2和P3),每一条I/O线都能独立地用作输入或输出。P0口为三态双向口,能带8个TTL门电路,P1、P2
11、和P3口为准双向口,负载能力为4个TTL门电路。,2 单片机芯片的硬件结构,23,5. 串行I/O口 MCS51单片机具有一个采用通用异步工作方式的全双工串行通信接口,可以同时发送和接收数据。 6. 中断控制系统 8051共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。 7. 时钟电路 MCS51芯片内部有时钟电路,但晶体振荡器和微调电容必须外接。时钟电路为单片机产生时钟脉冲序列,振荡器的频率范围为1.2MHz12MHz,典型取值为6MHz。 8. 总线 以上所有组成部分都是通过总线连接起来,从而构成一个完整的单片机。系统的地址信号、数据信号和控制信号都是通过总线传送的,总线结
12、构减少了单片机的连线和引脚,提高了集成度和可靠性。,2 单片机芯片的硬件结构,24,2.1.3 MCS-51的信号引脚 图 2.3 MCS-51系列单片机引脚图及逻辑符号,2 单片机芯片的硬件结构,25,电源引脚Vcc和Vss Vcc:电源端,接5V。 Vss:接地端。 时钟电路引脚XTAL1和XTAL2 XTAL1:接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。 XTAL2:接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端。 地址锁存允许ALE 系统扩展时,ALE用于控制地
13、址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。,2 单片机芯片的硬件结构,26,外部程序存储器读选通信号/PSEN PSENProgram Store Enable 是读外部程序存储器的选通信号,低电平有效。 程序存储器地址允许输入端/EA EAExternal Access Enable 当为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令。当为低电平时,CPU只执行片外程序存储器指令。 复位信号RST 该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。,2 单片机芯片的硬件结构,27,输入/
14、输出口引脚P0、P1、P2和P3 P0口(P0.0P0.7):该端口为漏极开路的8位双向口,负载能力为8个LSTTL负载,它是8位地址线和8位数据线的复用端口。 P1口(P1.0P1.7):它是一个内部带上拉电阻的8位准双向I/O口,P1口的驱动能力为4个LSTTL负载。 P2口(P2.0P2.7):它为一个内部带上拉电阻的8位准双向I/O口,P2口的驱动能力也为4个LSTTL负载。在访问外部程序存储器时,它作存储器的高8位地址线。 P3口(P3.0P3.7):P3口同样是内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,还具有其它特殊功能。,2 单片机芯片的硬件结构,
15、28,2.2 MCS-51单片机的内部存储器,2 单片机芯片的硬件结构,29,内部数据存储器,2 单片机芯片的硬件结构,30,2.2.1 内部数据存储器低128单元 在低128字节存储单元中,前32个单元(00H1FH)作为工作寄存器使用,这32个寄存器分作4组,每组由8个通用寄存器(R0R7)组成,组号依次为0、1、2和3。通过对程序状态字中RS1和RS0的设置,可以决定选用哪一组工作寄存器,通常没有选中的单元也可作为一般的数据缓存使用。系统上电复位时,默认选中第0组寄存器。 在工作寄存器后的16个数据单元(20H2FH),它们既可以作为一般的数据单元使用,由可以按位对每个单元进行操作,因此
16、这16个数据单元又称作位寻址区。位寻址区共计128位,其位地址为00H0FH。 在内部RAM的低128个单元中,剩余的80个数据单元即30H7FH为真正的用户RAM区,对于这些区域,用户只能以存储单元的形式来使用,通常在应用中也把堆栈开辟在这段区域。,2 单片机芯片的硬件结构,31,2.2.2 内部数据存储器高128单元 内部数据存储器的高128个单元是为专用寄存器提供的,因此该区也称作特殊功能寄存器区(SFR),它们主要用于存放控制命令、状态或数据。除去程序计数器PC外,还有21个特殊功能寄存器,其地址空间为80HFFH。这21个寄存器中有11个特殊功能寄存器具有位寻址能力,它们的字节地址刚
17、好能被8整除。下面将对部分专用寄存器作简要介绍。 累加器ACC 累加器为8位寄存器,是程序中最常用的专用寄存器,在指令系统中累加器的助记符为A。大部分单操作数指令的操作取自累加器,很多双操作数指令的一个操作数也取自累加器。加、减乘和除等算术运算指令的运算结果都存放在累加器A或AB寄存器中,在变址寻址方式中累加器被作为变址寄存器使用。在MCS51中由于只有一个累加器,而单片机中的大部分数据操作都是通过累加器进行的,故累加器的使用是十分频繁的。,2 单片机芯片的硬件结构,32,B寄存器 B寄存器为8位寄存器,主要用于乘除指令中。乘法指令的两个操作数分别取自累加器A和寄存器B,其中B为乘数,乘法结果
18、的高8位存放于寄存器B中。除法指令中,被除数取自A,除数取自B,除法的结果商数存放于A,余数存放于B中。在其它指令中,B寄存器也可作为一般的数据单元来使用。 程序状态字PSW 程序状态字是一个8位寄存器,它包含程序的状态信息。在状态字中,有些位状态是根据指令执行结果,由硬件自动完成设置的,而有些状态位则必须通过软件方法设定。PSW中的每个状态位都可由软件读出,PSW的各位定义如下表。,2 单片机芯片的硬件结构,33,CY:进位标志位 在执行某些算术和逻辑指令时,可以被硬件或软件置位或清零。在算术运算中它可作为进位标志,在位运算中,它作累加器使用,在位传送、位与和位或等位操作中,都要使用进位标志
19、位。 AC:辅助进位标志 进行加法或减法操作时,当发生低四位向高四位进位或借位时,AC由硬件置位,否则AC位被清零。在进行十进制调整指令时,将借助AC状态进行判断。 F0:用户标志位 该位为用户定义的状态标记,用户根据需要用软件对其置位或清零,也可以用软件测试F0来控制程序的跳转。 RS1和RS0:寄存器区选择控制位 该两位通过软件置“0”或“1”来选择当前工作寄存器区。,2 单片机芯片的硬件结构,34,OV:溢出标志位 当执行算术指令时,由硬件置位或清零来指示溢出状态。在带符号的加减运算中,OV1表示加减运算结果超出了累加器A所能表示的符号数有效范围(128127),即运算结果是错误的,反之
20、,OV0表示运算正确,即无溢出产生。 无符号数乘法指令MUL的执行结果也会影响溢出标志,若置于累加器A和寄存器B的两个数的乘积超过了255,则OV1,反之OV0。由于乘积的高8位存放于B中,低8位存放于A中,OV0则意味着只要从A中取得乘积即可,否则要从BA寄存器对中取得乘积结果。 在除法运算中,DIV指令也会影响溢出标志,当除数为0时,OV1,否则OV0。 P:奇偶标志位 每个指令周期由硬件来置位或清零用以表示累加器A中1的个数的奇偶性,若累加器中1的个数为奇数则P1,否则P0。,2 单片机芯片的硬件结构,35,数据指针DPTR 数据指针DPTR为一个16位的专用寄存器,其高位用DPH表示,
21、其低位用DPL表示,它即既可以作为一个16位的寄存器来使用,也可作为两个8位的的寄存器DPH和DPL使用。DPTR在访问外部数据存储器时可用来存放16位地址,作地址指针使用。如: MOVX DPTR,A MOVX A,DPTR,2 单片机芯片的硬件结构,36,外部数据存储器 在MCS-51中,其片外数据存储器和I/O口与片内数据存储器空间0000H007FH是重叠的。在8051单片机中采用MOV和MOVX两种指令来区分片内外RAM空间,其中片内RAM使用MOV指令,片外RAM和I/O口使用MOVX指令。,2 单片机芯片的硬件结构,37,2.2.3 MCS-51的堆栈操作 系统复位后SP=07H
22、 向上生长型 2.2.4 内部程序存储器 在MCS-51系列中,程序存储器被用来存放程序、常数或表格等。在8051中,其片内有4K字节的ROM存储单元,地址为0000H0FFFH。8751有4K字节的EPROM,而8052和8752则有8K字节的片内存储器。8031和8032无片内程序存储器,所以片内程序存储器的有无是区分芯片的主要标志。,2 单片机芯片的硬件结构,38,在程序存储器中,以下6个单元具有特殊含义: 0000H:单片机复位后,PC=0000H,程序从0000H开始执行指令。 0003H:外部中断0入口地址。 000BH:定时器0中断入口地址。 0013H:外部中断1入口地址。 0
23、01BH:定时器1中断入口地址。 0023H:串行口中断入口地址。 在系统中断响应之后,将自动转各中断入口地址处执行程序,而中断服务程序一般无法存放于8个单元之内,因此在中断入口地址处往往存放一条无条件转移指令进行跳转,以便执行中断服务程序。 2.2.5 MCS-51单片机系统的存储器的结构特点,2 单片机芯片的硬件结构,39,2 单片机芯片的硬件结构,2.3 MCS-51单片机并行输入/输出口电路 2.3.1 P0口 下图给出了P0口的逻辑结构,它由一个锁存器、两个三态输入缓冲器、一个多路复用开关以及控制电路和驱动电路等组成。 P0口可以作为输入输出口,在实际应用中它通常作为地址/数据复用总
24、线。在访问外部存储器时,P0口为真正的双向口。,40,2 单片机芯片的硬件结构,2.3.2 P1口 P1口是一个准双向口,通常作为I/O口使用,其位结构图如下图所示。由于在其输出端接有上拉电阻,故可以直接输出而无需外接上拉电阻。,CP,41,2 单片机芯片的硬件结构,2.3.3 P2口 P2口位结构图如下图所示。P2通用为一个准双向口,其位结构与P0口相似。对于8031单片机来说,P2口通常用作地址信号输出。,CP,读锁存器,内部总线,读引脚,42,2 单片机芯片的硬件结构,2.3.4 P3口 P3口的位结构图如下图所示。P3口为双功能口,当P3口作为通用I/O口使用时,它为准双向口,且每位都
25、可定义为输入或输出口,其工作原理同P1口类似。,CP,43,2 单片机芯片的硬件结构,P3口还具有第二功能,其引脚描述如下表,44,2 单片机芯片的硬件结构,2.4 MCS-51单片机时钟电路与时序 2.4.1 时钟电路 根据硬件电路的不同,单片机的时钟连接方式可分为内部时钟方式和外部时钟方式,如下图所示。,45,2 单片机芯片的硬件结构,2.4.2 时序定时单位 1. 振荡周期振荡周期指为单片机提供定时信号的振荡源的周期或外部输入时钟的周期。 2. 时钟周期时钟周期又称作状态周期或状态时间S,它是振荡周期的两倍,它分为P1节拍和P2节拍,通常在P1节拍完成算术逻辑操作,在P2节拍完成内部寄存
26、器之间的传送操作。 3. 机器周期一个机器周期由6个状态组成,如果把一条指令的执行过程分作几个基本操作,则将完成一个基本操作所需的时间称作机器周期。单片机的单周期指令执行时间就为一个机器周期。 4. 指令周期指令周期即执行一条指令所需要的时间,通常为14个机器周期。,46,2 单片机芯片的硬件结构,2.4.3 典型指令时序 下图中给出了MCS-51单片机的典型取指、执行时序。,47,2 单片机芯片的硬件结构,2.5 MCS-51单片机工作方式 2.5.1 复位方式和复位电路 在MCS-51中,最常见的复位电路为下图所示的上电与按钮复位电路,它能有效的实现上电复位和手动复位。RST引脚是复位信号
27、输入端,复位信号为高电平有效,其有效时间应持续24个振荡周期以上才能完成复位操作,若使用6MHz晶振,则需持续4S以上才能完成复位操作。图中,在通电瞬间,由于RC的充电过程,在 RST端出现一定宽度的正脉冲,只要该正脉冲保持10ms以上,就能使单片机自动复位,在6MHz时钟时,通常CR取22F,R1取200,R2取1K,这时能可靠的上电复位和手动复位。,48,2 单片机芯片的硬件结构,上电与按钮复位电路,49,2 单片机芯片的硬件结构,CPU在第二个机器周期内执行内部复位操作,以后每个机器周期重复一次,直至RST端电平变低。在单片机复位期间,ALE和PSEN信号都不产生。复位操作将对部分专用寄
28、存器产生影响 。,50,2.5.2 程序执行方式 2.5.3 掉电保护方式,2 单片机芯片的硬件结构,51,2.5.4 80C51的低功耗方式 对于MCS-51系列机型来说,它们有待机方式和掉电保护方式两种低功耗方式。通过设置电源控制寄存器PCON(Power Control Register)的相关位可以确定当前的低功耗方式。PCON寄存器格式如下: 其中SMOD:波特率倍增位 GF0,GF1:通用标志位 PD:掉电方式位,PD1为掉电方式 IDL:待机方式位,IDL1为待机方式,2 单片机芯片的硬件结构,52,1. 待机方式 将PCON寄存器的IDL位置“1”,单片机则进入待机方式。通常在
29、待机方式下,单片机的中断仍然可以使用,这样可以通过中断触发方式退出待机模式。 2.掉电保护方式 将PCON寄存器的PD位置“1”,单片机则进入掉电保护方式。如果单片机检测到电源电压过低,此时除进行信息保护外,还需将PD位被置“1”,使单片机进入掉电保护方式。,2 单片机芯片的硬件结构,53,3.1 MCS-51单片机指令格式和寻址方式 3.2 MCS-51单片机指令分类介绍 3.3 MCS-51单片机指令汇总,3 MCS-51单片机指令系统,54,3.1 MCS-51单片机指令格式和寻址方式 3.1.1 指令系统概述 3.1.2 MCS-51单片机指令格式 一条汇编语言指令中最多包含4个区段,
30、如下所示: 标号:操作码 目的操作数,源操作数 ;注释 标号与操作码之间“:”隔开; 操作码与操作数之间用“空格”隔开; 目的操作数和源源操作数之间用“,”分隔; 操作数与注释之间用“;”隔开。,3 MCS-51单片机指令系统,55,3.1.3 MCS-51单片机寻址方式 所谓寻址方式,通常是指某一个CPU指令系统中规定的寻找操作数所在地址的方式,或者说通过什么的方式找到操作数。寻址方式的方便与快捷是衡量CPU性能的一个重要方面,MCS-51单片机有七种寻找方式。 1. 寄存器寻址 由指令指出某一个寄存器中的内容作为操作数,这种寻址方式称为寄存器寻址。寄存器一般指累加器A和工作寄存器R0R7。
31、例如: MOV A,Rn ;A(Rn),n=07MOV Rn,A ;Rn(A) MOV B,A ;B(A),3 MCS-51单片机指令系统,56,2. 直接寻址 在指令中含有操作数的直接地址,该地址指出了参与操作的数据所在的字节地址或位地址。 例如:MOV A,3AH ;把片内RAM字节地址3AH单元的内容传送给A MOV 3AH,A ;把A的内容传送到片内RAM的3AH单元中 MOV 50H,60H ;把片内RAM地址60H单元的内容送到50H单元中 MOV IE,#40H ;把立即数40H送到中断允许寄存器IE。 ;IE为专用功能寄存器,其字节地址为0A8H。 ;该指令等价于MOV 0A8
32、H,#40H。 INC 60H;将地址60H单元中的内容自加1,3 MCS-51单片机指令系统,57,3. 寄存器间接寻址 由指令指出某一个寄存器的内容作为操作数地址,这种寻址方式称为寄存器间接寻址。寄存器间接寻址只能使用寄存器R0或R1作为地址指针,来寻址内部RAM(00HFFH)中的数据。寄存器间接寻址也适用于访问外部RAM,可使用R0,R1或DPTR作为地址指针。寄存器间接寻址用符号“”表示。 例如:MOV R0,#60H ;R060H MOV A,R0 ;A (R0) MOV A,R1 ;A (R1) 例如:MOV DPTR,#3456H ;DPTR3456H MOVX A,DPTR
33、;A(DPTR) 是把DPTR寄存器所指的那个外部数据存储器(RAM)的内容传送给A,假设(3456H)=99H,指令运行后(A)=99H。,3 MCS-51单片机指令系统,58,4. 立即寻址 立即寻址方式是操作数包括在指令字节中,指令操作码后面字节的内容就是操作数本身,其数值由程序员在编制程序时指定,以指令字节的形式存放在程序存储器中。立即数只能作为源操作数,不能当作目的操作数。 例如:MOV A,#52H ;A52H MOV DPTR,#5678H ;DPTR5678H 5. 变址寻址 这种寻址方式用于访问程序存储器中的数据表格,它以基址寄存器(DPTR或PC)的内容为基本地址,加上变址
34、寄存器A的内容形成16位的地址,访问程序存储器中的数据表格。变址寻址的指令只有下列3条:MOVC A,A+DPTR MOVC A,A+PC JMP A+DPTR,3 MCS-51单片机指令系统,59,6. 位寻址 MCS-51单片机中设有独立的位处理器。位操作指令能对内部RAM中的位寻址区(20H2FH)和11个(寻址位83位)有位地址的特殊功能寄存器进行位操作。 SETB TR0 ;TR01 CLR 00H ;(00H)0 MOV C,57H ;将57H位地址的内容传送到位累加器C中 ANL C,5FH ;将5FH位状态与进位位C相与, 结果在C中 7. 相对寻址 相对寻址以程序计数器PC的
35、当前值作为基地址,与指令中给出的相对偏移量rel进行相加,把所得之和作为程序的转移地址。例如:JZ LOOP DJNE R0,DISPLAY,3 MCS-51单片机指令系统,60,3.2 MCS-51单片机指令分类介绍 MCS-51指令系统有42种助记符,代表了33种功能,指令助记符与各种可能的寻址方式相结合,共构成111条指令。 按指令的功能,MCS-51指令系统可分为下列5类: (1)数据传送类指令(29条) (2)算术运算类指令(24条) (3)逻辑运算及移位类指令(24条) (4)控制转移类指令(17条) (5)位操作类指令(17条),3 MCS-51单片机指令系统,61,3.2.1
36、指令格式中符号意义说明 在分类介绍指令前,先把描述指令的一些符号的意义作一简单介绍。 Rn当前选定的寄存器区中的8个工作寄存器R0R7,即n=07。 Ri当前选定的寄存器区中的2个寄存器R0、R1,i=0,1。 Direct8位内部RAM单元的地址,它可以是一个内部数据区RAM单元(00H7FH)或特殊功能寄存器地址(I/O端口、控制寄存器、状态寄存器80H0FFH)。 #data指令中的8位立即数。 #data16指令中的16位立即数。 addr1616位的目的地址,用于LJMP、LCALL,可指向64KB程序存储器的地址空间。 addr1111位的目的地址,用于AJMP、ACALL指令。目
37、的地址必须与下一条指令的第一个字节在同一个2KB程序存储器地址空间之内。,3 MCS-51单片机指令系统,62,rel8位带符号的偏移量字节,用于SJMP和所有条件转移指令中。偏移量相对于下一条指令的第一个字节计算,在-128+127范围内取值。 bit内部数据RAM或特殊功能寄存器中的可直接寻址位。 DPTR数据指针,可用作16位的地址寄存器。 A累加器。 ACC直接寻址方式的累加器。 B寄存器,用于MUL和DIV指令中。 C进位标志或进位位。 间接寄存器或基址寄存器的前缀,如Ri,DPTR。 /位操作的前缀,表示对该位取反。 (X)X中的内容。 (X)由X寻址的单元中的内容。 箭头左边的内
38、容被箭头右边的内容所替代。,3 MCS-51单片机指令系统,63,3.2.2 数据传送类指令 1. 概述 数据传送类指令一般的操作是把源操作数传送到指令所指定的目标地址。指令执行后,源操作数保持不变,目的操作数为原操作数所替代。数据传送类指令用到的助记符有:MOV,MOVX,MOVC,XCH,XCHD,PUSH,POP,SWAP。 格式: MOV , 功能:目的操作数(源操作数中的数据) 源操作数可以是:A、Rn、direct、Ri、#data 目的操作数可以是:A、Rn、direct、Ri 数据传送指令一般不影响标志,只有一种堆栈操作可以直接修改程序状态字PSW,可能使某些标志位发生变化。,
39、3 MCS-51单片机指令系统,64,2. 内部RAM数据传送指令组 (1) 立即数传送指令(8位4条,16位1条) MOV A,#data;A data MOV direct,#data;direct data MOV Rn,#data;Rn data MOV Ri,#data;(Ri) data MOV DPTR,#data16;DPTR data16 (2) 内部RAM单元之间的数据传送指令(共5条) MOV direct2,direct1;direct2 (direct1) MOV direct,Rn;direct (Rn) MOV Rn,direct;Rn (direct) MOV
40、direct,Ri;direct (Ri) MOV Ri,direct;(Ri) (direct),3 MCS-51单片机指令系统,65,例: MOV P2,R2 MOV 0A0H,R2;0A0H是P2口的地址 MOV 0D0H,R1;0D0H是PSW的地址 MOV R5,70H (3) 通过累加器的数据传送指令(共6条) MOV A,Rn;A (Rn) MOV Rn,A ;Rn (A) MOV A,direct;A (direct) MOV direct,A;direct (A) MOV A,Ri;A (Ri) MOV Ri,A;(Ri) (A),3 MCS-51单片机指令系统,66,3.
41、外部RAM数据传送指令组 (1) 使用DPTR进行间接寻址 MOVX A,DPTR;A (DPTR) MOVX DPTR,A; (DPTR) (A) (2) 使用Ri进行间接寻址 MOVX A,Ri;A (Ri) MOVX Ri,A; (Ri) (A) 4. 程序存储器数据传送指令组 MOVC A,A+DPTR;A (A)+(DPTR) MOVC A,A+PC;A (A)+(PC),3 MCS-51单片机指令系统,67,例 3.1 用查表方法将累加器中的十六进制数转换为ASCII码,并送回累加器中。 org0 mova,#0 lcallhba sjmp$ org2000h hba:inca m
42、ovca,a+pc ret db30h,31h,32h,33h,34h,35h,36h,37h,38h,39h,41h,42h,43h,44h,45h,46h end,3 MCS-51单片机指令系统,68,5. 数据交换指令组 (1) 整字节交换指令(共3条) XCH A,Rn;(A) (Rn) XCH A,direct;(A) (direct) XCH A,Ri;(A) (Ri) (2) 半字节交换指令(共1条) XCHD A,Ri;(A)30 (Ri)30 (3) 累加器高低半字节交换指令(共1条) SWAP A;(A)30 (A)74 6. 堆栈操作指令组 PUSH direct;SP
43、(SP)+1,(SP) (direct) POP direct;direct (SP),SP (SP)-1,3 MCS-51单片机指令系统,69,3.2.3 算术运算类指令 1. 加法指令组(共4条) ADD A,Rn;A (A)+(Rn) ADD A,direct;A (A)+(direct) ADD A,Ri;A (A)+(Ri) ADD A,#data;A (A)+data 例:若(A)=0C2H,(R0)=0A9H 执行指令:ADD A,R0 运算结果: (A)=6BH,(AC)=0,(CY)=1,(OV)=1 org0 mova,#0c2h movr0,#0a9h adda,r0 s
44、jmp$ end,3 MCS-51单片机指令系统,70,例 3.2 两个8位无符号数相加的和仍是8位。内部RAM中40H和41H单元分别存放两个加数,相加结果存放于42H单元中。 org0 movr0,#40h mova,r0 incr0 adda,r0 incr0 movr0,a sjmp$ end,3 MCS-51单片机指令系统,71,2. 带进位加法指令组(共4条) ADDC A,Rn;A (A)+(Rn)+(CY) ADDC A,direct;A (A)+(direct)+(CY) ADDC A,Ri;A (A)+(Ri)+(CY) ADDC A,#data;A (A)+data+(C
45、Y) 例 3.3 带进位加法指令常有用于多字节数的加法运算。如:三字节无符号数相加,被加数放在内部RAM20H22H单元(低位在前),加数放在内部RAM2AH2CH单元(低位在前),和放在被加数单元中。,3 MCS-51单片机指令系统,72,例 3.3 程序如下: org0 movr0,#20h movr1,#2ah movr7,#03h clrc loop:mova,r0 addca,r1 movr0,a incr0 incr1 djnzr7,loop clra addca,#00h movr0,a sjmp$ end,3 MCS-51单片机指令系统,73,3. 带借位减法指令组(共4条)
46、SUBB A,Rn;A (A)-(Rn)-(CY) SUBB A,direct;A (A)-(direct)-(CY) SUBB A,Ri;A (A)-(Ri)-(CY) SUBB A,#data;A (A)-data-(CY) 例:若(A)=0C9H,(R2)=54H,(CY)=1 执行指令:SUBB A,R2 运算结果: (A)=74H,(AC)=0,(CY)=0,(OV)=1 org0 mova,#0c9h movr2,#54h setbc subba,r2 sjmp$ end,3 MCS-51单片机指令系统,74,4. 加1指令组(共5条,不影响PSW) INC A;A (A)+1 I
47、NC Rn;Rn (Rn)+1 INC direct;direct (direct)+1 INC Ri;(Ri) (Ri)+1 INC DPTR;DPTR (DPTR)+1 5. 减1指令组(共4条,不影响PSW) DEC A;A (A)-1 DEC Rn;Rn (Rn)-1 DEC direct;direct (direct)-1 DEC Ri;(Ri) (Ri)-1,3 MCS-51单片机指令系统,75,6. 乘除指令组(共2条) (1) 乘法指令 MUL AB;BA (A)(B) CY=0,若乘积超过255,则OV=1,否则OV=0。 例:若(A)=50H,(B)=0A0H 执行指令:M
48、UL AB 运算结果: (B)=32H,(A)=00H,(CY)=0,(OV)=1 (2) 除法指令 DIV AB;BA (A)(B) CY=0,若除数为0,则OV=1,否则OV=0。 例:若(A)=0FBH,(B)=12H 执行指令:DIV AB 运算结果: (A)=0DH,(A)=11H,(CY)=0,(OV)=0,3 MCS-51单片机指令系统,76,乘法: org0 mova,#50h movb,#0a0h mulab sjmp$ end 除法: org0 mova,#0fbh movb,#12h divab sjmp$ end,3 MCS-51单片机指令系统,77,7. 十进制调整指
49、令(1条) DA A 例:若(A)=56H,(R5)=67H 执行指令:ADD A,R5 DA A 运算结果: (A)=23H,(CY)=1 org0 mova,#56h movr5,#67h adda,r5 daa sjmp$ end,3 MCS-51单片机指令系统,78,3.2.4 逻辑运算及移位类指令 1. 逻辑与运算指令组(共6条) ANL A,Rn;A (A)(Rn) ANL A,direct;A (A)(direct) ANL A,Ri;A (A)(Ri) ANL A,#data;A (A)data ANL direct,A;direct (direct)(A) ANL direc
50、t,#data;direct (direct)data 例3.4:设P1为输入口,P3.0为输出线,执行下列指令: MOVC,P1.0 ANLC,P1.1 ANLC,/P1.2 MOVP3.0,C 所实现的操作为: P3.0=(P1.0)(P1.1)(/P1.2),3 MCS-51单片机指令系统,79,例 3.4 程序: org0 movc,p1.0 anlc,p1.1 anlc,/p1.2 movp3.0,c sjmp$ end,3 MCS-51单片机指令系统,80,2. 逻辑或运算指令组(共6条) ORL A,Rn;A (A)(Rn) ORL A,direct;A (A)(direct)
51、ORL A,Ri;A (A)(Ri) ORL A,#data;A (A)data ORL direct,A;direct (direct)(A) ORL direct,#data;direct (direct)data 3. 逻辑异或运算指令组(共6条) XRL A,Rn;A (A)(Rn) XRL A,direct;A (A)(direct) XRL A,Ri;A (A)(Ri) XRL A,#data;A (A)data XRL direct,A;direct (direct)(A) XRL direct,#data;direct (direct)data,3 MCS-51单片机指令系统,
52、81,4. 累加器清0和取反指令(共2条) CLR A;A 0 CPL A;A (/A) 例 3.5: MOV R0,A ANL A,#0FH ANL P1,#0F0H ORL P1,A MOV A,R0 5. 移位指令组(共4条) (1) 循环左移RL A (2) 循环右移RR A (3) 带进位循环左移RLC A (4) 带进位循环右移RRC A,3 MCS-51单片机指令系统,82,3.2.5 控制转移类指令 1. 无条件转移指令组(共4条) (1) 长转移指令 LJMP addr16;PC addr16 (2) 绝对转移指令 AJMP addr11;PC100 addr11 (3) 短
53、转移指令 SJMP rel;PC PC+rel 例 3.6:LOOP:SJMP LOOP1 若LOOP=0100H,LOOP1=0123H,则rel=21H (4) 变址寻址转移指令 JMP A+DPTR;PC (A)+(DPTR),3 MCS-51单片机指令系统,83,2. 条件转移指令组 (1) 累加器判零转移指令 JZ rel JNZ rel (2) 数值比较转移指令(共4条) CJNE A,#data,rel CJNE A,direct,rel CJNE Rn,#data,rel CJNE Ri,#data,rel (3) 减1条件转移指令(共2条) DJNZ Rn,rel DJNZ
54、direct,rel,3 MCS-51单片机指令系统,84,例:把2000H开始的外部RAM单元中的数据送到3000H开始的外部RAM单元中,数据个数已在内部RAM35H单元中。 org0 movdptr,#2000h pushdpl pushdph movdptr,#3000h movr2,dpl movr3,dph loop:popdph popdpl movxa,dptr incdptr,3 MCS-51单片机指令系统,pushdpl pushdph movdpl,r2 movdph,r3 movxdptr,a incdptr movr2,dpl movr3,dph djnz35h,lo
55、op sjmp$ end,85,3. 子程序调用与返回指令组 (1) 绝对调用指令 ACALL addr11 (2) 长调用指令 LCALL addr16 (3) 返回指令 RET RETI 4. 空操作指令 NOP,3 MCS-51单片机指令系统,86,3.2.6 位操作类指令 1. 位传送指令组(共2条) MOV C,bit MOV bit,C 例: MOV 10H,C MOV C,20H MOV 5AH,C MOV C,10H 2. 位置位复位指令组(共4条) SETB C SETB bit CLR C CLR bit,3 MCS-51单片机指令系统,87,3. 位运算指令组(共6条)
56、ANL C,bit ANL C,/bit ORL C,bit ORL C,/bit CPL C CPL bit 位异或运算:D=EB=/EB+E/B MOV C,B ANL C,/E MOV D,C MOV C,E ANL C,/B ORL C,D MOV D,C,3 MCS-51单片机指令系统,88,4. 位控制转移指令组 (1) 以C状态为条件的转移指令(共2条) JCrel JNCrel (2) 以位状态为条件的转移指令(共3条) JBbit,rel JNBbit,rel JBCbit,rel,3 MCS-51单片机指令系统,89,3.2.7 I/O口访问指令使用说明 1. 可以对口进行
57、操作的指令 (1) 按口操作指令 口输出指令口输入指令 MOV Pm,AMOV A,Pm MOV Pm,#dataMOV direct,Pm MOV Pm,direct (2) 按口线操作的指令 口线的输入/输出指令口线的置位清0指令 MOV Pm.n,CSETB Pm.n MOV C,Pm.nCLR Pm.n 口线逻辑运算指令口线状态判跳指令 ANL C,Pm.nJB Pm.n,rel ORL C,Pm.nJBC Pm.n,rel,3 MCS-51单片机指令系统,90,2. 读引脚数据前先写“1” ORL P1,#03H MOV C,P1.0 MOV C,P1.1 3. 读端口操作时的“读改
58、写”功能 ORL P0,#0FH 3.2.8 MCS-51单片机指令小结,3 MCS-51单片机指令系统,91,3.3 MCS-51单片机指令汇总,3 MCS-51单片机指令系统,92,4.1 汇编语言程序设计概述 4.2 单片机汇编语言程序的基本结构形式 4.3 MCS-51单片机汇编语言程序设计举例 4.4 MCS-51汇编语言的伪指令 4.5 单片机汇编语言源程序的编辑和汇编,4 MCS-51汇编语言程序设计,93,4.1 汇编语言程序设计概述 4.1.1 汇编语言的特点及其语句格式 4.1.2 汇编语言程序设计的特点,4 MCS-51汇编语言程序设计,94,4.2 单片机汇编语言程序的基本结构形式 4.2.1 顺序程序 4.2.2 分支程序 1. 单分支程序 例 4.2 假定在外部RAM中有ST1、ST2和ST3共3个连续单元,其中ST1和ST2单元中分别存放着2个8位无符号数,要求找出其中的大数并存入ST3单元中。,4 MCS-51汇编语言程序设计,95,例 4.2 程序: st1equ200h st2equ201h st3equ202h org0 start:clrc movdptr,#st1 movxa,dptr movr2,a incdptr movxa,dptr,subba,r2 jncbig1 xcha,r2 big0:incdptr movx
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年零售改造供应链管理合同
- 青年社团可持续发展策略-洞察与解读
- 钛合金3D打印工艺-洞察与解读
- 易地扶贫搬迁移民区集体资产收益扶贫的实践与探索-以M村为例
- 核心素养视域下小学三年级数学总复习单元跨学科主题式教案
- 初中化学九年级下册“溶解度”概念建构与科学探究深度教学设计
- 明代正月皇家礼仪活动:仪式、内涵与历史映照
- 初中科学七年级下册《探秘月相:从古诗词到天文规律》项目化教学设计
- 2026江苏盐城市射阳县教育局下属事业单位赴高校招聘教师17人备考题库及参考答案详解(研优卷)
- 2026辽宁沈阳建筑大学招聘高层次人才44人备考题库(第一批)含答案详解(预热题)
- 黑龙江哈尔滨德强学校2025-2026学年度六年级(五四制)下学期阶段学情调研语文试题(含答案)
- 2026年温州市瓯海区专职社区工作者公开招聘6人笔试参考试题及答案解析
- 医养结合模式下的老年护理策略
- 2026年社会工作者初级真题及答案
- 酒店建设工作方案
- 08D800-7 民用建筑电气设计与施工-室外布线
- 车辆技术档案范本(一车一档)
- 0电连接安装施工作业指导书
- FZ/T 73072-2022矿工袜
- GB/T 15242.1-1994液压缸活塞和活塞杆动密封装置用同轴密封件尺寸系列和公差
- 友谊是什么(中文)
评论
0/150
提交评论