典型外部ROM和RAM器件的使用实例详解_第1页
典型外部ROM和RAM器件的使用实例详解_第2页
典型外部ROM和RAM器件的使用实例详解_第3页
典型外部ROM和RAM器件的使用实例详解_第4页
典型外部ROM和RAM器件的使用实例详解_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、典型外部ROM和RAM器件的使用实例详解 来源:开拓电子()   录入: autumn 1 实例功能在很多应用场合,51单片机自身的存储器和I/O口资源不能满足系统设计的需要,这时就要进行系统扩展。在本例中,将结合片外ROM和片外RAM的典型芯片的应用,说明如何扩展单片机的数据存储器和程序存储器。本例中3个功能模块描述如下:· 单片机系统:扩展单片机的存储器,实现片外存储器的访问。 · 外围电路:分为3个内容。首先是用地址锁存器完成单片机系统总线的扩展,其次是扩展片外ROM器件2764,第三是扩展片外RAM6264. · C51程序:用C51完

2、成对片外存储器的读写。 本例目的在于希望keiltop读者在读完本例后,能完成相关的电路设计。· 器件原理 本实例中将首先介绍单片机的三总线概念和形成,随后介绍单片机弦叫线的扩展。在单片机系统扩展时,引入片外典型存储器件,最后给出典型片外ROM和RAM的电路连接和使用方法。2.1单片机的三总线 (1)什么是单片机的三总线?单片机三总线指数据线、地址线和控制线。单片机CPU所要处理的就是这3种不同的总线信号。数据线:数据总线用来传送指令和数据信息。P0口兼做数据总线DB0DB7.地址线:用来指定数据存储单元的志趣分配信号线。在8051系列中,提供了引脚ALE,在ALE为有效高

3、电平,在P0口上输出的是地址信息,A7-A0。另外,P2口可以用于输出地址高8位的A15A8,所以对外16位地址总线由P2和P0锁存器构成。控制线:8051系列中引脚输出控制线,如读写信号线、PSEN、ALE以及输入控制信号线,如EA、TST、T0、T1等构成了外部的控制总线。(2)如何实现外部总线的扩展?由于单片机的输输出引脚有限,一般的,我们采用地址锁存器进行单片机系统总线的扩展。常用的单片机地址锁存器芯片有74LS373,图1-22所示为74LS373的引脚以及它们用作地址锁存器的连接方法。74LS373是带三态输出的8位锁存器。当三态门OE为有效电平时,使能端G为有效高电平,输出跟随输

4、入变化;当G端由高变低时,输出端8位信息被锁存,直到G端再次有效为止。   2.2操作片外ROM什么是片外ROM?ROM是程序存储器的简称,用来存放用户程序的存储器,可分为EPROM,OTP,ROM和FLASH等类,现在大部分MCU集成了FLASH.EPROM型存储器编程后其内容可用紫外线擦除,用户可反复使用。ROM型适用大批量生产。由于ROM型单片机的代码只能由生产厂商在制造芯片时写入,帮用户要更改程序代码下分不便。OTP型单片机只能写入一次。FLASH型可反复使用,速度快,故特别受中小客户欢迎。 o 操作片外RAM 什么是片外RAM?随机存储器(RA

5、M)是用来存放程序运行时的数据的存储器。由于RAM的制作工艺复杂中,价格比ROM高得多,所以单片机的内部RAM非常宝贵,通常仅有几十到几百个字节。RAM的内容是易失性的,掉电后会丢失。最近出现了EEPROM或FLASH型的数据存储器,方便用户存放不经常改变的数据及其他重要信息。单片机通常还有特殊寄存器和通用寄存器,它们是单片机中存取速度最快的存储器,但通常存储空间很小。单片机的读信号和外部RAM的输出允许信号引脚相连,信号和外RAM的写信号相连。外部RAM的片选信号与外部IO端口和片选信号统一由译码产生。· 电路 本例所要重点强调的就是单片机和外围典型器件的连接方法。为了更加清楚地说

6、明ROM和RAM与单片机的连接方式,并且使得电路在实用中更加灵活,分别经出了ROM和RAM的连接电路。单片机的键盘输入实例详解来源:开拓电子()   录入: autumn · 程序设计 在本例中,对于C51的编程而言并无太多变化。一般的C51编译器是完全支持8051单片机的硬件结构的,可以完全访问硬件系统所有部分。变量的存储类型和51单片机实际存储空间的对应关系如表1-21所示。存储类型与存储空间的对应Data直接寻址的片内数据存储区Bdata可位寻址的片内数据存储区Idata间接寻址片内存储区,可访问片内全部RAM地址Pdata分页寻址片外数据存储区Xdata片

7、外数据存储区Code代码存储区当使用data,bdata定义变量时,它们定位在单片机的片内数据存储区。这个存储区的大小根据单片机的型号不同,长度分别有64、128、256、512字节之分。当使用xdata存储类型定义变量时,它们定位在单片机片外数据存储区,该空间位于本例中所附加的6264中,最大的寻址范围为64K.由上述介绍,当我们需要定义片外RAM中的变量时,需要定义它们在征片外的地址。例如定义片外RAM中的6个储单元的变量AF,其地址为0x0100h0x0600H,可以采用下面的格式:define aXBYTE0X0100define bXBYTE0X0200define cXBYTE0X

8、0300define dXBYTE0X0400# define eXBYTE0X0500define fXBYTE0X0600 AD574构成高精度数字电压表深圳市凌雁电子有限公司    AD574A是美国模拟数字公司(Analog)推出的单片高速12位逐次比较型A/D转换器,内置双极性电路构成的混合集成转换显片,具有外接元件少,功耗低,精度高等特点,并且具有自动校零和自动极性转换功能,只需外接少量的阻容件即可构成一个完整的A/D转换器,其主要功能特性如下:     分辨率:12位 &

9、#160;   非线性误差:小于±1/2LBS或±1LBS     转换速率:25us     模拟电压输入范围:010V和020V,0±5V和0±10V两档四种     电源电压:±15V和5V     数据输出格式:12位/8位     芯片工作模式:全速工作模式和

10、单一工作模式    我们利用AD574与ATMEL公司的低价高性能单片机AT89C2051组成一个高精度的数字电压表,电原理图如图1,AD574是12位逐次比较型A/D转换器,共有12根数据线,AT89C2051的P1与AD574的高8位数据线直接相接,AD574的低4位数据线与单片机的高半4位P1.4P1.7直接相接,数据的读取是依靠单片机的控制线进行分时选通进行。P3.5接AD574的字节短周期控制线(A0),P3.4接读转换数据控制脚(),P3.7直接与工作状态指示端(STS)相连,这样的结构决定只能是8位输出形式,故数据模式选择端直接接地即可。A

11、T89C2051只有15根I/O口线,上述用了11根,只余下4根口线,我们将输出的数据通过单片机的串行口输出,外接一片74LS164(串入并出)译码器进行扩展,同时显示的数据为4位,剩下的2根口线仍不能满足要求,还需要一片74LS138三八译码器对显示LED进行地址选通。    这里我们采用10V量程的输入模式,故AD574的Pin13为被测电压的输入端,因为只使用了一片AD574转换芯片,所以CS端直接接地即可。转换器使用±12V电源电压供电,工作电压为+5V。    74LS164为串入并出译码器,A

12、T89C2051通过串行口输出的BCD串行码经74LS164译码输出为七段BCD码,直接与LED的ag相连,同时四位LED的数据线都一一对应连接在一起。LED数码管选用共阳型,74LS138输出的地址码经一个三极管2SA1015(PNP)接LED的公共端,四位LED的显示是通过地址线进行分时选通的,这就是我们常用的动态扫描显示方式。    值得一提的是,动态扫描显示方式中,动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清,所以一般均取10ms左右为宜,这就要求在编写程序时

13、,选通某一位LED使其点亮并保持一定的时间,程序上常采用的是调用延时子程序。在C51指令中,延时子程序是相当简单的,并且延时时间也很容易更改。点亮最简单的单片机系统(一)来源:开拓电子()   录入: autumn 1.实例功能一个最简单的单片机系统的开发也需要电路设计、单片机器件选择和程序编写3个步聚。对于单片机系统,最简单的功能无非是控制输出电平的高低,这也是数字电路最基本的功能。所以,第一个例子就是将单片机系统接上一个发光二极管,用二极管的亮灭表示设计的单片机系统是否正常工作.   在进行设计之前,在需要说明的是,这里默认读者已经掌握了有关电路设计

14、软件(如Protel)和C51单片机程序的编写,所以在本站只重点说明单片机及其外围器件电路的设计。本例的功能模块分为以下3个方面。单片机系统:形成最简单的单片机系统。外围电路:用LED显示系统是否正常工作。编程: C51编程:编写最简单的C51程序,通过C51延时程序控制端口的高低电平。在以后的章节中,对于每个实例都将其功能分成单片机功能外围    路和C51程序3个方面进行说明。希望读者在读完本例后,能完成相关的电路设计,并掌握如下的知识点内容:单片机系统的基本组成。晶振选择和典型电路。复位电路的原理和典型电路。基本I/O口的控制。C51程序设计。1.2器件和原

15、理本实例中将首先介绍单片机系统的基本组成,然后给出其晶振和复位电路的典型电路图,完成最简单片机系统的设计。最后,利用C51程序控制一个LED灯的亮灭以及端口的高低电平,说明该单片机系统是否工作正常.·什么是单片机    单片机是将中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM或EPROM)、定时器芯片和一些输入输出接口电路集成在一个芯片上的微控制器(Microcontroller)。中央处理器包括运算器、控制器和寄器3个主要部分,是单片机的核心。按工作方式可以分为两大类:随机存储器RAM和只读存储器ROM。RAM可被CPU随机地读写,断电

16、后存储的内容消失:ROM中的信息只能被读取,一般用于存放固定的程序。ROM中的内容只能用编程器专用设备写入。输入输出接口(IO接口)是单片机的重要组成部分。程序、数据以及现场信息需要通过输入设备送到单片机,计算结果需要通过输出设备输出到外设。常用的输入设备有按键、键盘、A/D等,输出设备一般有LED、电机等。·什么是单片机系统?单片机系统的基本结构框图如图1-3所示。从图中可以看出,对于一个典型的单片机系统而言,主要由单片机、晶振和复位电路、输入控制电路、输出显示电路以及外围功能器件5个部分组成。除了上文介绍过的单片机外,单片机系统中的其他4个部分的主要作用和器件如下。(1)晶振和复

17、位电路:单片机系统的必要组成部分,控制单片机的机器周期和工能复位。(2 )输入控制:是指在一定要求下,采取何种形式的控制方式来实现单片机不同功能的转换,以及控制指令以何种方式传送到单片机。常用的输入控制方法有按键、矩阵键盘、串行通信等方式。(3)输出显示:是指机将需要显示的数据发送到LED、液晶等显示模块,并控制LED等显示模块按照一定的格式显示的功能。此外,输出对象还有电机、传感器等特殊的功能器件。(4)外围功能器件:单片机只是控制器件,对应于一定的设计要求,需要加入特定功能的器件。例如外部存储器,单片机通过对外部存储器的读写操作,完成对数据的存储和读取,从而扩展单片机的存储单元和数据。此外

18、,常用的外围器件还有A/D、D/A、74LS07门电路以及特定功能的传感器等。单片机的最简单系统是指单片机能正常工作所必须的外围元件,主要由单片机、晶振电路和复位电路构成。而输入/输出部分则通过单片机的IO口实现。·单片机系统可以用来干什么?单片机的应用十分广泛,在工业控制领域、家电产品、智能化仪器仪表、计算机外部设备,特别是机电一体化产品中,都有重要的用途。其主要的用途可以分为以下方面。显示:通过单片机控制发光二极管或是液晶,显示特定的图形和字符。机电控制:用单片机控制机电产品做定时或定向的动作。检测:通过单片机和传感器的联合使用,用来检测产品或者工况的意外发生。通信:通过RS-2

19、32串行通信或者是USB通信,传输数据和信号。科学计算:用来实现简单的算法。那么单片机是不是解决上述应用的惟一选择?当然不是!目前,在自动控制中,一般有3种选择,分别是嵌入式微机、DSP和单片机,它们的性单片机最明显的优点是价格便宜,从几元到几十元人民币。这是因为这类芯片的生产量很大,技术也很成熟。  其次,单片机的体积也远小于其他两种方案。单片机本身一般用40引肢封装,当然功能多一些的单片机也有引脚比较多的,如68引脚,功能少的只有10多个或20多个引脚,有的甚至只有8只引脚。  当然,单片机无论在速度还是容量方面都远小于其他两种方案,但是实际工作中并不是任何需要计算机的

20、场合都要求计算机有很高的性能。例如,控制电冰箱温度的控制器就不需要使用嵌入式系统,用一片51就可以轻松实现。所以应用 的关键是看是否够用,是否有很好的性能价格比。51系列的单片机已经面世10多年,依然没有被淘汰,还在不断的发展中,这就说明是它有广阔的应用前景。4如何选择单片机?  MCS-51是指由美国Intel公司生产的一系列单片机的总称,这一系列单片机包括了多个种类,如8031、8051、8751、8032、8052、8752等,其中8051是最早、最典型的产品,该系列其他单片机都是在8051的基础上进行功能的增、减改变而来的,所以人们习惯于用8051来称呼MCS-51系列单片机

21、。Intel公司将MCS-51的核心技术授权给了很多其他公司,所以有很多公司在开发以8051为核心的单片机。   由于单片机的种类很多,在选择单片机时要依据实际设计要求选择合适的单片机。例如,当设计时仅仅需要一个单片机定时器,那么89C1051或是89C2051即可,而不需要选择89C51或是89C52,因为后者要比前者在价格上贵上一倍。当然,如果程序和数据区的要求较高,那么选择的单片机还要能满足程序空间的要求。(完) 5.单片机中为什么要用晶振?  简单地说,没有晶振,就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。单片机工作时,是一条一条地

22、从ROM中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。一个机器周期包括12个时钟周期,如果一个单片机选择了12MHz晶振,它的时钟周期是1/12us,它的一个机器周期是12*(1/12)us,也就是1us。  MCS-51单片机的所有指令中,有一些完成得比较快,只要一个机器周期就行了,有一些完成得比较慢,得要2个机器周期,还有两条指令要4个机器周期才行。为了衡量指令执行时间的长短,又引入一个新的概念:指令周期。所谓指令周期就是指执行一条指令的时间。例如,当需要计算DJNZ指令完成所需要的时间时,首先必须要知道晶振的频率,设所用晶振为1

23、2MHz,则一个机器周期就是1us。而DJNZ指令,所以执行一次要2us。如果该指令需要执行500次,正好1000us,也就是1ms。机器周期不公对于指令执行有着重要的意义,而且机器周期也是单片机定时器和计数器的时间基准。例如一个单片机选择了12MHz晶振,那么当定时器的数值加1时,实际经过的时间就是1us,这就是单片机的定时原理。6选择什么样的晶振呢?晶振一般分为晶体振荡器和谐振器。在单片机系统中,晶体振荡器将外围的电容集成到振荡器的内部,无需再设计晶振电路,只需要将电源加载到晶振上,晶振就可以起振,并通过两个引脚输出到单片机的晶振引脚上。一般的,由于晶体振荡器的体积较大,价格较贵,在实际使

24、用中,还可以选择晶体谐振器,也就是常说的立式晶振。该晶振需要外部的晶振电路才可以起振,但是由于该电路非常简单,并且使用灵活,在单片机系统中也有广泛地应用。7有通用的晶振电路吗?    当然有!单片机的晶振电路是一种典型电路,分为内部时钟方式和外部时钟方式两种。内部时钟的晶振频率一般选择在4MHz12 MHz之间,外接两个谐振电容。该电容的典型值为30pF,但是在实际应用时,需要根据实际起振情况选择。如果单片机的时钟必须使用某一个外接的时钟信号,就不要外接晶振。由于此时的外接晶振引脚上没有晶振信号输入,内部的电路将停振,这种方式称为外部时钟方式。图1-6给出了两种外

25、部时钟的电路,可以根据不同的单片机型号选择不同的电路。8。什么是复位电路?  简单地说,单片机的复位就和计算机的重起是一样的概念。任何单片机在工作之前都要有个复位的过程,复位对机来说,是程序还澡有开始执行,是在做准备工作。一般的复位只需要5ms的时间。如何进行复位呢?只要在单片机的RST引脚上加上高电平就可以了,按上面所说,时间不少于5ms。为了达到这个要求,需要在外部设计复位电路。电路的实现可以用很多种方法,但是从功能上一般分为两种:一种是电源复位,即外部的复位电路在系统通上电之后直接使单片机工作,单片机的起停通过电源控制。另一种方法是在复位电路中设计按键开关,通过开关触发复位电平

26、,控制单片机的复位。9有通用的复位电路吗?  有!和晶振电路一样,复位电路也是单片机系统的典型外部电路。基本的复位电路的原理图如图1-7所示。  一般采用上电复位电路。这种复位电路的工作原理是:通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程序,即为低电平,单片机开始正常工作。10必须使用通用的复位电路吗?   当然不是!这种典型的复位电路并不是读者的惟一选择。对于有着丰富电路设计经验的读者而言,可以根据自己的需要,定制满足实际要求的电路。这里,给出了一种根据实际需要设计的上电复位电路,

27、如图1-8所示。复位电路由22uF的电容和1k欧的电阻及IN4148二极管组成。在满足单片机可靠性复位的前提下,该复位电路的优点在于降低复位引脚的对地阻抗,可以显著增强单片机复位电路的扩干扰能力。二极管可以实现快速释放电容电量的功能,满足短时间复位的要求。11如何在单片机中实现和发光二极管的接口?    在第一个例子中,目前已经掌握了一个最简单的单片机系统的组成和电路实现。外围器件选择的是发光二极管,接下来就开始介绍发光二极管和单片机的接口。发光二极管和单片机的连接方式如图1-9所示。这里需要注意的是:该电路是一个非标准的电路,一方面是为了说明最简单单片机系统的使

28、用,另一方面也是为了和第二个例子作对比。对于这个接口电路,不同背景的读者可能会问出不同的问题。12发光二极管在什么情况下会亮呢?   提出这个问题的读者可能对软件编程比较了解,而对电路设计不太熟悉。不过不要紧,本书的目的就在于为编程人员介绍如何将程序功能在电路上实现,同时为硬件工程师提供一定功能的实例。发光二极管在其两端的电压差超出其导通压降时开始工作,发光二极管的导通压降一般为1.7V1.9V。此外,工作电流要满足该二极管的工作电流。满足电流和电压的要求,发光二极管就可以发光了。单片机系统中往往是数字信号,不是5V就是0V,所以只要将二极管的正负极和电源对应上就可以了!&

29、#160;  二极管的正负极可以用万用表的二极管档量出来,如果表上有了1点几几的计数,红表笔接的就是发光二极管的正极,黑表笔接的就是负极。从外观上看,发光二极管的正极引脚的长度也比较长但是问题远远不是这样简单的在后面的实例中还要介绍到较为复杂的情况,在本例在这样理解二极管的应用原理就可以了。13为什么要接一个电阻  这个电阻的作用在于限制通过二极管的电流,从而达到减少功耗或者满足端口对最大电流限制。   一般二极管的点亮电流为5mA至10mA,在5V驱动时,厂家多采用470欧限流电阻,在电路中采用了1k欧的电阻,电流也就35mA。当然,为了更亮一点,可以

30、减小电阻值,但二极管的电流不要超出单片机的I/O口最大电流。14好像觉得这个电路有点问题   是的!您一定是一位对单片机有一定了解的使用者。的确,在上文中我们也提到,这个电路不是一个标准的二极管发光电路,主要原因是因为单片机I/O口的驱动问题。   关于单片机I/O口的驱动问题比较复杂,在下一章中我们将通过一个实例进行详细的介绍。在本例中,主要是使读者了解单片机最小系统的组成和能够完成的简单功能,所以引入了发光二极管表明最简单系统的一个简单应用,使读者能够尽快地在单片机系统和功能之间架起上座桥梁。  在具体的电路上,我们也采取了一些保护措施,例如将限流电阻增加到1k欧,而不是常用的470欧。同时,我们也建议读者在实验该例子时做到能够验证程序和电路的正确性即可,不要作长时间的实验,以免损坏端口。在后续的例子中,将给出标准的发光二极管电路。当然,这样也并非完全不可,在有些驱动能力较强的单片机上,如89C2051上,这样的接法就是简单可行的。1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论