




已阅读5页,还剩145页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,第七章MCS-51单片机扩展技术,MCS-51单片机I/O口结构及应用,独立式键盘和矩阵式键盘接口技术,LED数码管显示器接口技术,模数换器(ADC)和数模转换器(DAC)接口技术。,7.1I/O口扩展技术,7.2键盘和显示器接口技术,7.3A/D、D/A转换接口技术,7.1I/O口扩展技术,7.1.1MCS-51单片机I/O口结构,7.1.2MCS-51单片机I/O口扩展,7.1.1MCS-51单片机I/O口结构,P0口结构P1口结构P2口结构P3口结构MCS-51单片机I/O口的应用,一、P0口结构,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址/数据控制线,+5V,P0.0,转换开关,锁存器,作用:1、外扩芯片时,P0口不再做I/O口使用,而是先传送地址,后传送数据。2、没有外扩芯片时,P0口可以直接作为输入口或输出口使用。,P0口直接做输出口时,输出信息的过程(将0送到P0.0的过程),D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址/数据控制线,+5V,P0.0,转换开关,锁存器,0,0,0,1,0,注意:P0口做输出口时,内部数据经过锁存器送到P0.0-P0.7上。由于上管始终截止,而当下管也截止时,P00P07被架空,没有标准的高电平,所以P0口作输出口使用时,必须外接上拉电阻。,P0口直接做输入口时,输入信息的过程(将P0.0处的1送入DB0.0的过程),D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址/数据控制线,+5V,P0.0,转换开关,锁存器,0,0,1,注意:1、P0口作输入口时,P00P07上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置1,否则总是读到0。2、CPU对P0口的读操作有2种:读引脚和读-改-写锁存器。,1,当CPU执行MOVA,P0或JB/JNBP0.x,标号时,产生读引脚控制信号,此时读的是引脚的状态。,当CPU执行读改写指令(以端口为目的操作数的ANL、ORL、XRL、DEC、INCSETB、CLR等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P1.0,锁存器,作用:P1口只能可以直接作为输入口或输出口使用。,二、P1口结构,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P1.0,锁存器,P1口直接做输出口时,输出信息的过程(将1送到P1.0的过程),1,0,0,1,注意:P1口做输出口时,内部数据经过锁存器送到P1.0-P1.7上。由于内部有上拉电阻,所以P1口作输出口使用时,不用外接上拉电阻。,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P1.0,锁存器,P1口直接做输入口时,输入信息的过程(将P1.0处的0送入DB0.0的过程),0,0,注意:1、P1口作输入口时,P10P17上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置1,否则总是读到0。2、CPU对P1口的读操作有2种:读引脚和读-改-写锁存器。,当CPU执行MOVA,P1或JB/JNBP1.x,标号时,产生读引脚控制信号,此时读的是引脚的状态。,当CPU执行读改写指令(以端口为目的操作数的ANL、ORL、XRL、DEC、INC、SETB、CLR等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址控制线,+5V,P2.0,转换开关,锁存器,作用:1、外扩芯片时,P2口不再做I/O口使用,而是传送高8位地址。2、没有外扩芯片时,P2口可以直接作为输入口或输出口使用。,三、P2口结构,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址控制线,+5V,P2.0,转换开关,锁存器,P2口直接做输出口时,输出信息的过程(将0送到P2.0的过程),0,0,0,1,0,注意:P2口做输出口时,内部数据经过锁存器送到P2.0-P2.7上。由于内部有上拉电阻,所以P2口作输出口使用时,不用外接上拉电阻。,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址控制线,+5V,P2.0,转换开关,锁存器,P2口直接做输入口时,输入信息的过程(将P2.0处的0送入DB0.0的过程),0,0,0,注意:1、P2口作输入口时,P20P27上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置1,否则总是读到0。2、CPU对P2口的读操作有2种:读引脚和读-改-写锁存器。,当CPU执行MOVA,P2或JB/JNBP2.x,标号时,产生读引脚控制信号,此时读的是引脚的状态。,当CPU执行读改写指令(以端口为目的操作数的ANL、ORL、XRL、DEC、INC、SETB、CLR等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P3.0,锁存器,第二功能输出,第二功能输入,作用:1、P3口可以直接作为输入口或输出口使用。2、P3口的引脚又具有第二功能。,1当使用单片机内部串行口时,若CPU执行MOVA,SBUF指令,则P3.0(RXD)作为接收信号线,接收由外界串行输入的数据;若CPU执行MOVSBUF,A指令,则P3.1(TXD)作为发送信号线,串行发送数据至外界。2当单片机使用外中断时,P3.2(INT0)作为外中断0的中断请求输入线,3.3(INT1)作为外中断1的中断请求输入线。3当单片机使用定时器,且定时器工作于计数方式时,P3.4(T0)作为定时器0的计数脉冲输入线,P3.5(T1)作为定时器1的计数脉冲输入线。4当单片机外扩RAM或I/O接口芯片时,P3.6(WR)作为RAM或I/O接口芯片的写控制信号,P3.7(RD)作为RAM或I/O接口芯片的读控制信号。当P3口的一些引脚没有作为第二功能使用时,这些引脚就被释放,直接作为I/O口线使用。,四、P3口结构,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P3.0,锁存器,第二功能输出,第二功能输入,P3口直接做输出口时,输出信息的过程(将1送到P3.0的过程),1,0,0,1,注意:P3口做输出口时,内部数据经过锁存器送到P3.0-P3.7上。由于内部有上拉电阻,所以P2口作输出口使用时,不用外接上拉电阻。,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P3.0,锁存器,第二功能输出,第二功能输入,0,P3口直接做输入口时,输入信息的过程(将P3.0处的0送入DB0.0的过程),0,注意:1、P3口作输入口时,P3.0P3.7上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置1,否则总是读到0。2、CPU对P3口的读操作有2种:读引脚和读-改-写锁存器。,当CPU执行MOVA,P3或JB/JNBP3.x,标号时,产生读引脚控制信号,此时读的是引脚的状态。,当CPU执行读改写指令(以端口为目的操作数的ANL、ORL、XRL、DEC、INC、SETB、CLR等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。,直接做输出口直接做输入口,在没有外扩任何芯片时,MCS-51单片机内部并行口可以作为输出口,直接与输出外设连接。常用的输出外设是发光二极管。MCS-51单片机内部并行口也可以作为输入口,直接与输入外设连接,常用的输入外设是开关。,例1,例2,例1,例2,五、MCS-51单片机I/O口的应用,直接做输出口,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,89C51,+5V,例1:用89C51的P1口驱动8个发光二极管,使8个发光二极管由左向右轮流点亮。试画出连接图,编制驱动程序。,解:,1、画电路图,2、编程,MOVA,#0FEHUP:MOVP1,ALCALLDLRLASJMPUPDL:MOVR7,#2DL1:MOVR6,#250DJNZR6,$DJNZR7,DL1RET,如果用P0口驱动发光二极管,则如何修改?如果使8个发光二极管由右向左轮流点亮,则如何修改?如果使8个发光二极管闪亮,则如何修改?如果使8个发光二极管由内向外轮流点亮,则如何修改?如果使8个发光二极管由右向左依次点亮,则如何修改?如果使延时时间延长或缩短,会出现什么现象?预习实验并思考:熟悉实验板上与发光二极管有关的电路。编制驱动程序,实现如下操作:由左向右轮流点亮由外向里轮流点亮由右向左依次点亮闪亮,思考题,1、直接做输出口,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,89C51,+5V,例2:用8051的P1口驱动1个数码管,制成1位秒表.试画出连接图,编制驱动程序。,解:,1、画电路图,2、编程,思考,a,b,c,d,e,f,g,Dp,a,b,c,d,e,f,g,Dp,UP0:MOVR7,#10MOVR2,#00HMOVDPTR,#TABUP:MOVA,R2MOVCA,A+DPTRMOVP1,ALCALLD1SINCR2DJNZR7,UPSJMPUP0TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,如果用P2口驱动发光二极管,公共端接P3.0,则如何修改?如果制成0.1S的表,则如何修改?,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,89C51,P3.0,a,b,c,d,e,f,g,Dp,CLRP3.0UP0:MOVR7,#10MOVR2,#00HMOVDPTR,#TABUP:MOVA,R2MOVCA,A+DPTRMOVP2,ALCALLD1SINCR2DJNZR7,UPSJMPUP0TAB:DB0C0H,0F9H,0A4H,0B0HDB99H,92H,82H,0F8H,80H,98H,思考题,2、直接做输入口,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,89C51,+5V,例1:用89C51的P1口传送8个开关状态,用P2口显示8个开关状态,若开关合则对应灯亮,试画出连接图,编制驱动程序。,解:,(1)画电路图,MOVP1,#0FFHUP:MOVA,P1MOVP2,ASJMPUP,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,+5V,开关处的电阻称为上拉电阻,它的作用是当开关断开时,使P3口的电压上拉为准确的高电平,避免悬空状态。,(2)编程,强调:8051内部并行口直接作为输入口时,必须先将口锁存器置1。,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,89C51,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,+5V,如果将发光二极管反接,则如何修改程序?,MOVP1,#0FFHUP:MOVA,P1CPLAMOVP2,ASJMPUP,思考题,2、直接做输入口,89C51,+5V,例2:用8051的P1口驱动8个发光二极管,P3.4接一个开关K1,当开关按下时,8个发光二极管由左向右轮流点亮;开关断开时,8个发光二极管不亮。试画出连接图,编制驱动程序。,解:,(1)画电路图,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,(2)编程,+5V,P3.4,MOVP3,#0FFHUP:MOVA,#0FEHUP1:JBP3.4,UP1MOVP1,ALCALLDLRLASJMPUP1DL:MOVR7,#2DL1:MOVR6,#250DJNZR6,$DJNZR7,DL1RET,在上述程序中,开关必须一直按着,灯才能轮流点亮,当开关断开时,停留在某个灯点亮状态。如果当开关断开时,灯全灭,如何修改程序?如果开关作为启动开关,开关按下并抬起时,灯才开始轮流点亮,则如何编程?预习实验熟悉实验板上与发光二极管和开关有关的电路。编制驱动程序,实现如下操作:(1)读入4个按键并使对应的LED点亮。(2)K1按下LED每2个为一组由右向左依次点亮。(3)K2按下并抬起时,LED由内向外轮流点亮。,P3.2,P3.3,P3.4,P3.5,+5V,思考题,7.1.2MCS-51单片机I/O口扩展,MCS-51单片机内部有4个并行口,当内部并行口不够用时可以外扩并行口芯片。可外扩的并行口芯片很多,分成2类:不可编程的并行口芯片(74LS3734和74LS245)和可编程的并行口芯片(8255)。一、不可编程并行口芯片的扩展二、可编程并行口芯片的扩展,1、74LS373的扩展2、74LS245的扩展,一、不可编程并行口芯片的扩展,(1)74LS373的结构,1、74LS373的扩展,(2)74LS373引脚分布图,(3)74LS373与89C51的连接图,思考题,2片74LS373与89C51的连接图,ALE,RD,WR,PSEN,P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,89C51,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,A0,A1,A2,A3,A4,A5,A6,A7,OE,LE,D0,D1,D2,D3,D4,D5,D6,D7,74LS373,DB,AB,CB,OE,D0,D7,74LS373,AB15,AB0,AB15,LE,+,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,OE,D0,D7,74LS373,LE,+,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,计算74LS373的地址(8051送出何种地址码时可以将数送到Q端)P27P26P25P24P23P22P21P20P07P06P05P04P03P02P01P00AB15AB14AB13AB12AB11AB10AB9AB8AB7AB6AB5AB4AB3AB2AB1AB001*10*,AB14,2、74LS245的扩展,(1)74LS245的结构(2)74LS245引脚分布图,ALE,RD,WR,PSEN,P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,89C51,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,A0,A1,A2,A3,A4,A5,A6,A7,OE,LE,D0,D1,D2,D3,D4,D5,D6,D7,74LS373,DB,AB,CB,DIR,B0,B7,74LS245,AB15,AB0,AB15,地址码的计算,E,+,A7,A6,A5,A4,A3,A2,A1,A0,计算74LS245的地址(8051送出何种地址码时可以将数由A端传到B端)P27P26P25P24P23P22P21P20P07P06P05P04P03P02P01P00AB15AB14AB13AB12AB11AB10AB9AB8AB7AB6AB5AB4AB3AB2AB1AB00*,(3)74LS245与89C51的连接图,思考题,2片74LS245与89C51的连接图,ALE,RD,WR,PSEN,P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,89C51,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,A0,A1,A2,A3,A4,A5,A6,A7,OE,LE,D0,D1,D2,D3,D4,D5,D6,D7,74LS373,DB,AB,CB,DIR,B0,B7,74LS245,AB15,AB0,AB15,E,+,A7,A6,A5,A4,A3,A2,A1,A0,DIR,B0,B7,74LS245,E,+,A7,A6,A5,A4,A3,A2,A1,A0,计算74LS245的地址P27P26P25P24P23P22P21P20P07P06P05P04P03P02P01P00AB15AB14AB13AB12AB11AB10AB9AB8AB7AB6AB5AB4AB3AB2AB1AB001*10*,AB14,1、8255的结构2、8255的引脚3、8255的工作方式4、8255的控制字5、8255的应用,二、可编程并行口芯片的扩展(8255),1、8255的结构,1、8255的结构,8位的双向的三态缓冲器。作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。,1、8255的结构,读/写控制逻辑电路负责管理8255A的数据传输过程。它接收片选信号及系统读信号、写信号、复位信号RESET,还有来自系统地址总线的口地址选择信号A0和A1。,1、8255的结构,这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。,A组控制电路用来控制A口及C口的高4位。B组控制电路用来控制B口及C口的低4位。,1、8255的结构,A口是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存功能。,C口可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。也是仅对输出数据进行锁存。,B口也是一个独立的8位I/O口,仅对输出数据的锁存功能。,2、8255的引脚,数据总线缓冲器,读写控制逻辑,A组控制,B组控制,口A,口C高4,口C低4,口B,D0D7,RD,WR,CS,A0,A1,RESET,PA0PA7,PB0PB7,PC4PC7,PC0PC3,2、8255的引脚,数据总线缓冲器,读写控制逻辑,A组控制,B组控制,口A,口C高4,口C低4,口B,D0D7,RD,WR,CS,A0,A1,RESET,PA0PA7,PB0PB7,PC4PC7,PC0PC3,D0-D7:8位,双向,三态数据线,用来与系统数据总线相连。,RD:读信号,输入,控制8255将数据或控制信息送到CPU。,WR:写信号,输入,控制CPU将数据或状态信息送到8255A。,CS:片选,输入,用来决定芯片是否被选中。,A1,A0:内部口地址的选择,输入。这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作。,RESET:复位信号,高电平有效,输入,用来清除8255A的内部寄存器,并置A口,B口,C口均为输入方式。注意:8255工作之前,硬件上必须先复位,使8255内部的各个部件处于待命状态。,8255A的操作功能表,2、8255的引脚,数据总线缓冲器,读写控制逻辑,A组控制,B组控制,口A,口C高4,口C低4,口B,D0D7,RD,WR,CS,A0,A1,RESET,PA0PA7,PB0PB7,PC4PC7,PC0PC3,PA0PA7:A组数据信号,用来连接外设。,PB0PB7:B组数据信号,用来连接外设。,PC0PC7:C组数据信号,用来连接外设或者作为控制信号。,ALE,RD,WR,PSEN,P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,89C51,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,A0,A1,A2,A3,A4,A5,A6,A7,OE,LE,D0,D1,D2,D3,D4,D5,D6,D7,74LS373,DB,AB,CB,AB0,AB15,AB12,AB1,AB0,D0D7,RD,WR,CS,A0,A1,RESET,AB15,8255,PA0PA7,PC0PC7,PB0PB7,各端口地址码的计算,89C51送出何种地址码时选中端口P27P26P25P24P23P22P21P20P07P06P05P04P03P02P01P00AB15AB14AB13AB12AB11AB10AB9AB8AB7AB6AB5AB4AB3AB2AB1AB0口A0*00口B0*01口C0*10控制0*11,8255与89C51的连接图,WR、RD、CS、A1、A0这几个信号的组合决定了8255A的所有具体操作:,8255的逻辑功能表,3、8255的工作方式,8255A有三种工作方式:方式0:简单输入/输出-查询方式;A,B,C三个端口均可。最为常用。方式1:选通输入/输出-中断方式;A,B,两个端口均可。方式2:双向输入/输出-中断方式。只有A端口才有。注意:工作方式的选择可通过向控制端口写入方式控制字来实现。,方式0为一种简单的输入/输出方式,没有规定固定的应答联络信号,可用A,B,C三个口的任意一位充当查询信号,其余I/O口仍可作为独立的端口和外设相连。即:PA0PA7,PB0PB7,PC0PC7均可作为I/O线使用,没有限制一定传送什么信号;口A、口B、口C高4位和口C低4位可以分别设定为输入口或输出口。方式0的应用场合有两种:一种是无条件传送;一种是查询传送。,D0D7,RD,WR,CS,A0,A1,RESET,8255,PA0PA7,PC0PC7,PB0PB7,+5V,STB,BUSY,微型打印机,D0D7,(1)方式0,(2)方式1,方式1是一种选通I/O方式,A口和B口仍作为两个独立的8位I/O数据通道,可单独连接外设,通过编程分别设置它们为输入或输出。而C口则要有6位(分成两个3位)分别作为A口和B口的应答联络线,其余2位仍可工作在方式0,可通过编程设置为输入或输出。即:口A和口B作为数据口使用;口分成C高4位和口C低4位,分别配合口A和口B工作,此时口C高4位和口C低4位分别作为口A和口B的状态口,口C的某些引脚规定为传送状态信号,不能作I/O口线使用,传送任意信号。方式1主要用于中断应答式数据传送,也可用于连续查询式数据传送。输入和输出时8255与外围设备的连接方式不同,数据传送过程也不同。,D0D7,RD,WR,CS,A0,A1,RESET,8255,PA0PA7,PC0PC1PC2PC3PC4PC5PC6PC7,PB0PB7,+5V,STB,BUSY,微型打印机,D0D7,A、B通道工作于方式1时引脚规定,当A、B通道作为输入通道时,PC0PC7的功能分配如图a所示。STB为外设向8255提供的输入选通信号,当外设数据准备好,并稳定在数据线后,向输入低电平信号,8255必须在收到的下降沿后,才把数据线上外围设备的信息输入端口锁存器。IBF为端口锁存器满/空标志线。IBF有效,表明输入缓冲器已满。IBF是8255向外设输出的信号,高电平表示端口缓冲器已满,等待CPU读取,只有在CPU读取之后,上升沿使IBF为低电平,表示数据已读完,才允许外设继续送数。INTR为中断请求信号。高电平有效,由8255发出。在中断允许的条件下,当=1和IBF=1时,INTR被置1,发出中断请求。,当A、B通道作为输出通道时,PC0PC7的分配如图b所示。OBF为输出缓冲器已满标志,也是8255向外设输出的信号,低电平有效,表示CPU已将数据装入8255端口的输出缓冲器中,通知外设可以取数。CPU向8255写入数据后,在WR的上升沿时使OBF变为低电平。ACK为外设向8255提供的输入应答信号,外设把端口数据取走之后,为低电平,表示外设已取走数据,CPU可以再送新的数据。,(3)方式2,方式2为双向选通I/O方式,只有A口才有此方式。这时,C口有5根线用作A口的应答联络信号,其余3根线可用作方式0,也可用作B口方式1的应答联络线。方式2就是方式1的输入与输出方式的组合,各应答信号的功能也相同。而C口余下的PC0PC2正好可以充当B口方式1的应答线,若B口不用或工作于方式0,则这三条线也可工作于方式0。按方式2工作时,A口既可工作于查询方式,又可工作于中断方式。A通道工作于方式2时PC0PC7的功能,A通道工作于方式2时PC0PC7的功能,当A通道工作于方式2时,PC0PC7的功能分配如图所示。图中各功能的含义与工作方式1时的含义一样。由于只有A通道才能工作于方式2,所以所有的应答联络线都是与A通道配合的。8255的C口专用功能见下表:,8255的控制字存于控制字寄存器中。8255有2个控制字:方式控制字和口C按位置/复位控制。(1)方式控制字方式控制字决定了8255的工作方式。8255工作之前软件上必须初始化,即将方式控制字写入控制字寄存器中,以指定端口的工作方式。(2)C口的按位置/复位控制字只有C口才有,它是通过向控制口写入按指定位置位/复位的控制字来实现的。C口的这个功能可用于设置方式1的中断允许,可以设置外设的启/停等。(3)8255的初始化8255是可编程的接口芯片,在使用8255之前,硬件上必须复位,即给RESET端送一个高电平;软件上必须初始化,即向8255写入方式控制字,以确定8255的工作方式。,4、8255的控制字,(1)方式控制字,标志位,D7,A组控制,D6,A口,D5,C口高4,D4,B组控制,D3,A组控制,D2,B口,D1,C口低4,D0,D7:标志位。D7=1D6、D5:A组工作方式选择。00口A和口C高4工作于方式001口A和口C高4工作于方式11口A工作于方式2D4:D4=0口A为输出口;D4=1口A为输入口。D3:D3=0口C高4为输出口;D3=1口C高4为输入口。D2:B组工作方式选择。0口B和口C低4工作于方式01口B和口C低4工作于方式1D1:D1=0口B为输出口;D4=1口B为输入口。D0:D0=0口C低4为输出口;D3=1口C低4为输入口。,方式控制字决定了8255的工作方式。8255工作之前软件上必须初始化,即将方式控制字写入控制字寄存器中,以指定端口的工作方式。8255A的控制字格式与各位的功能如图所示。,例某系统要求使用8255A的A口方式0输入,B口方式0输出,C口高4位方式0输出,C口低4位方式0输。解:控制字为:10010001即91H初始化程序为:MOVA,#91HMOVDPTR,#0023HMOVXDPTR,A,(2)C口按位置/复位控制字,口C按位置/复位控制字只有C口才有,它是通过向控制口写入按指定位置位/复位的控制字来实现的。C口的这个功能可用于设置方式1的中断允许,可以设置外设的启/停等。8255A的口C按位置/复位控制字格式与各位的功能如图所示。,标志位,D7,*,D6,*,D5,C口,D4,引脚,D3,*,D2,选择,D1,置1/清0,D0,D7:标志位。D7=0D6、D5、D4:未使用。D3、D2、D1:C口引脚选择。000选中PC0001选中PC1010选中PC2011选中PC3100选中PC4101选中PC5110选中PC6111选中PC7D0:D0=0选中的C口引脚输出0,D0=1选中的C口引脚输出1。,例:PC6置1,其余位不变解:控制字为:00001101即0DH写入口C按位置/复位程序为:MOVA,#0DHMOVDPTR,#0023HMOVXDPTR,A,8255是可编程的接口芯片,在使用8255之前,硬件上必须复位,即给RESET端送一个高电平;软件上必须初始化,即向8255写入方式控制字,以确定8255的工作方式。例如:用8255作接口芯片,控制24个发光二极管。在编写驱动程序时,程序的前面一段8255的初始化程序。根据题意初始化程序如下:MOVDPTR,#2003HMOVA,#80HMOVXDPTR,A例设8255的地址为80FCH-80FFH,如果8255的PA0-PA7接1个数码管,PC3接一个蜂鸣器,PC4接一个开关,试对8255初始化。例某系统要求使用8255A的A口方式0输入,B口方式0输出,C口高4位方式0输出,C口低4位方式0输入。练习:设8255的口地址为4000H-4003H,口A、口B、口C均为输入方式,方式0,试对8255初始化。,MOVDPTR,#80FFHMOVA,#88HMOVXDPTR,A,MOVDPTR,#80FFHMOVA,#88HMOVXDPTR,A,MOVDPTR,#80FFHMOVA,#88HMOVXDPTR,A,(3)8255初始化,当单片机内部并行口不够用时,常常外扩8255芯片。下面举例说明8255与外设的连接以及驱动程序的编制。,流水灯,计数器,5、8255的应用,例用8255作接口实现如下功能:24个发光二极管轮流点亮。,ALE,RD,WR,PSEN,P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,89C51,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,A0,A1,A2,A3,A4,A5,A6,A7,OE,LE,D0,D1,D2,D3,D4,D5,D6,D7,74LS373,AB,CB,AB0,AB15,AB12,AB1,AB0,D0D7,RD,WR,CS,A0,A1,RESET,AB15,8255,PA0PA1PA2PA3PA4PA5PA6PA7,PB0PB1PB2PB3PB4PB5PB6PB7,PC0PC1PC2PC3PC4PC5PC6PC7,程序,流水灯,MOVDPTR,#0003HMOVA,#80HMOVXDPTR,AUP2:MOVR6,#3UP1:MOVR7,#8MOVA,#01HMOVDPTR,#0000HUP0:MOVXDPTR,ALCALLD2SRLADJNZR7,UP0MOVA,#00HMOVXDPTR,AINCDPTRDJNZR6,UP1SJMPUP2,口地址的计算:口A:0000H口B:0001H口C:0002H控制字寄存器:0003H方式控制字:10000000B,流水灯程序,例用8255作接口实现如下功能:开关K按下并抬起时,2个数码管的显示加1。,ALE,RD,WR,PSEN,P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,89C51,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,A0,A1,A2,A3,A4,A5,A6,A7,OE,LE,D0,D1,D2,D3,D4,D5,D6,D7,74LS373,AB,CB,AB0,AB15,AB12,AB1,AB0,D0D7,RD,WR,CS,A0,A1,RESET,AB15,8255,PA0PA1PA2PA3PA4PA5PA6PA7,PB0PB1PB2PB3PB4PB5PB6PB7,PC0PC1PC2PC3PC4PC5PC6PC7,程序,b,c,d,e,f,g,a,b,c,d,e,f,g,a,+5V,K,计数器,计数器程序,MOVDPTR,#0003HMOVA,#81HMOVXDPTR,AMOVR3,#0MOVR4,#0,口地址的计算:口A:0000H口B:0001H口C:0002H控制字寄存器:0003H方式控制字:10000001B,UP2:MOVDPTR,#0000HMOVA,R3MOVXDPTR,AMOVDPTR,#0001HMOVA,R4MOVXDPTR,AMOVDPTR,#0002HUP0:MOVXA,DPTRJNZUP0UP1:MOVXA,DPTRJZUPINCR3CJNER3,#10,UP2MOVR3,#0INCR4CJNER4,#10,UP2MOVR4,#0SJMPUP2,返回,7.2键盘和显示器接口技术,7.2.1键盘接口技术,7.2.2显示器接口技术,一、键盘类型二、非编码键盘与单片机的接口三、矩阵非编码键盘与单片机的接口,键盘是单片机控制系统最常用、最简单的输入设备。用户可以通过键盘输入数据或命令,实现简单的人机通信。,7.2.1键盘接口技术,一、键盘类型,单片机控制系统键盘有编码键盘和非编码键盘两种。1、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在单片机控制系统中使用不多。2、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,目前单片机控制系统中大多数采用非编码键盘。非编码键盘的键开关可以排列成线性形式或矩阵形式,因此非编码键盘有线性非编码键盘和矩阵非编码键盘两种。,单片机控制系统所用的键盘有编码键盘和非编码键盘两种。1、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在单片机控制系统中使用不多。2、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,目前单片机控制系统中大多数采用非编码键盘。非编码键盘的键开关可以排列成线性形式或矩阵形式,因此非编码键盘有线性非编码键盘和矩阵非编码键盘两种。,一、键盘类型,单片机控制系统所用的键盘有编码键盘和非编码键盘两种。1、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在单片机控制系统中使用不多。2、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,目前单片机控制系统中大多数采用非编码键盘。非编码键盘的键开关可以排列成线性形式或矩阵形式,因此非编码键盘有线性非编码键盘和矩阵非编码键盘两种。,一、键盘类型,二、非编码键盘与单片机的接口,线性非编码键盘的键开关排成一行或一列的形式,它与单片机的接口电路如图所示:,K1,K2,K3,K4,P1.1,P1.0,P1.2,P1.3,89C51,+5V,键处理程序如下:MOVP1,#0FFHUP1:MOVA,P1;读I/O口状态ANLA,#0FH;屏蔽无用位CJNEA,#0FH,NEXT1;有闭合键?SJMPUP1NEXT1:LCALLD10ms;延时10ms去抖动MOVA,P1;再读I/O口状态ANLA,#0FHCJNEA,#0FH,NEXT2;有闭合键?SJMPUP1NEXT2:JBP1.0,NEXT3;K1按下?LCALLK1;K1键处理程序NEXT3:JBP1.1,NEXT4;K2按下?LCALLK2;K2键处理程序NEXT4:JBP1.2,NEXT5;K3按下?LCALLK3;K3键处理程序NEXT5:JBP1.3,UP1;K4按下?LCALLK4;K4键处理程序LJMPUP1,线性非编码键盘的工作原理:当键未被按下时,与此键相连的I/O线获得高电平;当键被按下时,与此键相连的I/O线获得低电平,单片机只要读取I/O口状态,就可以获取按键信息,识别有无键按下和哪个键被按下。,例:某单片机控制系统,P1口接有8发光二极管,P3.0、P3.1、P3.2、P3.3接有4个开关K1、K2、K3、K4,试画出接口电路,并编程使得当K1按下时8个发光二极管全亮;当K2按下时8个发光二极管闪亮;当K3按下时8个发光二极管由左向右点亮;当K4按下时8个发光二极管全灭。,K1,K2,K3,K4,P3.1,P3.0,P3.2,P3.3,89C51,+5V,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,程序,MOVB,#01HMOVP3,#0FFHMOVP1,#00HUP1:MOVA,P3ANLA,#0FHCJNEA,#0FH,NEXT1SJMPUP1NEXT1:LCALLD10msMOVA,P3ANLA,#0FHCJNEA,#0FH,NEXT2SJMPUP1NEXT2:JBP3.0,NEXT3LCALLK1NEXT3:JBP3.1,NEXT4LCALLK2NEXT4:JBP3.2,NEXT5LCALLK3NEXT5:JBP3.3,UP1LCALLK4LJMPUP1,子程序K1:MOVP1,#0FFHRETK2:MOVP1,#0FFHLCALLD2SMOVP1,#00HLCALLD2SRETK3:MOVP1,BLCALLD2SMOVA,BRLAMOVB,ARETK4:MOVP1,#00HRET,三、矩阵非编码键盘与单片机的接口,1、矩阵键盘结构,2、矩阵键盘工作原理,行线P14P17为输出,列线P10P13为输入。CPU先使第一行(P14)为“0”,其余行为“1”。读输入口P10P13的状态,若输入缓冲器的状态全部为“1”,则表示所在行无键按下;若输入缓冲器不全为“1”,说明所在行有键按下,CPU停止当前行线扫描,转入到列线扫描,列线P10P13为“0”状态的列表示对应列有键按下。这样,行线与列数交叉键就是扫描到的按键。,3、键盘扫描方式,程控扫描方式:CPU从执行程序就开始了键盘的扫描,等待来是键盘的命令。定时扫描方式:在程序初始化时,先对定时/计数器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园兴趣班合作协议范本9篇
- 东北话二级考试题及答案
- 难点详解人教版八年级上册物理《声现象》同步测评试题(含答案解析)
- 难点解析-人教版八年级上册物理声现象《声音的特性声的利用》单元测试练习题(含答案解析)
- 2025江西省历年事业编考试真题及答案
- 河南开封三模考试试卷及答案
- 考点攻克苏科版八年级物理下册《从粒子到宇宙》综合练习试卷(含答案详解)
- 扶沟县期中考试卷及答案
- 三级考试机器人理论题及答案
- 2025抗菌药物合理使用培训测试题及答案
- 服务器健康巡检规定
- 2025年银行从业资格考试公共基础真题及答案
- 2025年辅警考试真题及答案
- 2025-2026学年统编版五年级上册语文第二单元过关试卷附答案(三套)
- 2025年上海公务员录用考试《行测》真题及答案解析(记忆版)
- 2025年农村土地租赁协议(合同样本)
- 2025年初中道德与法治八年级上学期期中测试试卷
- 铁路礼仪培训课件
- 海上安全培训课课件
- 神经外科重症管理临床指南
- 铁路客运防寒过冬课件
评论
0/150
提交评论