《片机教程》PPT课件.ppt

上传人:小飞机 文档编号:5550203 上传时间:2023-07-20 格式:PPT 页数:655 大小:5.48MB
返回 下载 相关 举报
《片机教程》PPT课件.ppt_第1页
第1页 / 共655页
《片机教程》PPT课件.ppt_第2页
第2页 / 共655页
《片机教程》PPT课件.ppt_第3页
第3页 / 共655页
《片机教程》PPT课件.ppt_第4页
第4页 / 共655页
《片机教程》PPT课件.ppt_第5页
第5页 / 共655页
点击查看更多>>
资源描述

《《片机教程》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《片机教程》PPT课件.ppt(655页珍藏版)》请在三一办公上搜索。

1、第1章 单片机系统概述主讲:朱兆优,本章学习要点:(1)单片机和嵌入式系统的概念,单片机与PC机的区别和联系;(2)单片机的发展历程、趋势和应用领域;(3)单片机的分类、主要特性、主要生产厂家、常用系列和主要芯片型号。,第1章 单片机概述,单片机产生于20世纪70年代。单片机的特点:体积小,重量轻,抗干扰能力强,对运行环境要求不高,价格低廉,可靠性高,灵活性好。,单片机已广泛应用在:,工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等方面。,1、什么是计算机?(CPU、RAM、ROM、I/O)2、什么是单片机?剪裁计算机的功能部件后在一块半导体硅片上集成如下部件的芯片

2、称为单片机:(1)微处理器(CPU)(2)存储器(RAM、ROM或EPROM)(3)各种输入、输出接口,1.1 什么是单片机,3、单片机具有一台计算机的属性。也称为:微控制器 MCU(MicroController Unit)嵌入式控制器 EMCU(Embedded icroController Unit),在我国,习惯使用“单片机”这一名称。,4、单片机的组成结构,1.2 单片机的发展概况,五个阶段:,第一阶段(1974年1976年):单片机初级阶段。双片 的形式,且功能比较简单。第二阶段(1976年1978年):低性能单片机阶段。以 Intel 公司制造的MCS-48单片机为代表。第三阶段

3、(1978年现在):高性能单片机阶段。Intel公司的MCS-51系列、Mortorola公司的6801系列等。,第四阶段(1982年现在):8位单片机巩固发展及16 位单片机、32位单片机推出阶段。第五阶段(1990至今):微控制器的全面发展阶段。,Intel公司单片机系列典型产品:MCS-48(8035、8048、8748)MCS-51(8031、8051、8751)MCS-52(8032、8052、8752)MCS-96(8098、8398、8798)注意:这些产品在实际应用中已经淘汰,但其原理尚存,并继续发扬光大。,1.3 单片机的特点:1小巧灵活、成本低、易于产品化 2面向控制,完成

4、各种控制任务 3抗干扰能力强,适应温度范围宽 4可以很方便地实现多机和分布式控制,1.4 8位单片机的主要生产厂家和机型,(1)美国Intel公司 MCS-51系列及其增强型、扩展型系列。(2)中国STC宏晶科技的STC89C系列 和STC12xxxx(3)台湾Winbond的W78C52和W78C54系列(4)美国Atmel公司AT89和AT90系列 以及PIC系列、MSP430系列、C8051F系列等等。,51系列单片机在我国广泛应用;8051单片机品种多、兼容性好、性价比高;51系列的软、硬件设计资料丰富齐全;51系列单片机及其衍生兼容机型仍将是主流产品,是现代工业检测、控制应用的重要机

5、型。,MCS-51系列单片机的演绎,20世纪80年代后期:Intel公司以专利的形式把 8051内核技术转让给厂家。,这些厂家生产的兼容单片机,与8051的系统结构(主要是指令系统)相同,采用CMOS工艺。,如:AMTEL、PHILIPS、ANALOG DEVICES、DALLAS公司。,不应直接称8051单片机为MCS-51系列单片机。MCS只是特指Intel公司生产的单片机的符号,即MCS-51系列。,80C51系列:所有的具有8051指令系统的单片机,带C的是低功耗型。,按字长分:4位、8位、16位和32位单片机。在8位单片机家族中,主流产品有:(1)80C51内核(2)Motorola

6、内核(3)PIC内核的单片机。,1.5 8位单片机介绍,1、增强型STC单片机 STC是2005年推出中国本土的第一款具有全球竞争力的、且与MCS-51兼容的STC单片机。主要产品型号:STC89C51RC、STC89C52RC、STC89C53RCSTC12C5201、STC12C5201AD、TC12C5201PWM,1.5.1 80C51单片机介绍,2、NXP增强型单片机 Philips公司的P89LPC900系列是采用了增强型80C51内核制造而成的增强高档型单片机。主要产品型号:P89LPC9321、P89LPC936、P89LPC938 P89C51、P89C52,3AVR高速型单

7、片机 是ATMEL 公司于1997年由A先生和V先生结合Flash技术,推出全新配置的精简指令集(RISC)8位单片机。主要产品型号有:ATtiny13,ATtiny24、AT90S8535、ATmega8。,4C8051Fxxx系列高速单片机 是Cygnal公司推出的、与8051指令集兼容的单片机,弥补了8051系列单片机的速度慢、内部资源少的不足。如:C8051F120-4K RAM、128K ROM、8个I/O口、12位A/D、100引脚C8051F022-4K RAM、64K ROM、8个I/O口、12位A/D、100引脚C8051F023-4K RAM、64K ROM、4个I/O口、

8、10位A/D、64引脚,5专用型 针对某一种产品或某一种控制应用而专门设计的,设计时已使结构最简,软硬件应用最优,可靠性及应用成本最佳。例如:电子表、电话机、电视机和空调里的就嵌入了一种专用型单片机。,1.5.2 Motorola内核的单片机 Motorola公司是世界上最大的单片机厂商之一。1、MC68HC05采用HCMOS工艺制造,是一种高性能、低功耗的8位单片机。2、MC68HC08系列单片机是在MC68HC05的基础上进行改进后的8位单片机。,1.5.3 PIC内核的单片机 PIC系列单片机是美国Microchip微芯公司的制造的另一款8位单片机。特点:1、采用RISC指令集 2、33

9、条指令,指令最短执行时间160ns 3、指令系统和开发工具与8051系列不同。主要有:PIC16C5X、PIC16CXX、PIC17CXX和PIC18CXXX系列,1.5.4 其他公司8位单片机 1、MDT20 xx系列单片机 2、日本TOSHIBA的4位机、8位机 3、Zilog公司的单片机Z8 4、EPSON公司的单片机 5、NS公司的 COP8单片机 6、先锋Chipcon公司推出了全新概念的新一代ZigBee无线单片机CC2430/CC2431 7、富士通单片机MB89P935C。等等,1.6 16位和32位单片机系列介绍 1.6.1 16位单片机 是高性能单片机。主要有:1、凌阳16

10、位单片机 2、TI公司的MSP430C系列(极低功耗的单片机)3、PIC18CXXX系列单片机。,1.6.2 32位单片机 32位单片机又称嵌入式处理器,是面向特定应用,隐藏于应用系统或电子产品内部的专用计算机。主要有:Philips公司的LPC2220系列 SAMSUNG公司的S3C44B0X系列 IBM公司的PowerPC系列 MIPS公司的MIPS系列 Sun公司的Sparc ARM公司的ARM系列嵌入式处理器。,1.7 单片机的发展趋势 1改进CPU结构 2低电压、低功耗CMOS化 3改善存储器性能 4改进I/O口性能 5外围电路内装化 6主流与多品种共存 7片内ROM中固化应用软件和

11、系统软件,1.8 单片机的应用,单片机卓越的性能,得到了广泛的应用,已深入到各个领域。,使用温度:,民品:0C+70C,工业品:-40C+85C,军品:-65C+125C。,在下述的各个领域广泛的应用:,1、测控系统2、智能仪器仪表3消费类电子产品4机电一体化产品5武器装备6终端及外部设备智能接口7通信技术 8多机分布式系统,1.9 单片机技术主要网站介绍,STC单片机()周立功单片机()C51 BBS论坛()中国电子网()嵌入式公社()电子技术应用()单片机爱好者()超简单单片机学习网()中源单片机(,第2章8051单片机的体系结构 主讲 朱兆优,本章学习要点:(1)8051单片机特点、内部

12、结构及片内各组成部件的功能作用;(2)8051单片机引脚名称、功能和控制信号、三总线的组成;(3)单片机的存储结构,程序存储器、数据存储器、特殊功能寄存器的编址和地址空间分配,单片机堆栈的特点、程序状态字PSW各位的含义;(4)单片机工作时序、时钟电路、复位电路工作原理;机器周期、指令周期的计算方法;I/O的结构功能特点,单片机的工作模式。,2.1 8051单片机内部结构八大功能部件:(1)微处理器(8位CPU)(2)程序存储器(ROM、EPROM或Flash等)(3)数据存储器(RAM、E2PROM)(4)四个8位并行可编程I/O端口(P0、P1、P2、P3)(5)一个串行口(UART)(6

13、)两个16位定时器/计数器(T0/T1)(7)中断系统(含8个中断源、2个优先级)(8)特殊功能寄存器(SFR),还包含:时钟振荡器、总线控制器和供电电源 此外,有的还有其它功能部件,如:A/D、D/A PWM、PCA WDT SPI、I2C、ISP、IAP,8051单片机内部结构图,2.2 8051单片机芯片引脚功能单片机芯片双列直插封装方式引脚图,2.2 8051单片机芯片引脚功能单片机芯片方形封装方式引脚图,2.2 8051单片机芯片引脚功能单片机芯片引脚功能1主电源引脚(1)GND 接地(2)VCC正常操作时为十5V电源。2时钟电路引脚(1)XTAL1:(2)XTAL2:,3控制线与电

14、源复用引脚(1)RST/VPD:RST是复位信号,高电平有效。VPD为第二功能,即备用电源输入端。(2)ALE/PROG:ALE为地址锁存允许信号输出引脚。PROG为编程信号,第二功能,低电平有效。(3)PSEN:片外ROM选通信号输出端,低电平有效。(4)EAVPP:EA为内部和外部ROM控制端 当EA1时,从内ROM开始访问 当EA0时,只访问外部ROM VPP是编程电源输入端,4并行输入/输出引脚(1)P0口:P0.0P0.7统称为P0口(2)P1口:P1.0P1.7统称为P1口(3)P2口:P2.0P2.7统称为P2口(4)P3口:P3.0P3.7统称为P3口 P3口每一位可用作第二功

15、能,而且P3口的每一条引脚都可以独立设置为第一功能的I/O口功能和第二功能。,2.3 8051中央处理器 单片机的CPU是完整的1位微计算机。这个1位微计算机包含CPU、位寄存器、I/O口和指令集。CPU内部包含:1、运算器 2、控制器 3、存储器。,2.3.1 运算器 运算器包含:1.算术逻辑运算单元ALU-算术运算、逻辑运算 2.累加器A-相当于数据加工厂 3.位处理器-位运算 4.BCD码修正电路-十进制数的运算处理 5.PSW-记录程序运行状态,2.3.2 控制器 单片机的指挥部件,主要任务是识别指令,控制各功能部件,保证各部分有序工作。主要包括指令寄存器、指令译码器、程序计数器、程序

16、地址寄存器、条件转移逻辑电路、时序控制逻辑电路。,1、指令、指令译码及控制器 指令-就是完成某项操作的命令。指令译码-对指令进行解析和翻译 控制器-发出相应的控制信息,指挥运算器和存储器协同完成指令所要求的操作。例如:下面是单片机的一条指令:00100101 00110000(A)+(30H)该指令是加法指令,指令占2字节,2、指令集和指令助记符 指令译码器所能解析系统在设计时规定的。为直观表达,用指令助记符表示。例如,上面的加法指令的助记符为:ADD A,30H,3、程序及程序计数器PC 什么叫计算机程序:为完成一个完整的运算任务,按照执行步骤用计算机指令编写的指令集合。执行程序指示:地址由

17、PC指示。执行程序时,在计算机控制器的控制下,取指令装置会按PC的指向从存储器中读出第一条指令并译码,执行指令所要求的操作。,2.3.3 程序执行过程 执行程序线路实际上按PC的指取指令运行,PC就象引路人,称为程序指针。执行流程如下图:,程序指令取指执行过程,1、复位PC=00002、从PC取指,PC+13、取数据4、执行指令5、取下一条指令,2.4 8051单片机的存储结构 8051单片机存储器采用冯诺依曼结构:1、有一根地址和数据总线。2、程序存储器空间和数据存储器空间采用独立编址。3、拥有各自的寻址方式和寻址空间。,2.4.1 8051单片机的存储器结构8051单片机存储器从物理结构上

18、分四种:1、片内程序存储器 2、片外程序存储器 3、片内数据存储器 4、片外数据存储器,从寻址空间分布上分三种:程序存储器、内部数据存储器外部数据存储器。从功能作用上可五种:程序存储器、内部数据存储器、特殊功能寄存器、位地址空间存储器和外部数据存储器。,2.4.1 8051单片机的存储器结构图,2.4.2 程序存储器:可寻址的地址空间为64KB,从0000H开始编址,最大地址可至FFFFH。用EA信号选择片内、片外程序存储器:对于STC89C51单片机(片内有4 KB),编址为00000FFFH,EA 接高电平,从片内0000H开始执行程序。对于8031单片机无内部程序存储器,EA接低电平,从

19、片外读取程序执行。,中断向量:单片机至少有5个中断地址,在0000002FH程序存储器地址之间占5个特殊地址,被固定用于5个中断源的中断服务程序入口地址。中断地址如下:,2.4.3 片内数据存储器1、片内RAM编址片内数据存储器(RAM),128B/256B),用来存放程序运行时所需要的常数或变量。编址如下:51子系列片内RAM有128字节编址为007FH 特殊功能寄存器块有128字节编址为为80FFH 52子系列片内RAM有256字节 低128字节编址为007FH(直接寻址)高128字节编址为80FFH(间接寻址)SFR有128字节编址为为80FFH(间接寻址),2、内部数据存储器的划分 片

20、内RAM编址为007FH,分工作寄存器区、位寻址区、数据缓冲区和堆栈数据区三个部分。结构如下图:,(1)工作寄存器区 从上图中可以看到,单片机内部RAM的001FH区是R工作寄存器区,分为四个组,由RS1、RS0配置选择:,(2)位寻址区 内部RAM的20H2FH为位寻址区域(见表2-4)。这16个单元(共128位)的位地址编址范围为00H7FH。,(3)数据缓冲区 内部RAM的30H7FH是数据缓冲区,也称为用户RAM区,共80个单元。52子系列内部有256个单元的数据存储器,用户RAM区范围为30HFFH,共208个单元。工作寄存器区和位寻址区的地址及单元数与上述一致。,3、堆栈和堆栈指针

21、 堆栈的概念:是一种数据项按序排列的数据结构,采用后进先出,这种后进先出操作的缓冲器区称为堆栈。堆栈指针总是指向栈顶。堆栈就好比水桶或手枪中的弹匣,更象一个装兵乓球的小圆筒。堆栈的几个名词:满堆栈、空堆栈、递增堆栈和递减堆栈,堆栈特点:后进先出堆栈有3个具体功能:(1)保护断点(2)现场保护(3)临时暂存数据,2.4.4 特殊功能寄存器 单片机是通过特殊功能寄存器(SFR)对各种功能部件进行集中控制。如下表:,2.4.5 外部数据存储器 单片机一般的内部RAM只有128 B或256B。现在有大RAM容量单片机或集成了Data Flash的单片机。系统需要海量存储器必须扩展外部存储器。扩展外部存

22、储器方式:(1)并行方式扩展(最大64KB)(2)串行方式扩展(最大1MB以上),存储器使用总结如下:(1)地址有重叠性,用不同的控制命令分开。(2)(RAM)和(ROM)在操作使用上是严格区分的,不同的操作指令不能混用。(3)位地址空间有两个区域:20H2FH区和SFR区(4)片外数据存储器区中,RAM存储单元与单片机外部扩展的I/O端口是统一编址的。,2.5 并行I/O端口,共有4个8位双向I/O口,共32口线。每位均有自己的锁存器(SFR),输出驱动器和输入缓冲器。,多路开关功能:用于控制选通I/O方式还是地址/数据输出方式方式控制:由内部控制信号产生,输入锁存器,两个输入缓冲器(BUF

23、1和BUF2),推拉式I/O驱动器,2.5.1 P0口位图内部结构,5、P0R2为读引脚信号,执行“MOV A,P0”时该信号有效6、读引脚(端口)时,输出锁存器应为“1”,说明:1、当控制信号为0时,P0口做双向I/O口,为漏极开路(三态)2、控制信号为1时,P0口为地址/数据复用总线(用于口扩展)3、P0W为端口输出写信号,用于锁存输出状态4、P0R1为读锁存器信号,执行“ANL P0,#0FH”时该信号有效,1,0,2.5.2 P1口内部结构,P1口内部结构如图2所示输出部分有内部上拉电阻R*约为20K。其他部分与P0端口使用相类似(读引脚时先写入1)。,写数据,读端口,2.5.3 P2

24、口内部结构,2、当控制信号为1时P2口输出地址信息,此时单片机完成外部的取指操作或对外部数据存储器16位地址的读写操作。3、当P2口作为普通I/O口使用时用法和P1口类似。,说明:1、P2可以作为通用的I/O,也可以作为高8位地址输出。,MCS-51片外总线结构示意图,返回,MCS-51单片机片外总线,P0.4,返回,6264,WE,单片机 8031,P2.0,:,.,A8,.,ALE,RD,74LS373,G,A7.A0,P0.0:P0.7,OE,CE,Q0.Q7,D0.D7,A12,P2.4,WR,D7.D0,2.5.4 P3口内部结构,说明:1、做普通端口使用时,第二功能应为“1”。,2

25、、使用第二功能时,输出端口锁存器应为“1”。3、变异功能()P3.0 TXD P3.4 T0 P3.1 RXD P3.5 T1 P3.2 INT0 P3.6 WR P3.3 INT1 P3.7 RD,2.5.5 P0P3端口功能总结使用中应注意的问题:(1)P0P3口都是并行I/O口,但P0口和P2口还可用来构建数据总线和地址总线,所以电路中有一个MUX,进行转换。(2)而P1口和P3口无构建系统的数据总线和地址总线的功能,因此,无需转接开关MUX。,(3)只有P0口是一个真正的双向口,P1P3口都是准双向口。原因:P0口作数据总线使用时,为保证数据正确传送,需解决芯片内外的隔离问题,即只有在

26、数据传送时芯片内外才接通;否则应处于隔离状态。为此,P0口的输出缓冲器应为三态门。(4)P3口具有第二功能。因此在P3口电路增加了第二功能控制逻辑。这是P3口与其它各口的不同之处。,P3口的第二功能,2.6 单片机时序与复位 时钟电路用于产生单片机工作所必需的时钟控制信号。2.6.1 时钟电路 时钟频率直接影响单片机的速度,电路的质量直接影响系统的稳定性。常用的时钟电路有两种方式:内部时钟方式和外部时钟方式。,一、内部时钟方式 内部有一个用于构成振荡器的高增益反相放大器,其输入端:XTAL1,输出端:XTAL2。,C1和C2典型值通常选择为30pF左右。晶体的振荡频率在1.2MHz12MHz之

27、间。某些高速单片机芯片的时钟频率已达40MHz。,二、外部时钟方式 常用于多片单片机同时工作。,三、时钟信号的输出 为应用系统中的其它芯片提供时钟,但需增加驱动能力。,2.6.2 机器周期、指令周期与指令时序一、时钟周期单片机的基本时间单位。若时钟的晶体的振荡频率为fosc,则时钟周期Tosc=1/fosc。如fosc=6MHz,Tosc=166.7ns。二、机器周期CPU完成一个基本操作所需要的时间。执行一条指令分为几个机器周期。每个机器周期完成一个基本操作。MCS-51单片机每12个时钟周期为一个机器周期,,一个机器周期又分为6个状态:S1S6。每个状态又分为两拍:P1和P2。因此,一个机

28、器周期中的12个时钟周期表示为:S1P1、S1P2、S2P1、S2P2、SP6P1、S6P2,三、指令周期执行一条指令时,可分为取指令阶段和指令执行阶段。取指令阶段,PC中地址送到程序存储器,并从中取出需要执行指令的操作码和操作数。指令执行阶段,对指令操作码进行译码,以产生一系列控制信号完成指令的执行。ALE信号是为地址锁存而定义的,以时钟脉冲1/6的频率出现,在一个机器周期中,ALE信号两次有效(注意,在执行访问外部数据存储器的指令MOVX时,将会丢失一个ALE脉冲),时钟电路需外接晶振的频率1.212MHZ,C1和C2取3010PF,CPU的时序(时钟周期、状态周期、机器周期),若外接晶振

29、为12MHz时,则单片机的四个周期的具体值为:时钟周期1/12MHz1/12s0.0833s 状态周期1/6s0.167s 机器周期1s 指令周期14s可用于计算指令、程序的执行时间,以及定时器的定时时间,2.6.3 复位电路单片机的初始化操作,摆脱死锁状态。引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可使MCS-51复位。复位时,PC初始化为0000H,使MCS-51单片机从0000H单元开始执行程序。除PC之外,复位操作还对其它一些寄存器有影响,见表2-8(P43)。SP=07H,P0-P3的引脚均为高电平。在复位有效期间,ALE脚和PSEN*脚均为高电平,内部RAM的

30、状态不受复位的影响。,2.7.2 复位电路 片内复位结构:,上电自动复位和按钮复位 最简单的上电自动复位电路:,按键手动复位,有电平方式和脉冲方式两种。电平方式 脉冲方式,两种实用的兼有上电复位与按钮复位的电路。,图2-19中(b)的电路能输出高、低两种电平的复位控制信号,以适应外围I/O接口芯片所要求的不同复位电平信号。74LS122为单稳电路,实验表明,电容C的选择约为0.1F较好。,Watch Dog复位电路,2.6.4 复位和复位状态 单片机复位后,各个特殊功能寄存器的复位状态如表2-8所示,2.7 单片机的省电工作模式单片机工作方式:(1)正常工作方式(2)空闲模式(3)掉电模式空闲

31、模式和掉电模式由PCON中的IDL和PD位设置。,PCON电源控制寄存器格式如下:PCON的字节地址为87H,不能位寻址,系统复位时PCON=00 x1 0000B。,IDL=1进入空闲模式。(1)用中断方式退出空闲模式。(2)用硬件复位方式退出空闲模式。PD=1进入掉电模式。STC89C51单片机的功耗:(1)正常工作时功耗为25 mA(2)空闲节电模式下功耗是6.5 mA(3)掉电模式时功耗仅50 A。,第3章 8051单片机指令系统 主讲 朱兆优,介绍8051内核单片机汇编语言的指令系统。3.1 指令系统概述 MCS-51的基本指令共111条,按指令所占的字节来分:(1)单字节指令49条

32、;(2)双字节指令45条;(3)三字节指令17条。按指令的执行时间来分:(1)1个机器周期(12个时钟振荡周期)指令64条(2)2个机器周期(24个时钟振荡周期)指令45条,本章学习要点:(1)8051单片机指令系统和指令格式,以及指令系统的寻址方式;(2)8051单片机中111条指令的使用要点,以及对存储器、寄存器的使用方法;(3)灵活运用汇编指令,并能用单片机指令编写汇编语言程序。,(3)只有乘、除两条指令的执行时间为4个机器周期(48个时钟振荡周期)。12MHz晶振:机器周期为1s。3.2 指令格式 两部分组成,即操作码和操作数。操作码用来规定指令进行什么操作 操作数则是指令操作的对象有

33、单字节指令、双字节指令、三字节不同长度的指令,格式不同:(1)单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。,(2)双字节指令:一个字节为操作码,另一个字节是操作数。(3)三字节指令:操作码占一个字节,操作数占二个字节。其中操作数既可能是数据,也可能是地址。,3.2.3 指令中常用的符号指令中符号的意义:Rn 当前寄存器区的8个工作寄存器R0R7(n=07)。Ri 当前选中的寄存器区中可作间接寻址寄存器的2 个寄存器R0、R1(i=0,1)。Direct 直接地址,即8位的内部数据存储器单元或特殊功能寄存器的地址。,#data 包含在指令中的8位立即数。#data16 包含在指令

34、中的16位立即数。rel 相对转移指令中的偏移量,为8位的带符号补 码数DPTR 数据指针,可用作16位的数据地址寄存器。bit 内部RAM或特殊功能寄存器中的直接寻址位。C(或Cy)进位标志位或位处理机中的累加器。,addr11 11位目的地址addr16 16位目的地址 间接寻址寄存器前缀,如Ri,A+DPTR(X)X中的内容。(X)由X寻址的单元中的内容。箭头右边的内容被箭头左边的内容所取代。,3.3 指令系统的寻址方式 寻址方式就是在指令中说明操作数所在地址的方法。共7种寻址方式。1寄存器寻址方式 操作数在寄存器中 MOV A,Rn;(Rn)A,n=07 表示把寄存器Rn的内容传送给累

35、加器A,寻址范围包括:(1)4组通用工作寄存区共32个工作寄存器。(2)部分特殊功能寄存器,例如A、B 以及数据指针寄存器DPTR等。2直接寻址方式 操作数直接以单元地址的形式给出:MOV A,40H 寻址范围:(1)内部RAM的128个单元(2)特殊功能寄存器。除了以单元地址的形式外,还可用寄存器符号的形式给出。例如:MOV A,80H 与 MOV A,P0是等价的。,3.寄存器间接寻址方式 寄存器中存放的是操作数的地址 在寄存器的名称前面加前缀标志“”访问内部RAM或外部数据存储器的低256个字节时,只能采用R0或R1作为间址寄存器。例如:MOV A,Ri;i=0或1 其中Ri中的内容为4

36、0H,把内部RAM40H单元内容送A。寻址范围:(1)访问内部RAM低128个单元,其通用形式为Ri(2)对片外数据存储器的64K字节的间接寻址,例如:MOVX A,DPTR,(3)片外数据存储器的低256字节 例如:MOVX A,Ri(4)堆栈区 堆栈操作指令PUSH(压栈)和POP(出栈)使用堆栈指针(SP)作间址寄存器例如:MOV R0,#30H;(R0)30H。MOV A,R0;(A)(R0)。MOV R0,A;(R0)(A)。,4立即寻址方式 操作数在指令中直接给出,需在操作数前面加前缀“#”。例如:MOV A,#40H 5基址寄存器加变址寄存器间址寻址方式 本寻址方式是以DPTR或

37、PC作基址寄存器,以累加器A作为变址寄存器。,例如:指令 MOVC A,A+DPTR 其中A的原有内容为10H,DPTR的内容为1020H,该指令执行的结果是把程序存储器1030H单元的内容传送给A。,说明:(1)本寻址方式是专门针对程序存储器的寻址方式,寻址范围可达到64KB。(2)本寻址方式的指令只有3条:MOVC A,A+DPTRMOVC A,A+PCJMP A+DPTR,6位寻址方式 MCS-51有位处理功能,可以对数据位进行操作,例如:MOV C,40H 是把位40H的值送到进位位C。寻址范围包括:(1)内部RAM中的位寻址区。位有两种表示方法,例如,40H;另一种是单元地址加上位,

38、例如,(28H).0,指的是28H单元中的最低位。它们是等价的。(2)特殊功能寄存器中的可寻址位,可寻址位在指令中有如下4种的表示方法:a.直接使用位地址。例如:78H,D5H等。b.位名称的表示。例如:F0,AC等。c.地址单元+位数。例如:(0D0H).5。d.点操作法。特殊功能寄存器符号加位数的表示方法。例如:PSW.5。,7相对寻址方式 在相对寻址的转移指令中,给出了地址偏移量,以“rel”表示,即把PC的当前值加上偏移量就构成了程序转移的目的地址:目的地址=转移指令所在的地址+转移指令的字节数+rel 偏移量rel是一带符号的8位二进制数补码数。范围是:128+127 向地址增大方向

39、最大可转移(127+转移指令字节)个单元地址,向地址减小方向最大可转移(128-转移指令字节)个单元地址。,7种寻址方式及寻址空间,见表3-1。3.4 8051单片机指令系统8051单片机指令系统按功能分为五大类:1、数据传送类指令2、算术运算类指令3、逻辑运算类指令4、控制转移类指令5、位操作(布尔操作)类指令下面分类介绍指令的功能和使用方法。,3.4.1 数据传送类指令 使用最频繁的一类指令,通用格式:MOV,属“复制”性质,而不是“搬家”数据传送类指令不影响标志位,Cy、Ac和OV,但会影响奇偶标志位P。,1以累加器为目的操作数的指令 MOV A,Rn;(Rn)A,n=07 MOV A,

40、Ri;(Ri)A,i=0,1 MOV A,direct;(direct)A MOV A,#data;#dataA 例如:MOV A,R6;(R6)A,寄存器寻址 MOV A,70H;(70H)A,直接寻址 MOV A,R0;(R0)A,间接寻址 MOV A,#78H;78HA,立即寻址,2.以Rn为目的操作数的指令 MOV Rn,A;(A)Rn,n=07 MOV Rn,direct;(direct)Rn,n=07 MOV Rn,#dat;#dataRn,n=07功能:是把源操作数的内容送入当前一组工作寄存器区的R0R7中的某一个寄存器。,3.以直接地址direct为目的操作数的指令 MOV d

41、irect,A;(A)direct MOV direct,Rn;(Rn)direct,n=07 MOV direct1,direct2;MOV direct,Ri;(Ri)direct MOV direct,#data;#datadirect功能:把源操作数送入直接地址指出的存储单元。direct指的是内部RAM或SFR的地址。,4.以寄存器间接地址为目的操作数的指令 MOV Ri,A;(A)(Ri),i=0,1 MOV Ri,direct;(direct)(Ri)MOV Ri,#data;#data(Ri),5.外部数据存储器传送指令MOV DPTR,#data16;#data16DPTRM

42、OVX A,DPTR;(DPTR)A,读外部RAM/IO MOVX A,Ri;(Ri)A,读外部RAM/IO MOVX DPTR,A;(A)(DPTR),写外部RAM/IO MOVX Ri,A;(A)(Ri),写外部RAM/IO功能:读外部RAM存储器或I/O中的一个字节,或把A中一个字节的数据写到外部RAM存储器或I/O中。注意:RD*或WR*信号有效。,6.查表指令 共两条,用于读程序存储器中的数据表格的指令,均采用基址寄存器加变址寄存器间接寻址方式。(1)MOVC A,A+PC(2)MOVC A,A+DPTR以PC作基址寄存器,A的内容作为无符号整数和PC中的内容(下一条指令的起始地址)

43、相加后得到一个16位的地址,该地址指出的程序存储单元的内容送到累加器A。注意:PSEN*信号有效。,例如 把09对应的平方值做表格,查表求04的平方值,分析下面程序段的结果:ORG 1030HMOV A,#04H;DPTR#04HADD A,#03H;A#03H,偏移量是03HMOVC A,A+PC;A(A)+(DPTR)MOV 30H,ARETDB 00,01,04,09,16,25,36,49,64,81;09对应的平方值表格,7堆栈操作指令 8051单片机片内RAM中可以设定一个后进先出(LIFO-Last In First Out)的区域称作堆栈.堆栈指针SP指出堆栈的栈顶位置。(1)

44、进栈指令 PUSH direct先将栈指针SP加1,然后把direct中的内容送到栈指针SP指示的片内RAM单元中。,例如:当(SP)=60H,(A)=30H,(B)=70H时,执行:PUSH ACC;则:(SP)+1SP=61H,(A)61H PUSH B;则:(SP)+1=62HSP,(B)62H 结果:(61H)=30H,(62H)=70H,(SP)=62H,(2)出栈指令 POP directSP指示的栈顶(片内RAM单元)内容送入direct字节单元中,栈指针SP减1.例如:当(SP)=62H,(62H)=70H,(61H)=30H,执行:POP DPH;(SP)DPH,(SP)-1

45、SP POP DPL;(SP)DPL,(SP)-1SP 结果:(DPTR)=7030H,(SP)=60H,采用DPTR间接寻址,高8位地址(DPH)由P2口输出,低8位地址(DPL)由P0口输出。采用Ri(i=0,1)间接寻址,可寻址片外256个单元的数据存储器。Ri内容由P0口输出。8位地址和数据均由P0口输出,可选用其它任何输出口线来输出高于8位的地址(一般选用P2口输出高8位的地址)。MOV后“X”表示单片机访问的是片外RAM存储器或I/O。,例如:(A)=30H,执行地址1000H处的指令 1000H:MOVC A,A+PC 本指令占用一个字节,执行结果将程序存储器中1031H的内容送

46、入A。优点:不改变特殊功能寄存器及PC的状态,根据A的内容就可以取出表格中的常数。缺点:表格只能存放在该条查表指令后面的256个单元之内,表格的大小受到限制,且表格只能被一段程序所利用。,(2)MOVC A,A+DPTR以DPTR作为基址寄存器,A的内容作为无符号数和DPTR的内容相加得到一个16位的地址,把由该地址指出的程序存储器单元的内容送到累加器A.例如(DPTR)=8100H(A)=40H 执行指令 MOVC A,A+DPTR 本指令的执行结果只和指针DPTR及累加器A的内容有关,与该指令存放的地址及常数表格存放的地址无关,因此表格的大小和位置可以在64K程序存储器中任意安排,一个表格

47、可以为各个程序块公用。两条指令是在MOV的后面加C,“C”是CODE的第一个字母,即代码的意思。,9字节数据交换指令 XCH A,Rn XCH A,direct XCH A,RiXCH A,RiSWAP A例如:(A)=80H,(R7)=08H,(40H)=F0H(R0)=30H,(30H)=OFH执行下列指令:XCH A,R7;(A)与(R7)互换 XCH A,40H;(A)与(40H)互换 XCH A,R0;(A)与(R0)互换结果:(A)=0FH,(R7)=80H,(40H)=08H,(30H)=F0H,累加器的低4位与内部RAM低4位交换:XCHD A,Ri例如:(R0)=60H,(6

48、0H)=3EH,(A)=59H执行完 XCHD A,RO 指令,则(A)=5EH,(60H)=39H。,累加器半字节交换指令 SWAP A将累加器A的高半字节(Acc.7Acc.4)和低半字节(Acc.3Acc.0)互换。例(A)=0C5H,执行指令:SWAP A 结果:(A)=5CH,3.4.2 算术操作类指令 单字节的加、减、乘、除法指令,都是针对8位二进制无符号数。执行的结果对Cy、Ac、OV 三种标志位有影响。但增1和减1指令不影响上述标志。1加法指令 共有4条加法运算指令:ADD A,Rn;(A)+(Rn)A,n=07 ADD A,direct;(A)+(direct)A ADD A

49、,Ri;(A)+(Ri)A,i=0,1 ADD A,#data;(A)+#dataA,一个加数总是来自累加器A,而另一个加数可由不同的寻址方式得到。结果总是放在A中。使用加法指令时,要注意累加器A中的运算结果对各个标志位的影响:(1)如果位7有进位,则置“1”进位标志Cy,否则清“0”Cy(2)如果位3有进位,置“1”辅助进位标志Ac,否则清“0”Ac(Ac为PSW寄存器中的一位),(3)如果位6、位7中只有一个有进位,则溢出标志位OV=“1”,否则如果位6、位7中都没有进位,则OV=“0”。溢出标志位OV的状态,只有在带符号数加法运算时才有意义。当两个带符号数相加时,OV=1,表示加法运算超

50、出了累加器A所能表示的带符号数的有效范围,例(A)=53H,(R0)=FCH,执行指令 ADD A,R0结果:(A)=4FH,Cy=1,Ac=0,OV=0,P=1注意:上面的运算中,由于位6和位7同时有进位,所以标志位OV=0。例(A)=85H,(R0)=20H,(20H)=AFH,执行指令:ADD A,R0 结果:(A)=34H,Cy=1,Ac=1,OV=1,P=1注意:由于位7有进位,而位6无进位,所以标志位OV=1,2带进位加法指令标志位Cy参加运算,因此是三个数相加。共4条:ADDCA,Rn;(A)+(Rn)+CA,n=07 ADDCA,direct;(A)+(direct)+CA A

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号