




已阅读5页,还剩73页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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.1 MCS-51系统扩展结构图,单片机存储器的扩展过程中使用的外部总线有以下三种:,1地址总线:P0口(A0A7)),P2口(A8A15) 2数据总线:P0口(A0A7); 3控制总线:控制信号的具体定义见表5.1。,表5.1 控制信号功能,图7-1(a),MCS-51访问外部程序存储器时序波形,ALE,PSEN,RD WR,地址: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位地址信号AB815 ALE: 地址锁存允许控制信号 PSEN: 片外程序存储器读控制信号 RD: 片外数据存储器读控制信号 WR: 片外数据存储器写控制信号 EA: 程序存储器选择,5-3-3 存储器与单片机的连接实例,片选方法: 1.线选法 单片机剩余高位地址总线直接连接各存储器片选线。 2译码片选法 单片机剩余高位地址总线通过地址译码器输出片选信号。 多片存储器芯片组成大容量存储器连接常用片选方法。,二.扩充存储器容量,地址线、数据线和读写控制线均并联。 为保证并联数据线上没有信号冲突,必须用片选信号区别不同芯片的地址空间。,5-2-1 EPROM 2716,扩展多片片外程序存储器方法,片选信号CE的连接决定每片芯片的地址范围,片选信号由线选法产生, P2.5为低电平时选中2764(a) 为高电平时选中2764(b) 因此:2764(a)的地址范围为0000H1FFFH, 而2764(b)的地址范围为2000H3FFFH。,数据存储器的扩展,下图是数据存储器的基本扩展电路。从图中可以看出,数据存储器的扩展电路中的控制信号是和。单片机的和分别接RAM的读允许和写允许,实现读/写控制。是RAM的片选端,在只有一个芯片的情况下,直接接地,处于常选通状态。当有多个扩展芯片时,的连接方式决定着它的地址范围。,数据存储器基本扩展电路,例三片8KB的存储器芯片组成 24KB 容量的存储器。,确定各存储器芯片的地址空间:,设CE1、CE2、CE3分别连接单片机的高位地址总线AB13、AB14、AB15,ABi 15141312 111098 7 6 5 4 3 2 1 015141312 111098 7 6 5 4 3 2 1 0 :1100 0000 0000 00001101 1111 1111 1111=C000HDFFFH :1010 0000 0000 00001011 1111 1111 1111=A000HBFFFH :0110 0000 0000 00000111 1111 1111 1111=6000H7FFFH,5.2.2 非易失数据存储器的扩展,非易失性存储器NVRAM 有电池式和形影式 如: 2KB非易失随机存储器DS1220AB/AD 32KB非易失性随机存储 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-3 8155口地址分布,38155的工作方式与基本操作 (1)作片外256字节RAM使用。 (2)作扩展I/O口使用。 (3)作定时器使用,8155命令控制字格式,TM2 TM1 IEB IEA PC2 PC1 PB PA,00: ALT1 11: ALT2 01: ALT3 10: ALT4,C口工作方式及控制信号分布,(00) (11) (01) (10),8155 I/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状态字格式,TIMER INTEB BFB INTRB INTEA BFA INTRA,TIMER 中断请求标志位 TIMER 溢出置 1 CPU读8155状态后复0,M2 M1 T13 T12 T11 T10 T9 T8,T7 T6 T5 T4 T3 T2 T1 T0,8155定时器格式及输出方式,输出方式控制码,4MCS-51单片机与8155的接口与操作 MCS-51单片机可直接和8155连接而不需要任何外加逻辑,可以直接为系统增加256字节外部RAM、22根I/O线及一个14位定时器。其基本硬件连接方法如下图。,图6-28 8155和8031的连接方法,返回本节,P0.0 P0.1 P0.7,AD0 AD1 AD7,P2.7 P2.6,上图中8155的RAM和各端口地址分配如下,将8155片内RAM中0070单元中的数据送至8155A口输出。,【实现程序】: CLR P2.7 ;使=0,选中8155 SETB P2.6 ;使IO/=1,对端口操作 MOV A,#01H ;命令控制字,A口为输出 MOV R0,#00H ;指向命令寄存器 MOVX R0, A ;写入命令控制字 CLR P2.6 ;使IO/=0,对RAM操作 MOV R1,#70H ;指向RAM70H单元 MOVX A,R0 ;取出RAM中数据 SETB P2.6 ;使IO/=1,对端口操作 INC R0 ;指向A口 MOVX R0,A ;从A口输出,8031扩展3片6264,1片2764,1片8155,逻辑图,8031,74LS373,2764,6264 I,6264 II,6264 III,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,1G 2G,+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 命令/状态字寄存器: 7000H 2 PA口寄存器: 7001H 3 PB口寄存器: 7002H 4 PC口寄存器: 7003H 5 定时/计数器寄存器L:7004H 6 定时/计数器寄存器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: mov r7,#08h ; mov r0,#7fh ;78h7fh为显示缓冲器 dl0:mov a,r0 ;取出要显示的数 add a,#0bh ;加上偏移量 movc a,a+pc ;查表取出字型数据 mov sbuf,a ;送出显示 dl1:jnb ti,dl1 ;输出是否完? clr ti ;完,清中断标志 dec r0 ;再取下一个数 djnz r7,dl0 ;循环8次 ret ;返回,D7D6D5D4D3D2D1D0 h g f e d c b a,2.动态显示方式,段驱动,字驱动,动态显示程序,dir: mov r0,#79h ;置缓冲器指针初值,r0为数据指针 mov r3,#01h ;置扫描模式初值, r3为字指针 mov a,r3 ; ld0:mov dptr,#7001h;模式8155A口 movx dptr,a ;送字指针8155A口 inc dptr ;指向8155B口 mov a,r0 ;取显示数据 add a,0dh ;加偏移量 movc a,a+pc ;查表取段数据 dir1:movx dptr,a ;段数据8155B口 acall dl1 ;延迟1mS inc r0 ;指向下一个显示数据 mov a,r3 jb acc.5,ld1 rl a mov r3,a sjmp ld0 ld1:ret dseg:db 3fh,06h,5bh,4fh,66h,6dh, 7dh,07h,7fh,6fh,77h,7ch;段数据表 db 39h,5eh,79h,71h,73h,3eh,31h,6eh,1ch,23h,40h,03h, 18h,00,00,00 dl1:mov r7,#02h ;延迟1mS子程序 dl: mov r6,#0ffh dl6:djnz r6,dl6 djnz r7,dl ret,8.3键盘接口,8.3.1 键盘工作原理 44键盘结构,+5V,Y0,Y1,Y2,Y3,X3,X2,X1,X0,0 4 8 12,1 5 9 13,2 6 10 14,3 7 11 15,键盘结构,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键盘、显示接口方法,7407 TTL 集电极开路六正相高压驱动器,8.3.3 键盘输入程序设计方法,键盘输入的功能有以下四个方面: 判断键盘上有无键按下 方法:使扫描口PA0PA7=00, 读PC口 若PC0PC3=1111 则无键按下 若PC0PC3111 则必然有键按下 去按键颤抖 方法:读键值后,记忆该键值,然后延迟10ms左右,再读键值, 若2键值相等,则该键是正常按下,处理该键值 若不相等,则认为是干扰,放弃。 判别按下键的键值 方法:1列驱动,全行读出,每列驱动一次 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 PC3 PC2 PC1 PC0 1 1 1 1 1 1 1 0 24 16 8 0 1 1 1 1 1 1 0 1 25 17 9 1 1 1 1 1 1 0 1 1 26 18 10 2 0 1 1 1 1 1 1 1 31 23 15 7 键值N=行首键号+列号 使CPU对键的一次按下,仅作一次处理 方法:1. 有键按下,等待,释放后再作处理 2. 设键按下标志位,按下置1,处理键值,释放置0,键盘输入程序流程图,去 颤 抖,问题: 该程序对显 示有无影响,8.3.2键盘、显示接口方法,7407 TTL 集电极开路六正相高压驱动器,键盘输入程序清单,keyi: acall ks1 ;调用判别有无 ;键按下子程序 jnz lk1 n1: acall dir ;调用延迟子程序 ajmap keyi lk1: acall dir ;延迟12mS acall dir acall ks1 ;调用判别有无 ;键按下子程序 jnz lk2 acall dir ajmp keyi lk2: mov r2,#0feh ;扫描模式送r2 mov r4,#00h ;列号,(键值N=行首键号+列号) lk4 : mov dptr,#7001h;扫描模式送8155A口 mov a,r2 movx dptr,a ;列号(r4)送8155A口 inc dptr inc dptr movx a,dptr ;读8155C口 jb acc.0,lone;转判1行 mov a,#00h ;0行有键按下,首键值0送a ajmp lkp ;转键植计算 lone: jb acc.1,ltwo ;转判2行 mov a,#08h ;1行有键按下,首键号8送a ajmp lkp ;转键植计算,ltwo: jb acc.2,lthr;转判3行 mov a,#10h ;2行有键按下,键首号10h送a ajmp lkp ;转键植计算 lthr: jb acc.3,next;转下一列 mov a,#18h ;3行有键按下,首键号18h送a lkp: add a,r4 ; 键植计算 push acc ;键号进栈保护 lk3: acall dir ;判键释放否 acall ks1 ;(调用延迟子程序) jnz lk3 pop acc ;键号送a ret next: inc r4 ;列计数器加1 mov a,r2 ;判是否扫描到最后1列 jnb acc.7,knd;仍无键入扫描模式左移1位 rl a mov r2,a ajmp lk4 knd: ajmp keyi,ks1: mov dptr,#7001h;全”0”送扫描口 mov a,#00h movx dptr,a inc dptr inc dptr movx a,dptr ;读键状态 cpl a anl a,#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的数据存入FIFO RAM中。在传感器工作方式下,该信号无效。,8279工作方式 (1)键盘工作方式,键盘扫描方式,双键互锁:在这种方式,如果只有一个键被按下,则此键值连同CTRL和SHIFT的状态一起送到FIFO RAM中,如果FIFO空,IRQ=1;如果FIFO满,便置错误标志,键值不会送入FIFO RAM中。若有两个或两个以上键同时被按下,则不管这些键是以什么次序按下的,它只识别最后一个释放的键,并把此键值送入FIFO RAM中。 键盘扫描方式,N键巡回:在这种方式,一次可以按下任意个键,这些键均被识别,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体育产业发展情况及未来发展研究
- 农业绿色发展2025:政策支持与精准农业技术应用分析
- 农产品深加工产业园区建设项目:环保标准与绿色发展报告
- 三育教育考试题及答案
- 2025年三基考核题目及答案
- 2025年市政工程施工员考试模拟试题及答案
- 2025年山西省晋中市事业单位工勤技能考试题库(含答案)
- 设备选型题库及答案
- 新质生产力从量变到质变
- 2025年趣味点子题目及答案
- 2022年四川雅安石棉县综合类事业单位招聘20人笔试备考题库及答案解析
- 部编版小学语文四年级上册课程纲要
- 完整解读中华人民共和国政府信息公开条例课件
- 幼儿园红色故事绘本:《闪闪的红星》 课件
- GB/T 5780-2016六角头螺栓C级
- 小学特色作业经验汇报课件
- 粘膜免疫 2课件
- 统计业务知识(统计法规)课件
- 地质勘察任务书模板
- 新湘科版科学五年级上册全册课件(精品PPT)
- 环境社会学整本书课件完整版电子教案全套课件最全教学教程ppt(最新)
评论
0/150
提交评论