1、上一页上一页下一页下一页返回首页返回首页第第1章章 单片机概述单片机概述 第第2章章 单片机的硬件结构单片机的硬件结构 第第3章章 MCS-51单片机指令系统单片机指令系统 第第4章章 MCS-51单片机程序设计单片机程序设计 第第5章章 中断与定时中断与定时 第第6章章 存储器与存储器的扩展存储器与存储器的扩展 第第7章章 单片机单片机I/O接口的扩展接口的扩展 单片机原理与应用电子教案第第8章章 单片机与输入输出设备的接口单片机与输入输出设备的接口 第第9章章 单片机的串行通信单片机的串行通信 第第10章章 单片机与单片机与A/D及及D/A 转换器的接口转换器的接口 第第11章章 单片机应
2、用系统设计单片机应用系统设计 上一页上一页下一页下一页返回首页返回首页第1章 单片机概述1.1 单片机的概念 1.2 单片幻灯片 15机的发展概况 1.3 MCS-51系列 1.4 AT89系列单片机 1.5 单片机的应用 上一页上一页下一页下一页返回首页返回首页第2章 单片机的硬件结构 2.1 MCS-51单片机的内部结构与信号引脚 2.7 AT89单片机的硬件结构 2.3 MCS-51单片机的I/O口电路及功能 2.4 MCS-51单片机的时钟电路与时序 2.5 MCS-51的复位方式和复位电路 2.2 MCS-51单片机的内部存储器 2.6 低功耗操作方式 上一页上一页下一页下一页返回首
3、页返回首页第3章 MCS-51单片机指令系统 3.1 指令系统概述 3.7 布尔操作类指令 3.3 数据传送类指令 3.4 算术运算类指令 3.5 逻辑运算及移位类指令 3.2 寻址方式 3.6 控制转移类指令 上一页上一页下一页下一页返回首页返回首页第4章 MCS-51单片机程序设计 4.1 汇编语言概述 4.3 常用程序设计 4.2 程序设计 上一页上一页下一页下一页返回首页返回首页第5章 中断与定时 5.1 MCS-51单片机的中断系统 5.3 中断与定时器/计数器综合应用举例 5.2 MCS-51单片机定时器/计数器 上一页上一页下一页下一页返回首页返回首页第6章 存储器与存储器的扩展
4、 6.1 单片机扩展存储器的设计 6.3 数据存储器的扩展 6.4 同时扩展程序存储器和数据存储器 6.2 程序存储器的扩展 上一页上一页下一页下一页返回首页返回首页第7章 单片机I/O接口的扩展7.1 I/O接口的直接应用 7.3 单片机简单I/O接口的扩展 7.4 8255A可编程并行I/O的扩展 7.2 I/O接口技术概述 7.5 8155A可编程并行I/O的扩展 上一页上一页下一页下一页返回首页返回首页第8章单片机与输入输出设备的接口 8.1 拨码盘接口 8.3 LED显示器接口 8.4 LCD显示器的接口 8.2 单片机与键盘的接口 8.5 键盘/显示器专用接口芯片8279 上一页上
5、一页下一页下一页返回首页返回首页第9章 单片机的串行通信 9.1 串行通信基本常识 9.3 MCS-51单片机串行通信工作方式 9.4 多机通信 9.2 MCS-51单片机的串行口及控制寄存器 上一页上一页下一页下一页返回首页返回首页第10章单片机与A/D及D/A 转换器的接口 10.1 A/D及D/A转换器的性能指标 10.3 单片机与A/D转换器的接口 10.2 单片机与D/A转换器的接口 上一页上一页下一页下一页返回首页返回首页第11章 单片机应用系统设计 11.1 单片机应用系统设计 11.3 单片机应用系统的调试 11.2 单片机应用系统的硬件电路 上一页上一页下一页下一页返回首页返
6、回首页1什么叫单片机 它是把组成微型计算机的各功能部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通信接口等制作在一块集成芯片中,构成一个完整的微型计算机。单片机是单片微型计算机的简称。单片机主要应用于控制领域,它的结构与指令功能都是按照工业控制要求设计的,故又称为微控制器(Micro Controller Unit)。在国际上,“微控制器”的叫法更通用些,在我国比较习惯“单片机”这一名称。由于单片机在应用时通常是被控系统的核心并融入其中,即以嵌入的方式工作,为了强调其“嵌入”的特点,也常常将单片机称为嵌入式微控制器。上一页上一页下一页下一
7、页返回首页返回首页1单片机的发展 单片机出现的历史并不长,它的产生与发展和微处理器的产生与发展大体上同步,经历了4个阶段:第一阶段(19711974年):1971年11月美国Intel公司首先设计出集成度为2000只晶体管/片的4位微处理器Intel 4004,并且配有随机存取存储器RAM、只读存储器ROM和移位寄存器等芯片,构成第一台MCS-4微型计算机。1972年4月Intel公司又研制成功了处理能力较强的8位微处理器Intel 8008。这些微处理器虽说还不是单片机,但从此拉开了研制单片机的序幕。第二阶段(19741978年):初级单片机阶段。以Intel公司的MCS-48为代表。这个系
8、列单片机内集成有8位CPU、并行I/O接口、8位定时器/计数器,寻址范围不大于4K,且无串行口。上一页上一页下一页下一页返回首页返回首页 第三阶段(19781983年):在这一阶段推出的单片机普遍带有串行口,有多级中断处理系统、16位定时器/计数器。片内RAM、ROM容量加大,且寻址范围可达64KB,有的片内还带有A/D转换器接口。这类单片机有Intel公司的MCS-51、Motorola公司的6801和Zilog公司的Z8等。这类单片机的应用领域极其广泛,这个系列的各类产品仍然是目前国内外产品的主流。其中MCS-51系列产品,以其优良的性能价格比,成为我国广大科技人员的首选。第四阶段(198
9、3年现在):8位单片机巩固发展及16位单片机推出阶段。此阶段主要特征是一方面发展16位单片机及专用单片机;另一方面不断完善高档8位单片机,改善其结构,以满足不同的用户需要。上一页上一页下一页下一页返回首页返回首页1单片机的应用特性(1)集成度高 MCS-51系列单片机代表产品为8051,8051内部包含4KB的ROM、128B的RAM、四个8位并行口、一个全双工串行口、两个16位定时器/计数器以及一个处理功能强大的中央处理器。(2)系统结构简单 MCS-51系列单片机芯片内部采用模块化结构,增加或更换一个模块就能获得指令系统和引脚兼容的新产品。另一方面,MCS-51系列单片机具有64KB的外部
10、程序存储器寻址能力和64KB的外部RAM和I/O口寻址能力。Intel公司标准的I/O接口电路和存储器电路都可以直接连到MCS-51系列单片机上以扩展系统功能,应用非常灵活。上一页上一页下一页下一页返回首页返回首页(3)可靠性高 单片机产品和其他产品一样,出厂指标有军用品、工业品和商用品之分。其中军用品要求绝对可靠,在任何恶劣的环境下都能可靠工作,主要用于武器系统、航空器等方面。单片机属于工业品,能在常温下工作,不需要在温度恒定的机房内工作。由于单片机总线大多在芯片内部不易受干扰,而且单片机应用系统体积小,易于屏蔽,所以单片机的可靠性较高。(4)处理功能强,速度快 MCS-51系列单片机指令系
11、统中具有加、减、乘、除指令,各种逻辑运算和转移指令,还具有位操作功能。CPU时钟频率高达12MHz,单字节乘法和除法仅需要4s,而且具有特殊的多机通信功能,可作为多机系统中的子系统。上一页上一页下一页下一页返回首页返回首页2.单片机的制造工艺 制造单片机的工艺只有两种:HMOS工艺和CHMOS工艺。早期的MCS-51系列芯片都采用HMOS工艺,即高密度、短沟道MOS工艺。8051、8751、8031、8951等产品均属于HMOS工艺制造的产品。CHMOS工艺是CMOS和HMOS的结合,除保持了HMOS工艺的高密度、高速度之外,还具有CMOS工艺低功耗的特点。例如HMOS工艺制造的8051芯片的
12、功耗为630mW,而用CHMOS工艺制造的80C51芯片的功耗为120mW,这么低的功耗用一粒钮扣电池就可以工作。单片机型号中包含有“C”的产品就是指它的制造工艺是CHMOS工艺。例如80C51,就是指用CHMOS工艺制造的8051。上一页上一页下一页下一页返回首页返回首页3.MCS-51单片机系列产品 MCS-51是一个单片机系列产品,具有多种芯片型号。具体说,按其内部资源配置的不同,MCS-51可分为两个子系列和四种类型,见表1.1。表1.1 MCS-51系列单片机资源配置子系列片内ROM形式片内ROM容量片内RAM容量定时器/计数器中断源无ROMEPROME2PROMMCS-51子系列8
13、0318051875189514KB128B2165MCS-52子系列80328052875289528KB256B3166 上一页上一页下一页下一页返回首页返回首页 MCS-51子系列包含4个产品,这4个产品具有不同的应用特性。8051:单片机8051内部包含了4KB的ROM、128B的RAM、21个特殊功能寄存器、4个8位并行口、一个全双工串行口、两个16位定时器/计数器以及一个处理功能很强的中央处理器,是一台完整的微型计算机8751:是以4KB的EPROM代替4KB ROM的8051。8951:是以4KB的E2PROM(或Flash ROM)代替4KB ROM的8051。8031:是内部
14、无ROM的8051。单片机8031不构成完整计算机,必须外接EPROM作为程序存储器。52子系列也包含4个产品,分别是51子系列的增强型。由于资源数量的增加,芯片的功能有所增强。片内ROM容量从4KB增加到8KB;RAM容量从128B增加到256B;定时器数目从2个增加到3个;中断源从5个增加到6个等。上一页上一页下一页下一页返回首页返回首页4.80C51单片机系列 80C51单片机系列是在MCS-51系列的基础上发展起来的。最早推出80C51系列芯片的是Intel公司,并且作为MCS-51系列的一部分,按原MCS-51系列芯片的规则命名,例如80C51、80C31、87C51等(至于89C5
15、1,我们把它归入89系列单片机,将在下一节介绍)。后来越来越多的公司生产80C51芯片,而且型号的命名已面目全非,功能上也做了不同程度的改进,如增加了A/D转换、高速I/O口等。有些还在总线结构上做了重大改进,出现了廉价的非总线型单片机芯片。但是万变不离其宗:CHMOS工艺芯片80C51/80C31/87C51/89C51的基本特征是低功耗、允许的电源电压波动范围较大(为5V20%),并有三种功耗控制方式(增加了待机和掉电保护两种方式)。习惯上,我们仍然把80C51系列作为MCS-51的子系列。上一页上一页下一页下一页返回首页返回首页 AT89系列单片机是ATMEL公司的8位Flash单片机系
16、列。这个系列单片机的最大特点是在片内含有Flash存储器,而其他方面和MCS-51没有太大的区别。该系列有着十分广泛的用途,特别是在便携式、省电和特殊信息保存的仪器和系统中显得更为有用。上一页上一页下一页下一页返回首页返回首页1.AT89系列单片机的特点(1)内含有Flash存储器 由于片内含有Flash存储器,因此在系统开发过程中可以十分容易地进行程序的修改。同时,在系统工作过程中,能有效地保存数据信息,即使外界电源损坏也不影响信息的保存。(2)和AT80C51插座兼容 AT89系列单片机的引脚和MCS-51系列单片机的引脚是一样的。只要用相同引脚的AT89系列单片机就可以取代MCS-51系
17、列单片机。(3)静态时钟方式 AT89系列单片机采用静态时钟方式,节省电能,这对于降低便携式产品的功耗十分有用。上一页上一页下一页下一页返回首页返回首页2.AT89系列单片机的概况 AT89系列单片机共有7种型号,分别为AT89C51、AT89LV51、AT89C52、AT89LV52、AT89C2051、AT89C1051、AT89S8252。其中AT89LV51、AT89LV52分别是AT89C51、AT89C52的低电压产品。最低电压可以低至2.7V。而AT89C2051、AT89C1051则是低档型的低电压产品。它们只有20条引脚,最低电压也为2.7V,见表1.2。上一页上一页下一页下
18、一页返回首页返回首页表1.2 AT89系列单片机概况型 号AT89C51AT89C52AT89C1051AT89C2051AT89S8252Flash(KB)48128片 内 R A M(B)12825664128256I/O(条)3232151532定时器(个)23123中断源(个)68369串 行 接 口(个)11111M加密/级33223片 内 振 荡器有有有有有E E P R O M(KB)无无无无2上一页上一页下一页下一页返回首页返回首页1.单片机的应用 由于单片机具有可靠性高、体积小、价格低、易于产品化等特点,因而在智能仪器仪表、实时工业控制、智能终端、通信设备、导航系统、家用电器
19、等自控领域获得广泛应用。例如:(1)智能仪器仪表 用单片机改造原有的测量、控制仪表,能促进仪表向数字化、智能化、多功能化、综合化、柔性化发展,如温度、压力、流量、浓度显示、控制仪表等。通过采用单片机软件编程技术,使长期以来测量仪表中的误差修正、线性化处理等难题迎刃而解。(2)实时工业测控系统 用单片机可以构成各种工业控制系统、自适应系统、数据采集系统等。如温室人工气候控制、水闸自动控制、电镀生产线自动控制等。上一页上一页下一页下一页返回首页返回首页(3)机电一体化产品 单片机与传统的机械产品结合,使传统机械产品结构简化、控制智能化。例如电传打字机的设计中由于采用了单片机,取代了近千个机械部件。
20、(4)家用电器 全自动洗衣机、智能冰箱、各类小家电都无一例外地采用了单片机。上一页上一页下一页下一页返回首页返回首页2.单片机的应用特点:(1)控制系统在线应用控制系统在线应用由于控制对象和单片机联系密切,所以对设计者提出了很高的要求。他们不但要熟练掌握单片机,还要了解控制对象,懂得传感技术,具有一定的控制理论知识等。(2)软硬件结合单片机应用系统的设计需要软、硬件统筹考虑。设计者不但要熟练掌握汇编语言的编程技术,而且还必须精通单片机硬件系统和指令系统。上一页上一页下一页下一页返回首页返回首页(3)应用现场环境恶劣 应用现场的环境一般是比较恶劣的。电磁干扰、电源波动、高低温等因素都会影响系统工
21、作的稳定。设计者必须根据特定的环境采取正确的办法才能解决。(4)微控制技术 由于单片机具有高可靠性、超小型、低价格、容易产品化等特点,因而在需要嵌入式的控制系统里得到了广泛的应用,而且过去必须由模拟和数字电路来实现的大部分功能,现在可以通过软件(编程序)方法实现了。这种超小型的以软件取代硬件,并能提高系统性能的控制系统“软化”技术,称之为微控制技术。微控制技术是一种全新的概念,是对传统技术的一次革命。随着单片机应用的推广普及,微控制技术的发展必将带动产品的升级换代及产业升级。上一页上一页下一页下一页返回首页返回首页习习 题题1.什么叫单片机?除了“单片机”之外,单片机还可以称为什么?2.单片机
22、主要使用汇编语言,而编写汇编语言程序要求设计人员除了熟练掌握指令系统外,还必须精通什么?3.8051、8751、8031单片机的主要区别是什么?4.与8051比较,80C51的最大特点是什么?5.AT89系列单片机的最大优点是什么?6.单片机发展方向是什么?上一页上一页下一页下一页返回首页返回首页2.1.1 MCS-51单片机的内部结构 MCS-51结构框图如图2.1所示。它主要由9个部件和一条内部总线组成。现分别对各部件的情况介绍如下:1.8位中央处理器(CPU)中央处理器简称CPU,是单片机的核心,完成运算和控制操作。中央处理器包括运算器和控制器两部分电路。(1)运算器电路 运算器电路是单
23、片机的运算部件,用于实现算术和逻辑运算。图2.1中的ALU(算术逻辑单元)、ACC(累加器)、B寄存器、程序状态字和两个暂存寄存器等属于运算器电路。运算器电路以ALU为核心,基本的算术运算和逻辑运算均在其中进行,包括加、减、乘、除、增量、减量、十进制调整、比较等算术运算,与、或、非等逻辑运算,左、右移位和半字节交换等操作。运算和操作结果的状态由状态寄存器(PSW)保存。上一页上一页下一页下一页返回首页返回首页上一页上一页下一页下一页返回首页返回首页(2)控制电路 控制电路是单片机的指挥控制部件,保证各部分能自动而协调地工作。图2.1中的PC(程序计数器)、PC加1寄存器、指令寄存器、指令译码器
24、、定时和控制电路等均属于控制电路。单片机执行指令是在控制电路的控制下进行的。首先从程序存储器中读出指令,送指令寄存器保存,然后送指令译码器进行译码,译码结果送定时控制逻辑电路,由定时控制逻辑电路产生各种定时信号和控制信号,再送到系统的各个部件进行相应的操作。这就是执行一条指令的全过程。2.内部程序存储器内部程序存储器在图2.1中包括4KB/8KB的存储器(ROM或EPROM),对于8051、80C51内部共有4KB的掩膜ROM,用于存放程序和原始数据。上一页上一页下一页下一页返回首页返回首页3.内部数据存储器 内部数据存储器在图2.1中包括128B/256B的RAM和RAM地址锁存器等。实际上
25、8051或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位定时器/计数器,以实现定时或计数功能,并以定时或计数的
26、结果对单片机进行控制。图2.1中定时器/计数器和中断、串行端口在一起。6.串行口MCS-51有一个全双工UART(通用异步接收发器)的串行口,以实现单片机和其他数据设备之间的串行数据传送。该串行口功能较强,既可作为全双工UART异步通信收发器使用,又可以作为同步移位器使用。在图2.1中串行端口和定时器/计数器中断在一起。上一页上一页下一页下一页返回首页返回首页8.时钟电路 MCS-51单片机芯片内部有时钟电路,但石英晶体振荡器和微调电容需外接。在图2.1中,画出了外接的石英晶体振荡器和微调电容以及片内的反向放大器振荡电路。时钟电路为单片机产生时钟脉冲序列,典型的晶振频率为6MHz或12MHz。
27、9.位处理器单片机主要用于控制,需要有较强的位处理能力。位处理器又称布尔处理器。位处理器以状态寄存器中的进位标志C为累加位,可进行置位、复位、取反、等于“0”转移、等于“1”转移以及C与可寻址位之间的传送、逻辑与、逻辑或等位操作。位操作是通过运算器实现的,在图2.1中没有画出。上一页上一页下一页下一页返回首页返回首页10.总线 上述9个部件都通过片内单一总线连接。系统的地址信号、数据信号、控制信号都是通过总线传送的。总线结构减少了单片机的连线和引脚,提高了集成度和可靠性。上一页上一页下一页下一页返回首页返回首页2.1.2 MCS-51单片机的信号引脚 HMOS制造工艺的MCS-51单片机都采用
28、40引脚的双列直插封装(DIP方式),CHMOS制造工艺的80C51/80C31芯片除采用DIP方式外,还采用方形封装工艺。如图2.2所示。图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脚):接外部晶体的一个引脚。
29、在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部振荡器时,对HMOS单片机,此引脚应接地;对CHMOS单片机,此引脚作为驱动端。XTAL2(18脚):接外部晶体管的另一个引脚。在单片机内部,接至上述振荡器的反相放大器的输出端。当采用外部振荡器时,对于HMOS单片机,此引脚应接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对于CHMOS单片机,此引脚应悬浮。上一页上一页下一页下一页返回首页返回首页3.控制或其他电源复用引脚RST/VPD、ALE/PROG、PSEN、EA/VPP RST/VPD(9脚):振荡器运行时,在此引脚上出现两个机器周
30、期的高电平使单片机复位。建议在此引脚与Vss之间连接一个约8.2k的下拉电阻,与Vcc引脚之间连接一个约10F的电容,以保证可靠的复位(详见复位电路内容)。Vcc掉电期间,此引脚可接上备用电源,以保持内部RAM的数据不丢失。ALE/PROG(30脚):当访问外部存储器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍然以不变的频率周期性地出现正脉冲信号,此频率为振荡器的1/6。因此,它可以用作对外输出的时钟,或用于定时。对于EPROM型的单片机(如8751),在EPROM编程期间,此引脚用于输入编程脉冲。上一页上一页下一页下一页返回首页返回首页 PSEN(
31、29脚):此引脚的输出是外部程序存储器的读选通信号。在从外部程序存储器取指令(或常数)期间,每个机器周期它二次有效。但在此期间,每当访问外部数据存储器时,这二次有效信号将不出现。它同样可以驱动(吸收或输出电流)8个LS型的TTL输入电路。EA/VPP(31脚):当这引脚保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对8051/8751)或1FFFH(对8052)时将自动转向执行外部程序存储器内的程序。当这引脚保持低电平时,则只访问外部程序存储器。对于8031来说,无内部程序存储器,端口必须保持低电平,即接地,才能只选择外部程序存储器。对于EPROM型的单片机(如87
32、51),在EPROM编程期间,此引脚也用于施加21V的编程电源(VPP)。上一页上一页下一页下一页返回首页返回首页4.输入/输出(I/O)引脚P0、P1、P2、P3(共32根)P0口(39脚32脚):是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL输入负载。P1口(1脚8脚):是准双向8位I/O口。由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。P1口可以驱动(吸收或输出电流)4个LS型的TTL负载。对于8052、8032,P1.0引脚的第二功能为T2定时器/计数器的外部输入,P1.1引脚的第二功能为T2
33、的外部控制端。对EPROM编程和程序验证期间,它接收低8位地址。上一页上一页下一页下一页返回首页返回首页 P2口(21脚28脚):是准双向8位I/O口。在访问外部程序存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。在对EPROM编程和程序验证期间,它接收高8位地址。P2口可以驱动(吸收或输出电流)4个LS型的TTL输入负载。P3口(10脚17脚):是准双向8位I/O口,在MCS-51中,这8个引脚还用于专门功能,是复用双功能口。P3口可以驱动(吸收或输出电流)4个LS型的TTL输入负载。作为第一功能使用时,为普通I/O口,功能和操作方法与P1口相同。作为第二功能使用时,各引脚的定义见
34、表2.2。值得强调的是,P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。上一页上一页下一页下一页返回首页返回首页表2.1 P3口线的第二功能定义0INT1INTWRRD口线引脚功能P3.010RxD(串行输入口)P3.111TxD(串行输出口)P3.212 (外部中断0)P3.313 (外部中断1)P3.414T0(定时器0外部输入)P3.515T1(定时器1外部输入)P3.616 (外部数据存储器写脉冲)P3.717 (外部数据存储器读脉冲)上一页上一页下一页下一页返回首页返回首页2.2.1 内部数据存储器低128单元 片内RAM(内部数据存储器)的地址范围是00HFFH。内部
35、数据存储器低128单元的地址范围是00H7FH。分三个区。(1)工作寄存器区 00H1FH单元共32B,是4个通用工作寄存器组,每组含8个寄存器(R0R7)。切换CPU的工作寄存器组,只要CPU执行一条单周期指令改变程序状态字PSW(特殊功能寄存器)的第3、4位,见表2.2。若程序中不需要4组工作寄存器,那么剩下的工作寄存器组所对应的单元也可以作一般的数据缓冲器使用。上一页上一页下一页下一页返回首页返回首页表2.2 工作寄存器组的选择PSW.4(RS1)PSW.3(RS0)当前使用的工作寄存器组R0R7000组(00H07H)011组(08H0FH)102组(10H17H)113组(18H1F
36、H)上一页上一页下一页下一页返回首页返回首页(2)位寻址区 20H2FH单元共16个字节。这16个RAM单元具有双重功能。它们既可以像普通RAM单元一样按字节存取,也可以单独存取,这就是位寻址。20H2FH单元用作位寻址时,共有168=128位,每位分配了一个特定的地址,即00H7FH,这些地址称为位地址,如图2.3所示。位地址在位寻址时使用。例如:把24H单元中最高位(位地址为27H)置位成1,则可以使用如下置位指令:SETB 27H ;27H 1,SETB为置位指令的操作码 位地址的另一种表示方法是采用字节地址和位地址结合的表示方法。位地址05H可以表示成20H.5。上一页上一页下一页下一
37、页返回首页返回首页(3)用户数据区 307FH总共有80个RAM单元,存放用户数据或作堆栈操作使用。中断系统中的堆栈一般都设在这一区域内,MCS-51对用户数据区中的每个RAM单元是按字节存取的。上一页上一页下一页下一页返回首页返回首页上一页上一页下一页下一页返回首页返回首页2.2.2 内部数据存储器高128单元 在MCS-51系列单片机中,内部RAM的高128单元是供给特殊功能寄存器SFR(Special function register)使用的。所谓特殊功能寄存器是指有特殊用途的寄存器集合,也称专用寄存器。它们位于片内数据存储器之上,离散地分布在80HFFH的地址空间范围内。特殊功能寄存
38、器的实际个数和单片机的型号有关:8051或8031的SFR有21个,8052的SFR有26个。它们在80HFFH的地址空间范围内,不为SFR占用的RAM单元实际并不存在,访问它们是没有意义的。表2.3列出了这些SFR的助记符号、名称和地址。上一页上一页下一页下一页返回首页返回首页表2.3 特殊功能寄存器地址映像表 符号名称地址符号名称地址P0#P0锁存器80HP1#P1锁存器90HSP堆栈指针81HSCON#串行口控制寄存器98HDPL数据指针低位字节82HSBUF串行数据缓冲器99HDPH数据指针高位字节83HP2#P2锁存器A0HPCON电源控制及波特率选择87HIE#中断允许寄存器A8H
39、TCON#定时器/计数器控制寄存器88HP3#P3锁存器B0HTMOD定时方式选择寄存器89HIP#中断优先级寄存器B8HTL0定时器/计数器0低位字节8AHB#B寄存器F0HTL1定时器/计数器1低位字节8BHPSW#程序状态寄存器D0HTH0定时器/计数器0高位字节8CHACC#累加器E0HTH1定时器/计数器1高位字节8DH 上一页上一页下一页下一页返回首页返回首页1.特殊功能寄存器下面简单介绍SFR块中的部分寄存器,其他SFR寄存器将在有关章节中介绍。(1)程序计数器PC程序计数器PC用于存放下一条要执行的指令地址,是一个16位专用寄存器,可寻址范围为065535(64K)。PC在物理
40、上是独立的,不属于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,使得堆栈事
41、实上由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)程序状态字
42、是一个8位的寄存器用于寄存指令执行的状态信息。其中有些位状态是根据指令执行结果,由硬件自动设置的,而有些位状态则是用软件方法设定的。PSW的位状态可以用专门的指令进行测试,也可以用指令读出。一些条件转移指令将根据PSW中有关位信息来进行程序转移。PSW的各位定义如下:上一页上一页下一页下一页返回首页返回首页表2.4 PSW各位的定义位 序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位标志CYACF0RS1RS0OV/P上一页上一页下一页下一页返回首页返回首页除PSW.1位保留未用外,对其余各位的定义及使用介绍如下:CY或C(PSW.7)进位标志位。CY(或C
43、)是PSW中最常用的标志位,其功能有二:一是存放算术运算的进位标志;二是在位操作中,作累加位使用。在位传送、位与、位或等操作中,都要使用进位标志位。AC(PSW.6)辅助进位标志位。在加减运算中,当有低4位向高4位进位或借位时,AC由硬件置位,否则AC位被清“0”。在进行十进制数运算时需要十进制调整,此时要用到AC位状态进行判断。F0(PSW.5)用户标志位。这是一个由用户自定义的标志位,用户根据需要用软件方法置位或复位。例如用它来控制程序的转向。上一页上一页下一页下一页返回首页返回首页 RS1和RS0(PSW.4和PSW.3)寄存器组选择位。它用于设定当前通用寄存器的组号。通用寄存器共有4组
44、,其对应关系见表2.2。这两个选择位的状态是由软件设置的,被选中的寄存器组即为当前通用寄存器。OV(PSW.2)溢出标志位。在带符号数的加减运算中,OV=1表示加减运算结果超出了累加器A所能表示的符号数有效范围(128+127),因此运算结果是错误的。在乘法运算中,OV=1表示乘积超过255,即乘积分别在寄存器B与A中;反之,OV=0表示乘积只在A中。在除法运算中,OV=1表示除数为0,除法不能进行;反之OV=0,表示除数不为0,除法能正常进行。上一页上一页下一页下一页返回首页返回首页 P(PSW.0)奇偶标志位。其表明累加器A中1的个数的奇偶性,在每个指令周期由硬件根据A的内容对P位进行置位
45、或复位,若1的个数为奇数,P=1,反之P=0。(7)专用寄存器字节寻址访问SFR块时,只能采用直接寻址方式。在操作过程中必须注意以下几点:21个可字节寻址的专用寄存器是离散分布在128个单元中的。程序计数器PC是不可寻址的。PC不占据RAM,它在物理上是独立的。对专用寄存器只能采用直接寻址方式。书写时,既可以使用寄存器符号,也可以使用寄存器单元地址。上一页上一页下一页下一页返回首页返回首页(8)专用寄存器位寻址 课本课本1616页:页:表2.3列出了可以进行位寻址的11个专用寄存器。下面详细介绍这11个可以进行位寻址的专用寄存器的位地址。表2.5列出了相关寄存器的位地址。表中所列全部专用寄存器
46、可寻址的位共83位(8032/8052特有的T2CON除外)。这些位都是有专门用途的。这样,加上低128单元位寻址区的128位,在MCS-51的内部RAM中共有128+83=211个可寻址位。上一页上一页下一页下一页返回首页返回首页2.2.3 堆栈 堆栈是一种数据结构。所谓堆栈就是只允许在其一端进行数据插入和数据删除操作的线性表。其结构如图2.4所示。栈底 栈顶 顶端 SP 图2.4 堆栈示意图 上一页上一页下一页下一页返回首页返回首页1.堆栈的功能 堆栈是为了子程序调用和中断操作而设立的,其作用有两个:保护断点和保护现场。2.堆栈的开辟 早期的微型计算机多在主存储器中开辟堆栈,称为外堆栈。主
47、要优点是容量大,可看作是无限的,但速度慢。另一类堆栈称为内堆栈。所谓内堆栈就是在CPU芯片的寄存器中开辟堆栈。MCS-51的堆栈就开辟在内部RAM中。内堆栈的优点是速度快,但堆栈的容量有限。这种限制反映在单片机上的表现就是:限制了高级语言的使用。因为在高级语言中,除了中断和子程序的调用外,参数的传递也是靠堆栈的操作来实现的。上一页上一页下一页下一页返回首页返回首页3.堆栈指示器 堆栈共有两种操作:进栈和出栈。但不论是数据进栈还是出栈,都是对堆栈的栈顶单元进行的,即对堆栈栈顶单元的写和读操作。为了指示栈顶地址,所以要设置堆栈指示器SP。SP的内容就是堆栈栈顶的存储单元地址。MCS-51单片机由于
48、堆栈设在内部RAM上,因此SP是一个8位寄存器。实际上SP就是专用寄存器的一员。系统复位后,SP的内容为07H,但由于堆栈最好在内部RAM的30H7FH单元中开辟,所以在程序设计时,应注意把SP值初始化为30H。SP的内容一旦确定,栈顶的位置就确定了。上一页上一页下一页下一页返回首页返回首页4.堆栈类型向上生长型和向下生长型。MCS-51的堆栈是向上生长的。5.堆栈使用方法 调用子程序或中断时,返回地址(断点)自动进栈。程序返回时,断点再自动弹回PC。使用专用的堆栈操作指令,进行进出栈操作。保护现场(PUSH);恢复现场(POP)。上一页上一页下一页下一页返回首页返回首页2.2.4 内部程序存
49、储器 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是系统的启动地址,所以用户在设计程序时,一般会在这一单元中存放一条绝对跳转指令,而主程序则从跳转到的新地址处开始存放。
50、上一页上一页下一页下一页返回首页返回首页2.中断源 除0000H外,其余5个特殊功能单元分别对应6种中断源的中断服务子程序的入口地址,见表2.6。通常在程序设计时会在这些入口地址处都安放一条绝对跳转指令,而真正的中断服务子程序从转移地址开始安放。表2.6 中断源入口地址中断源入口地址外部中断00003H定时器0溢出中断000BH外部中断10013H定时器1溢出中断001BH串行口中断0023H上一页上一页下一页下一页返回首页返回首页2.2.5 MCS-51存储器的结构 物理上,MCS-51单片机有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。从用户使用的角度看