① 80C51单片机中,什么叫单片机内部的数据存储器和外部存储器
单片机内部的数据存储通过内部总线访问的数据存储器,128Bytes,或256Bytes。访问命令为 MOV
外部存储器,通过外部端口,即通过P0、P2形成地址总线和数据总线来访问。访问命令为 MOVX。2个访问周期
当然,现在也有将外部存储器集成到内部的芯片,但仍然是外部存储器。
仍然用MOVX访问。2个访问周期
② 单片机存储器主要由哪几个部分组成,如何使用
存储器由存储体、地址译码器和控制电路组成。
1)存储体是存储数据信息的载体。由一系列存储单元组成,每个存储单元都有确定的地址。存储单元通常按字节编址,一个存储单元为一个字节,每个字节能存放一个8位二进制数。就像一个大仓库,分成许多房间,大仓库相当于存储体,房间相当于字节,房间都有编号,编号就是地址。
2)地址译码器将CPU发出的地址信号转换为对存储体中某一存储单元的选通信号。相当于CPU给出地址,地址译码器找出相应地址房间的钥匙。通常地址是8位或1 6位,输入到地址译码器,产生相应的选通线,8位地址能产生28=256根选通线,即能选通256字节。16位地址能产生216=65536=64K根选通线,即能选通64K字节。当然要产生65536根选通线是很难想象的,实际上它是分成256根行线和256根列线,256 X 256=65536,合起来能选通65536个存储单元。
3)存储器控制电路包括片选控制、读/写控制和带三态门的输入/输出缓冲电路。
①片选控制确定存储器芯片是否工作。
②读/写控制确定数据传输方向;若是读指令,则将已被选通的存储单元中的内容传送到数据总线上;若是写指令,则将数据总线上的数据传送到已被选通的存储单元中。
③带三态门的输入/输出缓冲电路用于数据缓冲和防止总线上数据竞争。数据总线相当于一条车流频繁的大马路,必须在绿灯条件下,车辆才能进入这条大马路,否则要撞车发生交通事故。同理,存储器的输出端是连接在数据总线上的,存储器中的数据是不能随意传送到数据总线上的。例如,若数据总线上的数据是“1”(高电平5V),存储器中的数据是“0”(低电平OV),两种数据若碰到一起就会发生短路而损坏单片机。因此,存储器输出端口不仅能呈现“1”和“O”两种状态,还应具有第三种状态“高阻"态。呈“高阻"态时,它们的输出端口相当于断开,对数据总线不起作用,此时数据总线可被其他器件占用。当其他器件呈“高阻"态时,存储器在片选允许和输出允许的条件下,才能将自己的数据输出到数据总线上。
③ 关于单片机内部存储器的使用,急求解答。一头雾水啊
是的,程序大小是17855字节,Xdata用了 89字节,data出现小数点,是因为你程序中用了bit类型的变量,你的程序用了 (N*8 + 6)个位类型的变量,N = 0---15 之间
你前面的那个有关擦除是什么?是下载单片机程序,还是单片机IAP编程?还是使用单片机内部的EEPROM?
④ 关于51单片机内部存储器
51单片机内部分数据存储器和程序存储器,数据存储器分配如:00H~1FH 为四个工作寄存器区、20H~2FH为位寻址区、30H~7FH为一般RAM区、80H~FFH为特殊功能寄存器区。内部程序存储器分配是0000H~0FFFH。1000H~FFFFH为外部程序存储器。但别忘了当访问内部程序存储器时EA一定要接高电平。当EA为低电平时,单片机会全部访问外部程序存储器。
⑤ 求助。关于51单片机的内部数据存储器。
idata 指定数据存储在内部256字节的RAM数据存储区。不是低256字节。
而是这256字节存储分为低128字节,高128字节。
如:AT89SC1只有低128字节,而AT89C52才有256字节。
如果用汇编语言写程序,这两部分的寻址方式是不同的,低128字节可以间接寻址,也可以直接寻址。而高128字节,只能间接寻址。
在建工程时,如果选AT89C51,程序就只能用低128字节。但是选了AT89C52,才可以使用256字节。
这不是什么特意去存低256字节的事。
关于单片机的存储器的结构空间,任何一本关于51单片机的教材或书都会讲的。
⑥ 单片机片内存储器和片外存储器的作用和概念
单片机片内存储器包括片内ROM和片内RAM,片内ROM用于存储程序代码,片内RAM包括寄存器和片内扩展RAM,比如STC的很多型号都有片内扩展EEPROM。
片外存储器包括片外ROM和片外RAM,片外ROM用户存储程序代码,片外RAM用于存储用户的可改写数据。
⑦ 单片机上电时内部各个存储器状态
首先单片机复位也分别几种:掉电再通电,按复位按钮,程序复位,通过外部接口复位。
各芯片的复位电路大同小异,这里以51系列单片机为例,上电后,保持RST一段高电平时间,就能达到上电复位的操作目的。
常见的复位电路如下:
1.掉电再通电,这里就视为冷启动吧
这种情况下单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,特殊功能寄存器复位后的状态为确定值,具体可参考相应单片机的说明书。
2.按复位按钮
这种情况下单片机的复位操作也会使程序计数器PC=0000H,程序重新从 0000H 地址执行,但是与第1种情况不同的是,片内RAM为复位前的状态值,也就是说,运行中的复位操作不改变片内RAM区中的内容。而特殊功能寄存器复位后的状态为确定值,具体可参考相应单片机的说明书。
51单片机复位后特殊功能寄存器的初始值
特殊功能寄存器 初始值 特殊功能寄存器 初始值
ACC 00H TCON 00H
B 00H TMOD 00H
PSW 00H TL0 00H
SP 07H TH0 00H
DPTR 0000H TL1 00H
P0~P3 FFH TH1 00H
PCON 0XXX 0000B T2CON 00H
AUXR XXX0 0XX0B T2MOD XXXX XX00B
AUXR1 XXXX XXX0B RCAP2L 00H
IE 0X00 0000B RCAP2H 00H
IP XX00 0000B TL2 00H
SCON 00H TH2 00H
SBUF XXXX XXXXXB WDTRST XXXX XXXXB
表中部分符号的含义如下:
PSW=00H:表明复位后自动选择第0组工作寄存器组为当前工作寄存器组
SP=07H:表明堆栈指针指向片内RAM07H单元,堆栈的压入操作为先加后压,所以第一个被压入的数据存放在08H单元中
P0~P3=FFH:表明各端口写入1,此时各端口既可作输入口,也可以作输出口
AUXR=XXX0 0XX0:表明ALE引脚在CPU不访问外部存储器期间有脉冲信号输出
AUXR1=XXXX XXX0:表明选择DPTR0作数据指针
IE=00H:表明各中断均关闭
TCON=00H:表明T0,T1 均被停止
SCON=00H:表明串口处于方式0,允许发送,不允许接收
PCON=00H:表明SMOD=0,波特率不加倍。PD=0,IDL=0,单片机处于正常工作方式。
3.程序复位
这种情况下单片机的复位操作由程序内部控制,功能要视乎程序的编写。例如我们可以操作使程序计数器PC=0000H,同时
添加RAM初始化程序,清0或置1,同时设置某些特殊寄存器的值,或者其他操作,总之这是一种软件操控的复位,功能可灵活控制。
4.外部接口复位待研究。
P.S.
1.什么是冷启动?热启动呢?
冷启动就是在不加电的情况下启动系统,热启动就是在加电的情况下重启系统!
例子:
冷启动是之直接按下电源开关启动计算机。
热启动是之在已开机的状态下在开始菜单中选择重新启动计算机,这叫做热启动。
⑧ STC89C52 单片机的内部程序存储器与数据存储器容量各为多少
STC89C52 单片机的内部程序存储器为8K字节;内部数据存储器容量为512字节。
⑨ 单片机内部程序存储器ROM,4K的存储容量是什么
单片机内如ROM4K的存储容量也就是4096个字节的容量地址空间是0000H~0FFFH主要存储的是程序、一些常量、数据表等等。
⑩ 单片机读片外数据存储器信号输出端是什么
/EA是外部程序存储器选择端,当其为低电平时,cpu只访问外部rom,当其为高电平时,cpu首先访问内部rom并自动延至外部rom。8031内部没有rom,/EA端必须接地。
ALE:地址锁存允许信号,当cpu访问外部存储器时,ALE信号由高电平变为低电平(下降沿有效)锁存p0口输出的低8位地址。
单片机读片外数据存储器信号movx a,@dptr