存储器单元的检查_第1页
存储器单元的检查_第2页
存储器单元的检查_第3页
存储器单元的检查_第4页
存储器单元的检查_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

第1页,共48页,2023年,2月20日,星期一单片机的存储器有哪些类型?单片机存储器的地址空间如何分配?如何对不同的存储器单元空间进行检查?涉及问题第2页,共48页,2023年,2月20日,星期一单片机的存储器采用哈佛体系结构。程序存储器和数据存储器互相独立,有各自的寻址机构和寻址方式。

通用微机的存储器结构采用普林斯顿体系结构。只有一个存储器逻辑空间,可随意安排ROM或RAM,访问时用同一种指令。单片机的存储器有哪些类型?参见教材《单片机的C51应用程序设计》第5、6页

第3页,共48页,2023年,2月20日,星期一内部存储资源外部扩展存储资源

片内程序存储器片外程序存储器片内数据存储器片外数据存储器从物理地址看分两大类、4个存储地址空间:参见教材《单片机的C51应用程序设计》第6页

第4页,共48页,2023年,2月20日,星期一程序存储器用于存放程序及表格常数。在单片机应用时,只能读,不能写。数据存储器用于存放程序运行所需要的给定参数和运行结果。在单片机应用时,既能读,又能写。第5页,共48页,2023年,2月20日,星期一KeilC51的Memory窗口能显示各种存储区的内容。如何对不同的存储器单元进行检查?参见教材《单片机的C51应用程序设计》第316页

单片机存储器的地址空间如何分配?不同的单片机,存储器的地址空间有所不同。第6页,共48页,2023年,2月20日,星期一程序存储器参见教材《单片机的C51应用程序设计》第5页、第59页

以8051为例存储容量:64KB地址范围:0000H~FFFFH第7页,共48页,2023年,2月20日,星期一片内与片外程序存储器的选择

EA引脚接高电平---片内以8051为例参见教材《单片机的C51应用程序设计》第5页

、第59、60页

第8页,共48页,2023年,2月20日,星期一EA引脚接低电平---片外以8051为例参见教材《单片机的C51应用程序设计》第5页

、第60页

第9页,共48页,2023年,2月20日,星期一

程序存储器低端的几个特殊单元

以8051为例参见教材《单片机的C51应用程序设计》第6页

第10页,共48页,2023年,2月20日,星期一1、打开实验例程→实验1→C51→工程文件。2、编译。3、调试,查看反汇编窗口、程序存储器的情况。4、运行,查看反汇编窗口、P1口的情况。思考:1、反汇编窗口中出现了几种语言?2、程序存储器中存放的是什么?3、能修改程序程序存储器的内容吗?演示第11页,共48页,2023年,2月20日,星期一反汇编窗口(DissamblyWindow)点击View→DissamblyWindow可以打开反汇编窗口。该窗口可以显示反汇编后的代码、源程序和相应反汇编代码的混合代码。可以在该窗口进行在线汇编、利用该窗口跟踪已找行的代码、在该窗口按汇编代码的方式单步执行。KeilC51中的参见教材《单片机的C51应用程序设计》第314页

第12页,共48页,2023年,2月20日,星期一存储器观察窗口(MemoryWindow)在调试状态下,选择主菜单View下的MemoryWindow选项,可打开或关闭存储器观察窗口。存储器观察窗口分4页,分别是Memory#1~Memory#4。每一页都可以显示程序存储器、内部数据存储器和外部数据存储器的值。参见教材《单片机的C51应用程序设计》第316页

KeilC51中的第13页,共48页,2023年,2月20日,星期一通过在Address后的编缉框内输入“字母:数字”即可显示相应内存值,其中字母可以是C、D、I、X、S。例如:C:30C:0X500C:1000H字符存储空间C片内及片外ROMD直接寻址的片内RAMI间接寻址的片内RAMX片外RAMS系统占用空间第14页,共48页,2023年,2月20日,星期一在存储器窗口的地址栏处输入C:0000H后回车,则可以观看所有单片机片内程序存储器从地址0开始的单元内容,即查看程序的二进制代码。下面用横线画出来的部分就是已经编辑的源程序转化成的机器语言的十六进制数(对应的机器码)。第15页,共48页,2023年,2月20日,星期一如果在存储器窗口的地址栏处输入D:30H后回车,则可以观看单片机片内数据存储器30H单元开始的内容。如果在存储器窗口的地址栏处输入I:10后回车,显示10号单元开始的内部数据存储器的内容。该部分是间接寻址方式。如果在存储器窗口的地址栏处输入X:0x1000后回车,显示从1000H单元开始的外部数据存储器的内容。第16页,共48页,2023年,2月20日,星期一第一部份又有多个选择项,其中Decimal项是一个开关,如果选中该项,则窗口中的值将以十进制的形式显示,否则按默认的十六进制方式显示。Unsigned和Signed则分别代表无符号形式和有符号形式。Unsigned和Signed后分别有三个选项。Char:以单字节方式显示。Int:将相邻双字节组成整型数方式显示。Long:将相邻四字节组成长整型方式显示。第17页,共48页,2023年,2月20日,星期一究竟从哪一个单元开始的相邻单元则与你的设置有关。以整型为例,如果你输入的是I:0,那么00H和01H单元的内容将会组成一个整型数;如果你输入的是I:1,01H和02H单元的内容全组成一个整型数,以此类推。第三部份的ModifyMemoryatX:xx用于更改鼠标处的内存单元值,选中该项即出现一个对话框,可以在这个对话框内输入要修改的内容。

第18页,共48页,2023年,2月20日,星期一这些窗口的显示值可以以各种形式显示,如十进制、十六进制、字符型等,改变显示方式的方法是点鼠标右键,在弹出的快捷菜单中选择。

该菜单用分隔条分成三部份,其中第一部份与第二部份的三个选项为同一级别。选中第一部份的任一选项,内容将以整数形式显示。选中第二部份的Ascii项则将以字符型式显示。选中Float项将相邻四字节组成的浮点数形式显示。选中Double项则将相邻8字节组成双精度形式显示。

第19页,共48页,2023年,2月20日,星期一1、打开实验例程→实验1→ASM→工程文件,编译调试,查看程序存储器的情况,说明程序代码存放的地址。2、打开实验例程→实验2→ASM→工程文件。修改工程设置,选择软件仿真。编译调试,查看程序存储器的情况,说明程序代码存放的地址。3、在第2步的基础上,运行程序。如有问题,查找原因,修改程序,直至能够运行。思考:第一条指令要放在程序存储器的哪个地方?我来演示第20页,共48页,2023年,2月20日,星期一数据存储器参见教材《单片机的C51应用程序设计》第5页、第60页以8051为例存储容量:256B地址范围:00H~FFH存储容量:64KB地址范围:0000H~FFFFH片内、片外数据存储器独立编址。第21页,共48页,2023年,2月20日,星期一

工作寄存器区:共32个字节,分成4个工作寄存器组,每组8个单元。寄存器0组:地址00H~07H;寄存器1组:地址08H~0FH;寄存器2组:地址10H~17H;寄存器3组:地址18H~1FH。以8051为例参见教材《单片机的C51应用程序设计》第5页、第60页第22页,共48页,2023年,2月20日,星期一当前工作寄存器组选择

PSW寄存器中:

以8051为例参见教材《单片机的C51应用程序设计》第5页、第60、61页第23页,共48页,2023年,2月20日,星期一位寻址区:共16个单元,128位以8051为例第24页,共48页,2023年,2月20日,星期一通用RAM区

30H~7FH,共80字节

数据缓冲

堆栈一般设置在这个区域先进后出,后进先出堆栈指针SP指示栈顶复位时SP=07H系统初始化通常重新设置以8051为例参见教材《单片机的C51应用程序设计》第8页、第61页第25页,共48页,2023年,2月20日,星期一与运算器相关3个

ACCBPSW与定时/计数器相关6个

TH0,TL0TH1,TL1TMODTCON指针类3个

SPDPH,DPL与口相关7个

P0,P1,P2,P3SBUFSCONPCON与中断相关2个

IEIP

特殊功能寄存器

SFR(SpecialFunctionRegister)51系列单片机共21个SFR单片机中各功能部件所对应的寄存器参见教材《单片机的C51应用程序设计》第7页、第64、65页第26页,共48页,2023年,2月20日,星期一序号标识符名称字节地址位地址1ACC累加器E0HE0H~E7H2BB寄存器F0HF0H~F7H3PSW程序状态字D0HD0H~D7H4SP堆栈指针81H5DPH数据指针(高8位)83H6DPL数据指针(低8位)82H7P0P0口80H80H~87H8P1P1口90H90H~97H9P2P2口A0HA0H~A7H10P3P3口B0HB0H~B7H11IP中断优先级控制寄存器B8HB8H~BFH12IE中断允许控制寄存器A8HA8H~AFH13TMOD定时器/计数器方式控制寄存器89H第27页,共48页,2023年,2月20日,星期一14TCON定时器/计数器控制寄存器88H88H~8FH15T2CON定时器/计数器2控制寄存器C8HC8H~CFH16TH0定时器/计数器0(高字节)8CH17TL0定时器/计数器0(低字节)8AH18TH1定时器/计数器1(高字节)8DH19TL1定时器/计数器1(低字节)8BH20TH2定时器/计数器2(高字节)CDH21TL2定时器/计数器2(低字节)CCH22RLDH定时器/计数器2重自动装载(高字节)CBH23RLDL定时器/计数器2重自动装载(低字节)CAH24SCON串行口控制寄存器98H98H~9FH25SBUF串行数据缓冲器99H26PCON电源控制及波特率选择寄存器97H第28页,共48页,2023年,2月20日,星期一

与运算器相关的寄存器(3个)1、累加器ACC,8位。提供操作数,存结果。2、寄存器B,8位。主要用于乘、除法运算。3、程序状态字寄存器PSW,8位。

P:奇偶标志位。ACC中结果有奇数个1时P=1,否则P=0。OV:溢出标志位。有溢出时OV=1,否则OV=0;RS1、RS0:当前工作寄存器组选择位;F0:用户标志位,由用户自己定义;AC:辅助进位、借位标志;CY:进位、借位标志。有进位、借位时CY=1,否则CY=0;D7D6D5D4D3D2D1D0CyACF0RS1RS0OV/P第29页,共48页,2023年,2月20日,星期一寄存器观察窗口(ProjectWindow)在调试状态下,选择主菜单View下的ProjectWindow选项,可打开或关闭工程项目窗口。工程项目窗口中的寄存器页(Regs)给出了当前的工作寄存器组(r0~r7)和系统寄存器的值。系统寄存器组有一些是实际存在的寄存器如a、b、sp、dptr、pc、psw等特殊寄存器,有一些是实际中并不存在或虽然存在却不能对其操作的如PC、Status等。KeilC51中的第30页,共48页,2023年,2月20日,星期一寄存器及其存储器映射如下图:第31页,共48页,2023年,2月20日,星期一每当程序中执行到对某寄存器的操作时,该寄存器会以反色(蓝底白字)显示。用鼠标单击然后按下F2键,即可修改该值。在执行程序的过程中可以看到,这些值会随着程序的执行发生相应的变化。

第32页,共48页,2023年,2月20日,星期一思考:1、R2共变化了几次?R2的这几个数值分别对应哪几个存储单元?2、通过什么可以切换当前工作寄存器组?切换当前工作寄存器组有什么用处?我来演示ORG0000HMOVR2,#30HMOVPSW,#08HMOVR2,#45HMOVPSW,#10HMOVR2,#91HMOVPSW,#18HMOVR2,#0C2HEND打开一个含汇编语言文件的工程项目,修改程序,编译通过。调试,单步运行,查看R2、PSW、片内数据存储器的变化。第33页,共48页,2023年,2月20日,星期一思考:1、单片机的位寻址区主要有两大块,它们分别为哪两大部分?2、位地址与字节地址是如何区分的?我来演示ORG0000HCPL00HCPL7FHCPL80HCPLP0.1CPLCMOV20H,#34HMOV20H,CEND打开一个含汇编语言文件的工程项目,修改程序,编译,调试,单步运行,查看并讲述片内数据存储器、P0口的变化。第34页,共48页,2023年,2月20日,星期一思考:1、SP怎么变化?2、数据的传送有什么规律?我来演示 ORG0000H MOVSP,#60H PUSHACC PUSHB PUSH30H PUSH31H POP40H POP41HPOP42HPOP43H END打开一个含汇编语言文件的工程项目,修改程序,编译,调试,单步运行,修改变量值,查看SP、ACC、B、片内数据存储器的变化。第35页,共48页,2023年,2月20日,星期一第5次作业教材《单片机的C51应用程序设计》P398、8051内部RAM低128字节可分成几个区域?其中通用寄存器区的字节地址范围为多少?如何实现寄存器组的切换?可位寻址区的字节地址和位地址范围分别为多少?第36页,共48页,2023年,2月20日,星期一实验二

实验科目:单片机应用及C51编程

实验名称:存储器单元的检查第37页,共48页,2023年,2月20日,星期一一、实验目的学习利用KeilC51软件对51单片机内RAM、片外RAM、片内外ROM及特殊功能寄存器等不同存储器单元空间的检查方法,加深对单片机存储器地址空间分配的理解。第38页,共48页,2023年,2月20日,星期一二、实验内容通过单步执行简单的汇编程序,利用KeilC51软件提供的寄存器窗口、内存窗口、片内ROM及片外ROM窗口观察各存储器空间的内容,掌握不同空间的不同检查方法。第39页,共48页,2023年,2月20日,星期一三、仪器设备计算机KeiluVision3软件第40页,共48页,2023年,2月20日,星期一四、实验步骤一、基本任务1、建立一个文件夹(以自己的学号姓名命名),建立一个新工程(以姓名拼音命名),在工程中新建一个汇编程序文件(以姓名拼音命名),并把文件添加到当前工程中。第41页,共48页,2023年,2月20日,星期一2、输入下列程序。3、编译,修改错误,直至通过。ORG0000HMOVA,#34HADDA,#34HMOVR7,AADDA,#34HMOV34H,AMOVB,AMOVDPTR,#1000HMOVX@DPTR,AMOVDPTR,#0000HMOVA,#01HMOVCA,@A+DPTRMOVP1,AEND

第42页,共48页,2023年,2月20日,星期一4、调试,查看程序存储器的内容。5、单步运行,查看工作寄存器、特殊寄存器、片内数据存储器、片外数据存储器的内容。6、更改工作寄存器、SFR、片内RAM、片外RAM的内容。7、单击“RST”按钮让CPU复位。8、全速运行。第43页,共48页,2023年,2月20日,星期一二、提高任务1、移除除工程中的原文件,添加新文件。2、输入下列程序。3、编译,调试,查看程序存储器的内容。4、单步运行,查看SP、R2、片内RAM的变化。 ORG0000H MOVSP,#64H MOVR2,#30H PUSH02H M

温馨提示

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

评论

0/150

提交评论