《单片机应用技术》课件第1章_第1页
《单片机应用技术》课件第1章_第2页
《单片机应用技术》课件第1章_第3页
《单片机应用技术》课件第1章_第4页
《单片机应用技术》课件第1章_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

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

文档简介

第1章单片机硬件系统实训1信号灯的控制11.1概述1.2MCS-51系列单片机结构和原理1.3并行I/O口电路结构1.4时钟电路与复位电路本章小结习题1实训1信号灯的控制1

1.实训目的通过最简单的应用系统实例了解单片机的基本工作过程。

2.实训设备与器件

(1)实训设备:计算机、单片机仿真器、实验板。

(2)实训器件与电路:器件包括AT89C51、74LS240、8个发光二极管、8个1kΩ电阻,电路如图1.1所示。图1.1硬件电路图

3.实训步骤及要求

(1)连接电路。首先将计算机、单片机仿真器及实验板连接起来(参照图1.1)。这一步是使用单片机开发系统的必需步骤。然后再将AT89C51的P1口与8个发光二极管一一连接(实训电路中74LS240为反相驱动器)。注意仿真器和实验板电源的正确连接。

(2)输入源程序。新建源文件,并输入源程序。保存文件时,程序名后缀应为.asm,例如LED1.asm。注意,源程序中分号后面的文字为说明文字,输入时可以省略。机器码 地址 源程序

ORG 0000H

;表示程序从地址0000H开始存放7590000000H

START: MOVP1,#00H

;点亮所有发光二极管1107 0003H ACALL DELAY

;延时一段时间,便于观察7590FF0005H MOV P1,#0FFH

;灭掉所有发光二极管1102 0008H ACALLDELAY;延时80F4 000AH

SJMP START

;返回,从START开始重复7BC8 000CH

DELAY:MOVR3,#200;一段延时子程序7CFA000EHDEL2:MOVR4,#25000 0010HDEL1:NOP00 0011HNOPDCFC0012H DJNZ R4,DEL1DBF80014HDJNZ R3,DEL222 0016H RET ;子程序返回END ;程序结束上述程序由以下部分组成:左边两列是一组十六进制数—— 机器码和机器码所在存储器中的地址(0000H~0016H)。机器码是计算机可以识别的语言。这两列是我们写入单片机内部存储器的内容,表示的是一段程序。

(3)对源程序进行汇编和装载。在调试软件时完成以下操作:

将汇编语言源程序进行汇编(Assemble),生成十六进制文件。

将汇编后生成的十六进制文件装载(Load)到单片机开发系统的仿真RAM中。

(4)运行及调试程序:

运行(Execute)程序,观察实验板上8个发光二极管的亮灭状态。

单步运行(Step)程序,观察每一条指令运行后实验板上8个发光二极管的亮灭状态。

(5)脱机运行程序。将写好程序的AT89C51芯片插入实训电路板的相应位置(固化程序的具体操作过程可参见相应的说明书),接上电源启动运行,观察8个发光二极管的亮灭状态。

4.实训分析与总结

(1)实训结果:实训电路板中的8个发光二极管按照全亮、全灭的规律不停地循环变化。

(2)本实训所涉及的电路参见图1.1。单片机芯片AT89C51的1~8引脚通过集成芯片74LS240(8个非门)接到8个发光二极管上,8个发光二极管的阳极在各接一个限流电阻后接+5V电源,阴极连在一起接地。单片机的这8个引脚对应其内部的一个并行I/O口——P1口。有关P1口的具体结构在本章1.3.2小节介绍。这是本实训所涉及的硬件部分。从图1.1可见,当P1口的某个引脚为低电平时,发光二极管变亮;当P1口的某个引脚为高电平时,发光二极管熄灭。这样我们可以通过向P1口写入一个8位二进制数来改变每个管脚的电平状态,而向P1口写入数据可以通过相应指令来实现。实训程序中的第一条指令MOVP1,#00H(其中 # 表示其后面为常数,H表示其前面的常数为十六进制数,写成二进制形式为#00000000B,B表示二进制数),对应机器码为75H、90H、00H,表示将00H的数据送给P1口。P1口的8个管脚状态与写入数据之间的关系如下:写入数据位 D7D6D5D4D3D2D1D0 0

00000

00对应P1口管脚名称P1.7

P1.6

P1.5

P1.4

P1.3

P1.2

P1.1

P1.0管脚电平状态低 低低低低低低低发光二极管状态亮亮亮亮亮亮亮亮所以,在通电运行后,发光二极管会出现全亮的状态。同理,当执行程序中的第三条指令MOVP1,#0FFH(即#11111111B)时,发光二极管会全灭。由此可见,我们可以通过程序来完成对硬件电路的控制。

(3)实训中,我们可以借用仿真器来调试程序,也可以事先将程序(机器码)正确地固化到一个单片机芯片(如AT89C51)中,然后把AT89C51芯片插入实验板,接上电源后发光二极管就会按照既定的规律点亮。这说明,AT89C51中的CPU能将写入到芯片内ROM的内容依次读出,并且送入到单片机内部完成相应的功能,而这一切工作都是在单片机CPU的控制下来实现的,也就是说单片机在执行机器码。

(4)从本实训可见,单片机芯片内部具有一定容量的片内程序存储器,也有连接外部设备的端口。单片机到底都具有哪些功能?它是如何工作的?这些就是本章重点讨论的内容。1.1概述1.1.1单片机及单片机应用系统

1.微型计算机及微型计算机系统微型计算机(Microcomputer)简称微机,是计算机的一个重要分类。人们通常按照计算机的体积、性能和应用范围等条件,将计算机分为巨型机、大型机、中型机、小型机和微型机等。微型计算机不但具有其它计算机快速、精确、程序控制等特点,而且还具有体积小、重量轻、功耗低、价格便宜等优点。个人计算机简称PC(PersonalComputer)机,是微型计算机中应用最为广泛的一种,也是近年来计算机领域中发展最快的一个分支。PC机在性能和价格方面适合个人用户购买和使用,目前,它已经像普通家电一样深入到了家庭和社会生活的各个方面。微型计算机系统由硬件系统和软件系统两大部分组成。硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。其中,运算器和控制器一般做在一个集成芯片上,统称为中央处理单元(CentralProcessingUnit,简称CPU),是微机的核心部件。CPU配上存放程序和数据的存储器、输入/输出(Input/Output,简称I/O)接口电路以及外部设备即构成微机的硬件系统。软件系统是微机系统所使用的各种程序的总称。人们通过它对微机进行控制并与微机系统进行信息交换,使微机按照人的意图完成预定的任务。微型计算机系统组成示意图如图1.2所示。图1.2微型计算机系统组成示意图下面对组成计算机的5个基本部件作简单说明。

(1)运算器。运算器是计算机的运算部件,用于实现算术和逻辑运算。计算机的数据运算和处理都在这里进行。

(2)控制器。控制器是计算机的指挥控制部件,它使计算机各部分自动、协调地工作。

(3)存储器。存储器是计算机的记忆部件,用于存放程序和数据。存储器分为内存储器和外存储器,同时又有RAM和ROM之分。

(4)输入设备。输入设备用于将程序和数据输入到计算机中。键盘就是一种输入设备。

(5)输出设备。输出设备用于把计算机数据计算或加工的结果,以用户需要的形式显示或打印出来。显示器、打印机等都属于输出设备。通常把外存储器、输入设备和输出设备合在一起称为计算机的外部设备,简称外设。

2.单片微型计算机单片微型计算机(简称单片机)是指集成在一个芯片上的微型计算机,它的各种功能部件,如CPU(CentralProcessingUnit)、随机存取存储器RAM(RandomAccessMemory)、只读存储器ROM(Read-onlyMemory)、基本输入/输出(I/O)接口电路、定时器/计数器等都制作在一块集成芯片上,构成一个完整的微型计算机,可以实现微型计算机的基本功能。单片机内部结构示意图如图1.3所示。图1.3单片机内部结构示意图

3.单片机应用系统及组成单片机应用系统是以单片机为核心,配以输入、输出、显示、控制等外围电路和软件,能实现一种或多种功能的实用系统。与本书配套的单片机组合教具实验箱也是一个单片机的应用系统,它除了主板(单片机最小应用系统)以外,还有许多的扩展应用电路板,利用它再配以后续章节的一系列实训项目,便可以完成很多功能。所以说,单片机应用系统是由硬件和软件组成的,硬件是应用系统的基础,软件则在硬件的基础上对其资源进行合理调配和使用,从而完成应用系统所要求的任务,二者相互依赖,缺一不可。单片机应用系统的组成如图1.4所示。图1.4单片机应用系统的组成单片机应用系统的设计人员必须从硬件和软件两个角度来深入了解单片机,只有将二者有机结合起来,才能形成具有特定功能的应用系统或整机产品。自从1974年美国Fairchild公司研制出第一台单片机F8之后,迄今为止,单片机经历了由4位机到8位机再到16位机、32位机的发展过程。单片机制造商很多,主要有美国的Intel、Motorola、Zilog、Atmel等公司。目前,单片机正朝着高性能、多品种方向发展。近年来,32位单片机已进入了实用阶段,但是由于8位单片机在性能价格比上占有优势,而且8位增强型单片机在速度和功能上并不逊色于16位单片机,因此在未来相当长的时期内,8位单片机仍是单片机的主流机型。1.1.2MCS-51单片机系列

1.Intel公司的MCS-51系列单片机

Intel公司可以说是MCS-51系列单片机的“开山鼻祖”,正是Intel公司的8031单片机开创了MCS-51单片机时代。

8031单片机的技术特点如下:

(1)基于MCS-51核的处理器结构。

(2) 32个I/O引脚。

(3) 2个计数/定时器。

(4)分为2个优先级的5个中断源。

(5) 128字节的内部数据存储器(RAM)。

MCS-51单片机片内的程序存储器有三种配置形式,即无ROM、掩膜ROM和EPROM。这三种配置形式对应三种不同的单片机芯片(8031、8051和8751),它们各有特点,也各有其适用场合,在使用时应根据需要进行选择。一般情况下,片内带掩膜ROM的单片机适用于大批量定型产品;片内带EPROM的单片机适用于研制产品样机;片内无ROM的单片机必须外接EPROM才能工作。Intel公司还推出了片内带EEPROM的单片机,可以在线写入程序。

2.Atmel公司的MCS-51系列单片机

1) AT89C51单片机

AT89C51的资源如下:

(1) 4KB的内部Flash程序存储器,可实现3个级别的程序存储器保护功能。

(2) 128字节的内部数据存储器。

(3) 32个可编程I/O引脚。

(4) 2个16位计数/定时器。

(5) 5个中断源,2个优先级别。

(6) 1个可编程的串行通信口。

2) AT89C2051单片机

AT89C2051单片机是另外一种使用非常多的单片机,因其功耗低、体积小等特点而被广大用户所选。此外,AT89C2051单片机还有很多独特的结构和功能,例如具有LED驱动电路、电压比较器等。AT89C2051有两种可编程的电源管理模式:空闲模式,该模式下CPU停止工作,但是RAM、计数器/定时器、串行口和中断系统仍然工作;断电模式,该模式下保存了RAM的内容,但是冻结了其它部分的内容,直至被再次重启。AT89C2051有DIP20和SOIC20两种封装形式,其技术参数如下:

(1) 2KB的程序存储器,2个级别的程序存储器保护功能。

(2) 128字节的内部数据存储器。

(3) 15个可编程I/O引脚,可以作直接的LED驱动。

(4) 2个16位计数/定时器。

(5) 6个中断源,2个优先级别。

(6) 1个全双工的串行口。

(7)片上电压比较控制器。

(8)工作电压为2.7~6V。

3) AT89S51单片机

AT89S51单片机是Atmel公司推出的一款在系统可编程(InSystemProgrammed,ISP)单片机。通过相应的ISP软件,用户可对该单片机Flash程序存储器中的代码进行方便的修改。AT89S51和AT89C51的引脚完全兼容,其技术参数如下:

(1) 4KB在系统可编程Flash程序存储器,3级安全保护。

(2) 128字节的内部数据存储器。

(3) 32个可编程I/O引脚。

(4) 2个16位计数/定时器。

(5) 5个中断源,可以在断电模式下响应中断。

(6) 1个全双工的串行通信口。

(7)最高工作频率为33MHz。

(8)工作电压为4.0~5.5V。

(9)双数据指针使得程序运行得更快。下面简要介绍Atmel89系列单片机的特点。

89系列单片机对一般用户来说,具有以下明显的优点:

(1)内部含Flash存储器,因此在系统的开发过程中可以十分容易地修改程序,大大缩短系统的开发周期。同时,在系统工作过程中,能有效地保存一些数据信息,即使外界电源损坏也不会影响信息的保存。

(2)和80C51插座兼容。89系列单片机的引脚是和80C51一样的,所以,用89系列单片机可直接替换80C51。

(3)静态时钟方式。89系列单片机采用静态时钟方式,所以可以节省电能,这对于降低便携式产品的功耗十分有用。

(4)可进行反复系统试验。用89系列单片机设计的系统,可以反复进行系统试验。每次试验可以编入不同的程序,这样可以保证用户的系统设计达到最优。而且随用户的需要和发展,还可以进行修改,使系统不断追随用户的最新要求。

89系列单片机一共有7种型号,分别为AT89C51、AT89LV51、AT89C52、AT89LV52、AT89C2051、AT89C1051和AT89S51。其中,AT89LV51和AT89LV52分别是AT89C51和AT89C52的低电压产品,最低电压可以低至2.7V;而AT89C2051和AT89C1051则是低档型低电压产品,它们的引脚只有20个,最低电压也为2.7V。

3.单片机的发展趋势纵观单片机的发展过程,可以预示单片机的发展趋势:

(1)低功耗CMOS化。MCS-51系列的8031推出时的功耗达630mW,而现在的单片机功耗普遍都在100mW左右。因为用户要求单片机的功耗越来越低,所以现在的各个单片机制造商基本上都采用了CMOS(互补金属氧化物半导体)工艺,比如80C51就采用了HMOS(高密度金属氧化物半导体)工艺和CHMOS(互补高密度金属氧化物半导体)工艺。CMOS工艺虽然功耗较低,但其物理特征决定其工作速度不够高;而CHMOS工艺则具备了高速和低功耗的特点,所以这种工艺将是今后一段时期单片机发展的主要途径。

(2)微型单片化。现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储器(RAM)、只读程序存储器(ROM)、并行和串行通信接口、中断系统、定时电路、时钟电路集成在一块单一的芯片上。增强型的单片机还集成了A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)等。有些单片机将LCD(液晶)驱动电路也都集成在单一的芯片上。单片机包含的单元电路越多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要体积小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。

(3)主流与多品种共存。现在虽然单片机的品种繁多、各具特色,但以8051为核心的单片机仍占主流,兼容其结构和指令系统的有Philips公司的产品、Atmel公司的产品和中国台湾的Winbond系列单片机。而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头。中国台湾的Holtek公司近年的单片机产量与日俱增,以其低价优质的优势,占据了一定的市场分额。此外Motorola公司的产品、日本几大公司的专用单片机等也占据了一定的市场份额。在一定的时期内,这种情形将延续下去,即不会出现某个单片机一统天下的垄断局面,而是多个品种依存互补、相辅相成、共同发展。1.2MCS-51系列单片机结构和原理1.2.1MCS-51内部组成及信号引脚

1.8051单片机的基本组成

8051单片机的基本组成请参见图1.5。下面介绍各部分的基本情况。图1.58051单片机的基本组成

1)中央处理器(CPU)中央处理器是单片机的核心,是计算机的控制和指挥中心,它由运算器和控制器等部件组成。运算器包括一个可进行8位算术运算和逻辑运算的单元(ALU)、8位的暂存器、8位的累加器(ACC)、寄存器B和程序状态寄存器(PSW)等。控制器包括程序计数器(PC)、指令寄存器(IR)、指令译码器(ID)、振荡器及定时电路等。

2)内部数据存储器(内部RAM)

8051芯片中共有256个RAM单元,但其中的后128个单元被专用寄存器占用;能作为寄存器供用户使用的只有前128个单元,用于存放可读/写的数据。因此通常所说的内部数据存储器就是指前128个单元。

3)内部程序存储器(内部ROM)

8051共有4KB掩膜ROM,用于存放程序、原始数据或表格,因此,称之为程序存储器。

4)定时/计数器

8051共有两个16位的定时/计数器,可实现定时或计数功能,并以其定时或计数结果对计算机进行控制。

5)并行I/O口

8051共有4个8位的I/O口(P0、P1、P2、P3),可实现数据的并行输入/输出。在实训中我们已经使用了P1口,通过P1口连接了8个发光二极管。

6)串行口

8051单片机有一个全双工的串行口,可实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。

7)中断控制系统

8051单片机的中断功能较强,可满足控制应用的需要。8051共有5个中断源,即外中断两个、定时/计数中断两个、串行口中断一个。全部中断分为高级和低级两个优先级别。

8)时钟电路

8051芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6MHz和12MHz。

2.8051单片机的内部结构

8051单片机的内部结构如图1.6所示。图1.68051单片机的内部结构图

3. 8051的信号引脚

8051是标准的40引脚双列直插式集成电路芯片,其引脚排列请参见图1.7。图1.78051的引脚图

1)信号引脚介绍

P0.0~P0.7:P0口8位双向口线。

P1.0~P1.7:P1口8位双向口线。

P2.0~P2.7:P2口8位双向口线。

P3.0~P3.7:P3口8位双向口线。

ALE:地址锁存控制信号。在系统扩展时,ALE用于把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振的1/6固定频率输出的正脉冲,因此它可作为外部时钟或外部定时脉冲使用。:外部程序存储器读选通信号。有效(低电平)时,可实现对外部ROM单元的读操作。:访问程序存储控制信号。当信号为低电平时,对ROM的读操作限定在外部程序存储器;当信号为高电平时,对ROM的读操作是从内部程序存储器开始的,并可延至外部程序存储器。

RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。在进行单片机应用系统设计时,这个引脚一定要连接相应的电路,即复位电路。VSS:地线。

VCC:+5V电源。以上是8051单片机芯片40条引脚的定义及简单功能说明。

2)信号引脚的第二功能由于工艺及标准化等原因,芯片的引脚数目是有限制的。例如,8051系列把芯片引脚数目限定为40条,但单片机为实现其功能所需要的信号数目却远远超过此数,因此就出现了需要与可能的矛盾。解决这个矛盾的惟一可行的办法,是给一些信号引脚赋以双重功能。如果把前述的信号定义为引脚的第一功能的话,则根据需要再定义的信号就是它的第二功能。

(1) P3口线的第二功能。P3的8条口线都定义有第二功能,详见表1.1。

(2)用EPROM固化程序时所需要的信号。有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚以第二功能的形式提供的,即:编程脉冲:30脚(ALE/

);编程电压(25V):31脚(

/VPP)。表1.1P3口各引脚与第二功能表

(3)备用电源引入。8051单片机的备用电源也是以第二功能的方式由9脚(RST/VPD)引入的。当电源发生故障,电压降低到下限值时,备用电源经此端向内部RAM提供电压,以保护内部RAM中的信息不丢失。以上把8051单片机的全部信号引脚分别以第一功能和第二功能的形式列出。对于MCS-51其它型号的芯片,其引脚的第一功能信号是相同的,所不同的只是引脚的第二功能信号。对于9、30和31这三个引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。但是P3口的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此,在实际使用时,都是先按需要选用第二功能信号,剩下的才以第一功能信号的身份作数据位的输入/输出使用。1.2.2MCS-51内部数据存储器

1.内部数据存储器低128单元

8051的内部RAM共有256个单元,通常把这256个单元按其功能划分为两部分:低128单元(单元地址00H~7FH)和高128单元(单元地址80H~FFH)。表1.2所示为低128单元的配置情况。表1.2RAM的低128单元的配置低128单元是单片机的真正RAM存储器,按其用途划分为寄存器区、位寻址区和用户RAM区等3个区域。

1)寄存器区

8051共有4组寄存器,每组8个寄存单元(各为8位),各组都以R0~R7作为寄存单元编号。寄存器常用于存放操作数及中间结果等。由于它们的功能及使用不作预先规定,因此称之为通用寄存器,有时也叫工作寄存器。4组通用寄存器占据内部RAM的00H~1FH单元地址。在任一时刻,CPU只能使用其中的一组寄存器,并且把正在使用的那组寄存器称为当前寄存器组。到底是哪一组,由程序状态字寄存器PSW中RS1、RS0位的状态组合来决定。通用寄存器为CPU提供了就近存储数据的便利,有利于提高单片机的运算速度。此外,使用通用寄存器还能提高程序编制的灵活性。因此,在单片机的应用编程中应充分利用这些寄存器,以简化程序设计,提高程序运行速度。

2)位寻址区内部RAM的20H~2FH单元,既可作为一般RAM单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称为位寻址区。位寻址区共有16个RAM单元,128位,位地址为00H~7FH。MCS-51具有布尔处理机功能,这个位寻址区可以构成布尔处理机的存储空间。这种位寻址能力是MCS-51的一个重要特点。表1.3为片内RAM位寻址区的位地址表。表1.3片内RAM位寻址区的位地址

3)用户RAM区在内部RAM低128单元中,通用寄存器占去了32个单元,位寻址区占去了16个单元,剩下80个单元,这就是供用户使用的一般RAM区,其单元地址为30H~7FH。对用户RAM区的使用没有任何规定或限制,但在一般应用中常把堆栈开辟在此区中。

2.内部数据存储器高128单元内部RAM的高128单元是供给专用寄存器使用的,其单元地址为80H~FFH。因这些寄存器的功能已作专门规定,故称之为专用寄存器(SpecialFunctionRegister),也可称为特殊功能寄存器。

1)专用寄存器(SFR)简介

8051共有21个专用寄存器,现把其中部分寄存器简单介绍如下:

(1)程序计数器(ProgramCounter,PC)。在实训中,我们已经知道PC是一个16位的计数器,它的作用是控制程序的执行顺序。其内容为将要执行指令的地址,寻址范围达64KB。PC有自动加1功能,从而可实现程序的顺序执行。PC没有地址,是不可寻址的,因此用户无法对它进行读/写,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。PC因地址不在SFR(专用寄存器)之内,所以一般不用作专用寄存器。

(2)累加器(Accumulator,ACC)。累加器为8位寄存器,是最常用的专用寄存器,其功能较多,地位重要。它既可用来存放操作数,也可用来存放运算的中间结果。MCS-51单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。

(3) B寄存器。B寄存器是一个8位寄存器,主要用于乘/除运算。进行乘法运算时,B存乘数;乘法操作后,乘积的高8位存于B中。进行除法运算时,B存除数;除法操作后,余数存于B中。此外,B寄存器也可作为一般数据寄存器使用。

(4)程序状态字(ProgramStatusWord,PSW)。程序状态字是一个8位寄存器,用于存放程序运行中的各种状态信息。其中有些位的状态是根据程序执行结果,由硬件自动设置的,而有些位的状态则由软件方法设定。PSW的位状态可以用专门指令进行测试,也可以用指令读出。一些条件转移指令将根据PSW某些位的状态进行程序转移。PSW各位的定义如下:除PSW.1位保留未用外,其余各位的定义及使用如下:

CY(PSW.7)——进位标志位。CY是PSW中最常用的标志位,其功能有二个:一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果的最高位有进位或借位,则CY由硬件置“1”,否则被清“0”;二是在位操作中作累加位使用。位传送、位与位或等位操作,操作位之一固定是进位标志位。AC(PSW.6)——辅助进位标志位。在进行加或减运算中,若低4位向高4位进位或借位,则AC由硬件置“1”,否则被清“0”。在BCD码调整中也要用到AC位状态。

F0(PSW.5)——用户标志位。这是一个供用户定义的标志位,需要利用软件方法置位或复位,用来控制程序的转向。

RS1和RS0(PSW.4,PSW.3)——寄存器组选择位。它们被用于选择CPU当前使用的通用寄存器组。通用寄存器共有4组,其对应关系如下:这两个选择位的状态是由软件设置的,被选中的寄存器组即为当前通用寄存器组。但当单片机上电或复位后,RS1RS0=00。

OV(PSW.2)——溢出标志位。在带符号数加减运算中,OV=1表示加减运算超出了累加器A所能表示的符号数有效范围(-128~+127),即产生了溢出,因此运算结果是错误的;OV=0表示运算正确,即无溢出产生。在乘法运算中,OV=1表示乘积超过255,即乘积分别在B与A中;OV=0表示乘积只在A中。在除法运算中,OV=1表示除数为0,除法不能进行;OV=0表示除数不为0,除法可正常进行。

P(PSW.0)——奇偶标志位。P标志位表明累加器A中内容的奇偶性,如果A中有奇数个“1”,则P置“1”,否则置“0”。凡是改变累加器A中内容的指令均会影响P标志位。此标志位对串行通信中的数据传输有重要的意义,因为在串行通信中常采用奇偶校验的办法来校验数据传输的可靠性。

(5)数据指针(DPTR)。DPTR为16位寄存器。编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器分开使用,即:

DPHDPTR高位字节

DPLDPTR低位字节

DPTR通常在访问外部数据存储器时用作地址指针。由于外部数据存储器的寻址范围为64KB,故把DPTR设计为16位。

(6)堆栈指针(StackPointer,SP)。堆栈是一个特殊的存储区,用来暂存数据和地址,它是按“先进后出”的原则存取数据的。堆栈共有两种操作:进栈和出栈。由于MCS-51单片机的堆栈设在内部RAM中,因此SP是一个8位寄存器。系统复位后,SP的内容为07H,因而复位后堆栈实际上是从08H单元开始的。但08H~1FH单元分别属于工作寄存器1~3区,如程序要用到这些区,最好把SP值改为1FH或更大的值。一般在内部RAM的30H~7FH单元中开辟堆栈。SP的内容一经确定,堆栈的位置也就跟着确定下来。由于SP可被初始化为不同值,因此堆栈位置是浮动的。关于堆栈更为详细的介绍,可参考本书4.6节。

2)专用寄存器中的字节寻址和位地址

MCS-51系列单片机有21个可寻址的专用寄存器,其中有11个专用寄存器是可以位寻址的。下面把各寄存器的字节地址及位地址一并列于表1.4中。表1.4MCS-51专用A寄存器地址表对专用寄存器的字节寻址问题作如下几点说明:

(1) 21个可字节寻址的专用寄存器是不连续地分散在内部RAM高128单元之中的,尽管还余有许多空闲地址,但用户并不能使用。

(2)程序计数器PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。

(3)对专用寄存器只能使用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器单元地址。表1.4中,凡字节地址不带括号的寄存器都是可以进行位寻址的寄存器,带括号的是不可以进行位寻址的寄存器。全部专用寄存器可寻址的位共83位,这些位都具有专门的定义和用途。这样,加上位寻址区的128位,在MCS-51的内部RAM中共有211(即128+83)个可寻址位。1.2.3MCS-51内部程序存储器

MCS-51的程序存储器用于存放编好的程序和表格常数。8051片内有4KB的ROM,8751片内有4KB的EPROM,8031片内无程序存储器,89C51片内有4KB的FPEROM。MCS-51片外最多能扩展64KB程序存储器,片内、外的ROM是统一编址的。如端保持高电平,8051的程序计数器PC在0000H~0FFFH地址范围内(即前4KB地址),则执行片内ROM中的程序;如PC在1000H~FFFFH地址范围内,则自动执行片外程序存储器中的程序。如保持低电平,则只能寻址外部程序存储器,片外存储器可以从0000H开始编址。

MCS-51的程序存储器中有些单元具有特殊功能,使用时应予以注意。其中有一组特殊单元是0000H~0002H。系统复位后,(PC)=0000H,单片机从0000H单元开始取指令执行程序。如果程序不从0000H单元开始,则应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。还有一组特殊单元是0003H~002AH,共40个单元。这40个单元被均匀地分为5段,作为5个中断源的中断地址区。其中:

0003H~000AH外部中断0中断地址区

000BH~0012H定时/计数器0中断地址区

0013H~001AH外部中断1中断地址区

001BH~0022H定时/计数器1中断地址区

0023H~002AH串行中断地址区中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中理应存放中断服务程序。但通常情况下,8个单元难以存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。程序存储器结构图如图1.8所示。图1.8程序存储器结构1.3并行I/O口电路结构

MCS-51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和两个输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。1.3.1P0口

P0口的口线逻辑电路如图1.9所示。图1.9P0口的口线逻辑电路由图1.9可见,电路中包含有一个数据输出锁存器、两个三态数据输入缓冲器、一个数据输出的驱动电路和一个输出控制电路。当对P0口进行写操作时,由锁存器和驱动电路构成数据输出通路。由于通路中已有输出锁存器,因此数据输出时可以与外设直接连接,而不需再加数据锁存电路。考虑到P0口既可以作为通用的I/O口进行数据的输入/输出,也可以作为单片机系统的地址/数据线使用,为此在P0口的电路中设有一个多路转接电路MUX。在控制信号的作用下,多路转接电路可以分别接通锁存器输出或地址/数据线。当P0口作为通用的I/O口使用时,内部的控制信号为低电平,封锁与门,使输出驱动电路的上拉场效应管(FET)截止,同时使多路转接电路MUX接通锁存器端的输出通路。当P0口作为输出口使用时,内部的写脉冲加在D触发器的CP端,数据写入锁存器,并向端口引脚输出。当P0口作为输入口使用时,应区分读引脚和读端口两种情况,为此,在口电路中有两个用于读入驱动的三态缓冲器。所谓读引脚,就是读芯片引脚的数据,这时使用下方的数据缓冲器,由“读引脚”信号把缓冲器打开,把端口引脚上的数据从缓冲器通过内部总线读进来。读端口是指通过上面的缓冲器读锁存器Q端的状态。在端口已处于输出状态的情况下,Q端与引脚的信号是一致的,这样安排的目的是为了适应对口进行“读—修改—写”操作指令的需要。对于这类“读—修改—写”指令,不直接读引脚而读锁存器是为了避免可能出现的错误。因为在端口已处于输出状态的情况下,如果端口的负载恰是一个晶体管的基极,则导通了的PN结会把端口引脚的高电平拉低,这样直接读引脚就会把本来的“1”误读为“0”。但若从锁存器Q端读,就能避免这样的错误,得到正确的数据。但要注意,当P0口进行一般的I/O输出时,由于输出电路是漏极开路电路,因此必须外接上拉电阻才能有高电平输出;当P0口进行一般的I/O输入时,必须先向电路中的锁存器写入“1”,使FET截止,以避免锁存器为“0”状态时对引脚读入的干扰。在实际应用中,P0口绝大多数情况下都是作为单片机系统的地址/数据线使用的,这要比作为一般I/O口应用简单。当输出地址或数据时,由内部发出控制信号,打开上面的与门,并使多路转接电路MUX处于内部地址/数据线与驱动场效应管栅极反相接通状态。这时的输出驱动电路由于上、下两个FET处于反相,而形成推拉式电路结构,使负载能力大为提高。而当输入数据时,数据信号则直接从引脚通过输入缓冲器进入内部总线。1.3.2P1口

P1口的口线逻辑电路如图1.10所示。图1.10P1口的口线逻辑电路

因为P1口通常是作为通用I/O口使用的,所以在电路结构上与P0口有一些不同之处:首先它不再需要多路转接电路MUX;其次是电路的内部有上拉电阻,与场效应筛共同组成输出驱动电路。为此,P1口作为输出口使用时,已经能向外提供推拉电流负载,因而无需再外接上拉电阻。当P1口作为输入口使用时,同样也需先向其锁存器写“1”,使输出驱动电路的FET截止。1.3.3P2口

P2口的口线逻辑电路如图1.11所示。图1.11P2口的口线逻辑电路

P2口电路比P1口电路多了一个多路转接电路MUX,这又正好与P0口一样。P2口可以作为通用I/O口使用,这时多路转接电路开关倒向锁存器Q端。通常情况下,P2口是作为高位地址线使用的,此时多路转接电路开关应倒向相反方向。1.3.4P3口

P3口的口线逻辑电路如图1.12所示。图1.12P3口的口线逻辑电路

P3口的特点在于,为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。由于第二功能信号有输入和输出两类,因此分两种情况说明。对于第二功能为输出的信号引脚,当P3口作为I/O使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端的数据输出通路的畅通。当输出第二功能信号时,该位的锁存器应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。对于第二功能为输入的信号引脚,在口线的输入通路上增加了一个缓冲器,输入的第二功能信号就从这个缓冲器的输出端取得。而作为I/O使用的数据输入,仍取自三态缓冲器的输出端。不管是在P3口作为输入口使用时还是在第二功能信号输入时,输出电路中的锁存器输出和第二功能输出信号线都应保持高电平。1.4时钟电路与复位电路1.4.1单片机的时钟电路与时序

1.时钟信号的产生在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟振荡电路,如图1.13所示。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。请读者特别注意时钟脉冲与振荡脉冲之间的二分频关系,否则会造成概念上的错误。一般地,电容C1和C2取30pF左右,晶体的振荡频率范围是1.2~12MHz。如果晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。MCS-51在通常应用情况下,使用的振荡频率为6MHz或12MHz。图1.13时钟振荡电路

2.引入外部脉冲信号在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入惟一的公用外部脉冲信号作为各单片机的振荡脉冲。这时,外部的脉冲信号经XTAL2引脚输入,其连接如图1.14所示。图1.14外部时钟源接法

3.时序

1)节拍与状态把振荡脉冲的周期定义为节拍(用P表示)。振荡脉冲经过二分频后,就是单片机的时钟信号的周期,定义其为状态(用S表示)。这样,一个状态就包含两个节拍,其前半周期对应的节拍叫节拍1(P1),后半周期对应的节拍叫节拍2(P2)。

2)机器周期

MCS-51采用定时控制方式,因此它有固定的机器周期。规定一个机器周期的宽度为6个状态,并依次表示为S1~S6,可参见图1.15(a)。由于一个状态又包括两个节拍,因此,一个机器周期总共有12个节拍,分别记作S1P1、S1P2、…、S6P2。由于一个机器周期共有12个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频。当振荡脉冲频率为12MHz时,一个机器周期为1μs;当振荡脉冲频率为6MHz时,一个机器周期为2μs。

3)指令周期指令周期是最大的时序定时单位,执行一条指令所需要的时间称为指令周期。它一般由若干个机器周期组成。不同的指令,所需要的机器周期数也不相同。通常,包含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令,依次类推。指令的运算速度与指令所包含的机器周期有关,机器周期数越少的指令,执行速度越快。MCS-51单片机指令通常可以分为单周期指令、双周期指令和四周期指令。四周期指令只有乘法和除法指令两条,其余均为单周期和双周期指令。1.4.2单片机的复位电路单片机复位使CPU和系统中的其它功能部件都处在一个确定的初始状态下,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第一个单元取指令。从实训1已经看出,无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚MCS-51型单片机复位的条件、复位电路和复位后的状态。单片机复位的条件是:必须使RST/VPD或RST引脚(9)加上持续两个机器周期(即24个振荡周期)的高电平。例如,若时钟频率为12MHz,每个机器周期为1μs,则只需2μs以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。单片机常见的复位电路如图1.15(a)、(b)所示。图1.15(a)为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。只要保证RST为高电平的时间大于两个机器周期,便能正常复位。图1.15(b)为按键复位电路。该电路除具有上电复位功能外,若要复位,只需按图1.16(b)中的RESET键,此时电源VCC经电阻R1、R2分压,在RST端产生一个复位高电平。图1.15单片机常见的复位电路(a)上电复位电路;(b)按键复位电路单片机复位期间不产生ALE和信号,即ALE=1和 =1。这表明单片机复位期间不会有任何取指操作。复位后,内部各专用寄存器状态如下:PC:0000H TMOD: 00HACC:00H TCON: 00HB: 00H TH0: 00HPSW:00H TL0: 00HSP: 07H

TH1: 00HDPTR:0000H TL1: 00HP0~P3:FFH

SCON: 00HIP: ***00000B SBUF: 不定IE: 0**00000B PCON: 0***0000B其中,*表示无关位。请注意:

(1)复位后PC值为0000H,表明复位后程序从0000H开始执行,这一点在实训1中已介绍。

(2)SP值为07H,表明堆栈底部在07H。一般需重新设置SP值。

(3)P0~P3口值为FFH。P0~P3口用作输入口时,必须先写入“1”。单片机在复位后,已使P0~P3口每一端线为“1”,为这些端线用作输入口做好了准备。本章小结本章通过介绍MCS-51型单片机芯片的硬件结构及工作特性,使我们知道MCS-51单片机是由一个8位CPU,一个片内振荡器及时钟电路,4KBROM(8051有4KB掩膜ROM,8751有4KBEPROM,8031片内无ROM,89C51有4KBFPEROM),128B片内RAM,21个特殊功能寄存器,两个16位定时/计数器,4个8位并行I/O口,一个串行输入/输出口和5个中断源等电路组成的。芯片共有40个引脚,除了电源、地、两个时钟输入/输出脚以及32个I/O引脚外,还有4个控制引脚:ALE(低8位地址锁存允许)、(片外ROM读选通)、RST(复位)、(内外ROM选择

温馨提示

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

评论

0/150

提交评论