1. 程序存储器是用于寄存是体系作业的应用程序及一些不需改动的数据常数的,程序写入程序存储器后,单片机体系只能读取程序指令使体系运转,而不能再进行改写,且体系掉电后,程序不会丢掉。因而,程序存储器是ROM(Read Only Memory),即只读存储器。 数据存储器是用于寄存程序运转的中心处理数据的,可随程序运转而随时写入或读出数据存储器的内容,当体系掉电时,数据全部会丢掉。因而,数据存储器是RAM(Random Accese Memory),即可随机读写的存储器。
EEPROM和FLASH根本都是非易失性存储器。EEPROM应归于数据存储器,可是它制作工艺和FLASH更近似。FLASH是用于存储程序代码的,有些场合也或许用它来保存数据,当然条件是该单片机的FLASH工艺是能够自写的(运转中可擦写),但要留意FLASH的擦写次数一般小于一万次,并且一般FLASH只能按块擦除。EEPROM不能用来存程序,一般单片机的指令寻址不能到这个区域。EEPROM的擦写次数应有百万次,并且能够按字节擦写。
2.由于程序存储器和数据存储器是独立编址的,拜访的时分能够选用不同的指令和不同的选通信号来区别。
榜首,单片机选用三总线结构传递数据。地址总线、数据总线、操控总线。传递数据的进程是先寻址,再传递数据。即先送一个地址信息(由微处理器向总线写一个地址信息),由寄存器(也或许是程序存储器,也或许是数据存储器)依据这个地址,把微处理器要读取的数据写到总线上,微处理器再读取这个数据。整个进程由操控总线操控。所以每次读的数据是针对那个地址对应的寄存器操作的,不会产生紊乱。写数据时相同,先寻址,再写数据,数据就写入方才寻址时的地址对应的那个寄存器里去了。 第二、程序存储器、数据存储器有不同的选通信号,在一个指令周期里,是不同的时刻选通的,所以不会紊乱。 第三。选通的引脚不同。拿片外数据存储器来说,是P3的第6和第7引脚做选通信号,程序存储器是PSEN做选通信号,他们接在各自器材的选通引脚上,所以不会紊乱。 第四,指令不同。拿汇编指令来说。MOV是程序存储器传递数据用,MOVX是数据存储器传递数据用(对片外而言)。 总归,记住三总线传递的方法,先寻址,再传数,由操控总线操控,这个形式,你就简单了解这个了。 单片机的p2和p0别离传递地址的高八位和低八位。一起p0还传递数据。在时序信号的ALE高电平期间,确定地址信息。/PSEN是选通程序存储器的。在/PSEN低电平期间是向程序存储器传递程序代码,/WR和/RD是选通数据存储器的,即在/WR和/RD(p3的六脚和七脚)低电平期间把数据传递给数据寄存器。而/PSEN和/WR及/RD是在不一起刻变为低电平的,没有堆叠的部分。也就是说,当/WR及/RD变成低电平时,/PSEN现已康复高电平了,由P0口传出的数据信息当然只会传到数据存储器里,由于程序存储器现已不再处于选通状况了!!从外表看,都是从p0口传出的,但由于选通器材的时刻不同而不会产生紊乱。当然我说的是片外程序存储器和数据存储器的的状况,其实对片内也相同,仍是三总线的这种操控方法,使它们在不同的时刻被选通,而不至于产生冲突。 看看单片机的一个电路图。你会发现p0既跟74LS373连,又跟8155或8255或键盘或数模转化器等等连。而8155或8255或键盘或数模转化器等等对单片机而言是作为数据存储器处理的。74LS373连的多半是程序存储器。那么p0送出的信号不是两者都承受了吗?留意看ALE接74LS373的G接口,锁存地址用,PSEN有时用有时不必。WR和RD接数据存储器的选通接口。由于WR和RD跟ALE的信号在时刻上没有堆叠部分,所以p0的信号不会被程序存储器和数据存储器一起收到。