找回密码
 注册
关于网站域名变更的通知
查看: 213|回复: 2
打印 上一主题 下一主题

51单片机经典范例演练2 对ROM容量进行拓展

  [复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-5-23 09:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
, u$ v! g4 q" v- ], k
有些情况下,单片机没有ROM或ROM容量不够时,我们需要对其进行拓展。
8 P+ |. e  Y# A! s& v% m常见的ROM有紫外线擦除电可编程只读存储器(EPROM)、电擦除电可编程只读存储器(EEPROM)、Flash电擦除电可编程只读存储器(Flash EEPROM),这里我们优先选择电擦除的EEPROM。
! m- g) O) ?. H3 g( A6 ^由于51单片机是程序与数据分别存储的哈佛结构,因此对ROM的拓展也分为程序存储器与数据存储器这两个部分。
1 u4 E3 q! l7 X* \
, F5 @: y, d3 }* ?+ ?一、程序存储器的拓展6 m( E2 \7 Y& l; V& D+ z
EEPROM,电可擦除可编程只读存储器既有可读写,又具有掉电保存的特点,因此EEPROM既可作为程序存储器又可以作为数据存储器。EEPROM一般以28为头命名,本节课本参考了《51单片机应用开发范例大全》,选择Atmel公司生产的AT28C64作为案例讲解。0 B" z: F' ], Q" N; Q
AT28C64已经停产,可以用AT28C256代替(将ST28C256两个高位地址接地即可)。; [4 B5 ^. i) m; A% a
, Z3 N* P4 a9 D1 K
1、AT28C64各引脚及功能/ m  \7 @! {, ^" u& z
A0~A12  地址输入
9 ^5 L: M) S2 ^; l  u% RD0~D7   数据输入/输出
! [4 ^7 \2 ^9 Y' G; P~OE:数据输出使能端8 K. ^/ u  z# w: k5 g
~WE:写使能端3 F6 y0 B/ F- H
~CE:片选线
$ e) {" G; l, V: a# o6 M; zRDY/~BUSY就绪/忙输出2 |# I1 k3 @: P8 `" G4 x
读出:当~CE和~OE为低电平且~WE为高电平时,由地址线所决定的存储单元中的数据发送到数据线;当~CE或~OE为高电平时,数据线设置为高阻态
" \, h, B5 V4 e6 C) I7 J字节写:当~OE为高电平、~CE或~WE为低电平时,在~WE或~CE加一个低电平脉冲来启动一个字节写过程,写入的地址在~WE或~CE的下降沿锁存,要写入的数据在~WE或~CE的上升沿锁存。/ ~0 o8 z1 w  n/ Z, [8 r
RDY/~BUSY:该引脚是一个开漏输出,可用于检测一个写过程是否结束。
1 i7 ]9 g3 @* A3 k' x' Z4 O如下图所示,进行连接即可:+ F2 V* U4 k3 s
: y: w6 q, S9 ~* f  x
当执行的程序地址大于单片机内部程序存储地址时,CPU会根据程序计数器的值自动到片外拓展的程序在程序存储器中取指令,并不需要额外的驱动代码。. H2 ?; P1 }, h7 R2 f5 P0 L
+ q3 \3 |0 l7 N8 e/ ]/ i
二、外部数据存储器的扩展
' ]: m4 N$ V1 W8 q* N数据存储器有两种拓展方式,一种是拓展RAM,另一种是拓展EEPROM,掉电后不丢失。& i% f7 ]3 X3 }: a  p
我们本次选择AT24系列EEPROM,这种可以在线读写的ROM芯片能让我们像使用硬盘一样的使用它。
0 R$ R- @* t! ]4 k( {/ x+ a- vAT24C02芯片的使用需要先了解我们还没有接触过的I2C通信。
) ^7 }) }  e: f  R- w2 C# E% I51单片机并没有I2C功能,因此只能用通用I/O口进行软件模拟。$ S! {7 t2 o6 c; V* r/ e
* M. ~+ f) Y( C' {0 \! S1 e
1、AT24C02各引脚功能6 b* E3 F2 m2 }+ J3 T$ g3 y( D
A0~A2用于片选* ^9 ^  U# G* ^, _- R$ o2 V
SDAI2C数据引脚' x4 ?1 w9 Q, g7 Y
SCLI2C时钟引脚( `4 |9 @" p9 j# v/ T1 u2 j$ c
WP高电平时为“写保护”,此时只能读,不能写' l  S% [+ t5 x* {
各硬件按如下方式进行连接:  P0 K0 b9 ]( q6 _% r: o) H
4 j3 e6 {4 H) N, A4 U$ h. k$ f
在学习I2C通信之后,我们会回过头来编写I2C通信的驱动,完整的运行一遍。! G; l9 s, [% ~# F' F) H% g
51单片机的自身资源比较少,因此学会存储器的拓展对一些复杂或占用资源较多的算法来说很有必要。在第六期的课程中,我们会使用单片机实现一个简单的神经网络,实现神经网络模型算法对于单片机的存储量有一定要求,所以就需要外部存储器的帮助了。

该用户从未签到

2#
发表于 2022-5-23 13:09 | 只看该作者
学习学习。(~ ̄▽ ̄)~

该用户从未签到

3#
发表于 2022-5-23 14:31 | 只看该作者
(~ ̄▽ ̄)~学习学习。Thanks♪(・ω・)ノ
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-24 04:38 , Processed in 0.109375 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表