7.1并行IO接口

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

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

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

资源描述

第7章并行I/O接口7.1概述7.2MCS-51内部并行I/O端口及其应用***7.3并行I/O接口芯片及并行I/O端口的扩展7.4MCS-51对LED/LCD/键盘的接口****7.5MCS-51内部定时器/计数器*****7.1概述I/O接口的作用1.实现与不同外部设的速度匹配-同步传送-异步传送-中断传送-DMA2.改变数据传送方式-I/O接口的类型:串行I/O接口和并行I/O接口-串并行数据的相互转换3.改变信号的性质和电平-数据信息、状态信息、命令信息-TTL电平,RS232电平等7.2MCS-51内部并行I/O端口及其应用复习:1.各个端口引脚在作输入口之前,都要先向对应的口寄存器中写“1”,不然不能作输入口用。2.P0口内部没有上拉电阻(其他都有),所以作通用IO口用时为“开漏”输出,必须外加上拉电阻。在作总线使用时不需要加上拉。其他的口可加可不加。(上拉电阻的阻值确定,5.1K或者4.7K都可以)。3.如果使用了外部存储器,不要再写P0口。4.P2口是8位准双向I/O口。外接I/O设备时,可作为扩展系统的地址总线,输出高8位地址,与P0口一起组成16位地址总线。对于8031而言,P2口一般只作为地址总线使用,而不作为I/O线直接与外部设备相连。P3口的第二功能5.P3口作第二功能使用时,相应的口锁存器必须为“1”状态。驱动能力•P1,P2和P3口的每位输出驱动管可驱动4个LSTTL输入;可按通常方式被任一TTL或NMOS电路所驱动•P0口每位输出驱动管可驱动8个LSTTL输入,但若驱动NMOS输入,需要加上上拉电阻7.2MCS-51内部并行I/O端口及其应用简单的I/O口使用:保险柜的模拟控制•要求:BCD码拨盘设置编码,若编码小于密码时,则二极管发光,以提醒操作者编码有误,可继续调节,直至编码与密码相符时,保险柜开启,若编码大于密码时,则报警,此时,调整编码无效。图中,开关K设在隐蔽处,只有K闭合,编码才能输入,从而增强了隐蔽性。入口:P1.0~P1.7——编码输入、30H——密码X出口:P3.0——开启保险柜、P3.1——状态指示、P3.2——报警·说明入口:P1.0~P1.7——编码输入、30H——密码X出口:P3.0——开启保险柜、P3.1——状态指示、P3.2——报警·程序:ORG0000HSTART:MOVSP,#60H;初始化MOVP1,#0FFHMOVP3,#0FFHNEXT:MOVA,P1CJNEA,30H,NOTEQCLRP3.0;打开保险柜SJMPLOOP3NOTEQ:JCLOOP2LOOP1:CPLP3.2;提示报警SJMPLOOP1LOOP2:CLRP3.1;提示操作有误SJMPNEXTLOOP3:SJMPLOOP3简单的I/O口扩展•扩展实例:简单的I/O口扩展通常是采用TTL或CMOS电路锁存器、三态门等作为扩展芯片,通过P0口来实现扩展的一种方案。它具有电路简单、成本低、配置灵活的特点。下图为采用74LS244作为扩展输入、74LS273作为扩展输出的简单I/O口扩展。P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0WRRDCLRS1+5V≥1G1803174LS27374LS244G2CPD0D1D2D3D4D5D6D7Q0Q1Q2Q3Q4Q5Q6Q7Q0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7LED0LED1LED2LED3LED4LED5LED6LED7S0S2S3S4S5S6S7≥1编写程序把按钮开关状态通过发光二极管显示出来。芯片及连线说明•图中电路中采用的芯片为TTL电路74LS244、74LS273。•74LS244为8缓冲线驱动器(三态输出),G1、G2为低电平有效的使能端。当二者之一为高电平时,输出为三态。•74LS273为8D触发器,CLR为低电平有效的清除端。当CLR为0时,输出全为0且与其它输入端无关;CP端是时钟信号,当CP由低电平向高电平跳变时刻,D端输入数据传送到Q输出端。•P0口作为双向8位数据线,既能够从74LS244输入数据,又能够从74LS273输出数据。输入控制信号由P2.0和相“或”后形成。•当G1、G2二者都为0时,74LS244的控制端有效,选通74LS244,外部的信息输入到P0数据总线上。•当与74LS244相连的按键都没有按下时,输入全为1,若按下某键,则所在线输入为0。•输出控制信号由P2.0和WR相“或”后形成。当二者都为0后,74LS273的控制端有效,选通74LS273,P0上的数据锁存到74LS273的输出端,控制发光二极管LED,当某线输出为0时,相应的LED发光。 I/O口地址确定•因为74LS244和74LS273都是在P2.0为0时被选通的,所以二者的口地址都为FEFFH(这个地址不是惟一的,只要保证P2.0=0,其它地址位无关)。•但是由于分别由RD和WR控制,因而两个信号不可能同时为0,所以逻辑上二者不会发生冲突。输出程序段:MOVA,#data;数据→AMOVDPTR,#0FEFFH;I/O地址→DPTRMOVX@DPTR,A;WR*为低,数据经74LS273口输出输入程序段:MOVDPTR,#0FEFFH;I/O地址→DPTRMOVXA,@DPTR;RD*为低,74LS244口编写程序把按钮开关状态通过图中的发光二极管显示出来。程序如下:DDIS:MOVDPTR,#0FEFFH;输入口地址→DPTRLP:MOVXA,@DPTR;按钮开关状态读入A中MOVX@DPTR,A;A中数据送输出口SJMPLP;反复连续执行7.38255可编程并行I/O接口扩展与电路设计(1)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(1)接口线PA0~PA7、PB0~PB7、PC0~PC7共24条端线。3个口皆为锁存/缓冲寄存器,A口、B口有锁存功能,C口无锁存功能。A、B、C3口的工作方式由程序设置。(2)数据线8255是8位芯片,有8位数据线D0~D7。数据线接于8051的P0接口,(3)控制线•控制线控制8255的读RD:、写WR、复位RESET及片选CS等。(4)地址线•A1A0选择口•00A口•01B口•10C口•11控制口2、方式选择及方式控制字(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口进行位操作3.8255扩展电路及地址设置(1)8255地址口确定:PA,PB,PC,控制字寄存器(2)8255初始化例如,欲设置8255的A、B、C口全为输出状态(或输出方式),控制字为80H。对8255的3个端口的工作方式预先设置。设置控制字经控制口写入。例如,欲设置8255的A、B、C口全为输出状态(或输出方式),控制字为80H。程序(结合上图)如下:MOVR0,#0FEH;8255控制口地址MOVA,#80H;控制字送AMOVX@R0,A;控制字写入控制寄存器8255初始化•设端口A为方式0输入,端口B方式1输出,端口C(上半部)PC7-PC4输出,端口C(下半部)PC3-PC0输入•设端口A为方式0输入,端口B方式1输出,端口C(上半部)PC7-PC4输出,端口C(下半部)PC3-PC0输入MOVR0,#0FEH;8255控制口地址MOVA,#95H;控制字送AMOVX@R0,A;控制字写入控制寄存器例:对端口C置位/复位例如,把C口的第6位PC5置1例如,把C口的第6位PC5复位例:对端口C置位/复位例如,把C口的第6位PC5置1MOVR0,#0FEH;8255控制口地址MOVA,#0BH;控制字送AMOVX@R0,A;控制字写入控制寄存器例如,把C口的第6位PC5复位MOVR0,#0FEH;8255控制口地址MOVA,#0AH;控制字送AMOVX@R0,A;控制字写入控制寄存器二、8155可编程I/O接口扩展设计1、I/O接口线地址数据线控制线2、8155功能及操作(1)8155具有3种功能:扩展RAM、I/O接口使用、定时器使用(2)状态寄存器格式XTIMINTEBBBFINTRBINTEAABFINTRAA口中断请求标志A口缓冲器满/空标志允许A口中断标志B口中断请求标志B口缓冲器满/空标志D7D6D5D4D3D2D1D0允许B口中断标志定时器中断标志,计数满该位置“1”中断请求,复位后为“0”空可编程定时/计数器两个8位寄存器组成,低8位和高6位存放计数初值,最高2位控制定时器的工作方式(3)定时器使用M2M1T13T12T11T10T9T8D7D6D5D4D3D2D1D0M2M1T13T12T11T10T9T8D7D6D5D4D3D2D1D0定时方式计数初值高6位计数初值低8位3、8051单片机与8155接口电路举例请写出RAM地址和I/O口地址地址空间•RAM字节地址:FC00H-FCFFH•I/O口地址:–命令/状态口:FD00H–PA口:FD01H–PB口:FD02H–PC口:FD03H–定时器低8位:FD04H–定时器高8位:FD05H8155是单片机应用系统最为常用的外围接口芯片之一•8155的RAM可以做为数据缓冲器•8155的I/O口可以外接打印机,BCD码拨盘开关、A/D,D/A转换器以及做为控制信号的输入输出口•8155的定时器做为分频器或定时器7.5MCS-51对LED/LCD/键盘的接口LED显示器结构(Light-EmittingDiode)共阳极共阴极外形图7.5.1单片机对LED的接口设计LED数码管的软件译码八段LED数码管段代码编码表(连线不同可有多种表):字形0123456789黑共阳0C00F90A40B09992820F880900FF共阴3F065B4F666D7D077F6F00公共阳极hgfedcbaabcdgefh公共阴极hgfedcbaabcdgefhhgf……ahgf……a高电平点亮低电平点亮接高电平接地7段LED字型码(段码)显示字形habcdefg共阳极段选码共阴极段选码0123456789ABCDEF“灭”1100000011111001101001001011000010011010100100101000001011111000100000001001000010001000100000111100011010100001100001101000111011111111C0HF9HA4HB0H99H92H82HF8H80H90H88H83HC6HA1H86H8EHFFH3FH06H5BH4FH06H6DH7DH07H7FH6FH77H7CH39H5EH79H71H00HLED显示器的扩展(显示方式)LED数码管的显示方式:静态与动态动态显示特点:有闪烁,用元器件少,占I/O线少,必须扫描,花费CPU时间,编程复杂。(有多个LED时尤为突出)静态显示特点:无闪烁,用元器件多,占I/O线多,无须扫描,节省CPU时间,编程简单。静态显示:各数码管在显示过程中持续得到送显信号,与各数码管接口的I/O口线是专用的。动态显示:各数码管在显示过程中轮流得到送显信号,与各数码管接口的I/O口线是共用的。多位静态显示方式及其接口电路多位静态显示电路LED数码管动态显示请在实验过程中思考如下问题•段码的查表程序如何实现?•什么时候需要延时?•什么时候需要消隐?练习题•系统有6个LED数码管,待显数据(00H—09H)已放在35H—30H单元中(分别对应十万位→个位),请编写显示程序

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

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

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

×
保存成功