单片机原理与基本应用系统PPT讲稿.ppt
1第1页,共68页,编辑于2022年,星期五MCS-51单片机的结构和原理n本章主要介绍MCS-51系列的8051的基本结构、工作原理、存储器结构、P0、P1、P2、P3四个I/O口的基本工作原理和操作特点。单片机的各种工作方式、单片机的时序等。2第2页,共68页,编辑于2022年,星期五任务一 单灯闪烁【任务目的】认识【任务目的】认识89C5189C51单片机芯片,学习单片机芯片,学习WAVEWAVE软件的使用方法、软件的使用方法、学习单片机学习单片机I/OI/O接口的控制方法。接口的控制方法。【任务描述】用单片机的【任务描述】用单片机的P1.0P1.0控制控制1 1只只LEDLED灯,使其闪烁,变化时间灯,使其闪烁,变化时间间隔为间隔为0.2s0.2s。1 1电路原理图电路原理图单灯闪烁电路原理图如图单灯闪烁电路原理图如图2-12-1所示。所示。3第3页,共68页,编辑于2022年,星期五任务一 单灯闪烁图图2-1 2-1 单单灯灯闪烁电闪烁电路原理路原理图图4第4页,共68页,编辑于2022年,星期五nb b 编程思路编程思路n(1)硬件控制对象是谁?编程要用到脚的名字 叫“P1.0”。记住它,类似这样的名字以后还有很多。n(2)用什么语言控制?名字有了,但又怎样让它变“高”或变“低”呢?叫人做事,说一声就可以,这叫发布命令。要单片机做事,也得要向单片机发命令,计算机能听得懂的命令称之为计算机的指令。n(3)关键指令 要P1.0输出高电平,则指令应为:SETB P1.0;要P1.0输出低电平,则指令应为:CLR P1.0。让某个引脚输出低电平的指令是:CLR。让某个引脚输出高电平的指令是:SETB。5第5页,共68页,编辑于2022年,星期五2 2参考程序参考程序 ORG ORG 0000H0000H LJMP LJMP 1000H1000H ORG ORG 1000H1000H START:START:CLR CLR P1.0 ;P1.0 ;从从P1.0P1.0引脚输引脚输 出低电平出低电平LEDLED亮亮 LCALL LCALL DELAY ;DELAY ;延时延时0.2s0.2s SETB SETB P1.0 ;P1.0 ;从从P1.0P1.0引脚输引脚输 出高电平出高电平LEDLED灭灭 LCALL LCALL DELAY ;DELAY ;延时延时0.2s0.2s AJMP AJMP START ;START ;重新开始重新开始 DELAY:DELAY:MOV MOV R5,#4 ;R5,#4 ;延时子程序延时子程序,延延 时时间为时时间为0.2S0.2S 任务一 单灯闪烁6第6页,共68页,编辑于2022年,星期五 D1:D1:MOV MOV R6,#20R6,#20 D2:D2:MOV MOV R7,123R7,123 NOPNOP DJNZ R7,$DJNZ R7,$DJNZ R6,D2 DJNZ R6,D2 DJNZ R5,D1 DJNZ R5,D1 RET RET END END7第7页,共68页,编辑于2022年,星期五(4)单片机怎么理解你的程序?单片机看不懂SETB、CLR之类的指令,得把指令翻译成计算机能懂的方式,再让计算机去读。计算机能懂什么呢?它只懂一样东西 数字。得把“CLR P1.0”变为:C2H、90H,至于为什么是这两个数字,这也是由51芯片的设计者INTEL规定的。这样的代码有两种方式可以得到:人工查表和机器编译。CLR P1.0 C2H、90H 8第8页,共68页,编辑于2022年,星期五n(5)编写好的程序放在哪儿?(写片)通过编程器可将“C2H、90H”这样的代码写入到单片机中,然后将单片机放入到应用电路板中方可运行。SUPERPRO L+编程器缓冲区界面如下:9第9页,共68页,编辑于2022年,星期五通过任务发现的问题通过任务发现的问题1 1、单片机芯片有哪些?、单片机芯片有哪些?2 2、单片机芯片怎样才能工作?直接电源行吗?、单片机芯片怎样才能工作?直接电源行吗?3 3、我们编写的程序放在哪儿?在哪儿运行的?、我们编写的程序放在哪儿?在哪儿运行的?4 4、程序(指令)又是怎么被单片机认识的?、程序(指令)又是怎么被单片机认识的?5 5、单片机又是通过什么控制外部设备的?、单片机又是通过什么控制外部设备的?10第10页,共68页,编辑于2022年,星期五1 1、单片机芯片有哪些?、单片机芯片有哪些?各种类型的单片机芯片介绍。各种类型的单片机芯片介绍。11第11页,共68页,编辑于2022年,星期五1 常用单片机系列简介1.1 MCS-511.1 MCS-51系列系列 (1 1)MCS-51MCS-51是是IntelIntel公司在公司在19801980年生年生产产的的一个高性能一个高性能单单片机系列的名称。属于片机系列的名称。属于这这一系一系列的列的单单片机有多种,如:片机有多种,如:8051/8751/80318051/8751/8031;8052/8752/80328052/8752/8032;80C51/87C51/80C3180C51/87C51/80C31 80C52/87C52/80C3280C52/87C52/80C32等等。12第12页,共68页,编辑于2022年,星期五(2)该系列生产工艺有两种:)该系列生产工艺有两种:CHMOS是是CMOS和和HMOS的的结结合合,既既保保持持了了HMOS高高速速度度和和高高密密度度的的特特点点,还还具具有有CMOS的的低低功功耗耗的的特特点点。在在产产品品型型号号中中凡凡带带有有字字母母“C”的的即即为为CHMOS芯芯片片,CHMOS芯芯片片的的电电平平既与既与TTL电平兼容,又与电平兼容,又与CMOS电平兼容。电平兼容。一一是是HMOS工工艺艺(高高密密度度短短沟沟道道MOS工工艺艺)。二二是是CHMOS工工艺艺(互互补补金金属属氧氧化化物物的的HMOS工艺)。工艺)。13第13页,共68页,编辑于2022年,星期五(3)在功能上,该系列单片机有基本型)在功能上,该系列单片机有基本型和增强型两大类:和增强型两大类:增强型增强型:8052/8752/803280C52/87C52/80C32基本型基本型:8051/8751/803180C51/87C51/80C3114第14页,共68页,编辑于2022年,星期五(4)在在片片内内程程序序存存储储器器的的配配置置上上,该该系系列列单单片片机机有有三三种种形形式式,即即掩掩膜膜ROM、EPROM和和ROMLess(无无片片内内程程序存储器序存储器)。如:。如:80C51有有4K字节的掩膜字节的掩膜ROM;87C51有有4K字节的字节的EPROM;80C31在芯片内无程序存储器。在芯片内无程序存储器。15第15页,共68页,编辑于2022年,星期五1.2 80C511.2 80C51系列系列 Intel的的:80C31、80C51、87C51,80C32、80C52、87C52等;等;ATMEL的:的:89C51、89C52、89C2051等;等;Philips、华华邦、邦、Dallas、Siemens等公司的等公司的许许多多产产品品。80C51系系列列是是在在MCS-51系系列列单单片片机机的的基基础础上上发发展展起起来来的的,许许多多著著名名厂厂商商以以MCS-51系系列列的的8051为为基基核核开开发发出出的的大大量量的的CMOS工工艺艺的的单单片片机机产产品品,我我们们常常把把其其统统称称为为80C51系系列列。当当前前常常用用的的80C51系列系列单单片机主要片机主要产产品有:品有:16第16页,共68页,编辑于2022年,星期五1.2.1 80C511.2.1 80C51系列的基本系列的基本结结构构17第17页,共68页,编辑于2022年,星期五1.2.2 80C511.2.2 80C51系列的系列的应应用模式用模式 一、一、总线型单片机应用模式总线型单片机应用模式总线型应用的总线型应用的“三总线三总线”模式模式 非总线型应用的非总线型应用的“多多I/O”模式模式 18第18页,共68页,编辑于2022年,星期五 二、非总线型单片机应用模式二、非总线型单片机应用模式 非总线型单片机已经将用于外部总线扩非总线型单片机已经将用于外部总线扩展用的展用的I/OI/O口线和控制功能线去掉,从而使口线和控制功能线去掉,从而使单片机的单片机的引脚数减少、体积减小引脚数减少、体积减小。对于不。对于不需进行并行外围扩展,装置的体积要求苛需进行并行外围扩展,装置的体积要求苛刻且程序量不大的系统极其适合。非总线刻且程序量不大的系统极其适合。非总线型单片机典型产品如:型单片机典型产品如:AT89C2051/AT89C4051AT89C2051/AT89C4051。19第19页,共68页,编辑于2022年,星期五1.3 80C51典型典型产产品品资资源配置与引脚源配置与引脚1.3.1 80C51典型产品资源配置20第20页,共68页,编辑于2022年,星期五由表可见:由表可见:(1)增强型与基本型在以下几点不同:)增强型与基本型在以下几点不同:片内片内ROM字节数:从字节数:从4K增加到增加到8K;片内片内RAM字节数:从字节数:从128增加到增加到256;定时定时/计数器从计数器从2个增加到个增加到3个个;中断源由中断源由5个增加到个增加到6个个。21第21页,共68页,编辑于2022年,星期五(2)片内)片内ROM的配置形式的配置形式无无ROMROM(即(即ROMLessROMLess)型,)型,应应用用时时要在片外要在片外扩扩展程序存展程序存储储器,适用于研制新器,适用于研制新产产品;品;片内片内掩膜掩膜ROMROM(即(即MaskROMMaskROM)型,用户程序由芯片生)型,用户程序由芯片生产厂写入,其内容不能更改产厂写入,其内容不能更改;片内片内 EPROMEPROM型,用户程序通过写入装置按规定的方型,用户程序通过写入装置按规定的方法多次写入,通过紫外线照射法多次写入,通过紫外线照射20min20min左右擦除;左右擦除;片内片内 FlashROM FlashROM型,闪速存储器型,闪速存储器,用户程序可以电用户程序可以电写入或擦除(当前常用方式),开发过程中修改更容写入或擦除(当前常用方式),开发过程中修改更容易。易。片内片内 E E2 2PROMPROM型型,电可擦除的可编程电可擦除的可编程程序程序存储器;存储器;22第22页,共68页,编辑于2022年,星期五1.3.2 80C511.3.2 80C51的引脚封装的引脚封装总线型总线型非总线型非总线型23第23页,共68页,编辑于2022年,星期五1 1.3.3.3.3 AT89AT89系列单片机性能及结构系列单片机性能及结构 n 该系列单片机是1998年以后出现的80C51系列单片机的一个新的分支,采用了高性能的静态8051为内核来设计,以先进的CMOS工艺制造并带有非易失性的Flash程序存储器,具有32条I/O口线,6输入4优先级的嵌套中断结构,1个串口(用于多机通信、I/O扩展或全双工串行UART),片内有振荡和时钟电路。n AT89系列单片机的主要特性:是以8051为核心的单片机,89S51/89S52/89S54/89S58是这个系列的主要型号,分别具有4KB/8KB/16KB/32KB的Flash程序存储器,89S51与89S52/89S54/89S58分别具有128B/256B的数据存储器,其存储器寻址范围为64KB,工作频率为33MHz,计算速度更快,具有ISP(在线更新)功能,集成了看门狗功能等。24第24页,共68页,编辑于2022年,星期五2 2、单片机芯片怎样才能工作?直、单片机芯片怎样才能工作?直接电源行吗?接电源行吗?单片机芯片的结构、管脚功能、单片机芯片的结构、管脚功能、单片机最小应用系统。单片机最小应用系统。25第25页,共68页,编辑于2022年,星期五1.4 1.4 AT89S51单片机内部结构(1)一个)一个8位的位的CPU;(2)一个片内振荡器及时钟电路;)一个片内振荡器及时钟电路;(3)4KB的的Flash ROM;(4)128B的内部的内部RAM(5)可扩展)可扩展64KB外部外部ROM和外部和外部 RAM的控制电路;的控制电路;(6)两个十六位的定时)两个十六位的定时/计数器;计数器;(7)26个特殊功能寄存器(双数据个特殊功能寄存器(双数据 指针);指针);(8)4个个8位的并行口;位的并行口;(9)一个全双工的串行口;)一个全双工的串行口;(10)5个中断源,两个外部中断,个中断源,两个外部中断,三个三个内部中断;内部中断;(11)内部硬件看门狗电路;)内部硬件看门狗电路;(12)一个)一个SPI串行接口,用于芯片串行接口,用于芯片 的在线系统的在线系统编程(编程(ISP)。)。26第26页,共68页,编辑于2022年,星期五 a、AT89S51的微处理器(的微处理器(CPU)(1)运算器(算术运算逻辑单元)运算器(算术运算逻辑单元ALU)累加器累加器ACC;寄存器寄存器B;程序状态字寄存器程序状态字寄存器PSW。(2)控制器)控制器程序计数器程序计数器PC;指令寄存器指令寄存器IR;指令译码器指令译码器ID;定时与控制逻辑电路定时与控制逻辑电路PLA。27第27页,共68页,编辑于2022年,星期五b、AT89S51的片内存储器的片内存储器P17 在物理上设计成在物理上设计成程序存储器程序存储器和和数据存储器数据存储器两个两个独立的空间独立的空间(称为(称为哈佛结构哈佛结构):):内部内部ROM容量容量4K字节字节 范围是:范围是:0000H0FFFH 内部内部RAM容量容量128字节字节 范围是:范围是:00H7FH28第28页,共68页,编辑于2022年,星期五c、AT89S51的的I/O口及功能单元口及功能单元n四个四个8位的并行口,即位的并行口,即P0P3。它们均为双。它们均为双向口,既可作为输入,又可作为输出。每个向口,既可作为输入,又可作为输出。每个口各有口各有8条条I/O线线;n有一个全双工的串行口有一个全双工的串行口(利用(利用P3口的两个引口的两个引脚脚P3.0和和P3.1););n有有2个个16位的定时位的定时/计数器计数器;n有有1套完善的中断系统套完善的中断系统,5个中断源。个中断源。n一个一个SPI串行接口,用于芯片的在线系统串行接口,用于芯片的在线系统编程(编程(ISP)。29第29页,共68页,编辑于2022年,星期五d d、AT89S51(8051)的特殊功能寄存器(的特殊功能寄存器(SFRSFR)P20n内部有内部有SPSP,DPTRDPTR(可分成(可分成DPHDPH、DPLDPL两个两个8 8位寄存器)位寄存器),PCONPCON,IEIE,IPIP等等26(21)26(21)个特殊功能寄存器单个特殊功能寄存器单元,元,它们同内部它们同内部RAMRAM的的128128个字节统一编址,地个字节统一编址,地址范围是址范围是80H80HFFHFFH。这些。这些SFRSFR只用到了只用到了80H80HFFHFFH中的中的26(21)26(21)个字节单元,且这些单元是离散分个字节单元,且这些单元是离散分布的。布的。30第30页,共68页,编辑于2022年,星期五1.4.1.4.1、电源 VCC(P40)芯片电源,接+5V。VSS(P20)接电源地。AT89S51单片机引脚功能P1431第31页,共68页,编辑于2022年,星期五1.4.1.4.2、时钟XTAL1(P19)晶体振荡电路的反相器 输入端XTAL2(P18)晶体振荡电路的反相器 输出端。使用内部振荡电路时,该引脚外接石英晶体使用内部振荡电路时,该引脚外接石英晶体和补偿电容。使用外部振荡输入时从和补偿电容。使用外部振荡输入时从XTAL2输入,输入,此时此时XTAL1需接地。需接地。32第32页,共68页,编辑于2022年,星期五 AT89S51的时钟产生方式的时钟产生方式(P24)内时钟方式 如图所示,XTAL1接地,XTAL2接外部振荡器。外时钟方式 如上面左图所示:XTAL1接地,XTAL2接外部振荡器。由于XTAL2端的电平不是TTL电平,故接一个上拉电阻。外部振荡器的频率应低于24/33MHz。如上面右图所示:XTAL1接外部振荡器,XTAL2悬空悬空33第33页,共68页,编辑于2022年,星期五 1.机器周期和指令周期机器周期和指令周期 (1)时时钟钟周周期期:也也称称振振荡荡周周期期,是是指指为为单单片片机机提提供供时时钟钟脉脉冲冲信信号号的振荡源的振荡脉冲的周期,又称的振荡源的振荡脉冲的周期,又称节拍节拍(P1)。(2)状状态态周周期期:每每个个状状态态周周期期为为时时钟钟周周期期的的 2 倍倍(P1,P2),是是振振荡周期经二分频后得到的。荡周期经二分频后得到的。(3)机机器器周周期期:一一个个机机器器周周期期包包含含 6 个个状状态态周周期期(S1S6),也也就就是是 12 个个时时钟钟周周期期。在在一一个个机机器器周周期期内内,CPU可可以以完完成成一一个个独独立的操作。立的操作。(4)指令周期指令周期:它是指它是指CPU完成一条操作所需的全部时间。完成一条操作所需的全部时间。每条每条指令执行时间都是有一个或几个机器周期组成。指令执行时间都是有一个或几个机器周期组成。MCS-51 系列单片机系列单片机中中,有单周期指令、双周期指令有单周期指令、双周期指令 和四周期指令。和四周期指令。单片机工作的时序概念单片机工作的时序概念34第34页,共68页,编辑于2022年,星期五思考题:若采用12MHZ晶振,各周期是多少?n振荡周期1/fosc=1/12MHZ=0.0833usn 35第35页,共68页,编辑于2022年,星期五AT89S51的时钟信号的时钟信号一个一个机器周期机器周期包含包含12个晶荡周期或个晶荡周期或6个时钟周期个时钟周期 指令长度指令长度13个字节,指令的执行时间称作个字节,指令的执行时间称作指令周期指令周期(单、双、四机器周期)36第36页,共68页,编辑于2022年,星期五 AT89S51的典型时序的典型时序 各指令的微操作在时间上有严格的次序,这种各指令的微操作在时间上有严格的次序,这种微微操作的时间次序操作的时间次序我们称作我们称作时序。时序。单字节指令单字节指令 双字节指令双字节指令a、单周期指令时序、单周期指令时序37第37页,共68页,编辑于2022年,星期五 2个机器周期中个机器周期中ALE信号有效信号有效4次(即发生了次(即发生了4次读操作码次读操作码的操作),后的操作),后3次作无效。次作无效。b、单字节、单字节双双周期指令时序周期指令时序38第38页,共68页,编辑于2022年,星期五1.4.3 控制 控制引脚有4个,先学习其中的两个。(1)RST/VPD(9脚)复位/备用电源 RST复位功能是单片机正常工作必不可少的,因为复位可以使单片机从程序的开头运行,使单片机按照人们设计的程序运行,在单片机系统上电开始工作,或单片机系统由于外界干扰偏离正常运行,都需要复位。AT89S51单片机是高电平复位,只要在该引脚上一段时间(两个机器周期以上两个机器周期以上)的高电平高电平,单片机就复位。在正常运行程序时该引脚为低电平。VPD功能是在VCC掉电情况下,该引脚接备用电源,向片内的RAM供电,使RAM中的数据不丢失。39第39页,共68页,编辑于2022年,星期五a、复位电路、复位电路(P25)复位复位目的是使单片机或系统中的其它部件目的是使单片机或系统中的其它部件处于某种确定处于某种确定的初始状态。的初始状态。上电复位电路上电复位电路 按键与上电复位按键与上电复位 40第40页,共68页,编辑于2022年,星期五b、单片机复位后的状态、单片机复位后的状态PC=0000H,所以程序从,所以程序从0000H地址单元开始执行地址单元开始执行;启动后,片内启动后,片内RAM为随机值,运行中的复位操作不改变片为随机值,运行中的复位操作不改变片内内RAM的内容的内容;特殊功能寄存器复位后的状态是确定的特殊功能寄存器复位后的状态是确定的:nP0P3=FFH,各口可用于输出,也可用于输入;,各口可用于输出,也可用于输入;nSP=07H,第一个入栈内容将写入,第一个入栈内容将写入08H单元;单元;nIP、IE和和PCON的的有效位为有效位为0,各中断源处于低优先级,各中断源处于低优先级且均被关断、串行通讯的波特率不加倍;且均被关断、串行通讯的波特率不加倍;nPSW=00H,当前工作寄存器为,当前工作寄存器为0组。组。41第41页,共68页,编辑于2022年,星期五(2)EA/VPP(31脚)内外ROM选择 在通常的应用中EA功能是作为内部和外部ROM的选择端。当EA=1,CPU从芯片内部的内部的ROM中取指令运行,但超过超过4KB范围的程序,也从外部扩展的ROM中取得。反之当EA=0时,只从芯片外部扩展的外部扩展的ROM中取指令运行。在绝大多数的应用中,4KB空间范围足够存放程序,一般都选择内部ROM,将EA接高电平。VPP功能是在我们要把程序下载到内部ROM中才用到的功能,只有设计制造编程器时考虑,一般情况用不到。42第42页,共68页,编辑于2022年,星期五()ALE/PROG(30脚)地址锁存允许/编程脉冲输入信号 当CPU访问片外存储器时,ALE用于锁存锁存P0口输出的低口输出的低8位地址信息到片外地址锁存器位地址信息到片外地址锁存器。之后,P0口作地址/数据复用口。P0口的信息究竟是地址还是数据完全由ALE来判别,ALE高电平期间,P0口出现的是地址信息地址信息,ALE下降沿下降沿到来时,P0口上的地址信息被锁存,在ALE低电平低电平期间P0口上出现指令和数据信息指令和数据信息。对单片机内部程序存储器编程时为输入脚 43第43页,共68页,编辑于2022年,星期五1.4.1.4.4 4 I/O口 AT89S51单片机有4个8位的并行口,分别称为P0口、P1口、P2口和P3口,共32个引脚。单片机就是通过这些口线对外部电路进行控制和检测。44第44页,共68页,编辑于2022年,星期五3 3、我们编写的程序放在哪儿?在、我们编写的程序放在哪儿?在哪儿运行的?哪儿运行的?单片机的存储器结构、功能,单片机的存储器结构、功能,以及如何使用。以及如何使用。45第45页,共68页,编辑于2022年,星期五2、单片机存储空间配置(P17)存储器就是用来存放数据的地方。它是利用存储器就是用来存放数据的地方。它是利用电平的高电平的高低低来存放数据的。也就是说,它存放的实际上是电平的高、来存放数据的。也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的低,而不是我们所习惯认为的1234这样的数字。这样的数字。一个存储器单元就似一个个的小抽屉,一个小抽屉里一个存储器单元就似一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放有八个小格子,每个小格子就是用来存放电荷电荷的,的,电荷电荷通通过与它相连的过与它相连的电线电线传进来或释放掉。存储器中的每个小抽屉传进来或释放掉。存储器中的每个小抽屉就是一个存放数据的地方,称之为一个就是一个存放数据的地方,称之为一个“存储单元存储单元”。要在一个存储单元中放入数据要在一个存储单元中放入数据12,即放入:,即放入:00001100。可见,只要把第二号和第三号小格子里存满。可见,只要把第二号和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了。电荷,而其它小格子里的电荷给放掉就行了。46第46页,共68页,编辑于2022年,星期五AT89S51存储器采用哈佛型结构可以分成两大类:存储器采用哈佛型结构可以分成两大类:RAM,CPU在运行时能随时进行数据的写入和在运行时能随时进行数据的写入和读出,但在关闭电源时,其所存储的信息将丢失。读出,但在关闭电源时,其所存储的信息将丢失。它用来存放暂时性的输入输出数据、运算的中间结它用来存放暂时性的输入输出数据、运算的中间结果或用作堆栈。果或用作堆栈。ROM是一种写入信息后不易改写的存储器。断电是一种写入信息后不易改写的存储器。断电后,后,ROM中的信息保留不变。用来存放固定的程序中的信息保留不变。用来存放固定的程序或数据,如系统监控程序、常数表格等。或数据,如系统监控程序、常数表格等。47第47页,共68页,编辑于2022年,星期五内部ROM(4KB)EA=1外部ROM(4KB)EA=0外部ROM(60KB)内部RAM128BSFR(26个)外部RAM(64KB)0000H0000H0000H0FFFH0FFFH1000HFFFFHFFFFHFFH00H7FH80HMOVC指令操作指令操作MOV指令操作指令操作MOVX指令操作指令操作ROM地址空间地址空间RAM地址空间地址空间48第48页,共68页,编辑于2022年,星期五2.2.1 程序存储器(ROM)8051/AT89S51的程序存储器空间,片内ROM/Flash ROM为4KB,地址为0000H0000H0FFFH0FFFH,片外最多可扩展至64KB64KB的的ROM/Flash ROMROM/Flash ROM,地址1000H1000HFFFFHFFFFH,片内外是统一编址的。当31引脚接高电平时,AT89S51的PC在0000H0FFFH范围内执行片内ROM中的程序;当PC超过0FFFH时,就自动转向片外ROM取指令。当接低低电电平平时,AT89S51片内片内ROMROM不起不起作用作用,CPU只能从片外ROM/EPROM中取指令.注:不管是内部的还是外部的注:不管是内部的还是外部的ROM,开头的,开头的0003H002AH空间地址是中断源的入口地址区,是专用单元,一般情况下用空间地址是中断源的入口地址区,是专用单元,一般情况下用户不能用来存放其它程序。户不能用来存放其它程序。49第49页,共68页,编辑于2022年,星期五n 单片机上电复位上电复位后,程序计数器指针PC为0000H,故CPUCPU总是从总是从0000H0000H开始执行程序开始执行程序。若用户编写的主程序或初始化程序不从此地址开始,则应在0000H单元内存放一条绝对跳转指令,将PC转向主程序或初始化程序的入口地址。n CPU是根据PC(程序计数器)(程序计数器)值从ROM中取指指令令来执行的。CPU每从ROM中读取一个字节,自动执行(PC)+1PC,即PC指向下一个地址空间,一般情况下CPU是按是按ROM地址空间顺序从小到大依地址空间顺序从小到大依次执行次执行。只有执行的指令是转移类指令,才根据转移类指令所指示的新地址,调整PC值,然后根据新的PC值从对应的地址空间中取指令来执行。n 当调用子程序或中断调用子程序或中断发生时,PC值也会改变。50第50页,共68页,编辑于2022年,星期五2.2 内部数据存储器(内RAM)P19AT89S51单片机内部有128B字节划分为三部分:工作寄存器区、位寻址区和数据缓冲区。CyACF0RS1 RS0OVF1P0区区1区区2区区3区区位寻址位寻址区区数据数据缓冲缓冲区区工作寄存器区工作寄存器区8位整体操作位整体操作位寻址区位寻址区8位整体操作、位操作位整体操作、位操作堆栈与数据缓冲区堆栈与数据缓冲区8位整体操作位整体操作0007H080FH1017H181FH202FH位地址位地址D7D0PSW07H 06H 05H 04H03H 02H 01H 00HD7D020H(字节地址)(字节地址)(R0R7)307FH51第51页,共68页,编辑于2022年,星期五 在任一时刻只有一个区作为当前的工作寄存器区,相应的空间单在任一时刻只有一个区作为当前的工作寄存器区,相应的空间单元作为工作寄存器使用,表示元作为工作寄存器使用,表示R0R7。不是当前工作寄存器区的可以作为一般的RAM空间使用。操作方式:操作方式:8位整体操作。位整体操作。(1)工作寄存器区工作寄存器区 低端低端32个字节分成个字节分成4个工作寄存器组,每组个工作寄存器组,每组8个单元。个单元。当前工作当前工作寄存器组的机制寄存器组的机制便于快速现场保护。便于快速现场保护。PSW的的RS1、RS0 决定当前工作寄存器组号决定当前工作寄存器组号 n寄存器0组:地址00H07H;寄存器1组:地址08H0FH;n寄存器2组:地址10H17H;寄存器3组:地址18H1FH。52第52页,共68页,编辑于2022年,星期五(2)位寻址区 20H2FH共计16个单元个单元为位寻址区位寻址区,每个单元的8位可进行位操作位操作,有位的置1、清0、取反以及判断等操作等指令。位地址位地址的范围:007FH。(要注意和内RAM空间单元地址的区别)位寻址区空间单元操作的有两种方法,即可以象其它RAM空间一样进行8位整体操作位整体操作,也可以通过位地址对这些空间单元的某一位进某一位进行操作行操作。53第53页,共68页,编辑于2022年,星期五字节字节地址地址位位 地地 址址D7D6D5D4D3D2D1D02FH7FH7EH7DH7CH7BH7AH79H78H2EH77H76H75H74H73H72H71H70H2DH6FH6EH6DH6CH6BH6AH69H68H2CH67H66H65H64H63H62H61H60H2BH5FH5EH5DH5CH5BH5AH59H58H2AH57H56H55H54H53H52H51H50H29H4FH4EH4DH4CH4BH4AH49H48H28H47H46H45H44H43H42H41H40H27H3FH3EH3DH3CH3BH3AH39H38H26H37H36H35H34H33H32H31H30H25H2FH2EH2DH2CH2BH2AH29H28H24H27H26H25H24H23H22H21H20H23H1FH1EH1DH1CH1BH1AH19H18H22H17H16H15H14H13H12H11H10H21H0FH0EH0DH0CH0BH0AH09H08H20H07H06H05H04H03H02H01H00H位寻址区的位地址映象表位寻址区的位地址映象表(表表2-5)54第54页,共68页,编辑于2022年,星期五位寻址区的位地址形式有两种:位地址和位编号。位地址07H 06H 05H 04H 03H 02H 01H 00HD7D020H(字节地址)如如20H单元的单元的8个位个位位地址为:位地址为:00H07H位编号为:位编号为:20H.020H.7 它们的含义是一致的,都表示它们的含义是一致的,都表示20H单元的位地址,在应用单元的位地址,在应用中可以互换,位编号更便于记忆。中可以互换,位编号更便于记忆。55第55页,共68页,编辑于2022年,星期五(3)堆栈与数据缓冲区)堆栈与数据缓冲区 30H7FH共共80个字节个字节为数据缓冲区,用为数据缓冲区,用于存放数据和中间结果,起到数据缓冲的作用,于存放数据和中间结果,起到数据缓冲的作用,这些空间数据的操作是这些空间数据的操作是8位的整体操作位的整体操作。在实际应用中,常需在在实际应用中,常需在RAM区设置堆栈。区设置堆栈。AT89S51的的堆栈一般设在堆栈一般设在30H7FH的范围内的范围内。栈顶的位置由栈顶的位置由SP寄存器指示。寄存器指示。复位时复位时SP的初的初值为值为07H,在系统初始化时可以重新设置。,在系统初始化时可以重新设置。56第56页,共68页,编辑于2022年,星期五(3)特殊功能寄存器(特殊功能寄存器(SFRSFR)单片机的状态字、并行口、串行口、定时器和中断系统单片机的状态字、并行口、串行口、定时器和中断系统的寄存器等,是一些有的寄存器等,是一些有专门用途的寄存器专门用途的寄存器,称为特殊功能,称为特殊功能寄存器寄存器SFRSFR,离散离散地分布在地分布在80H80HFFHFFH地址范围内。地址范围内。SFRSFR操作同内部操作同内部RAMRAM的操作的操作,其中,其中字节地址能被字节地址能被8 8整除整除的的特殊功能器,它们的每一位也有自己的特殊功能器,它们的每一位也有自己的位地址位地址,也可以进行,也可以进行位操作。字节地址不能被位操作。字节地址不能被8 8整除的特殊功能寄存器,只能整除的特殊功能寄存器,只能8 8位的位的整体操作。整体操作。8 8位整体操作既可以对它们的字节地址操作,也可以位整体操作既可以对它们的字节地址操作,也可以对它们的符号(名称)操作。对它们的符号(名称)操作。57第57页,共68页,编辑于2022年,星期五a、与运算器相关的寄存器(、与运算器相关的寄存器(3个)个)n累加器累加器ACC,8位。累加器位。累加器ACC是单片机最常用的寄存是单片机最常用的寄存器,许多指令都用到累加器,特别是算术运算都需要用器,许多指令都用到累加器,特别是算术运算都需要用到到,用于向用于向ALU提供操作数,许多运算的结果也存放在累提供操作数,许多运算的结果也存放在累加器中加器中,在指令中在指令中ACC简写为简写为A;n寄存器寄存器B,8位。主要用于乘、除法运算。也可以作位。主要用于乘、除法运算。也可以作为为RAM的一个单元使用;的一个单元使用;58第58页,共68页,编辑于2022年,星期五程序状态字寄存器程序状态字寄存器PSW,PSW反映的程序运反映的程序运行的状态,其结构和含义如下表所示。行的状态,其结构和含义如下表所示。位编号位编号PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位地址位地址D7HD6HD5HD4HD3HD2HD1HD0H位定义位定义CyACF0RS1RS0OVF1PCy进位标志。进位标志。累加器累加器A在执行加减法运算中,如果最高位有进位或借位,在执行加减法运算中,如果最高位有进位或借位,Cy自动置自动置1,否则自动清,否则自动清0,用于无符号数运算。另用于无符号数运算。另Cy还是位还是位操作累加器,在指令中简写为操作累加器,在指令中简写为C。例:例:78H+97H(01111000+10010111)59第59页,共68页,编辑于2022年,星期五OV溢出标志。溢出标志。累加器累加器A在执行加减法运算中,如果最高位和次高位只在执行加减法运算中,如果最高位和次高位只有一个进位或借位,有一个进位或借位,OV置置1,否则清,否则清0,用于有符号数的运,用于有符号数的运算。算。AC进位标志辅助。进位标志辅助。累加器累加器A执行加法运算时,低执行加法运算时,低4位向高位向高4位进位时置位进位时置1,否则清,否则清0。BCD码加法运算调整标志。码加法运算调整标志。例:例:57H+3AH(01010111+00111010)P奇偶标志。奇偶标志。表示累加器表示累加器A中中“1”的个数的奇偶性。如果的个数的奇偶性。如果A中中“1”的个数为奇数,则的个数为奇数,则P置置1,否则清,否则清0。例:某运算结果是例:某运算结果是78H(01111000),显然),显然1的个数为偶数,所的个数为偶数,所以以P=0。60第60页,共68页,编辑于2022年,星期五F0、F1用户标志。用户标志。与位寻址区的位地址功能相同与位寻址区的位地址功能相同,由我们(编程人员)决定由我们(编程人员)决定什么时候用,什么时候不用。什么时候用,什么时候不用。RS1、RS0工作寄存器区选择位。工作寄存器区选择位。工作寄存器区有工作寄存器区有4个,每次只有一个区当作工作寄存器个,每次只有一个区当作工作寄存器用,通过用,通过RS1、RS0可以选择它们中的一个。可以选择它们中的一个。RS1、RS0=000区(区(00H07H)RS1、RS0=011区(区(08H0FH)RS1、RS0=102区(区(10H17H)RS1、RS0=113区(区(18H1FH)61第61页,共68页,编辑于2022年,星期五例例2-1 设设A中有下面的加法运算,分析中有下面的加法运算,分析PSW中有关位中有关位的值,及其表示的含义。的值,