资源预览内容
第1页 / 共233页
第2页 / 共233页
第3页 / 共233页
第4页 / 共233页
第5页 / 共233页
第6页 / 共233页
第7页 / 共233页
第8页 / 共233页
第9页 / 共233页
第10页 / 共233页
亲,该文档总共233页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章 单片机系统设计,模块概述 由于单片机面对的是测控对象,突出的是控制功能,所以它从功能和形态上来说都是应控制领域应用的要求而诞生的。随着单片机技术的发展,它在芯片内集成了许多面对测控对象的接口电路,如ADC,DAC、高速I/O口、PWM, WDT等。这些对外电路及外设接口已经突破了微型计算机(microcomputer)传统的体系结构,单片机电路是由单片机、单片机复位电路、时钟电路等构成的电路单元。本书以51系列单片机为基础,通过典型实例分析,指导读者学习单片机的基本知识,培养读者设计单片机系统的基本技能,下面将就AT89S51单片机的结构做具体分析。,下一页,第二章 单片机系统设计,教学目标 1.理解和掌握单片机的工作原理和内部结构。 2.掌握汇编语言程序设计的基本方法。 3.理解人机接口的硬件结构与软件编程原理和设计方法。 4.掌握单片机系统扩展技术。 5.掌握单片机A/D,D/A接口技术。 6.基本掌握51串行通信技术。 7.初步掌握51应用系统的开发技术。,下一页,第二章 单片机系统设计,2.1单片机的基本结构 2.2单片机汇编语言指令 2.3练习,2.1单片机的基本结构,2.1.1 单片机的内部总体结构 总的来说,单片机是由8个大的部分组成的。这8个部分分别是中央处理器(CPU)、数据存储器(RAM ) ,程序存储器(ROM/EPROM),输入/输出接口(I/O,又分为P0口、P1口、P2口和P3口)、可编程串行口、定时/计数器、中断系统以及特殊功能寄存器。,下一页,返回,2.1单片机的基本结构,2.1.2单片机的引脚功能 要使用一款单片机,除了知道其内部结构之外,还必须了解单片机的引脚功能。目前的单片机所采用的外形封装形式多为40Pin封装的双列直接DIP结构,图2-1是AT89S51单片机引脚配置图。40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。引脚说明如下: (1) Pinto接地脚。 ( 2) Pin40正电源脚。正常工作或对片内EPROM烧写程序时,AT89S51可以接 4. 5-5. 5 V范围内的直流正电源。一般取+5V作为电源标称值来使用。,下一页,上一页,返回,2.1单片机的基本结构,(3) Pin19时钟XTALl脚,片内振荡电路的输入端。 (4) Pinl 8时钟XTAL2脚,片内振荡电路的输出端。 和其他51类单片机一样,AT89 S51的时钟也有两种方式:一种是片内时钟振荡方式,但需在18和19脚外接石英晶体(0一33 MHz)和振荡电容,振荡电容的值一般取10一30 pF;另外一种是外部时钟方式,即将XTALl接地,外部时钟信号从XTAL2脚输入,如图2-2所示。,下一页,上一页,返回,2.1单片机的基本结构,(5)输入/输出(I/O)引脚Pin39一Pin32为P0. 0-P0. 7输入/输出脚,Pin1-Pin8为P1. 0-P1. 7输入/输出脚,Pin21-Pin28为P2. 0-P2. 7输入/输出脚,Pin10-Pin17为P3. 0-P3. 7输入/输出脚。这些输入/输出脚的功能说明将在以后的内容中予以阐述。 (6) Pin9 RST复位信号复用脚。当单片机通电后,时钟电路开始工作,在RST引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H, P0-P3输出口全部为高电平,堆栈指针写入07H,其他专用寄存器被清“0”。RST由高电平变为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,单片机特殊功能寄存器的初始态如表2-1所列。,下一页,上一页,返回,2.1单片机的基本结构,单片机的复位方式可以是自动复位,也可以是手动复位,见图2 -3。此外,RST引脚还是一个复用脚,VcC掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。 (7) Pin30 ALE/PROG,当访问外部程序存储器时,ALE(地址锁存)的输出用于锁存地址的低位字节;而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否在工作,也可以当作一个时钟向外输出;还有一个特点,当访问外部程序存储器时,ALE会跳过一个脉冲。如果单片机是EPROM,在编程期间PROG将用于输入编程脉冲。 ( 8) Pin29 PESN,当访问外部程序存储器时,此引脚输出负脉冲选通信号,PC的16位地址数据将出现在PO和P2口上,外部程序存储器则把指令数据放到PO口上,由CPU读入并执行。,下一页,上一页,返回,2.1单片机的基本结构,(9) Pin31 EA/VPP ,程序存储器的内外部选通线。AT89 S51单片机内置有4 KB的程序存储器。当EA为高电平并且程序地址范围小于4 KB时,读取内部程序存储器指令数据;而超过4 KB地址,则读取外部指令数据。如为低电平,则不管地址大小,一律读取外部程序存储器指令。在编程时,EA/V。脚还需加上21 V的编程电压。 2.1.3 AT9 S51单片机的内部构成 AT89S51单片机和其他普通单片机一样,其内部结构主要由中央处理器(CPU)、存储器、输入/输出I/O端口、定时/计数器和中断系统5大部分构成。各部分又分别由多个单元模块构成。单片机内部各部分之间的联系如图2 -4所示。,下一页,上一页,返回,2.1单片机的基本结构,1.中央处理器(CPU) 中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码。CPU负责控制、指挥和调度整个单片机系统协调地工作,完成运算和控制输入/输出功能等操作。CPU主要由运算器和控制器等构成。 (1)运算器运算器主要包括算术与逻辑运算部件ALU、累加器ACC、寄存器B,暂存器TMP1和TMP2,程序状态字寄存器PSW、布尔处理器和十进制调整电路等。 算术与逻辑运算部件ALU可以对4位、8位和16位的数据进行操作。这些操作包括算术运算操作和逻辑运算操作。算术运算操作又包括加、减、乘、除、加1、减1,BCD数十进制调整与比较等;逻辑运算操作又包括与、或、异或、求补、循环移位等操作。,下一页,上一页,返回,2.1单片机的基本结构,累加器ACC ( Accumulator)是运算过程中数据传送的中转站。它是8位寄存器,也是常用的专用寄存器。在指令中,ACC一般可用A来表示。它既可以用于存放操作数,也可以用于存放运算的中间结果。单片机中大部分单操作数指令的操作数要从ACC中获取,许多双操作数指令中的一个操作数也是取自ACC. 寄存器B ( General Purpose Register)是一个专门为乘法和除法运算设置的8位寄存器。在乘法与除法运算中,它可用于存放运算的操作数(即乘数或除数),并在乘法和除法运算完成后,用来存放乘积的高8位或者是除法中的余数。另外,B寄存器还可以作为一般的数据寄存器来使用。,下一页,上一页,返回,2.1单片机的基本结构,程序状态字寄存器PSW (Program Status Word)也是一个8位的寄存器。它用于存放指令执行后累加器ACC的状态信息。PSW中的状态位有Cy, Ac, Ov, P, F0, RSl, RSO等。其中,Cy,Ac,Ov,P状态位的数据是根据指令的执行结果由硬件自动形成的,而FO,RSI,RSO状态位的数据则是由用户根据实际的需要用程序软件指令来设定的。PSW的各状态位定义如表2-2所列。 进位标志位cy( caTTy)主要有两个方面的功能:一方面是存放算术指令运算的进位标志;另一方面是在位操作中,作为累加器c来使用。其中,在算术指令运算中,进行加、减等运算时,如果运算的结果使累加器A中的最高位D7有进位输出或是借位输入,那么此时Cy就被置为1;如果没有上述情况,Cy就为O。,下一页,上一页,返回,2.1单片机的基本结构,辅助进位位Ac ( Auxiliary Carry)在加减运算中,当累加器A中的D3位向D4位有进位或借位时,A。就被置为1;如果没有上述情况,A。就为0。这个标志位的状态信息,通常是在二进制到十进制调整时使用。 用户标志位F0( Flag zero)是一个供用户定义的标志位,用户根据需要用程序软件对该标志位进行置位与复位的操作,以便控制用户程序的转移方向。,下一页,上一页,返回,2.1单片机的基本结构,工作寄存器区选择控制位RS1,RS0这两个标志位是合在一起来使用的,用于设定4个区的工作寄存器中,哪一组为当前工作的工作寄存器组。也就是说,对相同名称的RO一R7改变其物理地址,并由用户通过程序软件来加以选择。单片机在开机或复位后,RS1和RS0被设置为低电平“0”的状态,因此R0-R7的物理地址就是00H-07H。相应的,若改变RS1 , RS0为01B,那么1区为当前工作寄存器组,且R0-R7的物理地址就变为08H一OFH。通过这种方法,用户就可以很方便地通过修改R0-R7物理地址,达到保护某一区RO -R7中数据的目的。这无疑对后面的程序设计是非常有利的。,下一页,上一页,返回,2.1单片机的基本结构,溢出标志位Ov ( Over flow)用于指示累加器A在算术运算过程中是否发生溢出。即若运算结果超出了8位数能表示的范围(-128-+127 ),那么Ov就会自动被设置为1;若没有超出表示范围,则Ov为0。例如,在加法运算中,Ov=1,表示运算结果是错误的;Ov = 0,表示运算正确。在乘法运算中,Ov=1,表示运算得到的乘积超过255,即乘积不仅仅在累加器A中, 它还有一部分(即乘积的高位部分)在B寄存器中;Ov = 0,表示乘积数据仅在累加器A中。在除法运算中,Ov=1,表示除数为0,除法运算不能进行;Ov = 0,表示除数不为0,因此除法可以正常进行。,下一页,上一页,返回,2.1单片机的基本结构,奇偶标志位P ( Parity)用于指示累加器A中1数量的奇偶性。由硬件根据累加器A的内容对P位自动置位或复位。若累加器A中1的数量为奇数,则P=1;反之,若累加器A中1的数量为偶数,则P=0。布尔处理器:是以PSW中的进位标志位Cy为其累加器,专门用于处理位操作。这些操作包括置位、位清。、位取反、位等于1转移、位等于。转移、位等于1转移并清。以及位累加器C与其他可位寻址空间之间的信息传送等。 (2)控制器控制器包括时钟发生器、定时控制逻辑、指令寄存器IR、指令译码器ID,程序计数器PC,程序地址寄存器、数据指针寄存器DPTR和堆栈指针SP等。,下一页,上一页,返回,2.1单片机的基本结构,控制器是用来统一指挥和控制计算机进行工作的部件。它的功能是从程序存储器中提取指令,送到指令寄存器IR,再进入指令译码器ID进行译码,并通过定时和控制电路,在规定的时刻发出各种操作所需要的全部内部控制信息及CPU外部所需要的控制信号,如ALE,PESN,RD,WR等,使各部分协调工作,完成指令所规定的各种操作。 下面,本书就将其中的程序计数器PC、堆栈指针SP和数据指针寄存器DPTR等的具体概念及功能进行介绍。 程序计数器PC ( Program Counter)程序计数器PC是一个二进制16位的程序地址寄存器,专门用于存放下一条需要执行指令的内存地址,在执行指令后能自动加to CPU执行指令时,是先根据程序计数器PC中的地址从存储器中取出当前需要执行的指令码,并把它送给控制器分析执行。随后,程序计数器PC中地址码自动加1,以便为CPU取下一个,下一页,上一页,返回,2.1单片机的基本结构,需要执行的指令码做准备。当下一个指令码取出执行后,PC又会自动加1。这样,程序计数器PC就被一次次地加1,而指令就被一条条地执行。因此,必须在程序执行之前,预先将需要执行程序的机器码按顺序一条条存放到程序存储器中,并且还要将程序计数器PC设置为执行程序第一条指令的内存地址。 AT89S51单片机的程序计数器PC由16个触发器构
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号