单片机基础学习(一):存储结构

最新更新时间:2012-03-28来源: 互联网关键字:单片机  基础学习  存储结构 手机看文章 扫描二维码
随时随地手机看文章

51单片机存储器有数据存储器,程序存储器。数据存储器是为正在运行的程序提供空间,即RAM,程序存储器为程序的存储提供空间,即ROM,刚开始的单片机一旦写入程序就不能修改,后来出现了紫外线擦除(EPROM)、电擦除(EEPROM)和FlashROM。

  数据存储器又分片内数据存储器和片外数据存储器,标准的51单片机的片内数据存储器容量是256字节,地址编码00H~FFH,其中高128字节(80H~FFH)是SFR区(特殊功能寄存器),低128字节(00H~7FH)用户数据存储器,在这个128字节中,00H~1FH这32个字节分给了4组工作寄存器(R0~R7),20H~2FH这16字节是位寻址区,30H~7FH这80字节是用户RAM区,可以随意使用。通过51单片机内部的并行扩展总线,51单片机可以访问最多64K范围的外部数据存储器(注:这个说法是有问题的,看后面),由于内部的AB宽度是16位,所以内部数据存储器寻址能力是64K。

  程序存储器也分为片内和片外,由于片内外的AB宽度是16位,所以寻址能力都是64K。

  但是由于I/O端口和外围设备与数据存储器统一编址,暂用了片外数据存储器的地址空间,所以片外数据存储器寻址范围不足64K。

  前面我们分析了存储结构,发现无论是数据存储器和程序存储器,它们片内外的寻址能力都是64K。那他们是如何编址的呢?答案是:统一编址0000H~FFFFH

  你是不是感到很疑惑?如何做到的?

  首先,片内数据存储器和片外数据存储器,对于同一个地址(假设1111F)CPU是如何区分到那个存储器呢?分析一下指令,如果是MOVX那么是到片外数据存储区,如果是MOV则是到片内数据存储区。

  其次,片内数据存储器和片内程序存储器,他们的控制信号不同,访问片内数据存储器信号是Ld等,访问片内程序存储器的控制信号是Emp等。

  第三,片内程序存储器和片外程序存储器,同“首先”

  第四,片外数据存储器和片外程序存储器,同“其次”

  如何扩展呢?

  我们知道P0口有时分复用功能,既可以作为8位数据总线又可以作为低8位地址总线,我们使用地址锁存器把8位的数据总线和低8位的地址总线分开,这样P0提供低8位的地址总线和P2提供的高8位总线构成了16位的外部地址总线,P0提供了8位外部数据总线,加上控制总线,这样就形成了三总线结构。所有外围芯片都是通过这三总线进行扩展。

  可能有这个疑问:P0口如何时分复用的?

  通过内部CB的ALE控制信号,下降沿时将P0口输出的数据作为地址信息储存,此时P0作为低8位地址总线,在其他时刻P0作为8位数据总线。与外界的通信除了少部分通过P1,全部通过P0。

  我们稍微了解一下51单片机的时序单位……

  晶振提供的频率我们称为振荡频率,假设它的周期为T0,一个T0周期称为一个节拍,用字母P表示,振荡频率经过二分频后我们得到振动频率,它的周期为T1(T1=2T0),一个T1周期称为一个状态,用字母S表示,振荡周期经过6分频我们得到ALE控制信号(注:下面有具体介绍),振荡周期经过4分频我们得到PSEN信号(注:下面有具体分析)。定义12个振荡周期为一个机器周期,那么指令周期是什么?有些指令只需要一个机器周期能执行(确切说是:取指令、译指令、执行指令)完,有些需要几个(不管如何,一般指令周期是机器周期的整数倍,通常情况是1~4倍)。

  我们有必要了解一下外部CB, 先介绍ALE控制信号:

  ALE:高电平有效,是振荡频率的6分频,利用下降沿来控制地址锁存器锁存低8位地址A0~A7。一个周期两次有效,第一次是S1P2~S2P1,第二次是S4P2~S5P1。

  然后介绍一下PSEN控制信号:

  PSEN:低电平有效,是振荡频率的4分频,用于访问外部程序存储器。一个周期两次有效,第一次是S1P2~S2P2,第二次是S4P2~S5P2。

  我们通过一个实例来理解它,假设我们访问外部程序存储器。

  PSEN是和外部存储器的OE端口接的(OE是低电平有效),ALE是接地址锁存器(假设是74HC373)的LE脚(高电平有效)。S1P2时刻,ALE上跳为高电平,74HC373的LE脚有效,74HC373内部8个锁存器打开,到S2P1这个下降沿时刻,P0输出的低8位地址被锁存在锁存器中,此时PSEN仍然为高电平,而P0由原来的低8位地址总线转化为数据总线,等待外部程序存储器输出端的数据输入,直到S2P2这个时刻,PSEN为下降沿,由无效转化为有效,这时P2口的高8位地址和锁存的P0的低8位地址组成16位地址,这个地址就是CPU要访问的外部存储器的地址,从这个地址中找出存储的信息,输出这个信息通过P0这个数据总线到达内部总线,最后到达目的地。

  访问外部数据存储器与之类似,不过控制信号不是PSEN,而是WR和RD。

  WR、RD:低电平有效,用于访问外部数据存储器的读写控制,当执行MOVX时,这两个信号自动生成。

关键字:单片机  基础学习  存储结构 编辑:神话 引用地址:单片机基础学习(一):存储结构

上一篇:51单片机总线时序与编址技术
下一篇:最简单的51单片机红外遥控解码程序

推荐阅读最新更新时间:2023-10-12 20:38

MSP430F149在电力测控保护产品中的应用
摘要:介绍使用MSP430F149在电力测控保护产品研制中实现基本参数测量的软硬件设计方法,及该芯片在使用中应用注意的问题和相应的处理措施。 MSP430F149(以下简称“F149”)是德州仪器(TI)公司推出超低功耗Flash型16位RISC指令集单片机。F149有丰富的内部硬件资源,是一款性价比极高的工业级芯片。在应用中,F149不需做过多的扩展,适合要求快速处理的实时系统,故可在电力系统微机测量和保护方面得以应用。详细的F149资料可参阅有关文献,本文主要对电力系统中基本参数测量的实现方法和开发中一些应注意的问题进行论述。 1 F149外围模拟信号调理 在电力系统微机测量中,通常将一次额定电流和电压通过电流互感器(
[单片机]
MSP430F149在电力测控保护产品中的应用
8051单片机典型接口电路——串行扩展静态显示电路
8051单片机典型接口电路——串行扩展静态显示电路如下图所示: 例1:按上图编制显示子程序,显示字段码已分别存在32H~30H内RAM中。   程序1:   DIR2: MOV SCON,#00H ;置串口方式0   CLR ES ;串口禁中   SETB P1.0 ;“与”门开,允许TXD发移位脉冲   MOV SBUF,30H ;串行输出个位显示字段码   JNB TI,$ ;等待串行发送完毕   CLR TI ;清串行中断标志   MOV SBUF,31H ;串行输出十位显示字段码   JNB TI,$ ;等待串行发送完毕   CLR TI ;清
[模拟电子]
8051<font color='red'>单片机</font>典型接口电路——串行扩展静态显示电路
ICL7135与PIC单片机在温度变送器中的应用
  引言   在智能仪表设计中,经常用到 A/D 转换器。在常用的 A/D 转换中,7135 应用最为广泛, 它具有 41/2 位 A/D 转换精度,抗干扰能力强,价格低廉,主要用于检测参数的测量显示, 在智能仪器仪表中,常利用其 A/D 转换特性,与单片机串行连接,通过简单的人机界面实现   对A/D 转换数据的智能控制。本文以 PIC 单片机与 ICL7135 的实际工程应用为例,介绍一款智能温度控制仪表在温度变送器中的应用。    1 PIC 单片机   PIC 系列 8 位 CMOS 单片机具有独特的 RISC 结构,数据总线和指令总线分离的哈佛总线(Harvard)结构,使指令具有单字长的特性
[工业控制]
ICL7135与PIC<font color='red'>单片机</font>在温度变送器中的应用
基于安芯一号单片机的医用输液器智能控制系统设计
一、项目设计背景及概述   1、开发目的   众所周知,我国人口众多,医疗资源稀缺,医院时常人满为患。输液作为一种重要的治疗手段,其受众面是非常之广,几乎每个人都有在医院挂水的经历。然而进入信息时代的今天,输液器却仍然保留着最原始的功能,缺乏智能化或信息化的控制手段,这也是导致医院注射室秩序混乱,护士疲于奔命,患者苦不堪言的最直接原因。目前医院所使用的悬挂式输液器虽然有控制流速的装置,但无法得知输液剩余时间,且缺乏输液完毕后的报警系统,使患者不能合理安排注射时间,且注射完毕后不得不大声呼喊护士,这样做既造成了注射室的喧哗,影响了其他患者的休息,亦耗费了患者的体力。   2、功能特性   本小组设计的输液
[医疗电子]
基于安芯一号<font color='red'>单片机</font>的医用输液器智能控制系统设计
基于STM32单片机的64Mbit单对单通信
简单的一种应用,ARM芯片作为master,flash为slaver,实现单对单通信。ARM主控芯片STM32F103,flash芯片为MACRONIX INTERNATIONAL的MX25L6465E,64Mbit。 SPI应该是嵌入式外围中最简单的一种应用了吧!一般SPI应用有两种方法:软件仿真,手动模拟产生时序和应用主控芯片的SPI控制器。 一般采用第二种方法比较好,比较稳定。应用主控芯片的SPI控制器,要点:正确的初始化SPI、操作SPI各寄存器和正确理解flash的时序。下面是过程,采用的是STM32F10X自带的库函数 1、初始化:void SpiFlashIniTIalzaTIon(void); 要知道
[单片机]
基于STM32<font color='red'>单片机</font>的64Mbit单对单通信
基于AVR单片机的负荷缸多路遥控开关编解码实现
  负荷缸是船舶电力核心发电机性能的负荷试验必备的重要工装设备,通过负荷试验,可以检验发电机长期工作的性能稳定的情况(静态特性)和对突加突卸负荷的应变能力(动态特性)。 AVR单片机 具有高性能低价格的优点,在本文中利用AVR单片机对发电机负荷缸的多路远程遥控开关量进行采集监控并进行数字信号编解码,用2芯的电缆取代原来40芯的粗电缆传输控制信号,有效地解决了工作中遇到的问题。   1 问题的提出   我们通过把由发电机供电的通电极板放到负荷缸水电阻中,用充气升降极板和补给水调节水电阻大小的方法控制试验发电机所带负荷的大小,对发电机的性能进行试验。体积庞大的负荷缸一般放置在码头,在船舶发电机的负荷试验中需要在船舶配电板处
[单片机]
基于AVR<font color='red'>单片机</font>的负荷缸多路遥控开关编解码实现
基于ATMEGA8A_AVR单片机温度测控系统proteus仿真
仿真电路图: #include mega48.h #include delay.h // DS18b20 Temperature Sensor functions #include ds18b20.h // Alphanumeric LCD Module functions #include alcd.h #define ADC_VREF_TYPE 0x60 #define Temp_Set_Key_Not_Pressed PIND.6 #define Alarm_Set_Key_Not_Pressed PIND.7 // Read the 8 most significant bits // of th
[单片机]
基于ATMEGA8A_AVR<font color='red'>单片机</font>温度测控系统proteus仿真
基于32位单片机MC68HC376的高可靠性系统设计
引言 随着工业技术的不断发展,对单片机控制的要求也越来越高,需要单片机具备更高的反应速度和更强的数据处理能力,各种高性能的新型单片机得到了迅猛的发展和应用。单片机上主要是高速的数字信号,弱信号很容易受到外界的电磁干扰,同时,单片机系统也会发生掉电、死循环等问题。在工业控制场合,一旦控制发生错误,将会造成难以估计的损失。因此,如何提高控制的可靠性是长期以来的一个重要问题。本文介绍了应用32位高性能单片机MC68HC376的一种实际开发方案,同时重点讨论了提高系统可靠性的设计和实现方法。 MC68HC376是Motorola公司推出的一种新型的32位高性能单片机,具有极强的数据处理、逻辑运算和信息存储能力,且支持BDM(Backgr
[单片机]
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved