程序存储器通常是只读存储器,用于保存应用程序代码,同时还可以用于保存程序执行时用到的数据(例如保存查表信息)。 1.程序存储器的分类 1、掩模程序存储器ROM 由生产商排版写程序,适合批量生产 程序不能再修改 使用起来不够灵活。 2、紫外线可擦除的程序存储器EPROM: 可以由用户烧写程序 也可以随时用紫

程序存储器通常是只读存储器,用于保存应用程序代码,同时还可以用于保存程序执行时用到的数据(例如保存查表信息)。

 

1.程序存储器的分类

 

1、掩模程序存储器ROM 由生产商排版写程序,适合批量生产 程序不能再修改 使用起来不够灵活。

2、紫外线可擦除的程序存储器EPROM: 可以由用户烧写程序 也可以随时用紫外线照射来擦除成空白芯片 可以反复使用。

3、电擦除程序存储器EEPROM 即也叫E2PROM 可以反复擦除 跟紫外线可擦除相比 擦除方便 擦除时间更快。

4、一次性写入的PROM, 可以用户自己写入程序 但只能写入一次 不能再擦除 成本低 适合批量生产。

5、闪存Flash : 非易失随机访问存储器(NVRAM)的俗称(不是只读存储器)写速度远远高于电擦除程序存储器EEPROM 。


(图片来源于互联网)

 

2.程序存储器的功能

 

程序存储器用于存放编好的程序和表格常数。程序存储器通过16位程序计数器PC寻址,寻址能力为64K字节。8051,8751的64程序存储器片内ROM为4K字节,地址为0000H—0FFFH,片外最多可扩至64K字节ROM,地址1000H—FFFFH,片内外是统一编址的。

当引脚EA接高电平时,8051程序计数器PC在0000H—0FFFH范围内,即前4K字节地址执行片内ROM中的程序;当指令地址超过0FFFH后,就自动地转向片外ROM指令。

当引脚EA接低电平时,8051片内ROM不起作用,CPU只能从片外ROM中取指令,地址可以从000H开始编址。这种接法特别适用于采用8031单片机的场合,由于8031片内不带ROM,所以使用使必须使EA=0.以便能够从外部扩展EPROM中取指令。

 0003H—0023H单元均匀地分为五段,用作五个中断服务程序的入口,因为这五个入口之间的间隔较小,因此,一般说来这五个入口处都是放的一条跳转指令,而把真正的中断服务程序视情况安排在后面的存储器中。这五个入口分别是:

0003h:外部中断0的入口地址,当外部中断引脚INT0,即P3.2有效时,引起中断申请,CPU响应中断后自动将地址0003H装入程序计数器PC,程序就被转换到0003H去执行外部中断0的中断服务程序。

000Bh:定时器0溢出中断的入口地址,当定时器T0产生溢出时,引起中断申请,CPU响应中断后自动将地址000BH装入程序计数器PC, 程序就被转移到000BH去执行定时器0的中断服务程序。

0013h:外部中断1的入口地址,当外部中断引脚INT1,即P3.3有效时,引起中断申请,CPU响应中断后自动将地址0013H装入程序计数器PC, 程序就被转移到0013H去执行外部中断1的中断服务程序。

001Bh:定时器1溢出中断的入口地址,当定时器T1产生溢出时,引起中断申请,CPU响应中断后自动将地址001BH装入程序计数器PC, 程序就被转3移到0003H去执行定时器1的中断服务程序。

0023h:串行接口中断的入口地址,当串行接口接收或发送完一个数据后,引起中断申请,CPU响应中断后自动将地址0023H装入程序计数器PC,程序就被转移到0023H去串行接口中断服务程序。


(图片来源于互联网)

 

3.程序存储器的特点

 

单片机内部的程序寄存器一般为1K~64K字节,通常是只读存储器,因为单片机应用系统大多数是专用系统,一旦研制成功,其软件也就定性,程序固化到只读存储器,用只读存储器作为程序存储器,掉电以后程序不会丢失从而提高系统的可靠性;另外,只读存储器集成度高、成本低


(图片来源于互联网)