《存储器和布尔处理器.ppt》由会员分享,可在线阅读,更多相关《存储器和布尔处理器.ppt(33页珍藏版)》请在三一办公上搜索。
1、第3章 MCS-51存储器,MCS-51存储器,程序存储器,寻址系统,控制信号,功能,寻址系统,功能,数据存储器,控制信号,ROM用来存放始终保留的固定程序和数据,RAM用来存放程序运行时所需要的常数和变量,特殊功能寄存器 位寻址区,00H,1FH,20H,2FH,30H,7FH,80H,FFH,部分可位寻址,外部ROM,内部ROM(EA=1),外部ROM(EA=0),0000H,0000H,0FFFH,1000H,FFFFH,外 部RAM(包含I/O口地址),0000H,FFFFH,内部数据存储器,外部数据存储器空间,程序存储器空间,工作寄存器区,RAM区,3.1 程序存储器 程序存储器RO
2、M包括片内ROM和片外ROM两个部分,片内有4K字ROM,片外用16位地址,两者统一编址16位的程序计数器PC为程序存储器地址指针,寻址空间为64KB,编址为:0000FFFFH/EA接高电平时,单片机启始从片内程序存储器取指令,当指令地址超过片内程序存储器空间后,自动地转向片外程序存储器取指令;/EA接低电平时,单片机直接从片外程序存储器取指令。,图2.5 程序存储器编址图(a)51子系列;(b)52子系列,2程序的6个特殊入口地址,表3.1 MCS-51单片机复位、中断入口地址 操作入口地址复位0000H外部中断00003H定时器/计数器0溢出000BH外部中断10013H定时器/计数器1
3、溢出001BH串行口中断002BH通常在这些入口地址处,存放一条绝对转移指令,使程序转移到用户安排的中断服务程序起始地址,或主程序起始地址。,3.2 内部数据存储器 128个字节,字节地址为00H7FH,1、工作寄存器区(通用寄存器)工作寄存器分成4组,每组都有8个寄存器,用R0R7来表示。程序中每次只用1组,其它各组不工作。使用哪一组寄存器工作由程序状态字PSW中的PSW.3(RS0)和 PSW.4(RS1)两位来选择,其对应关系如表2.4所示。CPU既能以字节地址(00H1FH)访问它们,又能以寄存器符号(R0 R7)访问。若程序中并不需要4组,那么其余的可用作一般的数据缓冲器。,2、位寻
4、址区 20H2FH单元是位寻址区。这16个单元(共计168=128位)的每一位都赋予了一个位地址,位地址范围为00H7FH。通常可以把各种程序状态标志、位控制变量存于位寻址区内。CPU既能以字节地址(20H 2FH)访问它们的每一字节,又能以位地址(00H 7FH)访问它们的每一位。CPU以字节地址访问时,对某一个字节进行处理,使用字节指令。CPU以位地址访问时,对某一位进行处理,使用位操作指令。,片内数据存储器中的位地址图3.5(128个位单元),3、数据缓冲区 30H7FH是数据缓冲区,也即用户RAM区,共80个单元。由于工作寄存器区、位寻址区、数据缓冲区统一编址,使用同样的指令访问,这三
5、个区的单元既有自己独特的功能,又可统一调度使用。因此,前两个区未使用的单元也可作为用户RAM单元使用,使容量较小的片内RAM得以充分利用。,堆栈是一组编有地址码的特殊的存储单元。第一个进栈的数据所在的存储单元称为栈底,最后一个进栈的数据所在的存储单元称为栈顶,栈顶的地址码由栈指针SP指示。存储单元的数目称堆栈深度。堆栈单元中存放的信息称为堆栈元素。SP总是指向栈顶且装有数据堆栈元素的压入和弹出遵循“先进后出”的原则压栈:先SP+1,后数据压栈出栈:先弹出,后SP-1主机复位,SP=07H,压入数据从08H单元为起始。一般设置SP=2FH,4、堆栈和堆栈指针,3.3 特殊功能寄存器(SFR)特殊
6、功能寄存器(SFR,即Special Function Registers),又称为专用寄存器,专用于控制、管理片内算术逻辑部件、并行I/O口、串行I/O口、定时器/计数器、中断系统等功能模块的工作。18个专用寄存器,占用21个字节,分散在80HFFH CPU访问它们既可以用字节地址,又可用寄存器符号 PC指针不包含在21个专用寄存器中,PC指针只有寄存器符号,没有字节地址。其中有12个专用寄存器可以位寻址,特殊功能寄存器 位寻址区,00H,1FH,20H,2FH,30H,7FH,80H,FFH,部分可位寻址,内部数据存储器,工作寄存器区,RAM区,SFR中的位地址分布,串行数据缓冲器SBUF
7、:由两个独立的寄存器组成:发送缓冲器,接收缓冲器 存放准备发送或已经接收到的数据,一个字节地址,物理空间上是两个独立寄存器定时器/计数器:两个16位定时器/计数器(T1和T0)各由两个独立的8位寄存器组成:TH1、TL1、TH0、TL0,3.4 外部数据存储器 可扩展64K字节(扩展外部RAM或扩展外部I/O)1、地址的重叠 程序存储器与外部数据存储器64K字节地址重叠2、程序存储器与数据存储器在使用上是不同的,访问片内RAM用“MOV”指令,访问片外RAM用“MOVX”指令。3、外部数据存储区中,外部RAM与外部I/O端口统一编址 所有外部扩展的I/O端口地址均占用外部RAM单元地址 访问外
8、部扩展的I/O端口方式(指令)与访问外部数据 存储器相同,总结:编址与访问 用于存放运算中间结果、数据暂存和缓冲、标志位等。片内、外数据存储器是两个独立的地址空间,应分别单独编址。片内256字节RAM,片外扩充到64K字节RAM。访问片内RAM用“MOV”指令,访问片外RAM用“MOVX”指令。片内数据存储器除128字节RAM块外,还有特殊功能寄存器(SFR)21个CPU专用寄存器分散在80HFFH中。,3.5 外部存储器工作过程,外部ROM,内部ROM(EA=1),外部ROM(EA=0),0000H,0000H,0FFFH,1000H,FFFFH,外 部RAM(包含I/O口地址),FFFFH
9、,外部数据存储器空间,程序存储器空间,0000H,1、以P2口作为高8位地址线。2、以P0口作为低8位地址/8位数据复用线。3、控制信号线。*使用ALE信号作为低8位地址锁存控制信号。*以/EA信号作为内、外程序存储器的选择控制信号。*以/PSEN信号作为扩展程序存储器的读选通信号。*由/RD和/WR信号作为扩展数据存储器和扩展I/O口 的读选通、写选通信号。MCS-51有4个并行I/O口,共32条口线,但由于系统扩展需要,作为I/O口使用的,就剩下P1口和P3口的部分口线。,3.6 MCS-51的寻址方式 寻址方式就是在指令中指明操作数所在地址的方式 共7种寻址方式一、寄存器寻址方式 操作数
10、在寄存器中 MOV A,Rn;(Rn)A,n=07(表示把寄存器Rn的内容传送给累加器A)寻址范围:(1)4组通用工作寄存器共32个工作寄存器。(2)部分特殊功能寄存器,例如A、B以及数据指针寄存器 DPTR等。,二、直接寻址方式 操作数直接以单元地址的形式给出:MOV A,40H(表示把内部RAM 40H中的内容传送给累加器A)寻址范围:(1)内部RAM的128个单元(2)特殊功能寄存器。除了以单元地址的形式外,还可用 寄存器符号的形式给出。例如:MOV A,80H 与 MOV A,P0 是等价的。,三、寄存器间接寻址方式 寄存器中存放的是操作数的地址,寄存器前加“”MOV A,Ri;i=0
11、或1(如果Ri中的内容为40H,把内部RAM 40H单元内容送A)寻址范围:(1)访问内部RAM和特殊功能寄存器区,其通用形式为Ri(只能用R0或R1作为间址寄存器)(2)对外部内部RAM的64K字节的间接寻址 例如:MOVX A,DPTR(访问外部RAM的256个字节范围时,也可以用R0或R1 作为间址寄存器),四、立即寻址方式 操作数在指令中直接给出,操作数前面加“#”MOV A,#40H 五、基址寄存器加变址寄存器间址寻址方式 以DPTR或PC作基址寄存器,以累加器A作为变址寄存器。MOVC A,A+DPTR 如果A中原有内容为05H,DPTR内容为0400H,该指令执行 的结果是把程序
12、存储器0405H单元中的内容传送给A 说明:(1)专门针对程序存储器的寻址方式,寻址范围达64KB(2)本寻址方式的指令只有3条:MOVC A,A+DPTR MOVC A,A+PC JMP A+DPTR,六、相对寻址方式 在相对寻址的转移指令中,给出了地址偏移量,以“rel”表示;把PC的当前值加上偏移量就构成了 程序转移的目的地址 目的地址=转移指令所在的地址+该转移指令的字节+rel 偏移量“rel”是一带符号的8位二进制数补码 范围是:128+127 向地址增加方向最大可转移(127+该转移指令字节)个单元地址 向地址减少方向最大可转移(128-该转移指令字节)个单元地址,0100000
13、0,01110101,1000H1001H1002H1077H,+1,PC,ALU,Rel=75H,PC=1002H,1077H,程序存储器,例:C=1,PC=1000H,REL=75H,执行指令JC REL,七、位寻址方式 MCS-51有位处理功能,可以对数据的位进行操作。MOV C,40H(把位40H的值送到进位位C)寻址范围包括:(1)内部RAM中的位寻址区 有两种表示方法:直接位地址40H;字节单元地址 加上位28H.0,指的是28H字节单元中的最低位。(2)特殊功能寄存器中的可寻址位 a、直接使用位地址。例如:PSW.5的位地址为D5H b、用位名称。例如:PSW.5是F0标志位 c
14、、字节单元地址加位数。例如:D0H.5 d、特殊功能寄存器符号加位数。例如:PSW.5,3.7 布尔(位)处理机 布尔处理机(即位处理)是MCS-51单片机ALU所具有的一种功能。单片机指令系统中的位处理指令集(17条位操作指令);存储器中的位地址空间;借用程序状态寄存器PSW中的进位标志CY作为位操作“累加器”;位寻址的并行I/O口,构成了MCS-51单片机内的布尔处理机。它可对直接寻址的位(bit)变量进行位处理,如置位、清零、取反、测试转移以及逻辑与、或等位操作,使用户在编程时可以利用指令完成原来单凭复杂的硬件逻辑所完成的功能,并可方便地设置标志等。,思考题:1、80C51单片机的时钟周期、机器周期、指令周期定义及关系是如何的?当主频为12MHZ时,一个机器周期为多少微秒?执行一条最长的指令需多少微秒?2、80C51存储器在结构上有何特点?访问片内RAM和片外RAM的指令格式有何区别?3、MCS-51单片机堆栈有哪些功能?堆栈指示器(SP)的作用是什么?在程序设计时,为什么还要对SP重新赋值?4、什么是准双向口?使用准双向口时,要注意什么?,