C51单片机扩展存储器的设计
51单片机:存储器

内部 RAM 0000 H
RAM (64K )
007FH
0000 H
数据存储器
引脚接为高电平时,CPU可访问内部和外部ROM,并 且程序自片内程序存储器开始执行,PC值超出片内 ROM容量时,会自动转向片外程序存储器中的程序。 引脚接为低电平时,CPU只 能访问外部ROM,无法使 用片内程序存储器。
(3)EPROM型(Erasable Programmable ROM,可擦除可编程 ROM),其典型外观标志是芯片上有一个紫外线擦除窗口。 这种存储器编程使用一定的直流电源(如+21V电压),而 擦除则用紫外线灯光照射芯片窗口(一般需15~30分钟), 重新编程后用不透明标签将窗口贴覆遮盖住即可。 MCS-51系列单片机8751的片内ROM以及27系列存储器 芯片都属于此类产品。 (4)E2PROM型(Electrically Erasable Programmable ROM,电可擦除可编程ROM)。这种存储器可以直接用电擦 写,比较方便数据的改写,较新型只读存储器,编程速度较 快。擦除、写入和读出电压均为+5V。28系列存储器属于此 类产品。
(二) 存储器的分类
sk ROM 型 OTPROM型
ROM
半导体存储器 (Memory)
EPROM型 E2PROM型 Flash ROM型 SRAM
RAM
DRAM
(1)Mask ROM 型:掩膜ROM。其编程只能由制造商通过 半导体掩膜技术完成,用户无法改写,所以对用户而言, 它是严格意义的只读存储器。如8051中的4KB程序存储器 就是这一种,这种ROM适用于有固定程序且大批量生产的 产品中。 一次可编程ROM(One Time 型:一次可编程 (2)OTPROM型: Programmable ROM)。用户可通过专门设备对其一次性写 入程序,此后便不能改写。这种程序存储器可靠性很高, 适合于存放已调试成功的用户程序,投入规模生产,但调 试阶段不宜用。目前,国内外有很多单片机制造商提供片 内集有OTPROM的单片机产品,可供用户选择。
《C51单片机》课程标准

《C51单片机》课程标准一、课程性质本课程为智能产品开发与应用专业核心课程,目标是让学生掌握单片机系统的硬件电路组成,学会单片机系统的软件设计方法,体会真实、完整的单片机开发工作过程(硬件电路焊接、电路调试、软件编程、程序下载等)。
从而使学生能够胜任小型智能化电子产品的设计与开发岗位。
它要以《实用电工技术》、《模拟与数字电路》、《C语言程序设计》课程的学习为基础,也是进一步学习《嵌入式技术应用》、《智能产品开发与实践》课程的基础。
二、课程设计思路本课程联合采用讲授法、案例教学法、多媒体组合教学法等多种教学方式,针对该课程特点,努力走实践、理论、再实践之路,将理论学习、实践应用、产品制作有机地结合为一体,以理论教学为基础,以实践训练为重点,以掌握知识和技能为教学目标,充分发挥教与学的积极性,激发学生的学习热情,提高课堂教学效果。
三、课程目标(一)总体目标通过本课程学习,使学生能够理解单片机应用系统的组成,能够根据实际控制系统要求,合理地选择单片机并对其硬件、软件进行设计;养成良好的沟通能力;培养团队协作精神;具有安全文明的工作习惯,良好的职业道德;较强的质量意识和创新精神。
具体应具备以下能力:(二)具体目标1.专业能力学生能够掌握微型计算机的基本知识和基本概念;学生能够掌握51系列单片机的基本结构和工作原理;学生能够掌握51系列单片机I/O口的特征和使用方法;学生能够掌握51系列单片机中断的工作原理和使用方法;学生能够掌握51系列单片机定时/计数器的工作原理和使用方法;学生掌握51系列单片机C51程序设计方法;学生能够掌握51系列单片机接口扩展技术和编程方法。
2.方法能力学生具有单片机应用产品电路识图、绘图能力;学生具有单片机应用产品焊接、制作、调试、故障排除、维修能力;学生具有单片机应用产品分析能力;学生具有单片机应用产品设计能力;学生具有单片机产品C语言编程能力;学生具有单片机产品软、硬件调试能力;学生具有资料查询、收集、分析、归类应用能力;学生具有常用测量工具和测量仪器使用能力。
51单片机数据存储器结构详解

51单片机数据存储器结构详解1、bit是在内部数据存储空间中20H..2FH区域中一个位的地址,这在DATA的20H以后以字节形式出现,可互相参照。
另外加上8051可寻址的SFR,但刚刚试过,只是00H--7FH起作用,也就是说当数据有变化时颜色变红,以后的从80H到--FFH就不是位寻址区了,是位寻址的特殊寄存器,如涉及到了可位寻址的那11个当然会有反应。
复位后,程序计数器PC的内容为0000H,内部RAM各单元的值不确定。
各功能寄存器的复位值如下:堆栈指针SP的复位值为07H,累加器ACC、寄存器B的复位值为00H,数据指针DPTR的复位值为0000H,而p0、p1、p2、p3四个口的复位值为0FFH。
其他SFR如PSW、TCON、TMOD、TL0、TH0、TL1、TH1的复位值也为00H。
2、wave中是低128字节和高128字节(0-7FH),低128字节是片内RAM区,高128字节(80-FFH)是SFR(特殊功能寄存器)bit则是位于低128字节的20H..2FH区域,即data的20H..2FH区域3、code是在0000H..0FFFFH之间的一个代码地址。
例如:ORG5000HTAB:DB22H,3BH,43H,66H,5H,6DH,88H后,CODE从5000H开始以后变成DB各位4、data是在0到127之间的一个数据存储器地址,或者加128..255范围内的一个特殊功能寄存器(SFR)地址。
两者访问的方式不同。
实际上由于PSW的复位设置PSW.3=RS0和PSW.4=RS1皆为0,所以通用工作寄存器区就是第0区,所以data的00--07H部分是与REG栏中的R0--R7对应的。
以后的则仅代表低128字节的内部RAM。
5、idata是0to255范围内的一个idata存储器地址。
idata与data 重合低128字节,有的地方只有DATA表示256字节的片内RAM,某data 是0to65535范围内的一个某data存储器地址。
RAM和ROM

典型外部ROM和RAM器件的使用实例详解来源:开拓电子()录入: autumn1 实例功能在很多应用场合,51单片机自身的存储器和I/O口资源不能满足系统设计的需要,这时就要进行系统扩展。
在本例中,将结合片外ROM和片外RAM的典型芯片的应用,说明如何扩展单片机的数据存储器和程序存储器。
本例中3个功能模块描述如下:∙单片机系统:扩展单片机的存储器,实现片外存储器的访问。
∙外围电路:分为3个内容。
首先是用地址锁存器完成单片机系统总线的扩展,其次是扩展片外ROM器件2764,第三是扩展片外RAM6264.∙C51程序:用C51完成对片外存储器的读写。
本例目的在于希望keiltop读者在读完本例后,能完成相关的电路设计。
∙器件原理本实例中将首先介绍单片机的三总线概念和形成,随后介绍单片机弦叫线的扩展。
在单片机系统扩展时,引入片外典型存储器件,最后给出典型片外ROM和RAM的电路连接和使用方法。
2.1单片机的三总线(1)什么是单片机的三总线?单片机三总线指数据线、地址线和控制线。
单片机CPU所要处理的就是这3种不同的总线信号。
数据线:数据总线用来传送指令和数据信息。
P0口兼做数据总线DB0~DB7.地址线:用来指定数据存储单元的志趣分配信号线。
在8051系列中,提供了引脚ALE,在ALE为有效高电平,在P0口上输出的是地址信息,A7-A0。
另外,P2口可以用于输出地址高8位的A15~A8,所以对外16位地址总线由P2和P0锁存器构成。
控制线:8051系列中引脚输出控制线,如读写信号线、PSEN、ALE以及输入控制信号线,如EA、TST、T0、T1等构成了外部的控制总线。
(2)如何实现外部总线的扩展?由于单片机的输入输出引脚有限,一般的,我们采用地址锁存器进行单片机系统总线的扩展。
常用的单片机地址锁存器芯片有74LS373,图1-22所示为74LS373的引脚以及它们用作地址锁存器的连接方法。
74LS373是带三态输出的8位锁存器。
教学课件PPT 89C51单片机的C51程序设计

程序存储器(64K字节)
对应MOVC @DPTR访问
可位寻址片内数据存储器(16字节,128位) 允许位和字节混合访问
间接寻址片内数据存储器(256字节)
可访问片内全部RAM空间
分页寻址片外数据存储器(256字节)
对应MOVX @R0访问
4.2 C51程序设计基础
C51存储类型定义举例:
unsigned char data x,y,z; /*在内部RAM区定义了3个无符号字节型变量x,y,z*/
40M/80M/100M,而且还有很多是单周期的。
4.2 C51程序设计基础
4.2.1 C51变量/常量存储类型
C51存储类型 对应89C51单片机存储器空间
data
直接寻址片内数据存储器(128字节)
xdata
片外数据存储器(64K字节)
说明 访问速度快 对应MOVX @DPTR访问
code bdata idata pdata
序号 语句
1
=
2
if
3
表达式1 ? 表达式2 : 表达式3
4
switch/case
5
while
6
do-while
7
for
8
函数
含义 赋值语句 条件语句 条件运算符 多分支语句 循环语句 循环语句 循环语句 模块化程序设计
4.2 C51程序设计基础
表4-6 常用语句
序号 语句
1
=
2
if
3
表达式1 ? 表达式2 : 表达式3
4.3 C51程序举例
例4:把外部数据RAM中从地址2000H单元开始的100个有符号 数逐一取出,若为正数则放回原单元,若为负数则求补后放回。
单片机技术及其C51程序设计(第2版)答案解析

解:[X+Y]补=[X]补+[y]补=00001100B
1-4请选择正确答案填在括号中:将-33以补码形式存入8位寄存器中,寄存器中的内容为(A)
A.DFHB.A1HC.5FHD.DEH
解:
#include <reg52.h>//包含特殊功能寄存器库
#include <stdio.h>//包含I/O函数库
void main(void)//主函数
{
int a,b,c,t;//定义整型变量a,b,c,t
A.11101101B.10010011C.00010011D.10010010
1-78051与8751的区别是(C)
A.内部数据存储数目的不同B.内部数据存储器的类型不同
C.内部程序存储器的类型不同D.内部寄存器的数目不同
1-8单片机与普通计算机的不同之处在于其将(CPU)(存储器)和(I/O接口)三部分集成于一块芯片上(的单片微机)
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;}
printf("%d,%d,%d",c,b,a);
while(1);//结束
}
4-15用三种循环结构编写程序实现输出1到10的平方之和。
解:
1、通过while语句实现计算并输出1到10的平方之和。
#include <reg52.h>//包含特殊功能寄存器库
default:printf("error"\n)
单片机原理及应用与C51程序设计(第三版)第8章作业

单片机原理及应用与C51程序设计(第三版)第8章作业习题1. 什么是MCS-51单片机的最小系统?答:所谓最小系统,是指一个真正可用的单片机的最小配置系统。
对于单片机内部资源已能够满足系统需要的,可直接采用最小系统。
2. 简述半导体存储器的分类?答:半导体存储器按读写工作方式可分为两种:只读存储器ROM(Read Only Memory)和随机读写存储器RAM(Random Access Memory)。
只读存储器ROM 有MROM-掩膜型ROM, PROM-可编程ROM, EPROM-可擦除的PROM, E2PROM -电擦除的PROM, Flash Memory-快擦型存储器; 随机读写存储器RAM有静态RAM-SRAM, 动态RAM-DRAM, 非易失性RAM-NVRAM。
3. 简述存储器扩展的一般方法。
答:存储器芯片与单片机扩展连接具有共同的规律。
即不论何种存储器芯片,其引脚都呈三总线结构,与单片机连接都是三总线对接。
另外,电源线接电源线,地线接地线。
4. 什么是部分译码法?什么是全译码法?它们各有什么特点?用于形成什么信号?答:部分译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线仅用一部分参加译码。
部分译码使存储器芯片的地址空间有重叠,造成系统存储器空间的浪费。
全译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线全部参加译码。
这种译码方法中存储器芯片的地址空间是唯一确定的,但译码电路要相对复杂。
译码形成存储器芯片的片选信号线CE。
5. 采用部分译码为什么会出现地址重叠情况,它对存储器容量有何影响?答:部分译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线仅用一部分参加译码。
参加译码的地址线对于选中某一存储器芯片有一个确定的状态,而与不参加译码的地址线无关。
也可以说,只要参加译码的地址线处于对某一存储器芯片的选中状态,不参加译码的地址线的任意状态都可以选中该芯片。
C51程序设计(完整)

第1章C51数据类型与运算1.1C51数据类型C51的数据类型如下所示:C51编译器支持的数据类型、长度和值域如下表1-1所示。
与面向数学运算的计算机相比,51单片机对变量类型或数据类型的选择更具有关键性意义。
如果在程序设计中使用大量而不必要的变量类型,这会导致C编译器调用库函数的数量,以处理大量的变量类型和数据类型。
所以必须特别慎重地进行变量和数据类型的选择。
1.2C51数据存储类型C51编译器还可以通过将变量、常量定义成不同的存储类型(data,bdata,idata,pdata,xdata,code)的方法,将它们定义在不同的存储区中。
存储类型与51单片机实际存储空间的对应关系如表1-2所示。
储区中。
片内RAM是存放临时性传递变量或使用频率较高变量的理想场所。
访问片内数据存储器(data、bdata、idata)比访问片外数据存储器(xdata、pdata)相对快一些,因此可将经常使用的变量置于片内数据存储器,而将规模较大的或不常使用的数据置于片外数据存储器中。
C51存储类型及其大小和值域如表1-3所示。
例如:表1-3 C51存储类型及其大小和值域char data var1; /*字符变量var1被定义为data存储类型,定位在片内RAM中*/bit bdata flags; /*位变量flags被定义为data存储类型,定位在片内RAM中的位寻址区*//*(20H~2FH)*/float idata x,y,z; /*浮点变量x,y,z被定义为idata存储类型,定位在片内RAM中,并只能用间接寻址的方法进行访问*/unsigned int pdata dimension; /*无符号整型变量dimension被定义为pdata存储类型,定位在片外RAM中,并用MOVX @Ri访问*/ unsigned char xdata vector[10][4][4]; /*无符号字符三维数组变量vector[10][4][4]被定义为xdata存储类型,定位在片外RAM中,占据10×4×4=160个字节空间*/如果在变量定义时省略存储类型标志符,编译器会自动默认存储类型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.以P0口作为低8位地址/数据总线 AT89C51由于受引脚数目的限制,数据线和低8位地址线复用。 为了将它们分离出来,需要外加地址锁存器,从而构成与一般
CPU相类似的片外三总线,见图8-2。
2020/9/12
2020/9/12
图8-2
2. 以P2口的口线作为高位地址线 P2口的全部8位口线用作高位地址线,再加上P0口经地址锁存
1.线选法 直接利用系统的高位地址线作为存储器芯片(或I/O接口芯
片)的“片选”控制信号。为此,只需要把用到的高位 地址线与存储器芯片的“片选”端直接连接即可。 线选法的优点是电路简单,不需要另外增加地址译码器硬 件电路,体积小,成本低。 缺点是可寻址的芯片数目受到限制。 另外,地址空间不连续,每个存储单元的地址不唯一,不
(2)RD*和WR*信号作为外扩数据存储器和I/O接口的读、写选 通控制信号。
(3)ALE信号作为低8位地址的锁存控制信号。 (4)EA*信号作为内、外程序存储器的选择控制信号。 可看出,尽管89C51单片机有4个并行的I/O口,共32条口线,
但由于系统扩展的需要,真正作为数字I/O使用的,就剩 下P1口和P3口的部分口线了。
2020/9/12
为部分译码。部分译码存在着部分存储器地址空间相重叠的 情况。
两种常用的译码器芯片。 (1)74LS138 74LS138是3-8译码器,有3个数据输入端,经译码产生8种状态
。其引脚如图8-3所示,真值表如表8-1所示。 由表8-1可见,当译码器的输入为某一固定编码时,其输出仅
有一个固定的引脚输出为低电平,其余的为高电平。而输 出为低电平的引脚就作为某一存储器芯片的片选端的控制 信号。
和I/O接口芯片中的寄存器选择。地址总线是单向传输的。 (2)数据总线(Data Bus,DB) 数据总线用于在单片机与存储器之间或与I/O端口之间传送数
据。数据总线是双向的,可以进行两个方向的传送。 (3)控制总线(Control Bus,CB) 控制总线实际上就是单片机发出的各种控制信号线。 下面讨论如何构造系统三总线
一是必须选中该存储器芯片(或I/O接口芯片),这称为“片 选”,只有被“选中”的存储器芯片才能被AT89C51读出或 写入数据。为了片选的需要,每个存储器芯片都有片选信号 引脚,
二是在“片选”的基础上再选择该芯片的某一单元,称为“单 元选择”。
2020/9/12
常用的存储器地址空间分配方法有两种:线性选择法(简 称线选法)和地址译码法(简称译码法),下面分别介 绍。
如果用74LS138把64K空间全部划分为每块4KB,如何划分呢? 由于4KB空间需要12条地址线进行“单元选择”,而译码器 的输入有3条地址线(P2.6~P2.4),P2.7没有参加译码, P2.7发出的0或1决定了选择64KB存储器空间的前32KB还是后 32KB,由于P2.7没有参加译码,就不是全译码方式,这样前 后两个32KB空间就重叠了。
2020/9/12
2020/9/12
图8-3
输
G1 G2A* G2B*
表8-1 74LS138译码器真值表Leabharlann 入输出CBA
Y7* Y6* Y5* Y4* Y3* Y2* Y1* Y0*
2020/9/12
(2)74LS139 74LS139是双2-4译码器。两个译码器完全独立,分别有各自的
数据输入端、译码状态输出端以及数据输入允许端。其引脚 如图8-4所示,真值表如表8-2所示(见P138)。
2020/9/12
能充分有效地利用存储空间,这会给程序设计带来一些不便 ,只适用于外扩芯片数目不多的单片机系统的存储器扩展 。
2.译码法 使用译码器对89C51的高位地址进行译码,将译码器的译码输
出作为存储器芯片的片选信号。是最常用的地址空间分配 的方法,它能有效地利用存储器空间,适用于多芯片的存 储器扩展。 常用的译码器芯片有74LS138(3-8译码器)74LS139(双2-4 译码器)74LS154(4-16译码器)。若全部高位地址线都参 加译码,称为全译码;若仅部分高位地址线参加译码,称
2020/9/12
图8-4
2020/9/12
下面以74LS138为例,介绍如何进行地址分配。 例 要扩8片8KB的RAM 6264,如何通过74LS138把64KB空间分
配给各个芯片? 64KB地址空间的分配如图8-5所示。
2020/9/12
图8-5
采用全地址译码方式,单片机发地址码时,每次只能选中一个 存储单元。同类存储器间不会产生地址重叠的问题。
89C51单片机采用并行总线结构,大大增加了系统的灵活性 ,使扩展易于实现,各扩展部件只要符合总线规范,就 能很方便地接入系统。
由于系统扩展是通过总线把AT89C51与各扩展部件连接起来 。因此,要进行系统扩展首先要构造系统总线。
2020/9/12
系统总线按功能分为三组,如图8-1所示。 (1)地址总线(Adress Bus,AB) 地址总线用于传送单片机发出的地址信号,以便进行存储单元
第8章 89C51单片机扩展存储器的设计
8.1 系统扩展结构 AT89C51系统并行扩展结构如图8-1所示。
2020/9/12
图8-1
由图8-1可以看出,系统扩展主要包括存储器扩展和I/O接 口部件扩展。
外部存储器扩展又包括程序存储器扩展和数据存储器扩展 。AT89C51采用的是哈佛结构。扩展后,系统形成了两个 并行的外部存储器空间。
8.2 地址空间分配和外部地址锁存器 8.2.1 存储器地址空间分配
2020/9/12
如何把外部各自的64KB空间分配给各个程序存储器、数据存储 器芯片,并且使程序存储器的各个芯片之间,数据存储器各 芯片之间,为避免发生数据冲突,一个存储器单元对应一个 地址,这就是存储器的地址空间的分配问题。
在外扩的多片存储器芯片中,AT89C51要完成这种功能,必须 进行两种选择:
器提供的低8位地址,便形成了完整的16位地址总线(见图 8-2),使寻址范围达到64KB。 3.控制信号线 除了地址线和数据线之外,还要有系统的控制总线。这些信号 有的就是单片机引脚的第一功能信号,有的则是P3口第二功 能信号。其中包括: (1)PSEN*信号作为外扩程序存储器的读选通控制信号。
2020/9/12