




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
7单片机的外部基本扩展与应用任务与知识点任务单片机片外扩展单片数据存储器单片机片外扩展多片数据存储器单片机片外扩展简单I/O接口单片机采用8255芯片外扩展I/O接口知识点单片机系统扩展总线片外扩展芯片是如何被访问的介绍利用KEIL软件如何查看各种存储器中的数据、讲解MOV、MOVX、MOVC三类传送指令及数据的寻址方式一些常用扩展芯片的接口方法和访问控制方法多位数据码静态显示及动态显示知识7.1 单片机系统扩展的基本概念在由单片机构成的实际测控系统中,最小应用系统往往不能满足要求,就要在设计系统时进行相应的系统扩展。在单片机系统总体设计时,必须综合考虑接口器件的电气参数、时序要求、功能、体积、成本等方面因素,选择合适外部扩展方式,适当预留扩展空间,还要兼顾系统改进设计、产品升级等方面的要求。7.1.1 系统扩展总线所谓总线,就是连接系统中各扩展部件的一组公共信号线。以单片机为核心,通过总线把各扩展部件连接起来,各扩展部件“挂”在总线上,主要形式有存储器扩展、I/O口的扩展,以及人机接口所必须的键盘与显示器件接口扩展等,如图7-1所示。在图中,按总线接口的类型可分为传统的并行传送数据的三总线结构(控制总线、数据总线和地址总线),以及后来发展起来的串行传送数据的SPI总线、I2C总线和单总线等总线形式。本章只讨论传统的并行传送总线结构。7.1.2 片外扩展芯片是如何被访问的当单片机片外扩展了存储器、I/O接口等外围接口芯片之后,如何用地址来表示这些芯片位置,以及通过地址来访问它们,就是接下来要考虑的问题了。图7‑2存储器单元示意图从图中,可以看出由地址总线通过译码器决定访问四个存储单元的哪一个,由控制总线给出读写控制信号,由数据总线来传送数据。在并行总线结构外部扩展芯片时,所有外部芯片都看做为一个或多个存储单元,通过系统三总线进行访问。而51单片机中的程序和数据是按哈佛结构分别存储,所以要进一步区别芯片中的内容是程序和数据了。如果外部芯片存放的是程序指令,PC指针会自动访问,此芯片是程序存储器如果存放的是数据,则通过相关指令进行访问,此芯片是或看做数据存储器了7.1.3 51单片机对片外芯片的访问通常情况下,微机的CPU外部都有单独的并行地址总线、数据总线和控制总线,而AT89S51单片机由于受引脚的限制,数据线和地址线是复用的,而且由I/O口线兼用。为了将它们分离出来,以便同单片机片外的芯片正确地连接,需要在单片机外部增加地址锁存器,从而构成与一般CPU相类似的片外三总线,如图7-3所示。从图中可以看出,以P0口的8位口线作地址线低8位/数据线,通过8位锁存器进行数据信号和地址信号的分离;以P2口的口线作高8位地址线,可以访问外部程序和数据存储最大空间分别为64KB。除了地址线和数据线之外,在扩展系统中还需要一些控制信号线,以构成扩展系统的控制总线。这些信号有的是单片机引脚的第一功能信号,有的则是第二功能信号。其中包括:使用ALE作为地址锁存的选通信号,以实现低8位地址的锁存;以PSEN信号作为扩展程序存储器的读选通信号;以EA信号作为内、外程序存储器的选择信号;以RD和WR作为扩展数据存储器和I/O端口的读/写选通信号。想一想,做一做?1、如果片外扩展的存储器并没有64KB空间,是不是可以用少于16根地址线进行访问?7.2 单片机片外扩展单片数据存储器RAM是用来存放各种数据的,51单片机内部有128字节RAM,但当单片机用于实时数据采集或处理大批量数据时,就必须进行单片机的外部数据存储器扩展。【例7-1】单片机的外存储器与内存储器进行数据传送以上程序代码的作用是:(1)先将“STUDYHARD”这一个字符串逐行代码送入内存储器30H单元地址开始的内存空间;(2)然后将这一字符串以循环结构代码形式送入外部SRAM的200H地址开始的存储空间;(3)内存中的这一字符串要连续送100趟次。图7‑4外部扩展一片数据存储器6264电路原理图电路原理图7.2.1 并行扩展总线连接说明地址总线的连接说明:P0口引脚输出的8位信号,作地址总线送74HC373地址锁存器,为6264提供低8位地址信号;P2口的21~25脚直接与6264的A12~A8脚相连接,提供了高5位地址。数据总线的连接说明:P0口引脚作数据总线,直接与6264相连接,用于传送8位数据信号。控制总线的连接说明:地址锁存信号ALE与74HC373地址锁存器输入选通端LE相连,用于锁存P0口的送出的低8位地址信号; 读信号()与6264的输出使能端()相连,用于单片机读数据控制;写信号()与6264的输入使能端()相连,用于单片机写数据控制。由于片外只扩展了一片芯片,故不存在片选问题,6264的片选信号()直接接地,保持常通。7.2.2 利用KEIL软件如何查看各种存储器中的数据通过PROTEUS软件硬件仿真可以看到内或外数据存储器中的数据,但无法查看程序存储器的指令或表格数据。利用KEIL软件的存储器窗口可以显示系统中各种存储器中的值,只要在地址(Address)后的编缉框内输入“字母:数字”即可显示相应内存值。图7‑5查看程序存储器中的指令或表格数据说明如下:其中字母可以是C、D、I、X,分别代表代码存储空间、直接寻址的片内存储空间、间接寻址的片内存储空间、扩展的外部RAM空间,数字代表想要查看的地址该窗口的显示值能以各种形式显示,默认以“无符号单字节方式“显示。可利用右键快捷菜单选择,如图7-6所示。说明如下:该菜单用分隔条分成二部份,其中第一部份与第二部份的三个选项为同一级别。选中第一部份的任一选项,窗口中的值以整数形式显示。如:“Decimal”项是一个开关,选中它,表示窗口中的值将以十进制形式显示,否则按默认的十六进制显示。“Unsigned”和“Signed”分别代表无符号形式和有符号形式,各有三个选项:Char、Int、Long,分别代表以单字节字符形式、双字节整数形式、四字节长整数形式显示。选中第二部份的“Ascii码”项则将以字符形式显示,选中“Float”项将相邻四字节组成的浮点数形式显示,选中“Double”项则将相邻八字节组成双精度形式显示。7.2.3 外部存储器存储单元地址编码常用的外部数据存储器有静态RAM和动态RAM两种。一般情况下,SRAM用于仅需要小于64KB数据存储器的小系统,DRAM经常用于需要大于64KB的大系统。6264是8K×8位的静态RAM芯片,采用CMOS工艺制造,为28引脚双列直插式封装,如图7-7所示。图7‑76264SRAM的引脚图和逻辑符号图从图7-7可以看出,只需要13根地址线即可表示该芯片的所有存储单元。而51系列单片机的地址总线是16位,从图7-4中可以看出单片机的26~28引脚没有使用,则存储器的某个存储单元就存在多个地址同时与之相对应的关系,如下表所示。A15A14A13A12——————————A016位地址编码0006264SRAM的0200H单元用13位二进制表示为(0001000000000)20200H0012200H0104200H0116200H1008200H101A200H110C200H111E200H表7‑16264SRAM某个单元地址编码想一想,试一试?1、我们是否可以将源代码中的下列代码行,如下所示:将首地址0200H换成表7-1中的最右边一列中的任意一个16位地址编码是否都可以?MOV DPTR,#0200H;设置外存储器的首个存储地址7.3 单片机片外扩展多片数据存储器【例7-2】将程序存储器的表格数据送给片外的数据存储器程序功能将程序中的表格数据送给片外存储器。需要注意程序中表格数据的访问和片外存储器单元的访问都要用到DPTR数据指针,本例通过堆栈保护方式加以区分。电路原理图电路分析如下:当PROTEUS仿真执行完成后,D1灯会点亮,可以通过DEBUG菜单查看外存中的数据。7.3.1 并行扩展总线连接说明地址总线的连接说明:P0口引脚输出的8位信号,作地址总线送74HC373地址锁存器,为6264提供低8位地址信号;P2口的21~25脚直接与6264的A12~A8脚相连接,提供了高5位地址;P2口的26~28脚做为138译码器的输入信号。数据总线的连接说明:P0口引脚作数据总线,直接与6264相连接,用于传送8位数据信号。控制总线的连接说明:地址锁存信号ALE与74HC373地址锁存器输入选通端LE相连,用于锁存P0口的送出的低8位地址信号;读信号()与6264的输出使能端()相连,用于单片机读数据控制;写信号()与6264的输入使能端()相连,用于单片机写数据控制。由于片外扩展了两片芯片,必须进行芯片选择,故片选信号()通过译码器74HC138进行片选,在某一时刻只有一片可以工作。7.3.2 多个存储器扩展的片选问题多个存储器扩展时,为了找到确切的存储器单元,必须考虑两个方面的的问题:存储芯片的选择和芯片内部存储单元的选择。芯片内部存储单元的选择在上一节里,我们已经做了介绍。存储芯片的选择一般采用两种方法:线选法和译码法。在大容量多芯片扩展时,一般采用译码法。常用的译码芯片有:74HC139(双2-4译码器)、74HC138(3-8译码器)和74HC154〔4-16译码器)等。电路原理图使用了74HC138译码器,下面做一介绍。74HC138译码器具有3个选择输入端,可组成8种输入状态;具有8个输出端,分别对应8种输入状态,且0电平有效,即:对应于每种输入状态,仅允许1个输出端为0电平,其余全为1。74HC138译码器还有3个使能端E3、和,必须同时输入有效电平,译码器才能被选通;否则译码器的输出全为高。很明显,采用译码器寻址可节省单片机的I/O口线,其引脚图和逻辑功能真值表如图7-9所示。图7‑974HC138译码器的引脚图与真值表结合电路原理图7-8可知,U3芯片的寻址空间固定在0000H~1FFFH之间,而U4芯片的寻址空间固定在2000H~3FFFH之间。如果此时再将MOVDPTR,#0200H;设置外存储器的首地址代码中的外部存储器首地址0200H换成表7-1中的最右边一列中的任意一个16位地址编码,则结果就会发生变化了,同学们可以试一试?7.3.3 对数据进行访问的MOV、MOVX和MOVC指令比较通过前两例程序代码的学习,我们知道单片机要进行处理的数据可能存在于三种存储空间:内部数据存储器(包括工作寄存器区、位寻址区、通用工作区,以及一些特殊功能寄存器SFR),外部数据存储器和程序存储器。如果我们要对它们进行访问,就涉及了MOV、MOVX和MOVC三种指令。当数据是在内部数据存储器或指令队列中,我们将使用MOV指令进行访问。指令的访问形式多种多样,非常灵活。如图7-10所示。当数据是在片外的数据存储器或I/O接口时,我们将使用MOVX指令进行访问,指令格式简单易记,只有四种,如下图7-11所示。当数据是在程序存储器中的常量数据,我们将使用MOVC指令进行访问,指令只有两种,如图7-12所示。想一想,做一做?1、在电路原理图7-4和7-8中,片外没有扩展程序存储器。为什么片外不去扩展程序存储器?如果要扩展,则相应的硬件电路连线要注意什么事项?会不会和片外数据存储器的存储单元地址发生冲突?7.4 单片机片外扩展简单I/O接口【例7-3】按键控制LED灯的亮灭程序说明:51单片机的P0~P3口具有输入数据可以缓冲,输出数据可以锁存的功能,并有一定的负载能力,可以直接与外设相接(详见第2章示例),如:开关、发光二极管等。但有时出于节省I/O端口使用或需要提高系统带负载能力的情况下,常采用“输入三态,输出锁存”原则进行片外扩展简单I/O口芯片,这是单片机应用系统设计中常采用的方法。电路原理图:
电路功能说明:当PROTEUS仿真执行时,按下八个按键中的任意一个或多个,与之位置相呼应的LED灯将会点亮。7.4.1 并行扩展总线的连接说明电路中使用了74HC244、74HC273两种芯片。74HC273为8D锁存器,MR引脚为清除端,为低电平时,锁存器的输出与输入端无关,全为0;CLK引脚为时钟端,上升沿时,D端输入数据传送到Q输出端。其中74HC244为单向8位缓冲驱动器,数据传送方向为,有两个低电平有效的使能端,对8位数据传送分两组进行控制。74HC244和74HC273相当于只有一个存储单元的存储器,都是在P2.0为0时被选通的,所以二者的口地址都为FEFFH(这个地址不是唯一的,只要保证P2.0=0,其它地址位无关)。读者可能会但心地址冲突了,但74HC244的作用是从外设读数据,而74HC273的作用是向外设写数据,故将单片机读写控制信号分别与P2.0相“或”后,与74HC244和74HC273的控制端相连(如图7-13所示),就可以区别开了。P0口作为双向8位数据线,既能够从74LS244输入数据,又能够从74LS273输出数据。7.4.2 如何理解指令格式信息我们这章学习内容都和数据传送有关,数据可以存放于内RAM、外RAM和ROM中,我们通过MOV、MOVX或MOVC指令可以知道。但指令如何书写才是规范的,接下来就了解一下51汇编指令的基本格式。通过查看附录A指令表,可以发现指令翻译成机器码后,所占字节数是不相同的,可以分为以下三种:我们可以看到指令是由操作码、数据或寻址方式组成的,51单片机指令系统包括49条单字节指令、46条双字节指令和16条三字节指令。为了方便学习,采用助记符表示的汇编语言指令格式如下:标号是程序员根据编程需要给指令设定的符号地址,可有可无;由1~8个字符组成,第一个字符必须是英文字母,不能是数字或其它符号;标号后必须用冒号。操作码表示指令的操作种类,如MOV表示数据传送操作、ADD表示加法操作等。操作码以空格符来分隔后面的操作数。操作数或操作数地址表示参加运算的数据或数据的有效地址。操作数可以是0、1、2或3个,操作数之间以逗号相隔。例如MOVA,@R0指令,有2个操作数,左边的称为“目的操作数”(表示操作结果存放单元),而右边的称为“源操作数”(指出操作数的来源)。注释是对指令的解释说明,用以提高程序的可读性;注释前必须加分号。7.4.3操作数的表示方式指令的一个重要组成部分是操作数,它指出了在指令中参与运算的数或数所在的地址(包括存储器单元、寄存器、I/O接口芯片等)。51指令有关操作数的符号表示及含义如表7-2所示。为了更好地表述操作数本身及其所在地址,方便学习、与人交流。51单片机指令系统使用了包括有寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址等七种寻址方式来代表如何进行操作数查找。下面将操作数的寻址方式、操作数符号描述、操作数所在存储位置的表述,以及指令示例进行列表,如表7-3所示。符号含义Rn表示操作数据存放在当前寄存器组的工作寄存器(R0~R7)中Ri地址指针R0~R1,指向内或外RAM00H~FFH存储单元中的操作数@与Ri、DPTR配合使用,表示地址指针,指向内或外RAM存储单元A表示操作数据存放在累加器中B表示操作数据存放在辅助运算寄存器中,只用于乘、除法C特殊功能寄存器PSW的CY进位标志位,可用于位操作。#data表示8位操作数,即00H~FFH#data16表示16位操作数,即0000H~FFFFHaddr16表示程序在64K范围内跳转到的地址addr11表示程序在2K范围内跳转到的地址DPTR数据指针,指向外RAM64K范围内的存储单元PC程序指针,表示程序执行位置,指向ROM64K范围内的存储单元SP堆栈指针,指向堆栈区内最后保护的数据所在位置direct表示为内RAM存储单元地址或SFR特殊功能寄存器名或地址rel表示程序跳转,相对当前PC指针的8位偏移量(-128~+127)bit内RAM位寻址区的128个位地址或部分特殊功能寄存器的位地址(X)用于指令注释,表示X存储单元中存放的是操作数((X))用于指令注释,表示X中存放的是地址,操作数在该地址单元中←用于指令注释,表示数据传送方向,将←
后面的内容传送到前面去表7-2操作数据寻址方式操作数符号操作数存储位置指令示例(看源操作数)寄存器寻址Rn、A、DPTR、B将操作数存放于相应的寄存器中MOVP1,AMOVA,R0直接寻址Direct、SFR将操作数存放内部RAM区和特殊功能寄存器SFR区MOVA,P1MOV30H,40H立即数寻址#data、#data16无需查找,立即处理MOV30H,#17HMOVDPTR,#1234H寄存器间接寻址@Ri、@DPTR将存放操作数的内存单元的地址放在寄存器中,指令中只给出该寄存器名MOVA,@R0MOVXA,@DPTR变址寻址@A+DPTR、@A+PC将基址寄存器与变址寄存器的内容相加,结果作为操作数的地址MOVCA,@A+PCJMP@A+DPTR相对寻址rel程序计数器PC的当前内容与指令中的操作数相加,其结果作为跳转指令的转移地址SJMP$DJNZR1,REL位寻址bit、C指按位进行的操作,位操作数存放在内RAM位寻址区、部分SFR可进行位操作SEBTP1.0MOVC,20HCLRRS1表7-3操作数寻址简要说明想一想,做一做?1、如何将外RAM单元2000H中的数据,传送到外RAM单元3000H中?2、访问内部RAM单元、外部RAM单元、外ROM、特殊功能寄存器SFR可以分别采用哪些寻址方式?7.5 单片机采用8255芯片外扩展I/O接口可编程接口指的是指其功能可由微处理机的指令来加以改变的接口芯片,利用编程的方法,可以使一个接口芯片执行不同的接口功能。诸如8255A、8155、定时/计数器8253、串行接口8250、中断控制8259芯片等等,下面就以8255A芯片做一示例。【7-4】8255芯片控制数据管动态显示程序功能说明:通过T0定时器每3ms产生一次中断,进入中断服务程序,在中断服务程序中进行数据管动态扫描,显示相应的数据。电路工作原理电路功能说明:当PROTEUS仿真执行时,我们可以看到第1-7个数码管显示内容不变,分别是数字1~7;而第8个数码管显示数字在0-9之间循环变化。7.5.1 电路连线说明单片机与8255A之间以存储器扩展形式进行扩展,前面章节已经介绍了很多,不再累述。只需注意的是,由于8255A只有一个控制寄存器和三个并行输出口寄存器,故只需要两根地址线即可寻址区分;考虑到8255A驱动能力不足,故8255A与外设(8个组合数码管)之间加上了缓冲驱动器74HC244和74HC240。74HC240的输出信号与输入信号相反,用于位选通码输出。而芯片选通则通过74HC138译码器实现。74HC244的输入信号与输出信号是一致的,用于字形码输出;数码管是共阴的7.5.2组合数码管及其动态显示接口前面第五章介绍过单个数码管的工作原理,使其正常工作需要至少8个引脚。但实际应用中,往往必须连接多个LED数码管,如果按单个数码管方式工作,单片机的引脚是不够用的。故此,市场上出现了组合式数码管,外形如上图所示。组合式数码管接口电路把所有显示器的8个笔段A~H分别并联在一起,构成“字段口”;每一个显示器的公共端COM各自独立地受I/O线控制,称为“位扫描口”。以4位组合式数码管为例,需要8+4=12个引脚;而如果每个数码管都单独引脚,至少需要4×9=36个引脚。CPU向“字段口”送出字形码时,所有显示器的笔段都同时接收到,但究竟点亮哪一只显示器,取决于“位扫描口”接通了哪个或哪些显示器的公共端,一般情况只有一个显示器的公共端能够被选通,这样就可以实现不同的数据在不同的数码管中显示了。哪为什么我们又能看到数码管同时点亮呢?基本原理是利用人眼的“视觉暂留”效应。所谓“动态”,就是利用循环扫描,轮流选通各个显示器的公共端;只要扫描速度达到一定程度,人眼就分辨不出来了,认为各个显示器同时发光。7.5.3 8255A的内部结构和引脚图7‑158255的内部结构和引脚图8255A内部结构由4个逻辑结构组成:(1)A口、B口和C口均为8位I/O数据口,负责传送外设的输入/输出数据或控制信息;(2)A、B组控制电路根据CPU的命令字控制8255工作方式的电路,A组控制A口及C口的高4位,B组控制B口及C口的低4位;(3)数据缓冲器用于和单片机的数据总线相连,传送数据或控制信息;(4)读写控制逻辑接收51单片机送来的读写命令和选口地址,用于控制对8255的读写。8255A共有40个引脚:(1)数据总线:D0~D7引脚为8位数据线,用于传送CPU和8255之间的数据、命令和状态字;(2)控制总线:RESET(复位信号)引脚输入高电平有效。复位后,8255所有内部寄存器清0,所有口都为输入方式;和引脚接读写信号线,输入低电平有效;引脚接片选信号,输入低电平有效;(3)地址总线:A0、A1地址输入线。这两位的4种组合00、01、10、11分别用于选择A、B、C口和控制寄存器。(4)I/O口线:PA0~PA7、PB0~PB7、PC0~PC7为32条双向三态I/O总线,分别和A、B、C口相对应,用于8255和外设之间传送数据;7.5.4 8255A的工作方式8255的三个端口具体工作在什么方式下,是通过CPU对控制口写入控制字来决定的。如图7-16所示。方式选择控制字C口置/复位控制字8255有两个控制字:方式选择控制字和C口置/复位控制字。8255有3种工作方式:(1)方式0(基本输入/输出方式):A口、B口及C口高4位、低4位都可以设置输入或输出,不需要选通信号。单片机可以对8255进行I/O数据的无条件传送,外设的I/O数据在8255的各端口能得到锁存和缓冲。(2)方式1(选通输入/输出方式):A口和B口都可以独立的设置为方式1,在这种方式下,8255的A口和B口通常用于传送和它们相连外设的I/O数据,C口作为A口和B口的握手联络线,以实现中断方式传送I/O数据。C口作为联络线的各位分配是在设计8255时规定的。分配表见表7-4所示。(3)方式2(双向总线方式):只有A口才能设定。C口的PC3~PC7作为联络信号。设置工作方式时,必须将D7置1。当
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大连医科大学《皮革整饰化学与工艺学》2023-2024学年第二学期期末试卷
- 浙江药科职业大学《学前儿童卫生学》2023-2024学年第二学期期末试卷
- 天津医学高等专科学校《中医基础理论》2023-2024学年第二学期期末试卷
- 衡阳师范学院南岳学院《信号与系统综合实践》2023-2024学年第二学期期末试卷
- 工程竣工验收报告防腐涂料质量评估
- 针对进口商品各种情况调查
- 2025年中国医药市场分析:规模突破4万亿元 基因药物增速领跑行业
- 深沟槽专项施工方案
- 湖南省株洲市渌口区第三中学、株洲健坤潇湘高级中学2024-2025学年高二上学期1月期末联考数学试题(解析版)
- 成渝经济圈名校联盟2024-2025学年高三上学期第一次联考数学试题(解析版)
- 中小学劳动教育实践指导手册
- 基于语文核心素养的初中语文综合性学习教学策略研究
- 高血压员工免责协议范本
- 工艺部述职报告
- 供货交货进度计划及保证措施
- 第17课《学习中的烦心事》课件
- 规划选址及用地预审流程
- 关于卫健系统工作调研报告
- 烯烃习题参考答案
- 2023-2024学年山东省淄博市高青县七年级下学期期中考试英语试题 (含答案)
- 各国钢材牌号对照大全
评论
0/150
提交评论