51单片机原理与实践 C语言版 高卫东 第二章 单片机的组成及结构分析ppt课件_第1页
51单片机原理与实践 C语言版 高卫东 第二章 单片机的组成及结构分析ppt课件_第2页
51单片机原理与实践 C语言版 高卫东 第二章 单片机的组成及结构分析ppt课件_第3页
51单片机原理与实践 C语言版 高卫东 第二章 单片机的组成及结构分析ppt课件_第4页
51单片机原理与实践 C语言版 高卫东 第二章 单片机的组成及结构分析ppt课件_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机与接口技术,任课教师:郑旭丹,第2章 单片机组成及结构分析,【学习目标】,1、理解单片机的内部结构、外部引脚 2、理解存储器的基本知识及80C51系列单片机的 存储器系统 3、理解并行I/O端口的工作原理 4、了解80C51的各特殊功能寄存器,【重点内容】,1、80C51系列单片机的引脚 2、80C51系列单片机的存储空间配置 3 、80C51系列单片机并行口的功能,MCS-51单片机基本结构,硬件基本配置: 1. 8位CPU 2. 片内ROM/EPROM、RAM 3. 片内16位定时器/计数器 4. 片内中断处理系统 5. 片内并行 I/O接口 6. 片内全双工串行I/O口,不同型号M

2、CS-51单片机CPU处理能力和指令系统完全兼容,只是存储器和I/O接口的配置有所不同。,单片机原理与应用,一个8位的 CPU,振荡器和时钟电路,64KB 总线 扩展控制器,数据存储器 256B RAM/SFR,216位 定时器/计数器,可编程I/O,程序存储器 4KB ROM,可编程全双工 串行口,外中断2个,内中断3个,控制,并行口,串行通信,外部时钟源,外部事件计数,单片机内部结构框图,单片机的核心部件,包含了运算器、控制器、若干寄存器等,分为高128B和低128B,用于存放可读写的数据。,用于存放程序、原始数据或表格。地址范围0000H0FFFH,4个8位并行I/O口(P1、P2、P3

3、、P4),实现数据的输入输出,实现定时和计数功能,以此对计算机进行控制,用来控制单片机扩展的外ROM、RAM的读写,实现单片机和其他设备之间的串行数据传送,为单片机产生时钟脉冲序列,MCS-51单片机内部结构,单片机原理与应用,MCS51系列单片机内部结构框图,2.1 80C51系列单片机存储器结构,存储器的基本概念,存储器由大量缓冲寄存器组成,其用途是存放程序和数据,使计算机具有记忆功能。这些程序和数据在存储器中以二进制代码表示,根据计算机的命令,按照指定地址,可以把代码取出来或存入新代码。,只读存储器(ROM) 掩膜ROM。(不能更改程序) 可编程的只读存储器(PROM)。(一次性写入)

4、可改写的只读存储器EPROM。(紫外线照射擦除) 可电改写只读存储器(EEPROM)。(电写入和清除),1存储器的类型,随机存取存储器(RAM数据存储器) 静态SRAM。(只要不断电,数据可永久保存) 动态DRAM。(只能保存若干毫秒时间),可现场改写的非易失性存储器 快擦写存储器(FLASH)。(断电后信息不丢失) 铁电存储器FRAM。(集成度高、读写快等),一、存储器空间分类,根据作用分类:,单片机原理与应用,2.1 单片机存储器分配,(1)程序存储器(ROM),(2)数据存储器(RAM),地址从0000H开始。 用于存放程序和表格常数。,地址为00H7FH。 用于存放运算的中间结果、数据

5、暂存以及数据缓冲等。,一、存储器空间分类,根据作用分类: 程序存储器ROM 数据存储器RAM 根据位置分类: 片内存储器 片外存储器,构成了4个结构独立的存储器空间,单片机原理与应用,2.1 单片机存储器分配,1、片内程序存储器(片内ROM) 2、片内数据存储器(片内RAM) 3、片外ROM扩展 4、片外RAM扩展,8051、8751有4KB的片内ROM(0000H0FFFH),共有256B 007FH:128B片内RAM 80HFFH:18个特殊功能寄存器(占21B),最多64K片外ROM,地址为0000HFFFFH或者1000HFFFFH,地址:0000HFFFFH,注:8051、8751

6、芯片根据EA状态,单片机原理与应用,2.1 单片机存储器分配,2.1 存储器结构,MCS-51(8051)存储结构如图所示,单片机原理与应用,2.1 单片机存储器分配,片内外统一编址的64KB的程序存储器地址空间 片内片外的程序存贮器在同一逻辑空间中,地址从0000HFFFFH,共有64K字节范围 片内256B数据存储地址空间 片内数据存贮器为00HFFH 片外64KB的数据存储器地址空间 片外为0000HFFFFH,从用户使用的角度,即从逻辑上划分3个存储器地址空间:,单片机原理与应用,2.1 单片机存储器分配,二、区分四个独立空间的方法,EA引脚接地,程序从片外ROM开始 0000H0FF

7、FH位于片外ROM EA引脚接高电平,程序从片内ROM开始 0000H0FFFH位于片内ROM,硬件连接决定空间:,单片机原理与应用,2.1.2 80C51的程序存储器(ROM),地址范围: 0000HFFFFH,共64KB。 低段4KB:0000H0FFFH 80C51和87C51在片内,80C31内部无,在片外。 高段60KB: 1000HFFFFH。在片外。 读写ROM用MOVC指令, 控制信号是PSEN和EA。,保留的存储单元,编程时在入口0000H处放一条转移指令,使程序转移到相应的地方运行,5个中断服务程序地址区通常难以放下中断服务程序,编程时在这些入口单元,放一条转移指令,使程序

8、转移到相应的中断服务程序的地方运行,2.1.3 80C51的数据存储器(RAM),数据存储器分为外RAM和内RAM。 外RAM地址范围:0000HFFFFH 共64KB。 内RAM地址范围:00HFFH共256B。 分为两个部分: 地址为00H7FH(低128B)的内部数据存储空间 地址为80HFFH(高128B)的特殊功能寄存器区。,访问片外RAM用“MOVX”指令 访问片内RAM用“MOV”指令。,(一)片内RAM地址空间,寻址:用指令MOV最大可寻址256个单元。,低128B(00H-7FH): 真正RAM区,高128B(80H-FFH): 特殊功能寄存器(SFR)区,地址:00H-FF

9、H,MCS-51(8051)存储结构如图所示,单片机原理与应用,2.1 单片机存储器分配,(二)低128字节RAM(00H7FH),1、工作寄存器区(00H1FH) 2、位寻址区(20H2FH) 3、用户RAM区(30H7FH),1、工作区寄存器,共32字节,地址00H-1FH 分成4组寄存器区; 每组寄存器区8个字节,R0-R7; 当前使用的工作寄存器组由RS1、RS0选择;,在任何时刻CPU 只能使用其中一个区 (当前寄存器组),每个区有8个单元,都用R0R7编号。 在任何时刻CPU只能使用其中一个区(当前寄存器组),即将这个区的8个单元作为工作寄存器,其他区仍是一般的RAM。具体使用哪个

10、区,由程序状态寄存器PSW中的RS1、RS0两位的状态来决定。,单片机原理与应用,2、位寻址区,共16字节,地址20H-2FH; 可位寻址,即每一位进行单独读写; 共128位,位地址00H-7FH; 这些可寻址位,通过执行指令可直接对某一位操作,如置1、清0、判断转移等。 位寻址是80C51的一个重要特点。,表2 RAM位寻址区位地址表,3、通用数据存储区,共80字节,地址30H-7FH,用户RAM区,用于存放运算数据和结果; 只能进行字节读写; 一般将堆栈也设在该区域。例:MOV SP,#5FH 则从607FH单元为堆栈区,堆栈,堆栈是在片内RAM中临时开辟的暂存区; 作用:保护现场、保护断

11、点 针对:子程序调用、中断操作 特点:先进后出,后进先出 指令:入栈PUSH,出栈POP,单片机原理与应用,堆栈,4、堆栈指针SP (81H),RAM中底端固定,顶端浮动的特殊寄存器区堆栈。用来临时存放还需使用的数据。数据的存取遵循“先进后出”的原则。,堆栈指针SP用来指示栈顶,数据压入时,SP先加1,栈区向地址增大方向生成;数据弹出时,先弹出数据,SP再减1。,SP总是指示栈顶。,如:MOV SP,#60H,使用堆栈时,为防止与工作寄存器重叠冲突,将30H7FH设为栈区。需先给SP赋值。,单片机复位后SP指向堆底07H。,4、堆栈指针SP (81H),堆栈,4、特殊功能寄存器,共128字节,

12、地址80H-FFH; 每个SFR寄存器都与特定功能有关; 对单片机的控制,实际就是通过向SFR 寄存器里写入不同的值来实现的。 部分SFR有位寻址功能,位地址80H-FFH;, SFR中共有11个专用寄存器可以位寻址,它们字节地址的低半字节都为0H或8H(即可位寻址的特殊功能寄存器字节地址具有能被8整除的特征) 。,4、特殊功能寄存器,4、特殊功能寄存器,4、特殊功能寄存器,注:,SFR中的寄存器都有复位值,用到的寄存器在复位后应考虑到是否重新赋值; SFR可视为专用RAM,有11个可以位寻址(可以由布尔处理器控制),共21单元,其余107单元用户不能使用; 8052另有3个SFR,占据5个单

13、元。,单片机原理与应用,2.1.5 几个特殊功能寄存器 1)累加器ACC 累加器ACC是最常用的专用寄存器。用A作为ACC的助记符。 用于存放第一个操作数及运算结果。,单片机原理与应用,2)B寄存器 是特殊功能寄存器之一。 在乘法指令中,B用于存放乘数和乘积的高8位。 AB=B(高位)A(低位) 在除法指令中用于存放除数和余数。 AB=(商A,余数B) 在其它指令中用作一般的寄存器或RAM单元。,单片机原理与应用,3 )程序状态字PSW,程序状态字PSW是一个8位寄存器,PSW包含了程序执行后的状态信息,供程序查询或判断用。 PSW的格式:,单片机原理与应用,3、程序状态寄存器PSW(地址为D

14、0H),用来保存ALU运算结果的特征(如:结果是否为0,是否有溢出等)和处理器状态。它的各位包含了程序执行后的状态信息,供程序查询或判别之用。,PSW除有确定的字节地址(0D0H)外,每一位均有位地址。,(1)CY(PSW.D7)进位标志位,8051在进行位操作(布尔操作)时,CY作为位累加器C。在MOV指令中,判断是否为位操作,主要看是否对C操作。,在执行加法(或减法)运算指令时,如果运算结果最高位(位7)向前有进位(或借位),CY位由硬件置“1”;如运算结果最高位(位7)无进位(或借位),则CY由硬件清“0”。,1,0,(2)AC(PSW.D6)半进位标志位,当执行加法(或减法)操作时,其

15、运算结果(和或差)产生由低半字节(位3)向高半字节有半进位(或借位)时AC位将被硬件自动置“1“,否则AC被硬件自动清“0”。,用户根据自己的需要对F0位赋予一定含义,由用户置位、复位,作为软件标志。,1,0,(4)RS0和RSl工作寄存器组选择控制位,8051上电复位后,(RSl)=(RS0)=0,CPU自然选择第0组为当前工作寄存器组。,决定选择哪一组工作寄存器为当前工作寄存器组。,利用传送指令对PSW整字节操作或用位操作指令,改变RSl和RS0的状态,以切换当前选用的工作寄存器组.,(5)OV(PSW.D2)溢出标志位,当进行补码运算时,如有溢出,即当运算结果超出128+127的范围时,

16、OV位由硬件自动置OV=1;无溢出时,OV=0。对无符号数此位无标志。,(6)PSW.D1为保留位:8051未用,8052为F1用户标志位。,(7)P(PSW.D0)奇偶检验标志位: 每条指令执行完后,该位始终跟踪指示累加器A中1的个数。如结果A中有奇数个“1”则置P=1 ,否则P=0。常用于校验串行通信中的数据传送是否出错。,1,0,1,0,堆栈,4、堆栈指针SP (81H),RAM中底端固定,顶端浮动的特殊寄存器区堆栈。用来临时存放还需使用的数据。数据的存取遵循“先进后出”的原则。,堆栈指针SP用来指示栈顶,数据压入时,SP先加1,栈区向地址增大方向生成;数据弹出时,先弹出数据,SP再减1

17、。,SP总是指示栈顶。,如:MOV SP,#60H,使用堆栈时,为防止与工作寄存器重叠冲突,将30H7FH设为栈区。需先给SP赋值。,单片机复位后SP指向堆底07H。,4、堆栈指针SP (81H),堆栈,部分特殊功能寄存器介绍,5、数据指针DPTR(83H,82H): DPTR是一个16位的特殊功能寄存器。 由DPH(83H),DPL(82H)组成。 DPH,DPL可以单独使用。,5、数据指针DPTR(83H,82H):,程序计数器PC,PC是单片机CPU内一个物理结构独立的特殊寄存器。 作用就是用来存放将要从ROM中读出的下一指令的地址,共16位,可对64K ROM直接寻址。,PC具备的功能

18、:,(1)自动加1功能,即CPU从存储器中读出一个字节的指令码后,PC自动加1(指向下一个存储单元)。 (2)执行转移指令时,PC能根据该指令的要求修改下一个指令的地址。 (3)在执行调用子程序或发生中断时,CPU会自动将当前PC值压入堆栈,将子程序或中断入口地址装入PC;子程序或中断返回时,恢复原压入堆栈的PC值,继续执行原顺序程序指令。,2.2 外部引脚功能,2时钟引脚 XTAL1、XTAL2:晶体振荡电路反相输入端和输出端。,1电源引脚 VCC:芯片电源,+5V。 VSS:接地。,3控制引脚 RST/VPD:复位信号输入端/备用电源输入端 EA/VPP:内外ROM选择端/片内EPROM编

19、程电源。 ALE/PROG:地址锁存允许/片内EPROM编程脉冲。 PSEN:外部ROM读选通信号。,3、控制信号引脚: RST、EA、ALE、PSEN,RST/VPD(9脚): RST:复位信号输入端,高电平有效。当此输入端保持两个机器周期的高电平时,就可以完成复位操作。,VPD :RST引脚的第二功能,备用电源输入端。当主电源Vcc 发生故障,降低到低电平规定值时,将+5V电源自动接入该引脚,为RAM提供备用电源,以保证RAM中的信息不丢失,使得复位后能继续正常运行。,EA/Vpp(31脚): EA:内外ROM选择端 Vpp:对80C51片内 Flash ROM固化编程时,编程电压输入端(

20、12-21V)。,ALE/PROG(30脚): ALE:地址锁存允许信号端。 CPU访问片外存储器时,该引脚输出信号作为锁存低8位地址的控制信号。它的负载能力为8个LS型TTL负载。 ALE接高电平,P0口上信息视为地址信息; ALE接低电平,P0口上信息视为数据信息。,PSEN(29脚): 程序存储器允许信号输出端。 在访问片外ROM时,定时输出负脉冲作为读片外ROM的选通信号,接片外ROM 的OE端。 它的负载能力为8个LS型TTL负载。,EPROM存储器扩展电路:,数据存储器扩展电路,四个8位的双向并行端口:P0、P1、P2、P3。,P0、P1、P2、P3口对应四个数据锁存器:P0、P1

21、、P2、P3,对应内部RAM地址分别为80H、90H、A0H、B0H 访问并行I/O端口除了可以用字节地址访问外,还可以按位寻址。当单片机复位时,P0P3锁存器的内容均为1。,2P3口第二功能,2.3 振荡电路和复位电路,2.3.1 时钟电路,1内部时钟信号的产生,2引入外部时钟信号,80C51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为XTAL1,输出端为XTAL2,两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器。 电容器和通常取30 pF左右,可稳定频率并对振荡频率有微调作用。振荡脉冲频率范围为fOSC=024 MHz。 振荡器的频率为fOSC,振荡信号从XT

22、AL2端输入到片内的时钟发生器上,片内时钟信号的产生,2.3.2 CPU时序,执行一条指令需要多长时间则以机器周期为单位。 一个机器周期是指CPU访问存储器一次所需的时间。例如,取指令、读存储器、写存储器等等。 一个机器周期包括12个振荡周期,分为6个S状态:S1S6。 每个状态又分为两拍,称为P1和P2。 因此,一个机器周期中的12个振荡周期表示为S1P1,S1P2,S2P1,S6P1,S6P2。 若采用6MHz晶体振荡器,则每个机器周期为多少?,MCS-51的时序单位有4个,分别是时钟周期、状态周期、机器周期和指令周期,设:晶体振荡器频率 fosc=6MHz, 则:振荡周期=1/fosc=

23、1/6 s(微秒) 因为:一个机器周期包括12个振荡周期, 所以:一个机器周期=12*(1/6) s(微秒) = 2s(微秒),问:如果fosc=12MHz, 一个机器周期为多少?,答案,1s(微秒),每条指令都由一个或几个机器周期组成。 指令周期:执行一条指令所需的时间。 每条指令由一个或若干个字节组成。有单字节指令,双字节指令,多字节指令等。字节数少则占存储器空间少。 每条指令的指令周期都由一个或几个 机器周期 组成。有单周期指令、双周期指令、和四周期指令。机器周期数少则执行速度快。,设振荡周期为6MHz,则一个机器周期为 2s(微秒)。 单周期指令:指令周期为 2s(微秒) 双周期指令:

24、指令周期为 4s(微秒) 四周期指令:指令周期为 8s(微秒) 如果振荡周期为12MHz,则其指令周期分别为 1s、2s 和4s。,控制P0.0口的灯时亮时暗: ORG 0000H JMP START ORG 0030H START: SETB P0.0 ;P0.0=1 CALL DELAY CLR P0.0 ;P0.0=0 CALL DELAY JMP START DELAY: MOV R3,#20 ;延时0.2s D1: MOV R4,#20 D2: MOV R5,#250 DJNZ R5,$ DJNZ R4,D2 DJNZ R3,D1 RET END START,2.3 80C51系列单

25、片机的工作方式,2.3.4 复位电路,1复位条件,复位(RST)引脚(9脚)上加一个持续时间为两个机器周期的高电平。 若单片机的时钟频率为12MHz,则机器周期为1s,那么需要持续2s以上的时间; 若单片机的时钟频率为6MHz,则机器周期为2s,那么需要持续4s以上的时间。,复位就是对单片机或系统中其它部件设置初始状态,以便单片机从复位后开始工作。,1)上电复位电路。,接通电源,单片机自动完成复位。,2、复位电路,+5V,开机瞬间RST脚获高电平,对C1充电, 由于电容两端电压不能突变,所以RST维持高电平,只要在RST处有足够长时间(两个机器周期)的阈值以上的电压时就能可靠复位。,晶振频率为

26、12MHz时, C1为10F, R1为8.2K,晶振频率为6MHz时, C1为22F, R1为1K,+5V,2)上电和按键都有效的复位电路,接通电源,单片机自动完成复位。,晶振频率为6MHz时, R2为200,单片机运行期间利用按键完成复位。,3复位后内部寄存器状态,预备知识,二、数制,计算机只识别和处理数字信息,数字是以二进制数的形式表示的。它易于物理实现,同时,资料存储、传送和处理简单可靠;运算规则简单,使逻辑电路的设计、分析、综合方便,使计算器具有逻辑性。 1、常用数制 (1.)十进制数: 1985 = 1000+900+80+5 = 1103+9102+8101+5100 特点:有0 -9 十个不同的符号。 逢十进一。 一般用下脚标 D 表示,如 1985D ,或无下脚标。,预备知识,( 2.)二进制数: 特点:有0,1两个不同的符号。 逢二进一。二进制数的下脚标为B 例如:对于整数, 1001B=123+022+021+120 = 9D 对于小数, 0.101B

温馨提示

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

评论

0/150

提交评论