版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序存储器 内部程序存储器、外部程序存储器,容量为64KB,地址编码范围为0000HFFFFH)片内数据存储器 包括00HFFH共256字节的内部RAM存储器及特殊功能寄存器外部数据存储器 地址编码范围为0000HFFFFH,容量为64KB存储器结构哈佛体系结构与普林斯顿体系结构哈佛体系结构的程序存储器与数据存储器都拥有自己独立的总线和寻址空间(典型的如DSP,TI的C5000系列)普林斯顿体系结构的程序存储器与数据存储器统一编址,公用一组总线;(x86,PC机)MCS-51:准哈佛体系结构,因为总线分时复用2.2.1内部数据存储器1. 片内RAM及其寻址方式8XC51、8XC31内部RAM的
2、容量为128字节(00H7FH);8XC52/54/58片内RAM容量为256 字节(00H0FFH)。根据用途可将内部RAM划分为工作寄存器区、位寻址区和用户数据存储器区(可作用户RAM或堆栈区) 1. 片内RAM及其寻址方式对于低128字节(00H7FH)内部RAM,可使用直接寻址方式或寄存器间接寻址方式读写,如:MOV 30H,40H ;将内部RAM 40H单元内容写入内部RAM 30H单元MOV 30H,#35H ;将立即数35H写入内部RAM 30H单元MOV R0,#35H ;通过寄存器间接寻址方式将立即数35H写入由R0指定的内部RAM单元中由于高128字节(80HFFH)RAM
3、地址编码与特殊功能寄存器地址重叠,因此,只能用寄存器间接寻址方式访问高128字节内部RAM,如:MOV R0,#80H;内部RAM地址送间接寻址寄存器R0MOV A,R0;通过间接寻址方式,将80H单元内容送累加器A(读)MOV R0, A;通过间接寻址方式,将累加器A内容送80H单元(写)(1) 工作寄存器区。该区域容量为32个字节,分为四个区,每区8个字节,对应R0R7寄存器名。因此,R0的物理地址可能是00H,也可能是08H、10H 或18H;同理,R1的物理地址可能是01H,也可能是09H、11H或19H。 任何时候都只能选择四个工作寄存器区中的一个区作为当前工作寄存器区,当前工作寄存
4、器区由程序状态字寄存器PSW的b4(RS1)、b3(RS0)位确定,具体情况如下:PSW寄存器b4、b3位 当前区 寄存器R7R0地址 00 0区 07H00H 01 1区 0FH08H 10 2区 17H10H 11 3区 1FH18H由于复位后PSW的b4、b3位为00,因此复位后将选择0区作为当前工作寄存器区。修改PSW的b4、b3位即可选择不同的工作寄存器区,这有利于快速保护现场,提高程序执行效率和中断的响应速度。(2) 位寻址区。20H2FH单元属位寻址区,共16字节。该区域可按字节读/写,也可按位读/写。位地址从20H单元开始,20H单元b0位的位地址为00H,20H单元b1位的位
5、地址为01H,20H单元b2位的位地址为02H。依此类推,21H单元b0位的位地址为08H,2FH单元b7位的位地址为7FH如果系统中需要位操作,则最好保留20H2FH单元的部分或全部作位存储区,以方便位寻址操作。位寻址区MCS-51系列单片机既是8位机,同时也是一片功能完善的一位机。作一位机使用时,它有自己的CPU、位存储区、位寄存器、位累加器(进位标志Cy)以及完整的位操作指令,包括置1、清零、非(取反)、与、或、传送、测试转移等。对于位存储器(即20H2FH单元中的128个位),只能使用直接寻址方式确定操作数所在的存储单元如:MOV C,23H ;位传送指令,即将位地址23H单元(对应2
6、4H字节单元的b3位)内容传送到位累加器C中(3) 用户数据存储器区。30H单元以后均可作为内部用户RAM或堆栈区。由于复位后,堆栈指针SP指向07H单元,因此一般需要将SP设在2FH之上。2. 2. 特殊功能寄存器特殊功能寄存器由于单片机芯片内集成了一些常用的外围接口电路,如并行I/O端口、串行口、定时/计数器、中断控制器等,因此这些外围接口电路的控制寄存器、状态寄存器以及数据寄存器也就位于芯片内,统称为特殊功能寄存器(Special Function Registers,SFR)。MCS-51 CPU与通用微处理不同,除了给外设接口电路相关寄存器,如定时/计数器控制寄存器TCON分配字节地
7、址外,CPU内的寄存器也分配有字节地址,如累加器Acc的字节为0E0H。增强型MCS-51系列单片机内共有32个特殊功能寄存器(在标准MCS-52单片机基础上增加了6个新的特殊功能寄存器),地址分散在80HFFH之间。 特殊功能寄存器地址映像特殊功能寄存器地址映像对于具有位地址的特殊功能寄存器中的位,在指令中除了用“位地址”外,还可以用“位定义名”或“寄存器名.位”形式表示。例如,将程序状态字寄存器PSW中的b3 位清零,可以用:CLR D3H ;位地址形式CLR RS0 ;位定义名形式。作为一个良好的编程习惯,建议使用“位定义名”形式CLR PSW.3;“寄存器名.位”形式尽管书写形式不同,
8、但汇编时汇编程序均自动转换为“位地址”形式,因此这三条指令完全等效,不过使用“位定义名”和“寄存器名.位”形式更直观。“寄存器名.位”表示形式不仅适用于具有位寻址的特殊功能寄存器,也适用于具有位寻址的内部RAM单元。例如,使用“BYTEBIT DATA 20H”伪指令定义BYTEBIT变量后,如下三条指令完全等效。 MOV C,BYTEBIT.1MOV C,20H.1MOV C,01H1) 累加器累加器Acc是CPU内的通用寄存器,常用于存放参加算术或逻辑运算的两个操作数中的一个及运算结果,例如:ADD A,30H ;在指令中,累加器Acc常简写为“A”该指令的含义是:以累加器Acc中的内容作
9、为被加数,加数存放在内部RAM的30H单元中,相加后的结果(即和)再存放到累加器Acc中2) B寄存器B寄存器也是CPU内的通用寄存器,主要用于乘法和除法运算。在乘法运算中,被乘数放在累加器Acc中,乘数放在B寄存器中。运算后,积的高8位存放B寄存器中,低8位存放在累加器Acc中,如: MUL AB ;BAAB在除法运算中,被除数放在累加器Acc中,除数放在B寄存器中。运算后,商放在累加器Acc中,余数放在B寄存器中。3) 程序状态字寄存器程序状态字寄存器PSW由标志位组成,用于存放指令运行的状态。在MCS-51系列单片机中PSW寄存器各位含义如下:Cy进位标志。当进行加法运算,最高位(即b7
10、位)有进位时,或当执行减法运算,最高位有借位时,Cy为1;反之为0。AC辅助进位标志。当进行加法运算,b3位有进位时,或当执行减法运算,b3位有借位时,AC为1;反之为0。OV 溢出标志。在计算机内,带符号数一律用补码表示。在8位二进制中,补码所能表示的范围是128127,运算结果超出这一范围时,OV 标志为1,即溢出;反之为0。P奇偶标志。体现累加器Acc中“1”的个数的奇偶性。如果累加器Acc中“1”的个数为奇数,则P位为1;为偶数(包括0个)时,P位为0。RS1、RS0工作寄存器组选择位F0用户标志位PSW.1保留位。注:在MCS-51系列单片机中,Z(零)标志对程序员不透明,只要累加器
11、Acc为0,Z标志就为1。例2.1 分析如下指令执行后,PSW寄存器各标志位的状态。MOV A,#10101101B ;把立即数ADH送累加器A,5个“1”,奇偶标志位P为1ADD A,#01111101B ;ADH与7DH相加,结果存放在A中 1 0 1 0 1 1 0 1;173(无符号数),83(带符号数) 0 1 1 1 1 1 0 1;125(无符号数),125(带符号数) 1 0 0 1 0 1 0 1 0 ;作为无符号数时,和为12AH(由于结果超出FFH,前面的“1”自动丢失,寄存器A的内容为2AH),即298;作为有符号数时,和为2AH,即42由于b7位向前进位,因此Cy位为
12、1;b3位也有进位,AC位也为1;而作为带符号数时,结果为42,没有超出128127,OV标志位为0。事实上,两个异号数相加,结果不会溢出,OV标志位总为0。而A中含有3个“1”,因此P标志位为1。 1 0 1 0 1 1 0 1;173(无符号数),83(带符号数) 0 1 1 1 1 1 0 1;125(无符号数),125(带符号数) 1 0 0 1 0 1 0 1 0 ;作为无符号数时,和为12AH(由于结果超出FFH,前面的“1”自动丢失,寄存器A的内容为2AH),即298;作为有符号数时,和为2AH,即42由于b7位向前进位,因此Cy位为1;b3位也有进位,AC位也为1;而作为带符号
13、数时,结果为42,没有超出128127,OV标志位为0。事实上,两个异号数相加,结果不会溢出,OV标志位总为0。而A中含有3个“1”,因此P标志位为1。例2.2 分析如下指令执行后,PSW寄存器各标志位的状态。MOV A,#10101101B ;把立即数0ADH送累加器A,由于立即数0ADH 中共有5个“1”,因此该指令执行后,奇偶标志位P为1ADD A,#10011101B;0ADH与9DH相加,结果存放在A中PWS分析 1 0 1 0 1 1 0 1 ;173(无符号数);83(带符号数 1 0 0 1 1 1 0 1 ;157(无符号数);99(带符号数) 1 0 1 0 0 1 0 1
14、 0 ;作为无符号数时,和为14AH,330作为有符号数时,和为182由于b7位向前进位,因此Cy位为1;b3位也有进位,AC位也为1;作为带符号数时,结果为4AH,即74,之所以出错,是因为83加99的结果为182,超出128127,OV标志位为1。溢出条件总结:两个同号数相加,结果可能溢出两个异号数相加,结果肯定不会溢出两个同号数相减,结果肯定不会溢出而两个异号数相减,结果可能溢出当溢出标志OV为1时,表示结果不正确。4) 堆栈指针在计算机内,需要一块具有“先进后出”(First In Last Out,FILO)特性的存储区,用于存放子程序调用(包括中断响应)时程序计数器PC的当前值,以
15、及需要保存的CPU内各寄存器的值(即现场),以便子程序或中断服务程序执行结束后能正确返回主程序。这一存储区称为堆栈区。堆栈指针SP寄存器:指示最后进入堆栈的数据所在存储单元的地址MCS-51系列单片机中,SP可以指向内部RAM中任一单元,且堆栈向上生长,即将数据压入堆栈后,SP寄存器内容增大。假设SP当前值为2FH,则入堆指令“PUSH B”(将寄存器B内容压入堆栈)的执行过程如图2-10所示。假设SP当前值为2FH,则入堆指令“PUSH B”(将寄存器B内容压入堆栈)的执行过程:(a) PUSH B指令执行前;(b) SP加1;(c) 寄存器B内容存入SP指定的单元中将数据从堆栈中弹出时,S
16、P减小。例如,将保存在堆栈中的信息弹到寄存器B的操作过程:(a) POP B指令执行前;(b) 将SP指定单元内容传送到寄存器B中;(c) SP减1堆栈的底部是固定的,而堆栈的顶部则随着数据的入栈和出栈上下浮动。系统复位后,PSW的b4、b3位为00,即选择了工作寄存器区中的0区作为当前工作寄存器区。SP寄存器的初值为07H,当有数据进入堆栈时,将从08H单元开始存放,但这一般是不允许的。因为08H1FH属于工作寄存器区,不宜占用;20H2FH是位地址区,也需要部分或全部保留。因此,必须通过数据传送指令重新设置SP的初值,将堆栈底部设在30H7FH对于只有128字节内部RAM的8XC31、8X
17、C51)或80HFFH(对于具有256字节内部RAM的32、52/54/58)之间例如: MOV SP,#5FH ;将堆栈设在60H单元之后CPU内30HFFH单元既可以作为堆栈区,同时也是用户数据存储区,区域划分原则:在设置SP初值时,必须考虑堆栈最大深度:对于仅有低128字节内部RAM的80C31、80C51来说,当SP超出7FH时会发生上溢,这将出现不可预料的后果。子程序或中断嵌套层数越多,所需的堆栈深度就越大。为了避免堆栈顶部进入用户数据存储区而造成混乱,一般可将堆栈设在用户数据区之上。如在某一应用系统中,需要32个字节作为用户数据存储区(如30H4FH),则初始化时应将堆栈底部设在5
18、0H,即堆栈深度为48个字节(50H7FH)。MOV SP, #4FH;SP初值为4FH对于具有高128字节内部RAM的8XC32、8XC52/54/58等CPU来说,将堆栈区设在80H-0FFH之间的高128字节内部RAM中,而将具有直接寻址功能的低128字节内部RAM作为用户数据区,以便使用直接寻址方式存取用户数据。SP不允许超出0FFH,否则同样会发生上溢。例如,预计某系统所需最大堆栈深度为32字节,可通过如下指令将栈底设在E0H处。 MOV SP, #DFH;SP初值为0DFH涉及入栈出栈操作的指令有:PUSH direct ;将内部RAM单元压入堆栈中POP direct ;从堆栈中
19、将数据弹入内部RAM5) I/O端口寄存器P0、P1、P2、P3口寄存器实际上就是P0P3口对应的I/O端口锁存器,用于锁存通过I/O口输出的数据。特殊功能寄存器属于不同的单元电路的相似情况:在增强型MCS-51中,具体如下:CPU单元包含的寄存器:Acc、B、SP、PSW、DPTR、AUXR、AUXR1和程序计数器PC PC是一个16位的地址寄存器,用于存放当前指令码在程序存储器中的地址,但PC不属于特殊功能寄存器,它也没有物理地址。定时/计数器单元包含的寄存器: TMOD、TCON、T2CON、T2MOD、TH0与TL0(分别是定时器T0的高8位和低8位)、TH1与TL1(分别是定时器T1
20、的高8位和低8位)、TH2与TL2(分别是定时器T2的高8位和低8位)以及RCAP2L与RCAP2H(定时器T2的重装/捕捉寄存器)。中断单元电路内的寄存器:IE、IP和IPH。串行通信单元电路内的寄存器:SCON、SBUF、PCON、SADDR和SADEN。2.2.2 2.2.2 程序存储器程序存储器1. 1. 程序存储器结构程序存储器结构对于带有片内ROM的MCS-51系列单片机来说,片内程序存储器和外部程序存储器地址空间重叠。如果EA引脚为高电平,先从片内程序存储器取指令(在这种情况下,PSEN信号无效);当PC超出片内ROM地址空间时,自动到外部程序存储器取指令,并通过P0口输出低8位
21、地址(A0A7),P2口输出高8位地址(A15A8)。如果EA引脚为低电平,则一律从外部程序存储器取指令。程序存储器结构对于不带ROM或EPROM的80C31、80C32 CPU来说,EA引脚一律接地。在增强型MCS-51系列单片机中,大部分芯片均内置了不同容量的OTP EPROM (一次性编程的只读存储器,即没有擦除窗口的EPROM)和Flash ROM,一般无需使用外部程序存储器芯片,EA引脚 一律通过2.04.7 k电阻与电源VCC相连。程序存储器地址空间分布:操 作入 口 地 址复位0000H外部中断00003H定时器/计数器0000BH外部中断10013H定时器/计数器1001BH串
22、行口中断0023H定时器/计数器2002BH复位后,程序计数器PC为0000H,从程序存储器的0000H单元读出第一条指令,在0000H单元内放置一条跳转指令,LJMP xxxx(xxxx为主程序入口地址标号)。由于系统给每个中断服务程序预留了8个字节,用户主程序一般存放在0033H单元以后ORG 0000H;用伪指令ORG指示随后的指令码0000HLJMP Main;在0000H单元放长跳转指令,共3个字节ORG 0003HLJMP INT0;跳到外中断服务程序的入口处;初始化其他中断入口地址ORG 50H ;主程序代码从50H单元开始存放Main:;Main是主程序入口地址标号程序存储器地
23、址空间划分程序2. 2. 程序存储器读操作程序存储器读操作可以用数据指针DPTR作变址寄存器,累加器Acc作基址寄存器,通过变址寻址方式读出存放在程序存储器中的常数,如:MOVC A, A+DPTR;将DPTRA指定的程序存储器单元信息送累加器Acc2.2.3 2.2.3 外部数据存储器外部数据存储器通过P0口、P2口最多可以连接64KB的外部数据存储器,有关外部数据存储器的连接及读写方式参阅2.5节。这里先介绍与外部数据存储器访问方式有关的寄存器。在增强型MCS-51芯片中,与外部数据存储器读写有关的寄存器包括数据指针DPTR、辅助功能寄存器(AUXR)及辅助功能寄存器1(AUXR1),与外部数据存储器读/写有关的MOVX指令包括:MOVX A,Ri ;将Ri寄存器指定的外部RAM单元(低8位外部数据存储器地址存放在Ri寄存器中,寻址范围为00HFFH)内容传送到累加器A(读操作)外部数据存储器扩展图MOVX Ri,A;将累加器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西京学院《建筑装饰材料及施工工艺》2023-2024学年第一学期期末试卷
- 第六首古诗《书湖阴先生壁》
- 西京学院《工程材料与热处理》2023-2024学年第一学期期末试卷
- 西华师范大学《中学数学教材分析》2022-2023学年第一学期期末试卷
- 西华师范大学《艺术思潮与流派》2023-2024学年第一学期期末试卷
- 西华师范大学《文化人类学》2023-2024学年第一学期期末试卷
- 西华师范大学《企业管理学》2022-2023学年第一学期期末试卷
- 西华师范大学《工程制图与打印》2022-2023学年第一学期期末试卷
- 西昌学院《影视戏剧鉴赏》2022-2023学年第一学期期末试卷
- 西昌学院《物联网工程实训》2022-2023学年期末试卷
- 山东省滨州市博兴县2024-2025学年九年级上学期11月期中数学试题
- 外立面改造项目脚手架施工专项方案
- ASTMD638-03中文版塑料拉伸性能测定方法
- 统编版(2024新版)七年级上册道德与法治期中模拟试卷(含答案)
- 砌筑实训课程设计
- 译林版(2024新版)七年级上册英语期中复习:完型及阅读 练习题汇编(含答案)
- 保安人员配置方案
- 食材配送实施方案(适用于学校、医院、酒店、企事业单位食堂等食材采购)投标方案(技术方案)
- 期中练习(试题)-2024-2025学年人教PEP版英语六年级上册
- 2024-2025学年五年级科学上册第二单元《地球表面的变化》测试卷(教科版)
- 学校厨房设备投标方案(技术标)
评论
0/150
提交评论