ROM:是存储固定信息的存储器,使用时只能读出所存
的信息而不能写入数据。
一,ROM分类:
1、固定 ROM(掩膜 ROM):
用户专用 ROM,用户将程序代码交给 IC生产商,生产
商在芯片制造过程中将用户程序代码固化在 IC的 ROM中,
用户在使用过程只能读出不能写入。
2、可编程 ROM(PROM)
PROM所存的数据,由用户自己根据要求写入。但是
只能写一次,不允许第二次改写。
适合于小批量试产使用,有保密位,可以加密。价格
较高。
适合于大批量生产使用,性价比高。
3、可檫除,可编程 ROM( EPROM) (程序调试期间使用)
EPROM:用紫外光可以擦除 ROM中全部信息。擦除时间几分钟,
然后用专用编程器进行编程写入。
EEPROM:电擦除 ROM,直接在编程器上用电压信号进行擦除。重
新写入和擦除同步进行。擦除时间为 20ms。
EAPROM:直接在系统中擦除和改写,可以擦除全部内容,也可以
只擦除部分字节。正常使用只能读出不能写入。
只读存储器 ROM中的数据可以存储 5~20年而不丢失。
二,ROM工作原理
1,ROM结构




MXN矩阵
字 X位
读出放大,
选择电路
A1
A2
An
W0
W1
WM-1
B0 B1 BN-1
字线
位线
由三部分组成:
☆ 地址译码器
☆ 存储矩阵
☆ 读出放大,选择电路
当地址译码器选中某一个字线后,
该字线的若干位同时读出。
212= 4096字 XN位 ( N=8,16,32)





☆ 12位地址
读写
控制
1
1




VCC
A1
A0
D1
D3
D2
D0
VCC例:固定 PROM





EN
0W 1W 2W 3W




字线
分析已存入数据的固定
ROM电路。(二极管作
存储单元)
☆ 地址译码器
010 AAW ? 011 AAW ?
012 AAW ? 013 AAW ?
☆ 存储单元
0101133 AAAAWWD ????
0101010232 AAAAAAWWWD ??????
0101011231 AAAAAAWWWD ??????
0101020 AAAAWWD ????
地址译码器是一个 与门
阵列,每一个字线对应一个
最小项,且 是全部最小项。
存储单元是一个 或门阵列,每一个位线
是将所对应的与项相加,是最小项之和。

线
1
1




VCC
A1
A0
D1
D3
D2
D0









0W 1W 2W 3W
☆ 地址译码器 ( 字线 ) 和存
储矩阵 ( 位线 ) 之间的关系。
0101020 AAAAWWD ????
0101011231 AAAAAAWWWD ??????
0101010232 AAAAAAWWWD ??????
0101133 AAAAWWD ????
A1 A0 D3 D2 D1 D0
0 0 0 1 0 1
0 1 1 0 1 0
1 0 0 1 1 1
1 1 1 1 1 0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
字线 W和位线 D的每个交叉点都是
一个存储单元 。 交叉点接二极管
时相当于存 1,没有接二极管相当
于存 0。 交叉点的数目就是存储单
元数 。
存储容量=字数 X位数 = 4X4
交叉点还可以接三极管,MOS管等。
只有 W0为 1
其余为字
线为 0
1
0
有 0为 0,全 1为 1。
有 1为 1,全 0为 0。
★ PROM通用阵列图表示法:
将字线和位线画成相互垂直
的一个阵列, 字线和位线的
每一个交叉点对应一个存储
单元, 在交叉点上画一个
,点,, 表示该单元存, 1”,
否则表示该单元存, 0”。
A
B
A
B
0W 1W 2W 3W
★ PROM方框图:
地址码 与阵列

线
或阵列 位线
与 阵列是输入
变量的全部最
小项。不可编
程 。
与项相
加,可
编程
A1 A0 D3 D2 D1 D0
0 0 0 1 0 1
0 1 1 0 1 0
1 0 0 1 1 1
1 1 1 1 1 0
0D
1D
2D
3D
例:用二极管作存储单
元的固定 ROM
三,PROM应用举例
1、代码转换
例:用 ROM实现 4位二进制到格
雷码的转换。
A B C D W X Y Z
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
0 0 0 0
0 0 0 1
0 0 1 1
0 0 1 0
0 1 1 0
0 1 1 1
0 1 0 1
0 1 0 0
1 1 0 0
1 1 0 1
1 1 1 1
1 1 1 0
1 0 1 0
1 0 1 1
1 0 0 1
1 0 0 0
① 列状态转换真值表:
② 由真值表写出最小项之和表达式。
W=∑m(8~15)
X=∑m(4~11)
Y=∑m(2~5,10~13)
Z=∑m(1~2,5~6,9~10,13~14)
③ 根据最小项画出与、或点阵图
☆ 先画地址译码器,四变量,八
输入,十六个最小项,8X16阵列。
☆ 再画或阵列,只有四输出,每个
输出按最小项加表示。共 4X16阵列。
W
A
X
B
Y
C
Z
D
A
B
C
D
0 1 2 3 4 5 6 7 8 9101112131415
W=∑m(8~15)
X=∑m(4~11)
Z=∑m(1~2,5~6,9~10、
13~14)





把需要的最小项相加
★ 与阵列存储容量,16X8=128
★ 或阵列存储容量,16X4=64
★ 总存储容量= 128+ 64= 192
点阵图相当于将真值表存
入 PROM。
与阵列,不 可编程,所有
最小项都必须全部画出 。
或阵列,可编程,根据要
求选用。PROM
选用 PROM实现:
令,PROM地址码 A3~A0=ABCD
则 PROM Q3~Q0=WXYZ
3A
2A
1A
0A
3Q
2Q
1Q
0Q
Y=∑m(2~5,10~13)
2、用 ROM实现组合逻辑函数
例:用 ROM实现一位全加器
全加器真值表:
A B C i S CO
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
最小项之和表达式
S =∑m(1,2,4,7)
C0 =∑m(3,5,6,7)
画点阵图:
A
A
B
B
iC
iC
S
OC
0 1 2 3 4 5 6 7
AB00 01 11 10
0
1
AB00 01 11 10
0
1
AB00 01 11 10
0
1
例:用 ROM实现多输出函数
BCACBCAF ???1
CBAACF ??2
BCAF ??3
解:写出最小项之和表达式
11
1
1 1
1
1
11
1
1
1
?? mF ),,,6430(1
?? mF ),,750(2
?? mF ),,,,76543(3
A
B
C
A
B
C
1F
2F
3F
0 1 2 3 4 5 6 7
分析图示电路
1,74161组成模几计数器。
2、写出 W,X,Y,Z的函数表达式。
3、在 CP作用下,分析 WXYZ
端顺序输出 8421BCD码的状态,
并说明电路的功能。
BACDABCDADCW ???
ABDCC B ADBACDABCDADX ?????
D C B ACBDD C AABDY ????
D C AADDCBZ ????
WXYZ顺序输出 3141592653589793的 8421BCD码,电路为一
个能产生十六位 π 的函数发生器。
模 16计数器
1
1
1
1 0 1 2 3 4 5 6 7 8 9 10 11 12131415
Q3Q2Q1Q0
D3D2D1D0
CO74161
A
B
C
D
W
X
Y
Z
TCT
PCT
CR
LD
1
3、用 ROM实现字符发生器
常用的点阵字符规格有 9X7,7X7,7X5三种。
例:用 7X5点阵说明如何实现显示一个字符 R
列真值表:
地址码 输出
A2 A1 A0 D4 D3 D2 D1 D0
0 0 0 0 0 0 0 0
0 0 1 1 1 1 1 1
0 1 0 1 0 0 0 1
0 1 1 1 0 0 0 1
1 0 0 1 1 1 1 1
1 0 1 1 0 1 0 0
1 1 0 1 0 0 1 0
1 1 1 1 0 0 0 1
写出最小项之和表达式
D4=∑m(1~7)
D3=∑m(1,4)
D2=∑m(1,4,5)
D1=∑m(1,4,6)
D0=∑m(1~4,7)
R字符占用存储单元:
7X5=35
如何实现多字符显示?
输出为 7条字线,每条字线同时输出 5五位。
ROM矩阵
64X7X5












显示屏
A0~A2
A3~A8
8位
64位
5位
A0~A2:3位地址码是字符控制译码器的地址码。每个字
符是 7行 x5列,也可以说每个字符是 7个字 X5位。
A3~A8:6位地址是特征地址译码器的地址码。可寻址范
围 0~63。