单片机原理与应用技术第5章并行接口扩展.ppt

上传人:max****ui 文档编号:11493856 上传时间:2020-04-25 格式:PPT 页数:78 大小:1.15MB
返回 下载 相关 举报
单片机原理与应用技术第5章并行接口扩展.ppt_第1页
第1页 / 共78页
单片机原理与应用技术第5章并行接口扩展.ppt_第2页
第2页 / 共78页
单片机原理与应用技术第5章并行接口扩展.ppt_第3页
第3页 / 共78页
点击查看更多>>
资源描述
第5章MCS-51单片机外部并行接口扩展技术,5.1系统总线扩展及编址技术5.2存储器扩展5.3并行口扩展5.4键盘/显示器接口扩展技术,5.1系统总线扩展及编址技术,5.1.1系统总线扩展MCS-51系列单片机系统扩展主要包括存储器扩展和I/O口的扩展。存储器扩展分为程序存储器的扩展、数据存储器的扩展。它们的扩展能力为:1程序存储器可扩展至64KB;2数据存储器可扩展至64KB;3I/O口的扩展;,图5.1MCS-51系统扩展结构图,单片机存储器的扩展过程中使用的外部总线有以下三种:,1地址总线:P0口(A0A7)),P2口(A8A15)2数据总线:P0口(A0A7);3控制总线:控制信号的具体定义见表5.1。,表5.1控制信号功能,图7-1(a),MCS-51访问外部程序存储器时序波形,ALE,PSEN,RDWR,地址:A15A8,地址:A15A8,P2,A7A0,指令,A7A0,P0,一个机器周期,5.1.2编址技术,线选法:一般是利用单片机的最高几位空余的地址线中的一根作为某一片存储器芯片或I/O接口芯片的“片选”控制线。译码器法:当应用系统中扩展芯片较多时,单片机空余的高位地址线不够用。这是常用译码器对空余的高位地址线进行译码,而译码器的输出作为“片选”控制线。,2译码片选法3-8地址译码器:74LS138,双2/4译码器74LS139引脚图,5.2存储器扩展,5.2.1程序存储器的扩展5.2.2数据存储器的扩展5.2.2非易失数据存储器的扩展,5.2.1程序存储器的扩展,EPROM的扩展方法,基本扩展方法,扩展存储器的:地址总线由P0口和P2口提供,具体使用多少由扩展容量决定;数据总线由P0口提供;CE决定地址范围,编织方式不同,连接方法不同(只有一片芯片时,直接接地,处于常选通状态).程序存储器OE信号由单片机的PSEN线控制,返回本节,MCS-51单片机的引脚配置图,MCS-51用于扩展存储器的外部总线信号:P0.00.7:8位数据和低8位地址信号,复用总线AD07。P2.02.7:高8位地址信号AB815ALE:地址锁存允许控制信号PSEN:片外程序存储器读控制信号RD:片外数据存储器读控制信号WR:片外数据存储器写控制信号EA:程序存储器选择,5-3-3存储器与单片机的连接实例,片选方法:1.线选法单片机剩余高位地址总线直接连接各存储器片选线。2译码片选法单片机剩余高位地址总线通过地址译码器输出片选信号。多片存储器芯片组成大容量存储器连接常用片选方法。,二.扩充存储器容量,地址线、数据线和读写控制线均并联。为保证并联数据线上没有信号冲突,必须用片选信号区别不同芯片的地址空间。,5-2-1EPROM2716,扩展多片片外程序存储器方法,片选信号CE的连接决定每片芯片的地址范围,片选信号由线选法产生,P2.5为低电平时选中2764(a)为高电平时选中2764(b)因此:2764(a)的地址范围为0000H1FFFH,而2764(b)的地址范围为2000H3FFFH。,数据存储器的扩展,下图是数据存储器的基本扩展电路。从图中可以看出,数据存储器的扩展电路中的控制信号是和。单片机的和分别接RAM的读允许和写允许,实现读/写控制。是RAM的片选端,在只有一个芯片的情况下,直接接地,处于常选通状态。当有多个扩展芯片时,的连接方式决定着它的地址范围。,数据存储器基本扩展电路,例三片8KB的存储器芯片组成24KB容量的存储器。,确定各存储器芯片的地址空间:,设CE1、CE2、CE3分别连接单片机的高位地址总线AB13、AB14、AB15,ABi15141312111098765432101514131211109876543210:11000000000000001101111111111111=C000HDFFFH:10100000000000001011111111111111=A000HBFFFH:01100000000000000111111111111111=6000H7FFFH,5.2.2非易失数据存储器的扩展,非易失性存储器NVRAM有电池式和形影式如:2KB非易失随机存储器DS1220AB/AD32KB非易失性随机存储DS1230Y/AB,5.3并行口扩展,5.3.1简易8位并行口扩展(377、373、245)5.3.2可编程RAM/IO芯片8155接口设计,5.3.1简易8位并行口扩展,1.用锁存器74LS377扩展简单的8位输出口74LS377是一种8D触发器,利用它可以进行简单的并行口扩展。,74LS377引脚图,当74LS377的接收端E为低电平且时钟CLK端电平正跳时,D0D7端的数据被锁存到8D触发器中。,2.用三态门74LS244扩展8位并行输入口,74LS244是一种三态输出的8总线缓冲驱动器,无锁存功能。,74LS244引脚图,当EN为低电平时,Ai信号传送到Yi;当为EN高电平时,Yi处于禁止高阻状态。,下图是用74LS244通过P0口扩展的8位并行常态输入接口。三态门由P2.6和相或控制。,用74LS244扩展8位并行输入口,5.3.2可编程RAM/IO芯片8155接口设计,8155的结构及引脚命令/状态寄存器8155与单片机连接方法,5.3.2可编程I/O口扩展,表7-1常用Intel系列可编程接口芯片,18155的结构和技术性能8155内部具有:(1)256字节的静态RAM,存取时间为400ns。(2)三个通用的输入/输出口。(3)一个14位的可编程定时/计数器。(4)地址锁存器及多路转换的地址和数据总线。(5)单一+5V电源,40脚双列直插式封装。,8155的逻辑结构及引脚,各引脚功能如下:,AD0AD7:三态地址/数据线。8位。是低8位地址与数据复用线引脚。地址可以是8155内部RAM单元地址或是I/O口地址。AD0AD7上的地址由ALE的下降沿锁存到8155内部地址锁存器。也就是由ALE信号来区别AD0AD7上出现的是地址信息还是数据信息。ALE:地址锁存允许信号。在ALE信号的下降沿把AD0AD7上的8位地址信息、片选信号及IO/(IO端口/RAM选择)信号都锁存到8155内部锁存器中。IO/M:I/O端口和RAM选择信号。当IO/M=1时,AD0AD7的地址为8155I/O口地址,选择I/O端口;当IO/M=0时,AD0AD7的地址为8155内部RAM单元地址,选择RAM存储单元。,CE:片选信号线,低电平有效,由ALE信号的下降沿锁存到8155内部锁存器。RD:读选通信号。低电平有效。当RD=0,且CE=0时,开启AD0AD7的缓冲器,被选中的内部RAM单元(IO/=0)或IO口(IO/=1)的内容送到AD0AD7上。WR:写选通信号。低电平有效。当WR、CE都有效时,CPU输出到AD0AD7上的信息写到8155内部RAM单元或I/O端口。PA0PA7:A口的I/O线(8位)。PB0PB7:B口的I/O线(8位)。PC0PC7:C口的I/O线(6位)。TIN:定时器输入。定时器工作所需的时钟信号由此端输入。TOUT:定时器输出。根据定时器工作方式,TOUT端可输出方波或脉冲。VCC:+5V电源;VSS:接地。,28155的RAM和I/O地址编码,表6-38155口地址分布,38155的工作方式与基本操作(1)作片外256字节RAM使用。(2)作扩展I/O口使用。(3)作定时器使用,8155命令控制字格式,TM2TM1IEBIEAPC2PC1PBPA,00:ALT111:ALT201:ALT310:ALT4,C口工作方式及控制信号分布,(00)(11)(01)(10),8155I/O的逻辑组态,.,8155,PA,PB,PC,PC2PC1=11,8155,PA,PB,PC3PC5,PC2PC1=01,PC0,PC1,PC2,INTRA,BFA,8155,PA,PB,PC2PC1=10,PC0,PC1,PC2,INTRA,BFA,PC3,PC4,PC5,INTRB,BFB,8155状态字格式,TIMERINTEBBFBINTRBINTEABFAINTRA,TIMER中断请求标志位TIMER溢出置1CPU读8155状态后复0,M2M1T13T12T11T10T9T8,T7T6T5T4T3T2T1T0,8155定时器格式及输出方式,输出方式控制码,4MCS-51单片机与8155的接口与操作MCS-51单片机可直接和8155连接而不需要任何外加逻辑,可以直接为系统增加256字节外部RAM、22根I/O线及一个14位定时器。其基本硬件连接方法如下图。,图6-288155和8031的连接方法,返回本节,P0.0P0.1P0.7,AD0AD1AD7,P2.7P2.6,上图中8155的RAM和各端口地址分配如下,将8155片内RAM中0070单元中的数据送至8155A口输出。,【实现程序】:CLRP2.7;使=0,选中8155SETBP2.6;使IO/=1,对端口操作MOVA,#01H;命令控制字,A口为输出MOVR0,#00H;指向命令寄存器MOVXR0,A;写入命令控制字CLRP2.6;使IO/=0,对RAM操作MOVR1,#70H;指向RAM70H单元MOVXA,R0;取出RAM中数据SETBP2.6;使IO/=1,对端口操作INCR0;指向A口MOVXR0,A;从A口输出,8031扩展3片6264,1片2764,1片8155,逻辑图,8031,74LS373,2764,6264I,6264II,6264III,8155,ALE,P0,D0D7,D0D7,D0D7,D0D7,AD0AD7,A0A7,P2.0P2.4,A0A7,A0A7,A0A7,A8A13,A8A13,A8A13,A8A13,ALE,IO/M,P2.4,74LS138,P2.5P2.7,A,B,C,G,1G2G,+5V,Y3Y2Y1Y0,RST,RST,复位电路,8031扩展3片6264,1片2764,1片8155,地址范围程序存储器2764:0000H1FFFH(0000000011111ff)数据存储器6264(I):0000H1FFFH(0000000011111ff)数据存储器6264(II):2000H3FFFH(0010000111111ff)数据存储器6264(III):4000H5FFFH(0100001011111ff)8155的数据存储器:6000H60FFH(0110001100000ff)8155的I/O接口:7000H7005H(011100111000000101)1命令/状态字寄存器:7000H2PA口寄存器:7001H3PB口寄存器:7002H4PC口寄存器:7003H5定时/计数器寄存器L:7004H6定时/计数器寄存器H:7005H,5.4键盘/显示器接口扩展技术,5.4.1显示器结构与工作原理5.4.2键盘接口工作原理5.4.3键盘/显示器专用接口芯片8279工作原理5.4.4键盘/显示器接口实例,5.4.1显示器结构与工作原理,1.LED显示器结构与工作原理,LED显示器的结构如图所示。由8个发光二极管按“日”字形排列。分别控制各笔画段的LED,使其中的某些发亮,从而可以显示出09的阿拉伯数字符号以及其它能由这些笔画段构成的各种字符。把所有发光二极管的阳极连在一起称作共阳极数码管,把8个发光二极管的阴极连在一起称为共阴极数码管。,LED数码显示器的显示方法有两种:静态显示法和动态扫描显示法。,静态显示法:所谓静态显示,就是每一个显示器各笔画段都要独占具有锁存功能的输出口线,CPU把欲显示的字形代码送到输出口上,就可以使显示器显示所需的数字或符号,此后,即使CPU不再去访问它,因为各笔画段接口具有锁存功能,显示的内容也不会消失。静态显示法的优点是显示程序十分简单,显示亮度大,由于CPU不必经常扫描显示器,所以节约了CPU的工作时间。但静态显示也有其缺点,主要是占用的I/O口线较多,硬件成本较高。所以静态显示法常用在显示器数目较少的应用系统中。,5.2七段发光显示器接口1.静态显示方式,dir:movr7,#08h;movr0,#7fh;78h7fh为显示缓冲器dl0:mova,r0;取出要显示的数adda,#0bh;加上偏移量movca,a+pc;查表取出字型数据movsbuf,a;送出显示dl1:jnbti,dl1;输出是否完?clrti;完,清中断标志decr0;再取下一个数djnzr7,dl0;循环8次ret;返回,D7D6D5D4D3D2D1D0hgfedcba,2.动态显示方式,段驱动,字驱动,动态显示程序,dir:movr0,#79h;置缓冲器指针初值,r0为数据指针movr3,#01h;置扫描模式初值,r3为字指针mova,r3;ld0:movdptr,#7001h;模式8155A口movxdptr,a;送字指针8155A口incdptr;指向8155B口mova,r0;取显示数据adda,0dh;加偏移量movca,a+pc;查表取段数据dir1:movxdptr,a;段数据8155B口acalldl1;延迟1mSincr0;指向下一个显示数据mova,r3jbacc.5,ld1rlamovr3,asjmpld0ld1:retdseg:db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch;段数据表db39h,5eh,79h,71h,73h,3eh,31h,6eh,1ch,23h,40h,03h,18h,00,00,00dl1:movr7,#02h;延迟1mS子程序dl:movr6,#0ffhdl6:djnzr6,dl6djnzr7,dlret,8.3键盘接口,8.3.1键盘工作原理44键盘结构,+5V,Y0,Y1,Y2,Y3,X3,X2,X1,X0,04812,15913,261014,371115,键盘结构,t0,t2,t3,t4,t1,键按下和释放时的行线电压波形,读键值方法:令Y0=0:读X0X1X2X3=k0k1k2k3;按下的键值=0令Y1=0:读X0X1X2X3=k4k5k6k7;没有按下的键值=1令Y2=0:读X0X1X2X3=k8k9k10k11令Y3=0:读X0X1X2X3=k12k13k14k15,R3,R2,R1,R0,行读出,列驱动,8.3.2键盘、显示接口方法,7407TTL集电极开路六正相高压驱动器,8.3.3键盘输入程序设计方法,键盘输入的功能有以下四个方面:判断键盘上有无键按下方法:使扫描口PA0PA7=00,读PC口若PC0PC3=1111则无键按下若PC0PC3111则必然有键按下去按键颤抖方法:读键值后,记忆该键值,然后延迟10ms左右,再读键值,若2键值相等,则该键是正常按下,处理该键值若不相等,则认为是干扰,放弃。判别按下键的键值方法:1列驱动,全行读出,每列驱动一次PA7PA6PA5PA4PA3PA2PA1PA0PC3PC2PC1PC01111111024168011111101251791111110112618102011111113123157键值N=行首键号+列号使CPU对键的一次按下,仅作一次处理方法:1.有键按下,等待,释放后再作处理2.设键按下标志位,按下置1,处理键值,释放置0,键盘输入程序流程图,去颤抖,问题:该程序对显示有无影响,8.3.2键盘、显示接口方法,7407TTL集电极开路六正相高压驱动器,键盘输入程序清单,keyi:acallks1;调用判别有无;键按下子程序jnzlk1n1:acalldir;调用延迟子程序ajmapkeyilk1:acalldir;延迟12mSacalldiracallks1;调用判别有无;键按下子程序jnzlk2acalldirajmpkeyilk2:movr2,#0feh;扫描模式送r2movr4,#00h;列号,(键值N=行首键号+列号)lk4:movdptr,#7001h;扫描模式送8155A口mova,r2movxdptr,a;列号(r4)送8155A口incdptrincdptrmovxa,dptr;读8155C口jbacc.0,lone;转判1行mova,#00h;0行有键按下,首键值0送aajmplkp;转键植计算lone:jbacc.1,ltwo;转判2行mova,#08h;1行有键按下,首键号8送aajmplkp;转键植计算,ltwo:jbacc.2,lthr;转判3行mova,#10h;2行有键按下,键首号10h送aajmplkp;转键植计算lthr:jbacc.3,next;转下一列mova,#18h;3行有键按下,首键号18h送alkp:adda,r4;键植计算pushacc;键号进栈保护lk3:acalldir;判键释放否acallks1;(调用延迟子程序)jnzlk3popacc;键号送aretnext:incr4;列计数器加1mova,r2;判是否扫描到最后1列jnbacc.7,knd;仍无键入扫描模式左移1位rlamovr2,aajmplk4knd:ajmpkeyi,ks1:movdptr,#7001h;全”0”送扫描口mova,#00hmovxdptr,aincdptrincdptrmovxa,dptr;读键状态cplaanla,#0fh;屏蔽高位ret,5.4.3键盘/显示器专用接口芯片8279工作原理,Intel公司的8279是可编程的键盘和显示接口器件。单个芯片可以实现键盘输入和LED显示控制两种功能。使用它可以简化系统的软硬件设计,充分提高CPU的工作效率。,8279引脚与功能,8279的内部结构,结构特点:,8279包括键盘输入、显示输出及I/O控制和数据缓冲器三部分。键盘部分提供扫描方式,可以与具有64个按键或传感器的阵列相连。能自动消除按键开关抖动以及具有几个键同时按下的保护。显示部分按动态扫描方式工作,是可以驱动8位或16位的LED显示器,引脚功能:,(1)与CPU总线接口部分D0D7:双向、三态数据总线,与系统数据总线相连,用于CPU与8279之间传送控制、状态和数据信息。GLK:系统的时钟输入线,用于产生内部时钟。RESET:复位信号,输入线,高电平有效。当RESET为1时,8279复位。其复位状态为16字符显示,编码扫描键盘,双键锁定,程序时钟编程为31。CS:片选输入线,低电平有效。CS=0时,8279才能工作。,A0:数据选择输入线。当A0=0,表示传送的是数据;当A0=1,表示输入、输出命令或状态。RD:读控制信号,低电平有效。当时,CPU从8279读数据。WR:写控制信号,低电平有效。当时,CPU向8279写数据。IRQ:中断请求信号,高电平有效。在键盘工作方式中,当FIFO/传感器RAM存有数据时,IRQ为高电平。CPU每次从RAM中读出数据时,IRQ变为低电平。若RAM中仍有数据,则IRQ再次恢复为高电平。在传感器工作方式中,每当检测到传感器状态变化时,IRQ就出现高电平。,(2)数据显示接口部分,OUTA0OUTA3:A组显示信号输出线。OUTB0OUTB3:B组显示信号输出线。BD:显示器消隐指示,输出。用于在数字转换时指示消隐,或用于由显示消隐命令控制下的消隐指示。,(3)键盘接口部分,SL0SL3:用于键盘/传感器矩阵或显示器的扫描输出线,可编程设定为编码方式或内部译码方式。RL0RL7:返回输入线,是键盘阵列或传感器阵列的列(或行)的输入线。平时保持为“1”,当矩阵结点上有开关闭合时变为0。SHIFT:移位输入线。在键盘工作方式时,当按键按下闭合时,该输入信号是8279键盘数据的次高位(D6),通常用来扩充键功能,可以用做键盘上、下档功能键。在传感器方式或选通SHIFT无效。CNTL/STB:控制/选通输入线。在键盘工作方式时,该信号是键盘数据的最高位,通常用来扩充键开关的控制功能,作为控制功有键使用。在选通输入工作方式时,该信号的上升沿可将来自RL0RL7的数据存入FIFORAM中。在传感器工作方式下,该信号无效。,8279工作方式(1)键盘工作方式,键盘扫描方式,双键互锁:在这种方式,如果只有一个键被按下,则此键值连同CTRL和SHIFT的状态一起送到FIFORAM中,如果FIFO空,IRQ=1;如果FIFO满,便置错误标志,键值不会送入FIFORAM中。若有两个或两个以上键同时被按下,则不管这些键是以什么次序按下的,它只识别最后一个释放的键,并把此键值送入FIFORAM中。键盘扫描方式,N键巡回:在这种方式,一次可以按下任意个键,这些键均被识别,并按键扫描的顺序把键值送入FIFORAM中。,(2)显示器的工作方式,CPU将显示数据写入显示缓冲器时有左端送入和右端送入两种方式。左端送入为依次填入方式。写入数据总是从左端开始向右端依次填入,当8个数据写完后,又从左端0单元开始从左至右依次写入。右端送入为移位方式。数据总是从最右边的显示缓冲器写入。每写入一个数据,原来缓冲器中内容左移一个字节。,(3)传感器矩阵方式,在这种方式,传感器的开关状态直接送到传感器RAM,CPU对传感器阵列扫描时,如果检测到某个传感器状态发生变化,则使中断申请信号IRQ变为高电平。如果AI(自动加1标志)为0,则对传感器RAM的第一次操作时即将IRQ清0,如果AI标志为1,则用中断结束命令清除IRQ。,(4)内部译码和外部译码方式,在键盘、显示器工作方式中,SL0SL3为键盘的列扫描线和动态显示器的位选线。当选择内部译码方式时,SL0SL3每一时刻只能有一位为低电平输出,此方式外部只能接4个LED和48的键盘。当选择外部译码方式时,此种方式下,外部可以接16个LED和88的键盘。,4.8279命令格式与命令字,5.4.4键盘/显示器接口实例,上图是一个实际的8279键盘显示电路。采用16个键盘输入,8位LED显示。采用8279设计键盘显示电路时,8279芯片中设有先入先出RAM,可储存8个键值。当有键按下时,8279可先将按下键的键值读入FIFORAM中,然后向CPU发出中断申请或等待CPU查询,取走数据。8279的显示输出部分设有16个字节的显示RAM,可接16位LED显示器。CPU先指定显示RAM的地址,再对其写入或读出。该RAM地址可自动加1,供CPU依次写入或读出。CPU向显示器写入显示字符可以从左进入,也可以从右进入,还可以进入指定显示位置。,实现功能:,读取上图中键盘输入值,16个键的键值读出后存放在40H47H单元中。AT89C51的晶振为6MHz。,1.初始化,1.清除功能。用来清除8279显示RAM和FIFORAM格式。具体命令为D1H。2.设置键盘/显示器工作方式,具体命令为00H,其中(D7,D6,D5)=000为特征位,(D4,D3)=00为8个字符显示,从左端送入,D2,D1,D0)=000为编码扫描键盘,双键锁定。3.选取分频系数。具体命令为2AH。其中其中(D7,D6,D5)=001为特征位,分频系数为10。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!