第九章MCS51并行IO接口扩展

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第九章MCS-51单片机并行I/O接口的扩展三类扩展器件9.1简单I/O并行接口扩展(锁存器)9.28255A可编程并行I/O接口扩展9.38155可编程I/O接口扩展在单片机的I/O口线不够用的情况下,可以外接芯片对I/O口进行扩展。可选用的器件类型很多。如利用TTL、COMS的锁存器、三态门等接口芯片把P0接口扩展。常选用74LS273、74LS373、74LS245等9.1简单I/O并行接口扩展CLRVCC1Q8Q1D8D2D7D2Q7Q3Q6Q3D6D4D5D4Q5QGNDCLKOEVCC1Q8Q1D8D2D7D2Q7Q3Q6Q3D6D4D5D4Q5QGNDGOEVCC1Q8Q1D8D2D7D2Q7Q3Q6Q3D6D4D5D4Q5QGNDCLK74LS27374LS37374LS374通常输出需要锁存,输入需要缓冲当单片机外接芯片较多,超出总线负载能力,必须加总线驱动器单向驱动器74LS244,可用于地址总线驱动双向驱动器74LS245,可用于数据总线驱动9.1简单I/O并行接口扩展1G,2G为H时,Y为高阻;1G,2G为L时,Y=AG为H时,禁止传输;G=L,DIR=0;B→AG=L,DIR=1;A→B简单I/O并行接口扩展地址:0FE00H简单I/O扩展:(缓冲/驱动器扩展)单片机锁存器74LS273P0.0-P0.7P2.0P2.1RDWRD0D7D0D7D0D7D0D7缓冲器74LS244≥1≥1CLKCE1CE2输出输入或门或门输出:MOVDPTR,#0FD00HMOVA,#DATAMOVX@DPTR,A输入:MOVDPTR,#0FE00HMOVXA,@DPTR9.2、8255可编程并行接口的扩展PA3PA4PA2PA5PA1PA6PA0PA7RDWRGNDD0A1D1A0D2PC7D3PC6D4PC5D5PC4D6PC0D78255PC2PB7PC3PB6PB0PB5PB1PB4PB2PB3CSRESETPC1VCC8255的基本特性与引脚:PA,PB,PC三个8位I/O口;40PINPC口分高4位和低4位。高4位可与PA口合为一组(A组)低4位可与PB口合为一组(B组)3种工作方式。内部有4个寄存器,由A1,A0与读,写信号选择。片选低有效,复位高有效。PC可按位置位/复位40条引脚,DIP封装一个8位的数据口D0~D7。8255内部结构及引脚功能数据总线缓冲器B组控制A组端口A(8)A组端口C上半部(4)B组端口C下半部(4)B组端口B(8)A组控制读写控制逻辑RDWRA0A1RESETCSD7~D0I/OPA7~PA0I/OPC7~PC4I/OPC3~PC0I/OPB7~PB0接口线PA0~PA7、PB0~PB7、PC0~PC7共24条端线3个口皆有锁存/缓冲寄存器,PA口、PB口有锁存功能,PC口无锁存功能。PA、PB、PC口的工作方式由程序设置数据线8255是8位芯片,有8位数据线D0~D7。数据线接单片机的P0接口控制线控制线控制8255的读RD*、写WR*、复位RESET及片选CS*等。地址线A1A0选择口00PA口01PB口10PC口11控制口方式选择及方式控制字(1)8255工作方式:方式0、方式1,方式2(2)方式选择D7D6D5D4D3D2D1D0C口下半部B口控制位B组方式控制位,D2=1方式1,反之方式0C口上半部控制位A口控制位A组方式控制D6D5=00方式001方式11X方式2总控制选择位D7=1选择A、B、C口工作方式D7=0C口进行位操作8255的PA,PB,PC口的三种工作方式:三种方式中方式0用得最多且最容易使用。基本输入/输出方式就是简单输入/输出方式。方式1和方式2比较复杂。这两种方式已较少用于单片机系统。工作方式A口B口C口0基本输入/输出输出锁存,输入三态基本输入/输出输出锁存,输入三态基本输入/输出输出锁存,输入三态1应答式输入/输出输入/输出均锁存应答式输入/输出输入/输出均锁存提供A口和B口的应答信号2应答式双向输入/输出输入/输出均锁存B口无此方式提供A口的应答信号PA,PB,PC口的三种工作方式示意图:RDWRD7——D0A1A0地址总线控制总线数据总线ABCPA0-7PB0-7PC4-7PC0-3A组B组8255的方式0ABPA0-7PB0-7控制线控制线A组B组ABPA0-7PB0-7控制线I/OA组B组76543210PC口8255的方式18255的方式276543210PC口8255的端口选择表:注意:对PA,PB,PC三个口的任何读/写操作,就是对PA,PB,PC这三个寄存器进行I/O操作第4个寄存器是控制字寄存器(命令字寄存器)A1A0RDWRCS操作说明00010CPU读取PA口数据从8255的I/O口读有效01CPU读取PB口数据10CPU读取PC口数据0010CPU向PA口输出数据向8255的I/O口写有效01CPU向PB口输出数据10CPU向PC口输出数据11100对控制寄存器写控制字初始化8255时必须做的工作XXXX1没有选中,8255不工作8255对系统总线呈高阻态11010非法状态控制寄存器只能写不能读XX110非法状态8255对系统总线呈高阻态D7D6D5D4D3D2D1D0特征位=1A组方式选择00:方式001:方式11X:方式2A口B口CL口CH口B组方式选择=0,方式0=1,方式1=0,输出=1,输入=0,输出=1,输入=0,输出=1,输入=0,输出=1,输入8255控制接受控制命令,告诉8255以何种方式工作。其地址是:A1,A0=11。可以接受两条命令,第一条命令叫“方式控制字”,方式控制字格式如下:A组B组注意:对同一控制寄存器可写两种命令,故必须在命令本身用“特征位”加以区别。第二条命令的特征位=0D7D6D5D4D3D2D1D0特征位=0Don’tcarebits选中的位将要输出的状态=0,清0=1,置18255控制寄存器可以接受的第2条命令是:可以对PC口按位进行“置1”和“清0”操作。具体命令格式如下:(地址同样是:A1,A0=11)D3D2D1选中PCx引脚000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC78255与单片机的连接:AT89C51825574LS373P0.0-P0.7ALEP2.78DQ0Q1CSRESETA0A1D0-D7GEAOERESETRDWRWRRD+5VPAPCPBP2.7接片选CS*端,8255的(一组)寄存器地址可以是:PA口:7FFCHPB口:7FFDHPC口:7FFEH命令口:7FFFH8255初始化对8255的3个端口的工作方式预先设置。设置方式控制字从控制口写入。例如:设置8255的A、B、C口全为输出方式,方式控制字为80H。初始化程序为:MOVDPTR,#7FFFH;8255控制口地址送DPTRMOVA,#80H;控制字送AMOVX@DPTR,A;控制字写入控制寄存器例如:要将PC5引脚置1,可用如下指令完成:则方式字应为:00001011B标志不用PC5置1MOVDPTR,#7FFFHMOVA,#0BHMOVX@DPTR,A例:8255的PA、PB、PC口输出方波ORG0000HWAVE:MOVDPTR,#7FFFH;8255控制字寄存器地址MOVA,#80H;初始化A,B,C口为基本输出口MOVX@DPTR,AMOVA,#55H;8位高/低电平相间输出REPT:MOVDPTR,#7FFCH;8255A口地址MOVX@DPTR,AINCDPTR;8255B口地址(0FF7DH)MOVX@DPTR,AINCDPTR;8255C口地址(0FF7EH)MOVX@DPTR,ALCALLDELY1S;延时CPLA;取反SJMPREPT;跳到REPT去循环8255A.B.C口输出方波PA0输出PA1输出PA2输出PA3输出PA4输出PA5输出PA6输出PA7输出PB0输出……………………………………9.3可编程并行接口芯片8155的扩展一、8155的结构及引脚8155的结构8155256字节RAM三个可编程并行口PA口,8位PB口,8位PC口,6位14位二进制减法计数器8155芯片的内部结构256B静态RAMA定时器BC口APA0~PA7口BPB0~PB7PC0~PC5口CIO/MAD0~AD7CEALERDWRRESET定时器输入定时器输出接单片机接外设接外设接外设8155引脚功能PC3PC4PC5IO/MCERDWRALEAD0AD1AD2AD3AD4AD5AD6AD7VssVccPC2PC1PC0PB7PB6PB5PB4PB3PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA08155TIMERINRESETTIMEROUTAD0-AD7三态地址/数据线IO/M端口/存储器选择RD读ALE地址锁存允许写WR选片CE定时器输入TIMERIN定时器输出TIMEROUTPA0-PA7A口端口线PB0-PB7B口端口线PC0-PC5C口端口线CEPA0-PA7端口A的I/O线(8位,接外设)PB0-PB7端口B的I/O线(8位,接外设)PC0-PC5端口C的I/O线(6位,接外设)AD0-AD7三态地址/数据复用线(8位,一般接单片机P0口,CPU与8155之间的地址、数据、命令、状态等信号都通过它来传送)端口/存储器选择控制“0”选择片内RAM“1”选择片内I/O口TIMERIN8155片内定时器/计数器的计数脉冲输入引脚TIMEROUT8155片内定时器/计数器的计满回零输出引脚分别对8155片内的RAM或I/O口的读、写控制信号ALE地址锁存引脚片选RESET复位引脚IO/MRD、WRCEI/O口地址----当IO/M加高电平时1.8155的RAM和I/O口地址RAM地址----当IO/M加低电平时此时AD0-AD7上得到的地址值是指8155的某一RAM单元的地址,地址范围是:00000000--11111111分别指向8155RAM的256个存储单元。此时AD0-AD7(仅用到低三位AD2、AD1、AD0)上得到的地址值是指8155的某一I/O口的地址,具体端口地址分配是:二、8155的工作原理AD7AD6AD5AD4AD3AD2AD1AD0I/O端口╳╳╳╳╳000命令/状态口╳╳╳╳╳001A口╳╳╳╳╳010B口╳╳╳╳╳011C口╳╳╳╳╳100计数器低8位╳╳╳╳╳101计数器高6位8155的I/O口地址分配2.8155的使用(分二种情况:片内RAM的使用各端口的使用)8155内RAM的使用:与一般外部数据存储器的使用基本一样,要注意的是要使IO/M*为低电平8155各端口(包括定时器)的使用:A、B、C各端口可工作于不同的工作方式,使用前要进行初始化(写命令字到命令口)8155命令字含义PAPBPC1PC2IEAIEBTM1TM2PB、PA—B口、A口数据传送方向0—输入1—输出00—C口输入,A、B口基本I/O方式11—C口输出,A、B口基本I/O方式01—PC3-PC5输出,A口选通方式,B口基本I/O方式10—A、B口选通方式PC2、PC1—C口数据传送方向及A、B口工作方式IEA、IEB—A、B口中断允许控制0—禁止1—允许TM1、TM2—定时器/计数器控制00空操作01停止定时器10记满回零停止计数11启动8155内部有一个14位减法计数器,计数脉冲来自其引脚“TIMERIN”,使用定时器前一般先装入“时间常数”----14位二进制数。其格式为:8155定时器/计数器D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0M2M1T13T12T11T10T9T8T7T6T5T4T3T2T1T0高6位计数值低8位计数值定时器方式M2M100单方波01连续方波10单脉冲11连续脉冲三.扩展电路的举例接口方式非常简单,基本上是相同信号对接。80318155RESETRDWRALEP2.0P2.7P0.0P0.1P0.2P.03P0.4P0.5P0.6

1 / 43
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功