单片机原理及接口技术授课PPT第章成都大学工业制造学院程跃2AT89S51单片机硬件结构2本章主要内容1.89S51单片机的硬件组成2.89S51的引脚功能3.89S51的CPU4.AT89S51单片机存储器的结构5.AT89S51单片机的并行IO端口6.时钟电路与时序7.89S51工作方式8.89S51单片机最小系统32.189S51单片机的硬件组成89S51=80C31+74LS373+2732P2.0P2.1P2.2P2.3P0.0P0.1P0.2P0.3P0.4P0.5P0.7P0.61817141387431916151219652234567821192223171615141311109202930242322213233343536373839111D7D6D5D4D3D2D1D0Q7Q6Q5Q4Q3Q2Q1Q0A11A10A9A8A7A6A5A4A3A2A1A0O7O6O5O4O3O2O1O0OE/VPPALEPSENGOEGNDGND241218VCCGNDCEEA31GND803127324K×874LS373+5V489C51CPU振荡器和时序OSC64KB总线扩展控制器数据存储器256BRAM/SFR2×16位定时器/计数器可编程I/O程序存储器4KBROM可编程全双工串行口外中断内中断控制并行口串行通信外部时钟源外部事件计数AT89S51单片机结构框图589S51单片机的基本组成一个8位的微处理器CPU。片内数据存储器(RAM128B/256B):用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。片内程序存储器FlashROM(4KB/8KB):用以存放程序、一些原始数据和表格。但有一些单片机内部不带ROM/EPROM,如8031、8032、80C31等。689S51单片机的基本组成四个8位并行I/O(输入/输出)接口P0~P3:每个口可以用作输入,也可以用作输出,还兼有其它复合功能。两个可编程16位定时/计数器:每个定时/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。一个看门狗定时器7一个全双工UART的串行I/O口:可实现单片机与单片机或其它微机之间串行通信。UART:UniversalAsynchronousReceiver/Transmitter,通用异步接收/发送装置片内振荡器和时钟产生电路:但需外接晶振和电容。五个中断源的中断控制系统。889S51采用标准的40引脚双列直插封装(DIP),或PLCC封装2.2AT89S51的引脚功能91.主电源和时钟振荡电路引脚VCC(40脚)运行和程序校验时接+5V电源VSS(20脚)地线XTAL1(19脚)用作晶体振荡电路的反相器输入端,内部接至振荡器的反相放大器。当采用外部时钟时,该引脚作为外部振荡信号的输入端。XTAL2(18脚)用作晶体振荡电路的反相器输出端,内部接至时钟发生器。当采用外部时钟时,对于HMOS单片机,该引脚接收振荡器信号;对于CHMOS单片机,该引脚悬浮。2.2AT89S51的引脚功能102.输入/输出(I/O)引脚P0.0~P0.7(39脚~32脚):8位漏极开路的双向I/O口当使用片外ROM和RAM时,用作低8位地址和数据分时复用。P1.0~P1.7(1脚~8脚):8位带上拉电阻的准双向I/O口在编程/校验期间,用作输入低8位地址。对于8052,P1.0是定时器T2的计数输入端;P1.1是定时器T2的外部输入端。P2.0~P2.7(21脚~28脚):8位带上拉电阻的准双向I/O口当使用片外ROM和RAM时,输出高8位地址。P3.0~P3.7(10脚~17脚):8位带上拉电阻的准双向I/O口P3口具有第二功能在单片机中,“口”是一个集数据输入缓冲、输出驱动及锁存等多项功能于一体的I/O电路。2.2AT89S51的引脚功能11P3各端口引脚与复用功能口线第二功能功能含义P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2INT0外部中断0申请P3.3INT1外部中断1申请P3.4T0定时器/计数器0计数输入P3.5T1定时器/计数器1计数输入P3.6WR外部RAM写选通P3.7RD外部RAM读选通12控制信号引脚RST/VPD(9引脚):RST为复位信号输入端。当RST端保持2个机器周期以上高电平时,单片机完成复位操作。第二功能VPD为内部RAM的备用电源输入端。当主电源VCC发生断电,降到一定电压值时,可通过VPD为单片机内部RAM提供电源,以保护片内RAM中的信息不丢失,上电后能继续正常运行。ALE/PROG(30引脚):ALE为地址锁存允许信号在系统扩展时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存起来,以实现低8位地址和数据的分时传送。由于ALE是以1/6晶振频率的固定频率输出的正脉冲,故可作为外部时钟或外部定时脉冲使用。ALE可驱动8个LSTTL门。第二功能PROG为89C51内部FlashRom编程时的编程脉冲输入端。13控制信号引脚PSEN(29引脚):外部程序存储器(ROM)读选通信号访问外部ROM时,PSEN产生负脉冲作为外部ROM选通信号。访问外部RAM或内部ROM时,不会产生有效的PSEN信号。PSEN可驱动8个LSTTL门。EA/VPP(31引脚):EA为访问程序存储器(ROM)控制信号当EA为高电平时,若访问的地址空间在0~4KB范围内,CPU访问片内ROM;若访问的地址范围超过4KB时,CPU将自动访问外部ROM。EA保持低电平,则访问外部ROM。对于8031,EA必须接地,只能访问外部ROM。第二功能为+12V编程电源输入。142.3AT89S51的CPUCPU是单片机内部的核心部件,完成运算和控制操作。包括运算器、控制器以及若干寄存器等部件组成运算器以算术逻辑单元ALU为核心,加上累加器ACC、寄存器B、暂存器TMP1和TMP2、程序状态寄存器PSW、十进制调整电路及专门用于位操作的布尔处理机组成的。功能:实现数据的算术逻辑运算,位变量处理和数据传送操作。15PSW是一个8位的标志寄存器,它保存指令执行结果的特征信息,以供程序查询和判别。PSW格式及含义如下:CY(PSW.7)——进位标志位AC(PSW.6)——辅助进位(或称半进位)标志F0(PSW.5)——由用户定义的标志位。复位时该位为“0”RS1和RS0(PSW.4和PSW.3)——工作寄存器组选择位OV(PSW.2)——溢出标志位。由硬件置位或清零。PSW.1——未定义位P(PSW.0)——奇偶标志位(A中1的个数:偶0,奇1)位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位标志CYACF0RS1RS0OV/PPSW(程序状态字)16CY是PSW中最为常用的标志位,共有4项功能:在加法运算中存放进位标志,有进位时CY置1,无进位时CY清0;在减法运算中存放借位标志,有借位时CY置1,无借位时CY清0;在位操作中作累加位使用,在位传送和位运算中都要用到CY;在带进位的移位操作中用于构成循环移位通路。【注意】对于加/减运算,无论参与运算的数是带符号数还是无符号数,都按无符号数的原则来设置进/借位标志位CY。CY(PSW.7)——进位标志位PSW(程序状态字)1717①在加/减运算中,当低4位向高4位有进/借位时,AC由硬件置位,否则AC被清0。②在进行十进制数运算时需要十进制调整,此时要用到AC位的状态进行判断。AC(PSW.6)——半进位标志位F0(PSW.5)——用户标志位由用户定义使用的标志位。用户可根据需要用软件方法置位或复位。PSW(程序状态字)18这两个选择位的状态由软件设置,被选中的工作寄存器组即为当前工作寄存器组。RS1和RS0(PSW.4和PSW.3)——工作寄存器组选择位RS1RS0所选寄存器组R0~R7地址00第0组00H~07H01第1组08H~0FH10第2组10H~17H11第3组18H~1FHP(PSW.0)——奇偶标志位①表明累加器A中1的个数的奇偶性:若1的个数为偶数,则P=0;若1的个数为奇数,则P=1。②在每个指令周期由硬件根据A的内容对P位进行置位或复位。PSW(程序状态字)19①在加/减运算中,如果OV=1,则表示运算结果超出了累加器A所能表示的符号数的有效范围(-128~+127),运算结果是错误的,即产生了溢出;否则,OV=0,则表示运算结果正确,即未产生溢出。溢出的判断:OV=C6⊕C7②在乘法运算中,OV=1表示乘积超过255,即乘积分别在B(高8位)与A(低8位)中;否则,OV=0表示乘积只在A中。③在除法运算中,OV=1表示除数为0,除法不能进行;否则,OV=0表示除数不为0,除法可正常进行。【注意】对于加/减运算,无论参与运算的数是带符号数还是无符号数,都按带符号数的原则来设置溢出标志位。OV(PSW.2)——溢出标志位PSW(程序状态字)20(1)程序计数器PC(16位)(2)指令寄存器IR及指令译码器ID(3)振荡器和定时电路控制器控制器的主要任务是识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分自动协调的工作。主要包括:21(1)程序计数器PC(16位)由两个8位计数器PCH、PCL组成。PC是程序的字节地址计数器,PC内容为将要执行的指令地址。改变PC内容,改变执行的流向。PC可对64KB的ROM直接寻址,也可对89S51片内RAM寻址。22(2)指令寄存器IR及指令译码器ID由PC中的内容指定ROM地址,取出来的指令经IR送至ID,由ID对指令译码产生一定序列的控制信号,以执行指令所规定的操作。(3)振荡器和定时电路89C51单片机片内有振荡电路,只需外接石英晶体和频率微调电容(2个30pF左右),其频率范围为1.2MHz~12MHz。该信号作为89C51工作的基本节拍即时间的最小单位。2389S51单片机的存储器组织结构与一般微机不同:一般微机通常是程序和数据共用一个存储空间,属于VonNeumann结构(冯·诺依曼型)89S51单片机把程序存储器空间和数据存储器相互分离开来,属于Harvard结构(哈佛型)2.4AT89S51单片机存储器的结构2424存储器ALU)算逻部件(ALU)控制部件中央处理器CPU输入/输出部件输入/输出部件算逻部件(ALU)控制部件中央处理器CPU程序存储器数据存储器单片机体系结构冯·诺依曼型哈佛型2589S51存储器程序存储器ROM数据存储器RAM片内程序存储器片外程序存储器片内数据存储器片外数据存储器AT89S51单片机存储器的结构2689S51的存储器组织分3个不同的存储地址空间:64KB的程序存储器地址空间(包括片内ROM和片外ROM)64KB的外部数据存储器地址空间256B的内部数据存储器地址空间汇编语言对这3个不同的存储器空间进行数据传送时,必须分别采用3种不同形式的指令。27内部ROM4KBEA=1外部ROM4KBEA=0内部RAM128B0FFFH0000H0FFFH0000HFFFFH1000H外部RAM64KB特殊功能寄存器(21个SFR)外部ROM60KBFFH80H7FH00H程序存储器地址空间数据存储器地址空间FFFFH0000H(MOV指令操作域)(MOVX指令操作域)(MOVC指令操作域)89S51单片机存储器组织结构28程序存储器(ROM)ROM用于存放程序及表格常数,读取ROM的指令为“MOVC”。89C51片内有4KB的ROM,外部可用16位地址线扩展到最大64KB的ROM空间。片内ROM和外部扩展ROM是统一编址的。29当芯片引脚EA为高电平时,程序计数器PC在0000H~0FFFH(4KB)地址时从内部ROM取指令,超过4KB时,CPU自动转向外部ROM执行程序。如果EA为低电平(接地)