您好,欢迎访问三七文档
课题三单片机内部存储器的纠错与调试掌握单片机内部存储器的结构掌握汇编语言相关指令和寻址方式编程实现对单片机系统的内部RAM和ROM的读写校验检查利用WAVE仿真开发软件对检查结果进行观察和验证。课题任务所需知识8051单片机的存储器结构单片机汇编语言软件系统相关知识WAVE仿真开发软件的应用时钟电路ROMRAMT0T1中断系统串行接口并行接口P0P1P2P3TXDRXDINT0INT1定时计数器结构框图51单片机内部结构框图CPU8051的存储器结构位:信息的基本单位是位(bit或b),表示一个二进制信息“1”或“0”。字节:在微型机中信息大多是以字节(Byte或B)形式存放的,一个字节由8个位信息组成(1Byte=8Bit),通常称作一个存储单元。存储容量:存储器芯片的存储容量是指一块芯片中所能存储的信息位数地址:地址表示存储单元所处的物理空间的位置,相当于存储单元的“单元编号”8051单片机存储器的组织结构普林斯顿结构程序和数据共用一个存储器逻辑空间,统一编址哈佛结构程序与数据分为两个独立存储器逻辑空间,分开编址8051存储器的组织结构8051单片机存储器,从物理结构上可分为4个存储器地址空间:·片内程序存储器空间·片外程序存储器空间·片内数据存储器空间·片外数据存储器空间8051存储器的组织结构8051单片机存储器,从逻辑结构上可分为3个存储器地址空间:·64KB程序存储器·256B片内数据存储器·64KB片外数据存储器内部存储器内部数据存储器RAM(RandomAccessMemory)随机存储器256个单元可多次信息写入和读出,写入后原信息被覆盖断电后原信息丢失内部程序存储器ROM(ReadOnlyMemory)只读存储器4K个单元信息写入,不能随机修改,使用时只能读取数据掉电后ROM中的信息仍然保留内部RAM(00H~FFH)低128单元:00H~7FH通用寄存器区位寻址区用户RAM区高128单元:80H~FFH特殊功能寄存器区-SFR22个专用寄存器21个专用寄存器属于SFR11个可位寻址内部内部数据存储器RAM外部00HFFH7FH80H(高128B)(低128B)RAM专用寄存器0000HFFFFH(64K)低128单元(内部RAM)单元地址00H~7FH寄存器区00H~1FH共32单元位寻址区20H~2FH共16单元20H21H2EH2FH00H01H02H03H04H05H06H07H每个单元8个位,共16×8=128位,位地址00H~7FH………共4组寄存器,每组有8个寄存器,使用时只使用其中1组,由PSW中的RS1、RS0两个位决定30H7FH...通常堆栈设置在该区域用户RAM区30H~7FH共80单元高128单元单元地址80H~FFH80HFFH...8051共22个SFR,其中1个PC寄存器无地址,所以只有21个SFR存放在专用寄存器区,其中有11个SFR可位寻址专用寄存器区数据存储器共256个单元00H~FFH00H01H02H03H04H05H06H07H第0组08H09H0AH0BH0CH0DH0EH0FH第1组10H11H12H13H14H15H16H17H第2组18H19H1AH1BH1CH1DH1EH1FH第3组R0R1R2R3R4R5R6R7RS1RS01110010008H09H0AH0BH0CH0DH0EH0FH22H10H11H12H13H14H15H16H17H70H71H72H73H74H75H76H77H78H79H7AH7BH7CH7DH7EH7FH☆离散分布有21个特殊功能寄存器SFR。☆11个可以进行位寻址。☆特别提示:对SFR只能使用直接寻址方式,书写时可使用寄存器符号,也可用寄存器单元地址。(1)累加器A(ACC)累加器ACC是8位寄存器,是最常用的专用寄存器,功能强,地位重要。它既可存放操作数,又可存放运算的中间结果。累加器非常繁忙,是单片机的执行程序瓶颈,制约了单片机工作效率的提高,现在已经有些单片机用寄存器阵列来代替累加器ACC。(2)数据指针DPTR数据指针DPTR为16位寄存器,它是8051中唯一供用户使用的一个16位寄存器。编程时,既可按16位寄存器使用,也可作为两个8位寄存器分开使用。DPH为DPTR的高八位寄存器,DPL为DPTR的低八位寄存器。DPTR通常在访问外部数据存储器时作为地址指针使用,寻址范围为64KB。(3)程序计数器PC16位计数器存放的内容为单片机将要执行的指令机器码所在存储单元的地址自动加1功能,实现程序的顺序执行不可寻址,可通过转移、调用、返回等指令改变其内容寻址范围64KB,即对应地址空间为0000H~FFFFH2.专用寄存器的单元寻址21个可寻址的专用寄存器不连续的分散在内部RAM高128单元中,空闲的单元用户不能使用。专用寄存器只能使用直接寻址方式。P0~P3口中,作为专用寄存器的实际是它们的锁存器寄存器符号地址寄存器名称*ACCE0H累加器*BF0HB寄存器*PSWD0H程序状态字SP81H堆栈指示器DPL82H数据指针低八位DPH83H数据指针高八位*IEA8H中断允许控制寄存器*IPB8H中断优先控制寄存器*P080HI/O口0*P190HI/O口1*P2A0HI/O口2*P3B0HI/O口3寄存器符号地址寄存器名称PCON87H电源控制及波特率选择寄存器*SCON98H串行口控制寄存器SBUF99H串行口数据缓冲寄存器*TCON88H定时器控制寄存器TMOD89H定时器方式选择寄存器TL08AH定时器0低8位TL18BH定时器1低8位TH08CH定时器0高8位TH18DH定时器1高8位3.专用寄存器的位寻址u有11个寄存器是可以位寻址的。u专用寄存器的可寻址位加上位寻址区的128个通用位,构成了位处理器的整个数据位存储空间。0000H内部程序存储器ROM内部外部0000H0FFFH(4KB)EA=1EA=00000H0FFFH(4KB)0000HFFFFH(64K)(PC)0000H是程序执行的起始单元,在这三个单元存放一条无条件转移指令0001H0002H中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH外部中断0定时器0中断外部中断1定时器1中断串行口中断8位...0FFFH0FFEH程序存储器资源分布中断入口地址12345678910111213142827262524232221201918171615EPROM276412345678910111213142827262524232221201918171615EPROM27641234567891011121314151617181920403938373635343332313029282726252424222112345678910111213142827262524232221201918171615RAM626412345678910111213142827262524232221201918171615RAM626480C3187C5180C5189C51片内RAM片内ROM256B(字节)4KB64K64K1.单片机指令系统概述2.指令寻址方式3.指令分类介绍课题软件系统开发相关知识•指令:是CPU根据人的意图来执行某种操作的命令。•程序设计语言:是实现人机交换信息的基本工具,分为机器语言、汇编语言和高级语言。•机器语言:用二进制编码表示每条指令,是计算机能直接识别和执行的语言。•汇编语言:是用助记符、符号和数字等来表示指令的程序设计语言。它与机器语言指令是一一对应的。u机器中的语言MCS-51汇编语言指令格式为:[标号:]操作码[操作数][;注释]标号与操作码之间“:”隔开;操作码与操作数之间用“空格”隔开;多个操作数之间用“,”分隔;操作数与注释之间用“;”隔开。•表示该指令所在的地址•汇编时以该指令所在的地址来代替标号•标号是以英文字母开始的由1-8个字母或数字组成的字符串,以“:”结束。•表示指令操作功能的英文缩写•是指令的核心部分•每条指令都必须有操作码,不能缺省。•表示指令的操作对象•指令中的操作数可以是0、1、2、3个•双操作数时,逗号右面的操作数称为源操作数;•逗号左面的操作数称为目的操作数。•指令或该程序段功能的说明•方便程序阅读u指令格式操作码70数据或寻址方式70双字节指令:标号:操作码操作数或操作数地址;注释单字节指令:操作码70例如:MOVA,R0例如:MOVA,30H例如:MOVDPTR,#2010H三字节指令:操作码7070数据或寻址方式70数据或寻址方式u指令中使用的符号含义符号含义Rn表示当前选定寄存器组的工作寄存器R0~R7Ri表示作为间接寻址的地址指针R0~R1#data表示8位立即数,即00H~FFH#data16表示16位立即数,即0000H~FFFFHaddr16表示16位地址,用于64K范围内寻址addr11表示11位地址,用于2K范围内寻址direct8位直接地址,可以是内部RAM区的某一单元或某一专用功能寄存器的地址Rel带符号的8位偏移量(-128~+127)bit位寻址区的直接寻址位(X)X地址单元中的内容,或X作为间接寻址寄存器时所指单元的内容←将←后面的内容传送到前面去1.单片机指令系统概述2.指令寻址方式3.指令分类介绍本章内容数据传送类指令算术运算类指令位操作类指令控制转移类指令逻辑运算及移位类指令伪指令汇编语言体系目的地址源地址数据MOV目的操作数,源操作数MOVA,#20H,ARndirect1@RiARndirect2@Ri#dataARndirect2@Ri#dataMOVRnA#datadirect2direct1ARndirect2@Ri#data@RiAdirect2#data20HA3.3.1数据传送指令(29条)1.8位数据传送指令(15条)MOV指令用于寻址内部RAM和SFR,MOV指令的操作功能可用下图描述。#DATA只能作为源操作数单项传递@R0、@R1不能直接互相传递,也不能和Rn之间传递数据Direct是唯一可以直接互相传递数据的Rn不能直接互相传递数据,也不能和@Ri直接互传数据通常作为各种寄存器传递数据的中转站我的信在那!找信去!②①注:找信是寻找信的“地址”!寻址方式目的地#XXH操作数MOVP1,#55HMOVA,#01H#55H目的地信寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址u立即寻址是指在指令中直接给出操作数。u出现在指令中的操作数称为立即数,因此就将这种寻址方式称为立即寻址。u为了与直接寻址指令中的直接地址相区别,在立即数前面加前缀“#”。u立即寻址的寻址范围是整个ROM。Eg.MOVP1,#80HMOVR7,#0F5HMOVDPTR,#1245H1.立即寻址方式目的地寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址内部RAM或SFR区操作数XXHMOVP1,20H20H目的地注:寻址是寻操作数的“地址”!直接给出地址20H——直接寻址2.直接寻址方式直接寻址是指在指令中直接给出操作数单元的地址。因为直接寻址方式只能使用8位二进制数表示的地址,因此这种寻址方式的寻址范围只限于内部RAM,具体如下:低128单元,直接以单元地址形式给出。专用寄存器,除以单元地址形式给出外,还可以寄存器符号形式给出。Eg.MOVA,00HMOVA,0F0H=MOVA,B目的地寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址寄存器目的地操作数XXHMOVP1,AR0-R7ABDPTR你能说出为什么叫寄存器寻址吗?3.寄存器寻址方式寄存器寻址方式是指令中给出寄存器名称,其内容作为操作数。寄存器寻址方式中,用符号名称来表示寄存器。寄存器寻址方式的寻址范围包括:当前寄存器组中的通用寄存器。部分特殊功能寄存器,A、B、DPTR。Eg.MOVA,R0思考:MOVA,R0与MOVA,00H的区别,当前寄存器组为0组时寄存器寻址直接寻址立即数寻址寄存
本文标题:内部存储器
链接地址:https://www.777doc.com/doc-4548320 .html