《(中职)单片机原理及应用第二章教学课件.ppt》由会员分享,可在线阅读,更多相关《(中职)单片机原理及应用第二章教学课件.ppt(234页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、YCF正版可修改PPT(中职)单片机原理及应用第二章教学课件第二章第二章 单片机系统设计单片机系统设计模块概述模块概述由于单片机面对的是测控对象,突出的是控制功能,所以它由于单片机面对的是测控对象,突出的是控制功能,所以它从功能和形态上来说都是应控制领域应用的要求而诞生的。从功能和形态上来说都是应控制领域应用的要求而诞生的。随着单片机技术的发展,它在芯片内集成了许多面对测控对随着单片机技术的发展,它在芯片内集成了许多面对测控对象的接口电路,如象的接口电路,如ADC,DAC、高速、高速I/O口、口、PWM,WDT等。这些对外电路及外设接口已经突破了微型计算机等。这些对外电路及外设接口已经突破了微
2、型计算机(microcomputer)传统的体系结构,单片机电路是由单片传统的体系结构,单片机电路是由单片机、单片机复位电路、时钟电路等构成的电路单元。本书以机、单片机复位电路、时钟电路等构成的电路单元。本书以51系列单片机为基础,通过典型实例分析,指导读者学习单系列单片机为基础,通过典型实例分析,指导读者学习单片机的基本知识,培养读者设计单片机系统的基本技能,下片机的基本知识,培养读者设计单片机系统的基本技能,下面将就面将就AT89S51单片机的结构做具体分析。单片机的结构做具体分析。下一页第二章第二章 单片机系统设计单片机系统设计教学目标教学目标1.理解和掌握单片机的工作原理和内部结构。理
3、解和掌握单片机的工作原理和内部结构。2.掌握汇编语言程序设计的基本方法。掌握汇编语言程序设计的基本方法。3.理解人机接口的硬件结构与软件编程原理和设计方法。理解人机接口的硬件结构与软件编程原理和设计方法。4.掌握单片机系统扩展技术。掌握单片机系统扩展技术。5.掌握单片机掌握单片机A/D,D/A接口技术。接口技术。6.基本掌握基本掌握51串行通信技术。串行通信技术。7.初步掌握初步掌握51应用系统的开发技术。应用系统的开发技术。下一页第二章第二章 单片机系统设计单片机系统设计2.1单片机的基本结构单片机的基本结构2.2单片机汇编语言指令单片机汇编语言指令2.3练习练习2.1单片机的基本结构单片机
4、的基本结构2.1.1单片机的内部总体结构单片机的内部总体结构总的来说,单片机是由总的来说,单片机是由8个大的部分组成的。这个大的部分组成的。这8个部分分别个部分分别是中央处理器是中央处理器(CPU)、数据存储器、数据存储器(RAM),程序存储器程序存储器(ROM/EPROM),输入输入/输出接口输出接口(I/O,又分为,又分为P0口、口、P1口、口、P2口和口和P3口口)、可编程串行口、定时、可编程串行口、定时/计数器、中断计数器、中断系统以及特殊功能寄存器。系统以及特殊功能寄存器。下一页 返回2.1单片机的基本结构单片机的基本结构2.1.2单片机的引脚功能单片机的引脚功能要使用一款单片机,除
5、了知道其内部结构之外,还必须了解要使用一款单片机,除了知道其内部结构之外,还必须了解单片机的引脚功能。目前的单片机所采用的外形封装形式多单片机的引脚功能。目前的单片机所采用的外形封装形式多为为40Pin封装的双列直接封装的双列直接DIP结构,结构,图图2-1是是AT89S51单单片机引脚配置图。片机引脚配置图。40个引脚中,正电源和地线两根,外置石个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,英振荡器的时钟线两根,4组组8位共位共32个个I/O口,中断口线口,中断口线与与P3口线复用。引脚说明如下口线复用。引脚说明如下:(1)Pinto接地脚。接地脚。(2)Pin40正电源脚。正常工
6、作或对片内正电源脚。正常工作或对片内EPROM烧写程序烧写程序时,时,AT89S51可以接可以接4.5-5.5V范围内的直流正电源。范围内的直流正电源。一般取一般取+5V作为电源标称值来使用。作为电源标称值来使用。下一页上一页返回2.1单片机的基本结构单片机的基本结构(3)Pin19时钟时钟XTALl脚,片内振荡电路的输入端。脚,片内振荡电路的输入端。(4)Pinl8时钟时钟XTAL2脚,片内振荡电路的输出端。脚,片内振荡电路的输出端。和其他和其他51类单片机一样,类单片机一样,AT89S51的时钟也有两种方式的时钟也有两种方式:一种是片内时钟振荡方式,但需在一种是片内时钟振荡方式,但需在18
7、和和19脚外接石英晶体脚外接石英晶体(0一一33MHz)和振荡电容,振荡电容的值一般取和振荡电容,振荡电容的值一般取10一一30pF;另外一种是外部时钟方式,即将另外一种是外部时钟方式,即将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输入输入/输出脚,输出脚,Pi
8、n10-Pin17为为P3.0-P3.7输入输入/输出脚。这些输入输出脚。这些输入/输出脚的输出脚的功能说明将在以后的内容中予以阐述。功能说明将在以后的内容中予以阐述。(6)Pin9RST复位信号复用脚。当单片机通电后,时钟电复位信号复用脚。当单片机通电后,时钟电路开始工作,在路开始工作,在RST引脚上出现引脚上出现24个时钟周期以上的高电平,个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器系统即初始复位。初始化后,程序计数器PC指向指向0000H,P0-P3输出口全部为高电平,堆栈指针写入输出口全部为高电平,堆栈指针写入07H,其他专用,其他专用寄存器被清寄存器被清“0”。RST
9、由高电平变为低电平后,系统即从由高电平变为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器包括工作寄存器R0-R7)的状态,单片机特殊功能寄存器的的状态,单片机特殊功能寄存器的初始态如初始态如表表2-1所列。所列。下一页上一页返回2.1单片机的基本结构单片机的基本结构单片机的复位方式可以是自动复位,也可以是手动复位,见单片机的复位方式可以是自动复位,也可以是手动复位,见图图2-3。此外,。此外,RST引脚还是一个复用脚,引脚还是一个复用脚,VcC掉电期间,此掉电期间,此脚可接上备用电源,以保证单片机内部脚可接上备用电
10、源,以保证单片机内部RAM的数据不丢失。的数据不丢失。(7)Pin30ALE/PROG,当访问外部程序存储器时,当访问外部程序存储器时,ALE(地址锁存地址锁存)的输出用于锁存地址的低位字节的输出用于锁存地址的低位字节;而访问内部而访问内部程序存储器时,程序存储器时,ALE端将有一个端将有一个1/6时钟频率的正脉冲信号,时钟频率的正脉冲信号,这个信号可以用于识别单片机是否在工作,也可以当作一个时这个信号可以用于识别单片机是否在工作,也可以当作一个时钟向外输出钟向外输出;还有一个特点,当访问外部程序存储器时,还有一个特点,当访问外部程序存储器时,ALE会跳过一个脉冲。如果单片机是会跳过一个脉冲。
11、如果单片机是EPROM,在编程期间,在编程期间PROG将用于输入编程脉冲。将用于输入编程脉冲。(8)Pin29PESN,当访问外部程序存储器时,此引脚输出,当访问外部程序存储器时,此引脚输出负脉冲选通信号,负脉冲选通信号,PC的的16位地址数据将出现在位地址数据将出现在PO和和P2口上,口上,外部程序存储器则把指令数据放到外部程序存储器则把指令数据放到PO口上,由口上,由CPU读入并执读入并执行。行。下一页上一页返回2.1单片机的基本结构单片机的基本结构(9)Pin31EA/VPP,程序存储器的内外部选通线。程序存储器的内外部选通线。AT89S51单片机内置有单片机内置有4KB的程序存储器。当
12、的程序存储器。当EA为高电为高电平并且程序地址范围小于平并且程序地址范围小于4KB时,读取内部程序存储器指令时,读取内部程序存储器指令数据数据;而超过而超过4KB地址,则读取外部指令数据。如为低电平,地址,则读取外部指令数据。如为低电平,则不管地址大小,一律读取外部程序存储器指令。在编程时,则不管地址大小,一律读取外部程序存储器指令。在编程时,EA/V。脚还需加上。脚还需加上21V的编程电压。的编程电压。2.1.3AT9S51单片机的内部构成单片机的内部构成AT89S51单片机和其他普通单片机一样,其内部结构主要单片机和其他普通单片机一样,其内部结构主要由中央处理器由中央处理器(CPU)、存储
13、器、输入、存储器、输入/输出输出I/O端口、定时端口、定时/计数器和中断系统计数器和中断系统5大部分构成。各部分又分别由多个单元大部分构成。各部分又分别由多个单元模块构成。单片机内部各部分之间的联系如模块构成。单片机内部各部分之间的联系如图图2-4所示。所示。下一页上一页返回2.1单片机的基本结构单片机的基本结构1.中央处理器中央处理器(CPU)中央处理器中央处理器(CPU)是整个单片机的核心部件,是是整个单片机的核心部件,是8位数据宽位数据宽度的处理器,能处理度的处理器,能处理8位二进制数据或代码。位二进制数据或代码。CPU负责控制、负责控制、指挥和调度整个单片机系统协调地工作,完成运算和控
14、制输指挥和调度整个单片机系统协调地工作,完成运算和控制输入入/输出功能等操作。输出功能等操作。CPU主要由运算器和控制器等构成。主要由运算器和控制器等构成。(1)运算器运算器主要包括算术与逻辑运算部件运算器运算器主要包括算术与逻辑运算部件ALU、累加、累加器器ACC、寄存器、寄存器B,暂存器暂存器TMP1和和TMP2,程序状态字寄存程序状态字寄存器器PSW、布尔处理器和十进制调整电路等。、布尔处理器和十进制调整电路等。算术与逻辑运算部件算术与逻辑运算部件ALU可以对可以对4位、位、8位和位和16位的数据位的数据进行操作。这些操作包括算术运算操作和逻辑运算操作。算进行操作。这些操作包括算术运算操
15、作和逻辑运算操作。算术运算操作又包括加、减、乘、除、加术运算操作又包括加、减、乘、除、加1、减、减1,BCD数十进数十进制调整与比较等制调整与比较等;逻辑运算操作又包括与、或、异或、求补、逻辑运算操作又包括与、或、异或、求补、循环移位等操作。循环移位等操作。下一页上一页返回2.1单片机的基本结构单片机的基本结构累加器累加器ACC(Accumulator)是运算过程中数据传送的是运算过程中数据传送的中转站。它是中转站。它是8位寄存器,也是常用的专用寄存器。在指令中,位寄存器,也是常用的专用寄存器。在指令中,ACC一般可用一般可用A来表示。它既可以用于存放操作数,也可以来表示。它既可以用于存放操作
16、数,也可以用于存放运算的中间结果。单片机中大部分单操作数指令的用于存放运算的中间结果。单片机中大部分单操作数指令的操作数要从操作数要从ACC中获取,许多双操作数指令中的一个操作数中获取,许多双操作数指令中的一个操作数也是取自也是取自ACC.寄存器寄存器B(GeneralPurposeRegister)是一个专门是一个专门为乘法和除法运算设置的为乘法和除法运算设置的8位寄存器。在乘法与除法运算中,位寄存器。在乘法与除法运算中,它可用于存放运算的操作数它可用于存放运算的操作数(即乘数或除数即乘数或除数),并在乘法和除,并在乘法和除法运算完成后,用来存放乘积的高法运算完成后,用来存放乘积的高8位或者
17、是除法中的余数。位或者是除法中的余数。另外,另外,B寄存器还可以作为一般的数据寄存器来使用。寄存器还可以作为一般的数据寄存器来使用。下一页上一页返回2.1单片机的基本结构单片机的基本结构程序状态字寄存器程序状态字寄存器PSW(ProgramStatusWord)也也是一个是一个8位的寄存器。它用于存放指令执行后累加器位的寄存器。它用于存放指令执行后累加器ACC的的状态信息。状态信息。PSW中的状态位有中的状态位有Cy,Ac,Ov,P,F0,RSl,RSO等。其中,等。其中,Cy,Ac,Ov,P状态位的数据是根据指令的执状态位的数据是根据指令的执行结果由硬件自动形成的,而行结果由硬件自动形成的,
18、而FO,RSI,RSO状态位的数据则状态位的数据则是由用户根据实际的需要用程序软件指令来设定的。是由用户根据实际的需要用程序软件指令来设定的。PSW的的各状态位定义如各状态位定义如表表2-2所列。所列。进位标志位进位标志位cy(caTTy)主要有两个方面的功能主要有两个方面的功能:一方面是存一方面是存放算术指令运算的进位标志放算术指令运算的进位标志;另一方面是在位操作中,作为累另一方面是在位操作中,作为累加器加器c来使用。其中,在算术指令运算中,进行加、减等运算来使用。其中,在算术指令运算中,进行加、减等运算时,如果运算的结果使累加器时,如果运算的结果使累加器A中的最高位中的最高位D7有进位输
19、出或有进位输出或是借位输入,那么此时是借位输入,那么此时Cy就被置为就被置为1;如果没有上述情况,如果没有上述情况,Cy就为就为O。下一页上一页返回2.1单片机的基本结构单片机的基本结构辅助进位位辅助进位位Ac(AuxiliaryCarry)在加减运算中,当累加在加减运算中,当累加器器A中的中的D3位向位向D4位有进位或借位时,位有进位或借位时,A。就被置为。就被置为1;如如果没有上述情况,果没有上述情况,A。就为。就为0。这个标志位的状态信息,通常。这个标志位的状态信息,通常是在二进制到十进制调整时使用。是在二进制到十进制调整时使用。用户标志位用户标志位F0(Flagzero)是一个供用户定
20、义的标志位,是一个供用户定义的标志位,用户根据需要用程序软件对该标志位进行置位与复位的操作,用户根据需要用程序软件对该标志位进行置位与复位的操作,以便控制用户程序的转移方向。以便控制用户程序的转移方向。下一页上一页返回2.1单片机的基本结构单片机的基本结构工作寄存器区选择控制位工作寄存器区选择控制位RS1,RS0这两个标志位是合在一这两个标志位是合在一起来使用的,用于设定起来使用的,用于设定4个区的工作寄存器中,哪一组为当前个区的工作寄存器中,哪一组为当前工作的工作寄存器组。也就是说,对相同名称的工作的工作寄存器组。也就是说,对相同名称的RO一一R7改改变其物理地址,并由用户通过程序软件来加以
21、选择。单片机变其物理地址,并由用户通过程序软件来加以选择。单片机在开机或复位后,在开机或复位后,RS1和和RS0被设置为低电平被设置为低电平“0”的状态,的状态,因此因此R0-R7的物理地址就是的物理地址就是00H-07H。相应的,若改变。相应的,若改变RS1,RS0为为01B,那么,那么1区为当前工作寄存器组,且区为当前工作寄存器组,且R0-R7的物理地址就变为的物理地址就变为08H一一OFH。通过这种方法,用户就。通过这种方法,用户就可以很方便地通过修改可以很方便地通过修改R0-R7物理地址,达到保护某一区物理地址,达到保护某一区RO-R7中数据的目的。这无疑对后面的程序设计是非常有中数据
22、的目的。这无疑对后面的程序设计是非常有利的。利的。下一页上一页返回2.1单片机的基本结构单片机的基本结构溢出标志位溢出标志位Ov(Overflow)用于指示累加器用于指示累加器A在算术运算在算术运算过程中是否发生溢出。即若运算结果超出了过程中是否发生溢出。即若运算结果超出了8位数能表示的范位数能表示的范围围(-128-+127),那么,那么Ov就会自动被设置为就会自动被设置为1;若没有超若没有超出表示范围,则出表示范围,则Ov为为0。例如,在加法运算中,。例如,在加法运算中,Ov=1,表,表示运算结果是错误的示运算结果是错误的;Ov=0,表示运算正确。在乘法运算,表示运算正确。在乘法运算中,中
23、,Ov=1,表示运算得到的乘积超过,表示运算得到的乘积超过255,即乘积不仅仅,即乘积不仅仅在累加器在累加器A中,中,它还有一部分它还有一部分(即乘积的高位部分即乘积的高位部分)在在B寄存器中寄存器中;Ov=0,表示乘积数据仅在累加器表示乘积数据仅在累加器A中。在除法运算中,中。在除法运算中,Ov=1,表,表示除数为示除数为0,除法运算不能进行,除法运算不能进行;Ov=0,表示除数不为,表示除数不为0,因此除法可以正常进行。因此除法可以正常进行。下一页上一页返回2.1单片机的基本结构单片机的基本结构奇偶标志位奇偶标志位P(Parity)用于指示累加器用于指示累加器A中中1数量的奇偶性。数量的奇
24、偶性。由硬件根据累加器由硬件根据累加器A的内容对的内容对P位自动置位或复位。若累加器位自动置位或复位。若累加器A中中1的数量为奇数,则的数量为奇数,则P=1;反之,若累加器反之,若累加器A中中1的数量为的数量为偶数,则偶数,则P=0。布尔处理器。布尔处理器:是以是以PSW中的进位标志位中的进位标志位Cy为为其累加器,专门用于处理位操作。这些操作包括置位、位清。其累加器,专门用于处理位操作。这些操作包括置位、位清。、位取反、位等于、位取反、位等于1转移、位等于。转移、位等于转移、位等于。转移、位等于1转移并清。转移并清。以及位累加器以及位累加器C与其他可位寻址空间之间的信息传送等。与其他可位寻址
25、空间之间的信息传送等。(2)控制器控制器包括时钟发生器、定时控制逻辑、指令寄控制器控制器包括时钟发生器、定时控制逻辑、指令寄存器存器IR、指令译码器、指令译码器ID,程序计数器程序计数器PC,程序地址寄存器、程序地址寄存器、数据指针寄存器数据指针寄存器DPTR和堆栈指针和堆栈指针SP等。等。下一页上一页返回2.1单片机的基本结构单片机的基本结构控制器是用来统一指挥和控制计算机进行工作的部件。它的控制器是用来统一指挥和控制计算机进行工作的部件。它的功能是从程序存储器中提取指令,送到指令寄存器功能是从程序存储器中提取指令,送到指令寄存器IR,再进,再进入指令译码器入指令译码器ID进行译码,并通过定
26、时和控制电路,在规定进行译码,并通过定时和控制电路,在规定的时刻发出各种操作所需要的全部内部控制信息及的时刻发出各种操作所需要的全部内部控制信息及CPU外部外部所需要的控制信号,如所需要的控制信号,如ALE,PESN,RD,WR等,使各部分协等,使各部分协调工作,完成指令所规定的各种操作。调工作,完成指令所规定的各种操作。下面,本书就将其中的程序计数器下面,本书就将其中的程序计数器PC、堆栈指针、堆栈指针SP和数据和数据指针寄存器指针寄存器DPTR等的具体概念及功能进行介绍。等的具体概念及功能进行介绍。程序计数器程序计数器PC(ProgramCounter)程序计数器程序计数器PC是是一个二进
27、制一个二进制16位的程序地址寄存器,专门用于存放下一条需位的程序地址寄存器,专门用于存放下一条需要执行指令的内存地址,在执行指令后能自动加要执行指令的内存地址,在执行指令后能自动加toCPU执执行指令时,是先根据程序计数器行指令时,是先根据程序计数器PC中的地址从存储器中取出中的地址从存储器中取出当前需要执行的指令码,并把它送给控制器分析执行。随后,当前需要执行的指令码,并把它送给控制器分析执行。随后,程序计数器程序计数器PC中地址码自动加中地址码自动加1,以便为,以便为CPU取下一个取下一个下一页上一页返回2.1单片机的基本结构单片机的基本结构需要执行的指令码做准备。当下一个指令码取出执行后
28、,需要执行的指令码做准备。当下一个指令码取出执行后,PC又会自动加又会自动加1。这样,程序计数器。这样,程序计数器PC就被一次次地加就被一次次地加1,而,而指令就被一条条地执行。因此,必须在程序执行之前,预先指令就被一条条地执行。因此,必须在程序执行之前,预先将需要执行程序的机器码按顺序一条条存放到程序存储器中,将需要执行程序的机器码按顺序一条条存放到程序存储器中,并且还要将程序计数器并且还要将程序计数器PC设置为执行程序第一条指令的内存设置为执行程序第一条指令的内存地址。地址。AT89S51单片机的程序计数器单片机的程序计数器PC由由16个触发器构成,因个触发器构成,因此,它的编码范围为此,
29、它的编码范围为OOOOHFFFFH,共,共64KB。这就是。这就是说,说,AT89S51对程序存储器的寻址范围为对程序存储器的寻址范围为64KB。如果用。如果用户想为户想为AT89S51配置大于配置大于64KB的程序存储器,就必须在的程序存储器,就必须在制造制造AT89S51单片机时加长程序计数器的位数。但在实际单片机时加长程序计数器的位数。但在实际应用中,应用中,64KB的程序存储器就已经足够了。的程序存储器就已经足够了。下一页上一页返回2.1单片机的基本结构单片机的基本结构堆栈指针堆栈指针SP(StackPointor)堆栈指针堆栈指针SP是一个是一个8位位的专用寄存器,用于指示堆栈顶部在
30、的专用寄存器,用于指示堆栈顶部在RAM中的位置。单片机中的位置。单片机的堆栈定义可以从下面的介绍中得出。的堆栈定义可以从下面的介绍中得出。人们在往货仓或货栈存放货物时,总是按顺序从下往上地依人们在往货仓或货栈存放货物时,总是按顺序从下往上地依次堆放。这样一来,当要取货时,需从上往下地取出。也就次堆放。这样一来,当要取货时,需从上往下地取出。也就是说,最先存入货栈的货物最后才被取出,而最后存入货栈是说,最先存入货栈的货物最后才被取出,而最后存入货栈的货物却最先被取出。即货栈的堆货与取货是按照的货物却最先被取出。即货栈的堆货与取货是按照“先进后先进后出,后进先出出,后进先出”的原则。的原则。计算机
31、计算机(单片机单片机)中的堆栈是计算机中一种特定的数据存储区,中的堆栈是计算机中一种特定的数据存储区,与货栈的堆货与取货规律相同的是,它也是按照与货栈的堆货与取货规律相同的是,它也是按照“先进后出,先进后出,后进先出后进先出”的原则来存取数据的。它的一端是固定不变,而的原则来存取数据的。它的一端是固定不变,而另一端则是浮动的。所有对数据存储区信息存入与取出的操另一端则是浮动的。所有对数据存储区信息存入与取出的操作,都只在堆栈的浮动端进行,因此这个浮动的区域就称为作,都只在堆栈的浮动端进行,因此这个浮动的区域就称为堆栈区。堆栈区。下一页上一页返回2.1单片机的基本结构单片机的基本结构堆栈与实际货
32、栈一样,也有栈顶与栈底之分。堆栈指针堆栈与实际货栈一样,也有栈顶与栈底之分。堆栈指针SP中中存放的是堆栈中栈顶的存储单元地址。当没有存放数据时,存放的是堆栈中栈顶的存储单元地址。当没有存放数据时,堆栈的栈顶地址是与栈底地址相互重合的,堆栈的栈顶地址是与栈底地址相互重合的,SP中存放的栈顶中存放的栈顶存储单元地址实际上就是栈底的地址。而当堆栈中开始存放存储单元地址实际上就是栈底的地址。而当堆栈中开始存放数据之后,每存放一次数据,栈顶就向数据之后,每存放一次数据,栈顶就向“上上”挪动一次,也挪动一次,也就是说,就是说,SP的值就相应增加一次,而同时,栈底地址是保持的值就相应增加一次,而同时,栈底地
33、址是保持不变的。不变的。AT89S51的堆栈区安放在片内低的堆栈区安放在片内低128字节之内,在这个范字节之内,在这个范围内可以安排任何区域为堆栈区。一般晴况下,由于围内可以安排任何区域为堆栈区。一般晴况下,由于CPU在在工作时至少要有一组工作寄存器,因此,在单片机复位后,工作时至少要有一组工作寄存器,因此,在单片机复位后,堆栈指针堆栈指针SP的初始值就被自动设为的初始值就被自动设为07H。也就是说,当第一。也就是说,当第一个数进栈后,个数进栈后,SP加加1就指向就指向08H单元。单元。下一页上一页返回2.1单片机的基本结构单片机的基本结构为了合理使用内部为了合理使用内部RAM这个宝贵资源,堆
34、栈一般不设在工作这个宝贵资源,堆栈一般不设在工作寄存器区和位寻址区,通常是在内部寄存器区和位寻址区,通常是在内部RAM30H-7FH地址地址空间内设置堆栈区。我们可以用数据传送指令给空间内设置堆栈区。我们可以用数据传送指令给SP赋初值。赋初值。例如例如MOVSP,#70H这就可以实现将这就可以实现将70H赋予赋予SP,作为其初始值。另外,栈操,作为其初始值。另外,栈操作是通过压栈指令作是通过压栈指令PUSH(即将数据存入堆栈即将数据存入堆栈)和弹栈指令和弹栈指令POP(即将数据取出堆栈即将数据取出堆栈)来完成的。来完成的。例如例如MOVA,#35HPUSHACC下一页上一页返回2.1单片机的基
35、本结构单片机的基本结构这样一来,这样一来,A中的数据即中的数据即35H就被存放到了堆栈中,而就被存放到了堆栈中,而SP指指针值也会自动加针值也会自动加1。堆栈是为子程序调用和中断操作来设立的,。堆栈是为子程序调用和中断操作来设立的,其具体功能是为保护断点和保护现场。在后面的程序指令介其具体功能是为保护断点和保护现场。在后面的程序指令介绍和设计实验中,我们将有比较好的应用,这里就不多述。绍和设计实验中,我们将有比较好的应用,这里就不多述。数据指针寄存器数据指针寄存器DPTR(DataPointer)数据指针寄存数据指针寄存器器DPTR是一个是一个16位的寄存器,它是由位的寄存器,它是由2个个8位
36、的特殊功能位的特殊功能寄存器寄存器DPH和和DPL拼接而成的。其中,拼接而成的。其中,DPH是是DPTR的高的高8位,位,DPL是是DPTR的低的低8位。位。DPTR在功能上是作为地址在功能上是作为地址指针存放片内指针存放片内ROM的地址,同时也可以用来存放片外的地址,同时也可以用来存放片外RAM和片外和片外ROM的地址,它可以对片外的地址,它可以对片外0000H-FFFFH共共64KB地址空间寻址。地址空间寻址。下一页上一页返回2.1单片机的基本结构单片机的基本结构例如例如 MOV DPTR,#3000H MOVX A,DPTR这这两条指令就是完成将片外两条指令就是完成将片外3000H单单元
37、中的内容送到片内累元中的内容送到片内累加器加器A中的。第一条指令中的。第一条指令执执行后,系行后,系统统将将3000H装人装人DPTR,而第二条指令而第二条指令执执行后,系行后,系统则统则把把DPTR中的中的3000H作作为为外部外部RAM的地址,并根据的地址,并根据这这个地址把其中的内容取出送到累加器个地址把其中的内容取出送到累加器A中。有关中。有关DPTR的具体的具体应应用,在后面的程序指令介用,在后面的程序指令介绍绍和和设计设计实验实验中,我中,我们们再来具体介再来具体介绍绍。2.存存储储器器AT89S51单单片机在物理上有片机在物理上有4个存个存储储空空间间:片内程序存片内程序存储储器
38、和片器和片外程序存外程序存储储器、片内数据存器、片内数据存储储器和片外数据存器和片外数据存储储器。合起来器。合起来说说,就是数据存,就是数据存储储器器(RAM)和程序存和程序存储储器器ROM/EPROM)。下一页上一页返回2.1单片机的基本结构单片机的基本结构(1)数据存储器数据存储器RAMAT89S51单片机内部有单片机内部有256字节的字节的RAM。按功能可分为低。按功能可分为低128字节字节(即即128个个8位位)和高和高128字字节两部分。其中,低节两部分。其中,低128字节为用户数据存储单元,高字节为用户数据存储单元,高128字节为特殊功能寄存器字节为特殊功能寄存器SFR存储单元。它
39、们是统一编址的,存储单元。它们是统一编址的,特殊功能寄存器单元只能用于存放控制指令数据,用户只能特殊功能寄存器单元只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据。因此,用户能使用的访问,而不能用于存放用户数据。因此,用户能使用的RAM只有只有128个,它可用于存放读写的数据、运算的中间结果或个,它可用于存放读写的数据、运算的中间结果或用户定义的字型表等。具体来说,内部用户定义的字型表等。具体来说,内部RAM按功能分为便签按功能分为便签区、位寻址区和工作寄存器区三个部分,其具体的分配情况区、位寻址区和工作寄存器区三个部分,其具体的分配情况如如表表2-3所列。所列。特殊功能寄存器如
40、特殊功能寄存器如表表2-4所列。所列。下一页上一页返回2.1单片机的基本结构单片机的基本结构用户可使用的数据存储单元又可以分为三部分用户可使用的数据存储单元又可以分为三部分:工作寄存器区、工作寄存器区、位寻址区和用户位寻址区和用户RAM区。工作寄存器区,地址为区。工作寄存器区,地址为00H-1FH,包括了,包括了4组工作寄存器,每组组工作寄存器,每组8个个RAM字节,标记为字节,标记为R0-R7。位寻址区,地址为。位寻址区,地址为20H-2FH,共,共16字节。这个区域字节。这个区域除了可作为一般除了可作为一般RAM单元进行读写之外,还可以对其中每个单元进行读写之外,还可以对其中每个字节的每一
41、位进行操作。用户字节的每一位进行操作。用户RAM区,地址为区,地址为30H-7FH,共共80字节。这个区域通常应用于堆栈数据的存放。字节。这个区域通常应用于堆栈数据的存放。另外,在使用单片机时,还可以在其片外通过扩展得到另外,在使用单片机时,还可以在其片外通过扩展得到64KB的数据存储器。的数据存储器。下一页上一页返回2.1单片机的基本结构单片机的基本结构(2)程序存储器程序存储器ROM/EPROM程序存储器用于存放用户程程序存储器用于存放用户程序、原始数据或表格。序、原始数据或表格。AT89S51共有共有4096个个8位掩膜位掩膜ROM,也就是说,它有,也就是说,它有4KB的片内的片内ROM
42、和和64KB的片外的片外RIM。它们也是统一编址的,。它们也是统一编址的,CPU的控制器专门提供了一个的控制器专门提供了一个控制信号控制信号EA来区分内部来区分内部ROM和外部和外部ROM的公用地址区,的公用地址区,EA引脚的接法参照前面引脚的说明。引脚的接法参照前面引脚的说明。在程序存储器中,有在程序存储器中,有6个单元具有特殊功能。这个单元具有特殊功能。这6个单元个单元的入口地址分别如下的入口地址分别如下:“0000H-0002H;所有执行程序的入口地址,当单片机所有执行程序的入口地址,当单片机复位后,复位后,CPU总是从总是从0000H单元开始执行程序单元开始执行程序;0003H:外部中
43、断外部中断0的入口地址的入口地址;000BH:定时器定时器0溢出中断入口地址溢出中断入口地址;下一页上一页返回2.1单片机的基本结构单片机的基本结构0013H:外部中断外部中断1的入口地址的入口地址;001BH:定时器定时器1溢出中断入口地址溢出中断入口地址;0023H:串行口中断入口地址。串行口中断入口地址。这些地址在编写程序时,通常是在该地址处存放一条绝对跳这些地址在编写程序时,通常是在该地址处存放一条绝对跳转指令,使程序跳转到用户安排的中断程序起始地址,或是转指令,使程序跳转到用户安排的中断程序起始地址,或是从从0000H起始地址跳转到用户设计的初始程序上。起始地址跳转到用户设计的初始程
44、序上。3.输入输入/输出(输出(I/O)端口)端口I/O端口又称为端口又称为I/O接口,也叫接口,也叫I/O通道或通道或I/O.通路。通路。I/O端口是单片机对外实现控制和信息交换的必经之路,是端口是单片机对外实现控制和信息交换的必经之路,是一个过渡的集成电路,用于信息传送过程中的速度匹配和增一个过渡的集成电路,用于信息传送过程中的速度匹配和增强它的负载能力。强它的负载能力。I/O端口有串行和并行之分,串行端口有串行和并行之分,串行I/O端端口一次只能传送一位二进制信息,并行口一次只能传送一位二进制信息,并行I/O端口一次可以传端口一次可以传送一组二进制信息。送一组二进制信息。下一页上一页返回
45、2.1单片机的基本结构单片机的基本结构(1)并行并行I/O端口端口AT89S51共有四个并行共有四个并行I/O端口,分别端口,分别为为P0,P1,P2和和P3。这些端口都具有双向。这些端口都具有双向I/O功能。即功能。即CPU既可以从四个并行既可以从四个并行I/O端口中的任何一个输出数据,也端口中的任何一个输出数据,也可以通过它们输入数据。可以通过它们输入数据。四个并行四个并行I/O端口在结构上并不相同,因此它们在功能和用端口在结构上并不相同,因此它们在功能和用途上的差异就比较大。途上的差异就比较大。P0口和口和P2口内部均有一个受控制器口内部均有一个受控制器控制的二选一选择电路,因此它们除可
46、以用作通用控制的二选一选择电路,因此它们除可以用作通用I/O口外,口外,还具有特殊的功能。其中还具有特殊的功能。其中P0口可以输出片外存储器的低口可以输出片外存储器的低8位位地址码和读写数据地址码和读写数据;P2口可以输出片外存储器的高口可以输出片外存储器的高8位地址码。位地址码。P1口常作为通用口常作为通用I/O口使用,为口使用,为CPU传送用户数据。传送用户数据。P3口口除可以作为通用除可以作为通用I/O口使用外,还具有第二功能口使用外,还具有第二功能(如如表表2-5所列所列)。下一页上一页返回2.1单片机的基本结构单片机的基本结构(2)串行串行I/O端口与其他普通单片机不同,端口与其他普
47、通单片机不同,AT89S51有两有两个全双工的可编程串行个全双工的可编程串行I/O端口。这些串行端口。这些串行I/O端口既可以端口既可以在程序控制下把在程序控制下把CPU的的8位并行数据变成串行数据一位一位位并行数据变成串行数据一位一位地由发送数据线地由发送数据线TXD或或MISO发送出去,也可以把串行数据发送出去,也可以把串行数据接收线接收线RXD或或MOSI上收到的数据变成上收到的数据变成8位并行数据,并送位并行数据,并送到到CPU。而且,这种串行发送和串行接收既可以单独进行,。而且,这种串行发送和串行接收既可以单独进行,也可以同时进行。也可以同时进行。单片机的串行发送和串行接收是利用了单
48、片机的串行发送和串行接收是利用了P3口的第二功能,口的第二功能,即它利用即它利用P3.1,引脚作为串行数据的发送线,引脚作为串行数据的发送线TXD,利用,利用P3.0引脚作为串行数据的接收线引脚作为串行数据的接收线RXD。另外,。另外,P1.5和和P1.6的复用功能,即的复用功能,即MOSI和和MISO功能引脚,也实现了串功能引脚,也实现了串行数据的接收和发送。行数据的接收和发送。下一页上一页返回2.1单片机的基本结构单片机的基本结构4.定时定时/计数器计数器AT89S51内部有两个内部有两个16位可编程的定时位可编程的定时/计数器,分别为计数器,分别为T0和和T1.8052除了除了T0和和T
49、1外,还有外,还有T3。每一个定时。每一个定时/计计数器都是由高数器都是由高8位位TH和低和低8位位TL拼接而成的,如拼接而成的,如T0就是由就是由TH0和和TL0拼接而成的。拼接而成的。T0和和T1的最大计数模值为的最大计数模值为216-1,有两种工作模式,每种工,有两种工作模式,每种工作模式下又分为若干工作方式。在定时器模式下,作模式下又分为若干工作方式。在定时器模式下,T0和和T1的计数脉冲可以由单片机时钟脉冲经的计数脉冲可以由单片机时钟脉冲经12分频后提供,因此定分频后提供,因此定时时间和单片机时钟频率有关。在计数模式下,时时间和单片机时钟频率有关。在计数模式下,T0和和T1的的计数脉
50、冲可以从计数脉冲可以从P3.4引脚引脚(T0)和和P3.5引脚引脚(T1)上输入。上输入。下一页上一页返回2.1单片机的基本结构单片机的基本结构T0和和T1有两个有两个8位的特殊功能寄存器位的特殊功能寄存器:一个是定时器方式选一个是定时器方式选择寄存器择寄存器TMOD,用于确定工作模式为定时器模式或计数器,用于确定工作模式为定时器模式或计数器模式模式;另一个是定时器控制寄存器另一个是定时器控制寄存器TCON,可以决定定时器或,可以决定定时器或计数器的启动计数器的启动/停止以及中断的控制。停止以及中断的控制。5.中断系统中断系统计算机中的中断是指计算机中的中断是指CPU暂停原程序执行转而为外部设