第1章最新单片机概述.ppt_第1页
第1章最新单片机概述.ppt_第2页
第1章最新单片机概述.ppt_第3页
第1章最新单片机概述.ppt_第4页
第1章最新单片机概述.ppt_第5页
免费预览已结束,剩余802页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,第1章 单片机概述,第2章 单片机的硬件结构,第3章 MCS-51单片机指令系统,第4章 MCS-51单片机程序设计,第5章 中断与定时,第6章 存储器与存储器的扩展,第7章 单片机I/O接口的扩展,单片机原理与应用电子教案,第8章 单片机与输入输出设备的接口,第9章 单片机的串行通信,第10章 单片机与A/D及D/A 转换器的接口,第11章 单片机应用系统设计,第1章 单片机概述,第2章 单片机的硬件结构,第3章 MCS-51单片机指令系统,第4章 MCS-51单片机程序设计,第5章 中断与定时,第6章 存储器与存储器的扩展,第7章 单片机I/O接口的扩展,第8章单片机与输入输出设备的接口

2、,第9章 单片机的串行通信,第10章单片机与A/D及D/A 转换器的接口,第11章 单片机应用系统设计,1什么叫单片机 它是把组成微型计算机的各功能部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通信接口等制作在一块集成芯片中,构成一个完整的微型计算机。 单片机是单片微型计算机的简称。 单片机主要应用于控制领域,它的结构与指令功能都是按照工业控制要求设计的,故又称为微控制器(Micro Controller Unit)。在国际上,“微控制器”的叫法更通用些,在我国比较习惯“单片机”这一名称。,由于单片机在应用时通常是被控系统的核心并融入其中

3、,即以嵌入的方式工作,为了强调其“嵌入”的特点,也常常将单片机称为嵌入式微控制器。,1单片机的发展 单片机出现的历史并不长,它的产生与发展和微处理器的产生与发展大体上同步,经历了4个阶段: 第一阶段(19711974年):1971年11月美国Intel公司首先设计出集成度为2000只晶体管/片的4位微处理器Intel 4004,并且配有随机存取存储器RAM、只读存储器ROM和移位寄存器等芯片,构成第一台MCS-4微型计算机。1972年4月Intel公司又研制成功了处理能力较强的8位微处理器Intel 8008。这些微处理器虽说还不是单片机,但从此拉开了研制单片机的序幕。,第二阶段(197419

4、78年):初级单片机阶段。以Intel公司的MCS-48为代表。这个系列单片机内集成有8位CPU、并行I/O接口、8位定时器/计数器,寻址范围不大于4K,且无串行口。,第三阶段(19781983年):在这一阶段推出的单片机普遍带有串行口,有多级中断处理系统、16位定时器/计数器。片内RAM、ROM容量加大,且寻址范围可达64KB,有的片内还带有A/D转换器接口。这类单片机有Intel公司的MCS-51、Motorola公司的6801和Zilog公司的Z8等。这类单片机的应用领域极其广泛,这个系列的各类产品仍然是目前国内外产品的主流。其中MCS-51系列产品,以其优良的性能价格比,成为我国广大科

5、技人员的首选。 第四阶段(1983年现在):8位单片机巩固发展及16位单片机推出阶段。此阶段主要特征是一方面发展16位单片机及专用单片机;另一方面不断完善高档8位单片机,改善其结构,以满足不同的用户需要。,1单片机的应用特性 (1)集成度高 MCS-51系列单片机代表产品为8051,8051内部包含4KB的ROM、128B的RAM、四个8位并行口、一个全双工串行口、两个16位定时器/计数器以及一个处理功能强大的中央处理器。 (2)系统结构简单 MCS-51系列单片机芯片内部采用模块化结构,增加或更换一个模块就能获得指令系统和引脚兼容的新产品。另一方面,MCS-51系列单片机具有64KB的外部程

6、序存储器寻址能力和64KB的外部RAM和I/O口寻址能力。Intel公司标准的I/O接口电路和存储器电路都可以直接连到MCS-51系列单片机上以扩展系统功能,应用非常灵活。,(3)可靠性高 单片机产品和其他产品一样,出厂指标有军用品、工业品和商用品之分。其中军用品要求绝对可靠,在任何恶劣的环境下都能可靠工作,主要用于武器系统、航空器等方面。单片机属于工业品,能在常温下工作,不需要在温度恒定的机房内工作。由于单片机总线大多在芯片内部不易受干扰,而且单片机应用系统体积小,易于屏蔽,所以单片机的可靠性较高。 (4)处理功能强,速度快 MCS-51系列单片机指令系统中具有加、减、乘、除指令,各种逻辑运

7、算和转移指令,还具有位操作功能。CPU时钟频率高达12MHz,单字节乘法和除法仅需要4s,而且具有特殊的多机通信功能,可作为多机系统中的子系统。,2. 单片机的制造工艺 制造单片机的工艺只有两种:HMOS工艺和CHMOS工艺。 早期的MCS-51系列芯片都采用HMOS工艺,即高密度、短沟道MOS工艺。8051、8751、8031、8951等产品均属于HMOS工艺制造的产品。 CHMOS工艺是CMOS和HMOS的结合,除保持了HMOS工艺的高密度、高速度之外,还具有CMOS工艺低功耗的特点。例如HMOS工艺制造的8051芯片的功耗为630mW,而用CHMOS工艺制造的80C51芯片的功耗为120

8、mW,这么低的功耗用一粒钮扣电池就可以工作。单片机型号中包含有“C”的产品就是指它的制造工艺是CHMOS工艺。 例如80C51,就是指用CHMOS工艺制造的8051。,3. MCS-51单片机系列产品 MCS-51是一个单片机系列产品,具有多种芯片型号。具体说,按其内部资源配置的不同,MCS-51可分为两个子系列和四种类型,见表1.1。,表1.1 MCS-51系列单片机,MCS-51子系列包含4个产品,这4个产品具有不同的应用特性。 8051:单片机8051内部包含了4KB的ROM、128B的RAM、21个特殊功能寄存器、4个8位并行口、一个全双工串行口、两个16位定时器/计数器以及一个处理功

9、能很强的中央处理器,是一台完整的微型计算机 8751:是以4KB的EPROM代替4KB ROM的8051。 8951:是以4KB的E2PROM(或Flash ROM)代替4KB ROM的8051。 8031:是内部无ROM的8051。单片机8031不构成完整计算机,必须外接EPROM作为程序存储器。 52子系列也包含4个产品,分别是51子系列的增强型。由于资源数量的增加,芯片的功能有所增强。片内ROM容量从4KB增加到8KB;RAM容量从128B增加到256B;定时器数目从2个增加到3个;中断源从5个增加到6个等。,4. 80C51单片机系列 80C51单片机系列是在MCS-51系列的基础上发

10、展起来的。 最早推出80C51系列芯片的是Intel公司,并且作为MCS-51系列的一部分,按原MCS-51系列芯片的规则命名,例如80C51、80C31、87C51等(至于89C51,我们把它归入89系列单片机,将在下一节介绍)。 后来越来越多的公司生产80C51芯片,而且型号的命名已面目全非,功能上也做了不同程度的改进,如增加了A/D转换、高速I/O口等。有些还在总线结构上做了重大改进,出现了廉价的非总线型单片机芯片。但是万变不离其宗: CHMOS工艺芯片80C51/80C31/87C51/89C51的基本特征是低功耗、允许的电源电压波动范围较大(为5V20%),并有三种功耗控制方式(增加

11、了待机和掉电保护两种方式)。 习惯上,我们仍然把80C51系列作为MCS-51的子系列。,AT89系列单片机是ATMEL公司的8位Flash单片机系列。 这个系列单片机的最大特点是在片内含有Flash存储器,而其他方面和MCS-51没有太大的区别。该系列有着十分广泛的用途,特别是在便携式、省电和特殊信息保存的仪器和系统中显得更为有用。,AT89系列单片机的特点 (1)内含有Flash存储器 由于片内含有Flash存储器,因此在系统开发过程中可以十分容易地进行程序的修改。同时,在系统工作过程中,能有效地保存数据信息,即使外界电源损坏也不影响信息的保存。 (2)和AT80C51插座兼容 AT89系

12、列单片机的引脚和MCS-51系列单片机的引脚是一样的。只要用相同引脚的AT89系列单片机就可以取代MCS-51系列单片机。 (3)静态时钟方式 AT89系列单片机采用静态时钟方式,节省电能,这对于降低便携式产品的功耗十分有用。,2. AT89系列单片机的概况 AT89系列单片机共有7种型号,分别为AT89C51、AT89LV51、AT89C52、AT89LV52、AT89C2051、AT89C1051、AT89S8252。 其中AT89LV51、AT89LV52分别是AT89C51、AT89C52的低电压产品。最低电压可以低至2.7V。而AT89C2051、AT89C1051则是低档型的低电压

13、产品。它们只有20条引脚,最低电压也为2.7V,见表1.2。,表1.2 AT89系列单片机概况,1.单片机的应用 由于单片机具有可靠性高、体积小、价格低、易于产品化等特点,因而在智能仪器仪表、实时工业控制、智能终端、通信设备、导航系统、家用电器等自控领域获得广泛应用。例如: (1)智能仪器仪表 用单片机改造原有的测量、控制仪表,能促进仪表向数字化、智能化、多功能化、综合化、柔性化发展,如温度、压力、流量、浓度显示、控制仪表等。通过采用单片机软件编程技术,使长期以来测量仪表中的误差修正、线性化处理等难题迎刃而解。 (2)实时工业测控系统 用单片机可以构成各种工业控制系统、自适应系统、数据采集系统

14、等。如温室人工气候控制、水闸自动控制、电镀生产线自动控制等。,(3)机电一体化产品 单片机与传统的机械产品结合,使传统机械产品结构简化、控制智能化。例如电传打字机的设计中由于采用了单片机,取代了近千个机械部件。 (4)家用电器 全自动洗衣机、智能冰箱、各类小家电都无一例外地采用了单片机。,2.单片机的应用特点: (1)控制系统在线应用 控制系统在线应用由于控制对象和单片机联系密切,所以对设计者提出了很高的要求。他们不但要熟练掌握单片机,还要了解控制对象,懂得传感技术,具有一定的控制理论知识等。 (2)软硬件结合 单片机应用系统的设计需要软、硬件统筹考虑。设计者不但要熟练掌握汇编语言的编程技术,

15、而且还必须精通单片机硬件系统和指令系统。,(3)应用现场环境恶劣 应用现场的环境一般是比较恶劣的。电磁干扰、电源波动、高低温等因素都会影响系统工作的稳定。设计者必须根据特定的环境采取正确的办法才能解决。 (4)微控制技术 由于单片机具有高可靠性、超小型、低价格、容易产品化等特点,因而在需要嵌入式的控制系统里得到了广泛的应用,而且过去必须由模拟和数字电路来实现的大部分功能,现在可以通过软件(编程序)方法实现了。这种超小型的以软件取代硬件,并能提高系统性能的控制系统“软化”技术,称之为微控制技术。微控制技术是一种全新的概念,是对传统技术的一次革命。随着单片机应用的推广普及,微控制技术的发展必将带动

16、产品的升级换代及产业升级。,习 题 1. 什么叫单片机?除了“单片机”之外,单片机还可以称为什么? 2. 单片机主要使用汇编语言,而编写汇编语言程序要求设计人员除了熟练掌握指令系统外,还必须精通什么? 3. 8051、8751、8031单片机的主要区别是什么? 4. 与8051比较,80C51的最大特点是什么? 5. AT89系列单片机的最大优点是什么? 6. 单片机发展方向是什么?,2.1.1 MCS-51单片机的内部结构,MCS-51结构框图如图2.1所示。它主要由9个部件和一条内部总线组成。现分别对各部件的情况介绍如下:,1. 8位中央处理器(CPU) 中央处理器简称CPU,是单片机的核

17、心,完成运算和控制操作。中央处理器包括运算器和控制器两部分电路。 (1)运算器电路 运算器电路是单片机的运算部件,用于实现算术和逻辑运算。图2.1中的ALU(算术逻辑单元)、ACC(累加器)、B寄存器、程序状态字和两个暂存寄存器等属于运算器电路。运算器电路以ALU为核心,基本的算术运算和逻辑运算均在其中进行,包括加、减、乘、除、增量、减量、十进制调整、比较等算术运算,与、或、非等逻辑运算,左、右移位和半字节交换等操作。运算和操作结果的状态由状态寄存器(PSW)保存。,(2)控制电路 控制电路是单片机的指挥控制部件,保证各部分能自动而协调地工作。图2.1中的PC(程序计数器)、PC加1寄存器、指

18、令寄存器、指令译码器、定时和控制电路等均属于控制电路。,单片机执行指令是在控制电路的控制下进行的。首先从程序存储器中读出指令,送指令寄存器保存,然后送指令译码器进行译码,译码结果送定时控制逻辑电路,由定时控制逻辑电路产生各种定时信号和控制信号,再送到系统的各个部件进行相应的操作。这就是执行一条指令的全过程。,2. 内部程序存储器 内部程序存储器在图2.1中包括4KB/8KB的存储器(ROM或EPROM),对于8051、80C51内部共有4KB的掩膜ROM,用于存放程序和原始数据。,3. 内部数据存储器 内部数据存储器在图2.1中包括128B/256B的RAM和RAM地址锁存器等。实际上8051

19、或80C51内部共有256个RAM单元,但后128单元被特殊功能寄存器SFR(也称专用寄存器)占用,供用户使用的只是前128个单元,用于存放可读写的数据。因此通常所说的内部数据存储器是指前128单元,简称“内部RAM”。,4. 并行的I/O口 MCS-51中共有4个8位的I/O口(P0、P1、P2、P3)以实现并行的输入输出。在图2.1中分别标出了4个并行的I/O口。,5. 定时器/计数器 出于控制应用的需要,MCS-51有2个(对8031/8051是2个)或3个(对8032/8052是3个)16位定时器/计数器,以实现定时或计数功能,并以定时或计数的结果对单片机进行控制。图2.1中定时器/计

20、数器和中断、串行端口在一起。,6. 串行口 MCS-51有一个全双工UART(通用异步接收发器)的串行口,以实现单片机和其他数据设备之间的串行数据传送。该串行口功能较强,既可作为全双工UART异步通信收发器使用,又可以作为同步移位器使用。在图2.1中串行端口和定时器/计数器中断在一起。,8. 时钟电路 MCS-51单片机芯片内部有时钟电路,但石英晶体振荡器和微调电容需外接。在图2.1中,画出了外接的石英晶体振荡器和微调电容以及片内的反向放大器振荡电路。时钟电路为单片机产生时钟脉冲序列,典型的晶振频率为6MHz或12MHz。,9. 位处理器 单片机主要用于控制,需要有较强的位处理能力。位处理器又

21、称布尔处理器。位处理器以状态寄存器中的进位标志C为累加位,可进行置位、复位、取反、等于“0”转移、等于“1”转移以及C与可寻址位之间的传送、逻辑与、逻辑或等位操作。位操作是通过运算器实现的,在图2.1中没有画出。,10. 总线 上述9个部件都通过片内单一总线连接。系统的地址信号、数据信号、控制信号都是通过总线传送的。总线结构减少了单片机的连线和引脚,提高了集成度和可靠性。,2.1.2 MCS-51单片机的信号引脚,HMOS制造工艺的MCS-51单片机都采用40引脚的双列直插封装(DIP方式),CHMOS制造工艺的80C51/80C31芯片除采用DIP方式外,还采用方形封装工艺。如图2.2所示。

22、图2.2(a)、图2.2(b)分别是DIP方式和方形封装的引脚图,其中方形封装CHMOS芯片有44脚,但其中4只脚(标有NC的引脚1、12、23、34)是不使用的。,下面将这40条引脚按功能分为四部分叙述其功能。 1. 主电源引脚Vcc和Vss Vcc(40脚):接+5V电压 Vss(20脚):接地 2. 外接晶体引脚XTAL1和XTAL2 XTAL1(19脚):接外部晶体的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部振荡器时,对HMOS单片机,此引脚应接地;对CHMOS单片机,此引脚作为驱动端。 XTAL2(18脚):接外部晶体管的另一个引脚。在

23、单片机内部,接至上述振荡器的反相放大器的输出端。当采用外部振荡器时,对于HMOS单片机,此引脚应接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对于CHMOS单片机,此引脚应悬浮。,3. 控制或其他电源复用引脚RST/VPD、ALE/PROG、PSEN、EA/VPP,RST/VPD(9脚):振荡器运行时,在此引脚上出现两个机器周期的高电平使单片机复位。建议在此引脚与Vss之间连接一个约8.2k的下拉电阻,与Vcc引脚之间连接一个约10F的电容,以保证可靠的复位(详见复位电路内容)。Vcc掉电期间,此引脚可接上备用电源,以保持内部RAM的数据不丢失。,ALE/ PROG(

24、30脚):当访问外部存储器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍然以不变的频率周期性地出现正脉冲信号,此频率为振荡器的1/6。因此,它可以用作对外输出的时钟,或用于定时。,对于EPROM型的单片机(如8751),在EPROM编程期间,此引脚用于输入编程脉冲。,PSEN(29脚):此引脚的输出是外部程序存储器的读选通信号。在从外部程序存储器取指令(或常数)期间,每个机器周期它二次有效。但在此期间,每当访问外部数据存储器时,这二次有效信号将不出现。它同样可以驱动(吸收或输出电流)8个LS型的TTL输入电路。,EA/VPP(31脚):当这引脚保持高电

25、平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对8051/8751)或1FFFH(对8052)时将自动转向执行外部程序存储器内的程序。当这引脚保持低电平时,则只访问外部程序存储器。 对于8031来说,无内部程序存储器,端口必须保持低电平,即接地,才能只选择外部程序存储器。对于EPROM型的单片机(如8751),在EPROM编程期间,此引脚也用于施加21V的编程电源(VPP)。,4. 输入/输出(I/O)引脚P0、P1、P2、P3(共32根) P0口(39脚32脚):是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的T

26、TL输入负载。 P1口(1脚8脚):是准双向8位I/O口。由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。P1口可以驱动(吸收或输出电流)4个LS型的TTL负载。对于8052、8032,P1.0引脚的第二功能为T2定时器/计数器的外部输入,P1.1引脚的第二功能为T2的外部控制端。对EPROM编程和程序验证期间,它接收低8位地址。,P2口(21脚28脚):是准双向8位I/O口。在访问外部程序存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。在对EPROM编程和程序验证期间,它接收高8位地址。P2口可以驱动(吸收或输出电流)4个LS型的TTL输入负载。,P3口(1

27、0脚17脚):是准双向8位I/O口,在MCS-51中,这8个引脚还用于专门功能,是复用双功能口。P3口可以驱动(吸收或输出电流)4个LS型的TTL输入负载。作为第一功能使用时,为普通I/O口,功能和操作方法与P1口相同。作为第二功能使用时,各引脚的定义见表2.2。值得强调的是,P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。,表2.1 P3口线的第二功能定义,2.2.1 内部数据存储器低128单元,片内RAM(内部数据存储器)的地址范围是00HFFH。内部数据存储器低128单元的地址范围是00H7FH。分三个区。 (1)工作寄存器区 00H1FH单元共32B,是4个通用工作寄存器

28、组,每组含8个寄存器(R0R7)。切换CPU的工作寄存器组,只要CPU执行一条单周期指令改变程序状态字PSW(特殊功能寄存器)的第3、4位,见表2.2。若程序中不需要4组工作寄存器,那么剩下的工作寄存器组所对应的单元也可以作一般的数据缓冲器使用。,表2.2 工作寄存器组的选择,(2)位寻址区 20H2FH单元共16个字节。这16个RAM单元具有双重功能。它们既可以像普通RAM单元一样按字节存取,也可以单独存取,这就是位寻址。20H2FH单元用作位寻址时,共有168=128位,每位分配了一个特定的地址,即00H7FH,这些地址称为位地址,如图2.3所示。位地址在位寻址时使用。例如:把24H单元中

29、最高位(位地址为27H)置位成1,则可以使用如下置位指令: SETB 27H ; 27H 1,SETB为置位指令的操作码 位地址的另一种表示方法是采用字节地址和位地址结合的表示方法。位地址05H可以表示成20H.5。,(3)用户数据区 307FH总共有80个RAM单元,存放用户数据或作堆栈操作使用。中断系统中的堆栈一般都设在这一区域内,MCS-51对用户数据区中的每个RAM单元是按字节存取的。,2.2.2 内部数据存储器高128单元,在MCS-51系列单片机中,内部RAM的高128单元是供给特殊功能寄存器SFR(Special function register)使用的。所谓特殊功能寄存器是指

30、有特殊用途的寄存器集合,也称专用寄存器。它们位于片内数据存储器之上,离散地分布在80HFFH的地址空间范围内。 特殊功能寄存器的实际个数和单片机的型号有关:8051或8031的SFR有21个,8052的SFR有26个。 它们在80HFFH的地址空间范围内,不为SFR占用的RAM单元实际并不存在,访问它们是没有意义的。表2.3列出了这些SFR的助记符号、名称和地址。,表2.3 特殊功能寄存器地址映像表,1. 特殊功能寄存器 下面简单介绍SFR块中的部分寄存器,其他SFR寄存器将在有关章节中介绍。 (1)程序计数器PC 程序计数器PC用于存放下一条要执行的指令地址,是一个16位专用寄存器,可寻址范

31、围为065535(64K)。PC在物理上是独立的,不属于SFR。 (2)累加器A 累加器A是一个最常用的专用寄存器,属于SFR,也称ACC。大部分单操作数指令的操作数取自累加器,很多双操作数指令的一个操作数取自累加器,加、减、乘、除算术运算指令的运算结果都存放在累加器A或A和B寄存器中。,(3)B寄存器 在乘除指令中,用到了B寄存器。乘除指令的两个操作数分别取自A和B,其结果存放在A和B寄存器中。例如除法指令中,被除数取自A,除数取自B,商数存放于A,余数存放于B。 (4)堆栈指针SP 堆栈指针SP是一个8位专用寄存器。它指示出堆栈顶部在内部RAM块中的位置。系统复位后,SP初始化为07H,使

32、得堆栈事实上由08H单元开始。08H1FH单元分别属于工作寄存器组13,在程序设计中用到这些区,最好把SP值改置为1FH或更大的值。MCS-51的堆栈是向上生成的,若SP=60H,CPU执行一条调用指令或响应中断后,PC进栈,PCL保护到61H,PCH保护到62H,SP=62H。,(5)数据指针DPTR 数据指针DPTR是一个16位的SFR,其高字节寄存器用DPH表示,低字节寄存器用DPL表示。DPTR可以作为一个16位的寄存器DPTR来用,也可以作为两个独立的8位寄存器DPH和DPL来用。 (6)程序状态字(PSWProgram status word) 程序状态字是一个8位的寄存器用于寄存

33、指令执行的状态信息。其中有些位状态是根据指令执行结果,由硬件自动设置的,而有些位状态则是用软件方法设定的。PSW的位状态可以用专门的指令进行测试,也可以用指令读出。一些条件转移指令将根据PSW中有关位信息来进行程序转移。PSW的各位定义如下:,表2.4 PSW各位的定义,除PSW.1位保留未用外,对其余各位的定义及使用介绍如下: CY或C(PSW.7)进位标志位。CY(或C)是PSW中最常用的标志位,其功能有二:一是存放算术运算的进位标志;二是在位操作中,作累加位使用。在位传送、位与、位或等操作中,都要使用进位标志位。 AC(PSW.6)辅助进位标志位。在加减运算中,当有低4位向高4位进位或借

34、位时,AC由硬件置位,否则AC位被清“0”。在进行十进制数运算时需要十进制调整,此时要用到AC位状态进行判断。 F0(PSW.5)用户标志位。这是一个由用户自定义的标志位,用户根据需要用软件方法置位或复位。例如用它来控制程序的转向。, RS1和RS0(PSW.4和PSW.3)寄存器组选择位。它用于设定当前通用寄存器的组号。通用寄存器共有4组,其对应关系见表2.2。这两个选择位的状态是由软件设置的,被选中的寄存器组即为当前通用寄存器。 OV(PSW.2)溢出标志位。 在带符号数的加减运算中,OV=1表示加减运算结果超出了累加器A所能表示的符号数有效范围(128+127),因此运算结果是错误的。

35、在乘法运算中,OV=1表示乘积超过255,即乘积分别在寄存器B与A中;反之,OV=0表示乘积只在A中。 在除法运算中,OV=1表示除数为0,除法不能进行;反之OV=0,表示除数不为0,除法能正常进行。, P(PSW.0)奇偶标志位。其表明累加器A中1的个数的奇偶性,在每个指令周期由硬件根据A的内容对P位进行置位或复位,若1的个数为奇数,P=1,反之P=0。 (7)专用寄存器字节寻址 访问SFR块时,只能采用直接寻址方式。在操作过程中必须注意以下几点: 21个可字节寻址的专用寄存器是离散分布在128个单元中的。 程序计数器PC是不可寻址的。PC不占据RAM,它在物理上是独立的。 对专用寄存器只能

36、采用直接寻址方式。书写时,既可以使用寄存器符号,也可以使用寄存器单元地址。,(8)专用寄存器位寻址 课本16页:表2.3列出了可以进行位寻址的11个专用寄存器。下面详细介绍这11个可以进行位寻址的专用寄存器的位地址。表2.5列出了相关寄存器的位地址。表中所列全部专用寄存器可寻址的位共83位(8032/8052特有的T2CON除外)。这些位都是有专门用途的。这样,加上低128单元位寻址区的128位,在MCS-51的内部RAM中共有128+83=211个可寻址位。,2.2.3 堆栈,堆栈是一种数据结构。所谓堆栈就是只允许在其一端进行数据插入和数据删除操作的线性表。其结构如图2.4所示。,图2.4

37、堆栈示意图,1. 堆栈的功能 堆栈是为了子程序调用和中断操作而设立的,其作用有两个:保护断点和保护现场。 2. 堆栈的开辟 早期的微型计算机多在主存储器中开辟堆栈,称为外堆栈。主要优点是容量大,可看作是无限的,但速度慢。另一类堆栈称为内堆栈。所谓内堆栈就是在CPU芯片的寄存器中开辟堆栈。MCS-51的堆栈就开辟在内部RAM中。内堆栈的优点是速度快,但堆栈的容量有限。这种限制反映在单片机上的表现就是:限制了高级语言的使用。因为在高级语言中,除了中断和子程序的调用外,参数的传递也是靠堆栈的操作来实现的。,3. 堆栈指示器 堆栈共有两种操作:进栈和出栈。 但不论是数据进栈还是出栈,都是对堆栈的栈顶单

38、元进行的,即对堆栈栈顶单元的写和读操作。为了指示栈顶地址,所以要设置堆栈指示器SP。SP的内容就是堆栈栈顶的存储单元地址。 MCS-51单片机由于堆栈设在内部RAM上,因此SP是一个8位寄存器。实际上SP就是专用寄存器的一员。系统复位后,SP的内容为07H,但由于堆栈最好在内部RAM的30H7FH单元中开辟,所以在程序设计时,应注意把SP值初始化为30H。SP的内容一旦确定,栈顶的位置就确定了。,4. 堆栈类型 向上生长型和向下生长型。MCS-51的堆栈是向上生长的。 5. 堆栈使用方法 调用子程序或中断时,返回地址(断点)自动进栈。程序返回时,断点再自动弹回PC。 使用专用的堆栈操作指令,进

39、行进出栈操作。保护现场(PUSH);恢复现场(POP)。,2.2.4 内部程序存储器,MCS-51单片机的程序计数器PC为16位,因此可以寻址的地址空间为64KB。8051和8751单片机内部有4KB字节ROM/EPROM程序存储器(0000H0FFFH),1000HFFFFH是外部扩展程序存储器地址空间。而8052单片机内部有8KB ROM程序存储器,同样可以扩展到64KB。在64KB程序存储器中,有6个地址单元具有特殊功能。 1. 程序计数器PC MCS-51单片机在复位后PC的内容为0000H,所以系统必须从0000H开始取指令,执行程序。因为0000H是系统的启动地址,所以用户在设计程

40、序时,一般会在这一单元中存放一条绝对跳转指令,而主程序则从跳转到的新地址处开始存放。,2. 中断源 除0000H外,其余5个特殊功能单元分别对应6种中断源的中断服务子程序的入口地址,见表2.6。通常在程序设计时会在这些入口地址处都安放一条绝对跳转指令,而真正的中断服务子程序从转移地址开始安放。,表2.6 中断源入口地址,2.2.5 MCS-51存储器的结构,物理上,MCS-51单片机有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。从用户使用的角度看,MCS-51单片机有3个存储器地址空间:片内外统一的64KB的程序存储器地址空间、片内数据存储器(其中128B的

41、特殊功能寄存器地址空间仅有20几个字节是有实际定义的)、片外64KB数据存储器地址空间。在访问这3个不同的逻辑空间时应采用不同的指令形式。MCS-51单片机存储器的结构如图2.5所示。 如图2.5所示,MCS-51数据存储器与程序存储器全部64KB地址重叠,且数据存储器的片内外的低128B地址重叠。所以对片内外数据存储器的操作使用了不同的指令,这样就不会发生混乱。而程序存储器和数据存储器的区分是靠引脚PSEN、RD、WR、EA控制的。,另外,在片外数据存储器中,数据区与扩展的I/O口统一编址,因此,用户在应用系统设计时,所有的外围接口地址均占用外部RAM地址单元。,a)程序存储器 (b)内部数

42、据存储器 (c)外部数据存储器,图2.5 MCS-51单片机存储器结构,如2.1.2所介绍的,MCS-51单片机有4个双向的8位I/O口P0P3,实际上它们已经被归入特殊功能寄存器之列。P0口负载能力为8个TTL电路,P1、P2、P3口负载能力为4个TTL电路。在单片机中,口是一个集数据输入缓冲、数据输出驱动及锁存等多项功能于一体的I/O电路。4个口在电路结构上基本相同,但又各具特点,因此在功能和使用上各口之间有一定的差异。下面分别讨论4个双向的8位I/O口的电路及功能。,2.3.1 P0口,P0口的字节地址为80H,位地址为80H87H。口的各位口线具有完全相同,但又相互独立的逻辑电路,如图

43、2.6所示。,图2.6 P0口逻辑电路,P0口逻辑电路的主要内容包括: 一个数据输出锁存器,用于进行数据位的锁存。 两个三态输入缓冲器,分别用于锁存器数据和引脚数据输入的缓冲。 一个多路转接开关MUX,它的一个输入来自锁存器,另一个输入为“地址/数据”。输入转接由“控制”信号控制。之所以设置多路转接开关,是因为P0口既可以作为通用的I/O口进行数据的输入输出,又可以作为单片机系统的地址/数据线之间的接通转接。 数据输出的驱动和控制电路,由两只场效应管(FET)组成,上面的那只场效应管构成上拉电路。,在实际应用中,P0口大多数情况下都是作为单片机系统的地址/数据线使用。当传送地址或数据时,CPU

44、发出控制信号,打开上面的与门,并使多路转接开关MUX处于内部地址/数据线与驱动场效应管栅极反向接通状态。这时的输出驱动电路由上下两只场效应管形成推拉式的电路结构,大大提高了负载能力。当输入数据时,数据信号直接从引脚通过输入缓冲器进入内部总线。,当P0口作为输入口(读)使用时,应区分读引脚和读端口(锁存器)两种情况。为此在口电路中有两个用于读入的三态缓冲器。所谓读引脚,就是读芯片引脚上的数据,也就是直接读外部数据,这时使用下面的三态缓冲器,由“读引脚”信号把三态缓冲器打开,引脚上的数据经三态缓冲器通过内部总线读进来。但要注意,必须先向电路的锁存器写入“1”,使FET截止,以避免锁存器为“0”状态

45、时对引脚读入的干扰。而读端口则通过上面的三态缓冲器把锁存器Q端的状态读进来。 当P0口作为输出口(写)使用时,由锁存器和驱动电路构成数据输出通路。由于通路中已有输出锁存器,因此数据输出可以与外设直接连接,无需再加数据锁存电路。进行数据输出时,来自CPU的写脉冲加在D触发器的CP端,数据写入锁存器,并向端口引脚输出。但要注意,由于输出电路是漏极开路电路,必须外接上拉电阻才能有高电平输出。,2.3.2 P1口,P1口的地址为90H,位地址为90H97H。P1口的口线逻辑电路如图2.7所示。P1口只能作为通用的I/O口使用,所以在电路结构上和P0口不同主要表现为:, 它只传送数据,所以不需要多路转接

46、开关MUX。 因为只用来传送数据,因此输出电路中有上拉电阻,且上拉电阻和场效应管共同组成了输出驱动电路。 P1口作为输出口使用时,已能提供推拉电流负载,外电路无需再接上拉电阻。 P1口作为输入口使用时,应先向其锁存器写入“1”,使输出驱动电路的场效应管截止。,2.3.3 P2口,P2口的字节地址为0A0H,位地址为0A0H0A7H。P2口的逻辑电路如图2.8所示。,在实际使用中,P2口用于为系统提供高位地址,但不作为数据线使用,所以P2口和P0口既有共同点,又有不同点。 共同点:在口电路中有一个多路转换开关MUX。用于口线作为通用的I/O口进行数据的输入输出和作为单片机系统的地址/数据线之间的

47、接通转接。 不同点:P2口只作为高位地址线使用,不作为数据线使用,所以多路转换开关MUX的一个输入端不再是“地址/数据”,而是单一的“地址”。,2.3.4 P3口,P3口的字节地址为0B0H,位地址为0B0H0B7H。P3口的逻辑电路如图2.9所示。,虽然P3口可以作为通用I/O口使用,但在实际使用中它的第二功能信号更为重要。为适应引脚信号第二功能的需要,在口电路中增加了第二功能控制逻辑。由于第二功能信号有输入和输出两类,因此我们分两种情况说明。 对于输出第二功能信号的引脚,当作为通用I/O口使用时,电路中的“第二输出功能”信号线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅

48、通。当作为输出第二功能信号时,该锁存器应预先置“1”,使与非门对第二功能的信号的输出是畅通的,从而实现第二功能信号的输出。,对于第二功能为输入信号的引脚,在口线的输入通路上增加了一个缓冲器,输入的信号就从这个缓冲器的输出端取得。而作为通用的I/O口线使用的数据输入,仍然取自三态缓冲器的输出端。总之,不管是作为输入口还是第二功能信号输入,输出电路中的锁存器输出和“第二功能输出信号”线都应保持高电平。,2.3.5 I/O口的读修改写操作,由图2.6图2.9可见,每个I/O口均有两种读入方法,即读锁存器和读引脚,并有相应的指令。读锁存器指令是从锁存器中读取数据,进行处理,并把处理后的数据重新写入锁存

49、器中,这类指令叫读修改写指令。例如在ANL、ORL、XRL;INC、DEC;DJNZ;MOV;CLR、SETB等指令中,当目的操作数为某一I/O口或某一I/O口的某一位时这些指令均为读修改写指令。,读引脚指令一般都是以I/O端口为原操作数的指令,执行读引脚指令时打开三态门输入口状态。例如读P1口的输入状态时,读引脚指令为: MOV A,P1,根据I/O口的结构及CPU的控制,当执行读引脚操作后,口锁存器的状态应与引脚的状态相同;但当给口锁存器写入某一状态后,相应的口引脚是否呈现锁存器状态与外电路的连接有关。例如用I/O口线驱动三极管的基极时,该口线的位锁存器写入“1”后使三极管导通,而三极管一

50、旦导通后,基极电平为“0”。如果该口线无读引脚操作时,口锁存器与引脚的状态不一致。,执行改写锁存器数据的指令时,在该指令的最后一个时钟周期S6P2里将数据写入锁存器。由于输出缓冲器仅仅在每一个状态周期的相位1(P1)期间采样口锁存器,因而锁存器中的新数据在下一个状态周期的相位出现之前是不会出现在输出线上的。,2.3.6 I/O口的负载能力及接口要求,前面我们已经详细分析了I/O的逻辑电路。MCS-51单片机有4个双向的8位I/O口P0P3,实际上它们已经被归入特殊功能寄存器之列。P0口为三态双向口, P1、P2、P3口为准双向口(用作输入时,口线被拉成高电平,故称为准双向口)。由于其电路结构和

51、使用的功能和特点有所不同,因而负载能力及接口要求也有所区别。,P0口:输出驱动电路由于上下两只场效应管,形成推拉式的电路结构,因而负载能力较强,能以吸收电流的方式驱动8个LS型的TTL输入负载。在实际应用中,P0口经常作地址总线的低8位及数据总线复用口。在接口设计时,对于74LS系列、CD4000系列及一些大规模集成电路芯片(如8155、8255、AD574等)都可以直接接口;对于一些线性元件,特别是键盘、码盘及LED显示器等,应尽量加驱动部分。,P1口:从电路结构可知,P1口的负载能力不如P0口。能以吸收或输出电流的方式驱动4个LS型的TTL负载。在实际应用中,P1口经常用作I/O扩展口。在

52、接口设计时,对于74LS系列、CD4000系列及一些大规模集成电路芯片(如8155、8255、MC14513等)都可以直接接口;对于一些线性元件,特别是键盘、码盘及LED显示器等,应尽量加驱动部分。,P2口:由电路结构可见,P2口的负载能力不如P0口,但和P1口一样。能以吸收或输出电流的方式驱动4个LS型的TTL负载。在实际应用中,P2口经常用作高8位地址和I/O口扩展的地址译码。在设计接口时,对于74LS系列、CD4000系列及一些大规模集成电路芯片(如74LS138、8243等)都可以直接接口。,P3口:由电路结构可见,P3口的负载能力不如P0口,但和P1、P2口一样,能以吸收或输出电流的

53、方式驱动4个LS型的TTL负载。在实际应用中,P3口经常用作中断输入、串行通信口。在设计接口时,对于74LS系列、CD4000系列及一些大规模集成电路芯片(如74LS164、74LS165等)都可以直接接口。,时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在惟一的时钟信号控制下严格地按时序进行工作。而时序所研究的则是指令执行中各信号之间的相互时间关系。,2.4.1 时钟电路,在介绍单片机引脚时,我们已经叙述过有关振荡器的概念。振荡电路产生的振荡脉冲,并不是时钟脉冲。这二者既有联系又有区别。在由多片单片机组成的系统中,为了各单

54、片机之间时钟信号的同步,还引入公用外部脉冲信号作为各单片机的振荡脉冲。,1. 时钟信号的产生,XTAL1(19脚)是接外部晶体管的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。输出端为引脚XTAL2,在芯片的外部通过这两个引脚接晶体震荡器和微调电容,形成反馈电路,构成一个稳定的自激振荡器。如图2.10所示。,我们可以用示波器测出XTAL2上的波形。电路中的C1和C2一般取30pF左右,而晶体振荡器的频率范围通常是1.212MHz,晶体振荡器的频率越高,振荡频率就越高。 振荡电路产生的振荡脉冲并不是时钟信号,而是经过二分频后才作为系统的时钟信号。如图2.10所示

55、。在二分频的基础上再三分频产生ALE信号(这就是前面介绍ALE时所说的“ALE是以晶振1/6的固定频率输出的正脉冲”)在二分频的基础上再六分频得到机器周期信号。,2. 引入外部脉冲信号 在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入惟一的公用外部脉冲信号作为各单片机的振荡脉冲。这时外部的脉冲信号是经XTAL2引脚注入如图2.11所示。对于80C51单片机,情况有所不同。外引脉冲信号需从XTAL1引脚注入而XTAL2引脚应悬浮。,2.4.2 时序定时单位,单片机执行指令是在时序电路的控制下一步一步进行的,人们通常以时序图的形式来表明相关信号的波形及出现的先后次序。为了说明信

56、号的时间关系,需要定义定时单位。MCS-51时序的定时单位共有4个,从小到大依次是:拍节、状态、机器周期和指令周期。下面分别加以说明。,1、拍节与状态 把振荡脉冲的周期定义为拍节(用“P”表示)。振荡脉冲经过二分频后,就是单片机的时钟信号,把时钟信号的周期定义为状态(用“S”表示)。这样一个状态就包含二个拍节,其前半个周期对应的拍节叫拍节1(P1),后半个周期对应的拍节叫拍节2(P2)。,2. 机器周期 MCS-51采用同步控制方式,因此它有固定的机器周期。规定一个机器周期的宽度为6个状态,并依次表示为S1S6。由于一个状态又包括二个拍节,因此一个机器周期总共有12个拍节,分别记作S1P1,S

57、1P2,S6P2。由于一个机器周期共有12个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频。当振荡脉冲频率为12MHz时,一个机器周期为1s,当振荡脉冲频率为6MHz时,一个机器周期为2s。 3. 指令周期,指令周期是最大的时序定时单位。执行一条指令所需要的时间称为指令周期。指令周期以机器周期的数目来表示,MCS-51的指令周期根据指令不同,可包含有14个机器周期。图2.12表明了各种周期的相互关系。,2.4.3 典型指令时序,MCS-51共有111条指令,全部指令按其长度可分为单字节指令、双字节指令和三字节指令。执行这些指令所需要的机器周期数目是不同的,概括起来共有以下几种情况:单字节指令

58、单机器周期和单字节指令双机器周期;双字节指令单机器周期和双字节指令双机器周期;三字节指令都是双机器周期;单字节的乘除指令为四机器周期。,图2.13所表示的是几种典型单机器周期和双机器周期指令的时序。图中的ALE信号是为地址锁存而定义的,该信号每有效一次对应单片机进行一次读指令操作。ALE信号以振荡脉冲1/6的频率出现,因此在一个机器周期中,ALE信号二次有效,第一次在S1P2和S2P1期间,第二次在S4P2和S5P1期间,有效宽度为一个状态。,现对几种典型单机器周期和双机器周期指令的时序作如下说明:, 字节单周期指令(例如INC A):由于是单字节指令,因此只需进行一次读指令操作。当第二个AL

59、E有效时,由于PC没有加1,所以读出的还是原指令,属于一次无效的操作。 双字节单周期指令(例如ADD A,#data):这种情况下对应于ALE的二次读操作都是有效的,第一次是读指令操作码,第二次是读指令第二字节(本例中是立即数)。 单字节双周期指令(例如INC DPTR):两个机器周期共进行4次读指令操作,但后3次的读操作全是无效的。, 单字节双周期指令(MOVX类指令):如前述每个机器周期内有二次读指令操作,但MOVX类指令情况有所不同。因为执行这类指令时,先在ROM读取指令,然后对外部RAM进行读/写操作。第一机器周期时,与其他指令一样,第一次读指令(操作码)有效,第二次读指令操作无效。第二机器周期时,进行外部RAM访问,此时与ALE无关,因此不产生读指令操作。 此外,还应说明,时序图中只表现了取指令操作的有关时序,而没有表现指令执行的内容。实际上,每条指令都有具体的数据操作,例如算术和逻辑操作在拍节1进行,片内寄存器对寄存器传送操作在拍节2进行等。由于数据操作种类繁多,不逐一列出。,在单片机应用系统工作时,除了进入系统正常的初始化之外,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论