第6章 开关量输入输出控制接口20100530_第1页
第6章 开关量输入输出控制接口20100530_第2页
第6章 开关量输入输出控制接口20100530_第3页
第6章 开关量输入输出控制接口20100530_第4页
第6章 开关量输入输出控制接口20100530_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章,第六章数字输入输出接口,西安交通大学计算机系GUI小林2020年6月7日,第二章,目录,6.1并行接口概念6.2并行接口控制芯片8255A6.3数字并行接口应用程序6.4数字串行接口和芯片,3,概述,数字输入和数字输出的很多部分。数字量是计算机可以直接识别和处理的信号。输入和输出系统的关键数值量包括开关输入和输出。因此数值的量也称为开闭量。本章主要介绍数字并行I/o接口、数字卷串行I/o接口和用于光隔离的I/o接口。4,6.1并行接口概念,并行接口通信是将一个字符同时传输到多个线。并行通信用于波特率要求高和传输距离短的情况。图6-1显示了数据总线的并行遍历示例。5,6.2并行接口控制芯片8255A,8255A是英特尔公司制造的可编程并行接口芯片,有多种工作方式可供选择,通常没有外围电路,使用方便,范围广。6.2.18255A的编程结构6.2.2825a的针脚功能6.2.3825a的控制词6.2.4825a的工作原理、6.2.18255A的编程结构、8255A的逻辑结构主要是三个并行输入/输出端口a、b和c、组a和b的控制电路,如图6-2所示、7、8、(1)PA、PB和PC端口的作用和功能8255A具有三个I/O端口(PA、PB和PC),所有三个端口均为8位,可通过编程用作输入、输出或输入/输出端口。PA端口是具有数据I/o锁定功能的独立8位I/o端口。Pb也是具有数据输出锁定功能的单独8位I/O端口。PC端口可以视为单独的8位I/O端口。可以看作两个单独的4位I/O视口,也可以看作独立的8位I/O视口。具有数据输出锁定功能。端口PA和PB通常独立使用,端口PC通过端口PA和PB的操作提供联系信号,包括选定的通信号码和响应信号。端口PC在独立工作时可以以8位并行输入、输出或位为单位工作,从而提供更大的灵活性。9,(2)当组a和组b的控制电路与端口PA和PB一起工作时,端口PC分为两部分,高4位(PC7到PC4)与端口PA一起构成组a,低4位(PC3到PC0)与端口PB一起构成组b组a和组b的控制电路接收由分别控制组a和组b工作方式的读写控制逻辑获取的控制字符,从而组a和组b可以不同的方式工作。10,(3)数据缓冲区的双向三状态数据缓冲区是8255A和数据总线的接口,微处理器可以在三个I/O端口上写入和读取数据,或者写入控制字符以选择8255A的工作方式。(4)读写控制逻辑读写控制逻辑电路管理8255A的数据传输过程,实现8255A内部和外部的数据、控制词传输。这将根据地址、控制信号(复位信号、读写信号和扇区选择信号等)的组合,将微处理器发送的控制单词转发给组a或组b的控制电路,或者选择在PA、PB和PC端口上输入或输出数据。11,6.2.28255A针脚功能,1。面向CPU的针脚信号和功能d0-D7:连接8位、双向、系统数据总线的三状态数据线;重置:重置信号、高级有效、输入、清除8255A的内部寄存器并同时输入a端口、b端口和c端口:A1、A0:选择内部输入地址,输入。这两个针脚的信号组合表明8255A内部的哪些端口或寄存器工作,12,2。确定用于连接外围设备和外围设备的pa0到pa7: a数据信号集。具有输入、输出锁定功能,可用作单向或双向信号线。Pb0至pb7:用于连接外围设备的组b数据信号;具有输出锁定功能,只能用作单向信号线。Pc0至pc7:c组数据信号,用于连接外围设备或用作控制信号。具有输出锁定功能,只能用作单向信号线。控制词13,6.2.38255A,1 .方法控制词(控制端口),14,2。c端口位置设置/重置控制字(控制端口),注意:可以使用控制端口操作PC端口,在状态模式下使用端口c,在状态字8255A状态寄存器、方法1和方法2中使用端口c。16,6.2.48255A工作方式,1 .方法0称为默认输入/输出方法,适合同时传输(无条件传输)和程序查询方式工作,CPU不适合实时要求高的应用程序环境,因为CPU通过软件检查外围设备状态和与外围设备交换数据。在模式0下,PA、PB和PC相互独立工作,PC以16种组合分为高4位和低4位单独部分。17,初始化实例,例如,使用8255A的c端口的PC4输出必须从高跳到低。写入8255A的方法控制词和初始化程序段。此示例对PA和PB的工作方式不感兴趣,因此不考虑设置8255A的方法控制词。要使PC4输出从高水平跳到低水平,PC4必须首先输出高水平,然后输出低水平。方法1:按照常规方法将PC设置为输出,然后设置/重置PC4,如下所示:MOVDX,控制端口MOVAL,1000XXXB;选择PC high output,0OUTDX,al。MOVDX,PC输入MOVAL,XXX1XXXXB;也就是说,PC4设置为高级输出OUTDX,al。PC4设定0(低阶)MOVAL,XXX0XXXXB;PC4设置为低级输出OUTDX,al。要在PC4 0(低级别)、18、PC4输出中实现高到低跳,PC4必须首先输出高和低级别输出。方法2: MOVDX,控制端口MOVAL,00001001B根据,依次选择“设置/重置PC输入位置:05H,PC4,位置OUTDX,al”。PC4设置1(高标准)移动,00001000B;选择05H,PC4,重置OUTDX,al。PC4低级别(PC4 0)可以在PC端口上使用两种方法之一,两种方法都很简单。对应于PA和PB端口,只有方法1可用,方法2不可用。特别注意:方法2对是针对控制端口而不是PC端口执行的。19,2。方法1方法1是可选的I/O方式,a和b端口仍然作为两个单独的8位I/O数据通道运行,可以单独连接外围设备,并以编程方式将它们分别设置为输入或输出,输入输出具有数据锁定功能。c区可以分别作为a区和b区的响应联络线,需要6个字符(分为3个字符),剩下的2个数字可以以0的方式工作,并且可以编程方式设置为输入或输出。20、(1)方法1的输入配置和响应信号的功能也显示了8255A的a端口和b端口在方法1中输入的配置图。c端口的PC3-PC5用作a端口的响应联络线,PC0-PC2用作b端口的响应联络线,其馀的PC6-PC7还可以用作模式0。21,方法1输入配置的响应联系人,22,23,方法1的输出配置和响应信号,24,25,3。方法2,方法2是双向选通I/O方式,只有a口才这种方式。此时,c球有5条线用作a球的响应联络信号,其他3条线可用作模式0或b端口模式1的响应联络线。方法2是方法1的输入和输出方法的组合,并且每个响应信号的功能也是相同的。c通道上的其馀PC0至PC2恰好作为b端口模式1的响应线,如果没有b端口或在模式0下工作,则3条线也可在模式0下工作。方法26,方法2为双向门控I/O方法,中断请求输出缓冲全部输出响应(外围设备读取数据)输入门控(外围设备准备数据)输入缓冲池(接收数据8255)为常规输入输出(方法0),27,6.3并行接口应用程序,6 . 3 . 31、单个LED和8255A接口2、多个LED和8255A接口、29,6.3.1 7段数码管接口、数字显示管(LED)是简单的显示输出设备,通常用作显示数字或小数字符的仪器、仪表显示。指示灯种类多,尺寸多,主要有7段和16段管。图6.13显示了7段数码管的内部结构。30,显示其他数字和字母时,7段数码管必须揭示不同的二极管位置。例如,如果显示数字“3”,则必须揭示a、b、c和g四段发光二极管。表6-2示出图6.13所示结构的7段数字管实现数字09,实施字母AF时发光的二极管段。31,32,1,单7段数码管和8255A的接口,8255A和单数码管的接口电路如图6.14所示。数字管(共9个外部端号,a、b、c、d、e、f、g、DP、公用端号等)使用总阳极结构。除Vcc外,每个接脚有一个460ohm的电阻器,然后连接至8255A上PB连接埠的PB0至PB7。根据标题,当从PB0输出低电平时,指示灯的a段二极管发光,高电平输出时,指示灯的a段二极管关闭。其他段落发光的方法依次类推。34,首先,在分析图中,当LED实现其他数字和字符时,通过发光二极管确定Pb输出的值时,控制其他“数字”或“字符”的显示。例如,要显示数字“2”,必须显示a、b、d、e、g的五段发光二极管,并且根据a、b、d、e、g和PB端口的连接关系,PB端口值为PB0=0(a段),PB1=0表6-3提供了所有十六进制字符的LED段代码。35,36,以上示例显示低效率驱动器显示,如果需要先显示数字“3”,则显示数字“6”,并创建程序段。在显示数字“3”和数字“6”时,分析LED段代码(0B0H和82H),然后编写程序段,如下所示:MOVDX,8255控制端口MOVAL,10000000B;80H,8255A初始化b端口模式0,输出OUTDX,ALMOVDX,8255PB端口MOVAL,0B0H;“3”段代码OUTDX、al;“3”moval标记,82H;“6”段代码OUTDX、al;显示“6”、37、2、8255A和多个指示灯的界面。图6-15是用于驱动8255A的8个指示灯的接口电路。7段数码管使用全音LED,每个LED包含8个端号,每个端号由a、b、c、d、e、f、g、DP和公共端号组成。向除公用端号外的每个端号添加一个460欧姆电阻(图中未显示),然后将其连接到8255A上PA端口的PA0到PA7。每个LED的公共针脚都通过逆变器连接到PC端口上的PC0到PC7。38,39,如果有多个数码管,通常可以将PC0输出设置为较高的级别,将PC1到PC7输出设置为较低的级别以输出8位数据(称为段代码或字形代码),而不是段代码同时达到8个段的行选择,但仅显示U0,以便在U0中显示第一个数字。如果此状态保持为2m,则PC1输出为高电平,而其他7位输出可以在低电平数字管U1上显示第二个数字。这样,可以让8个数字管同时显示8个数字。上述动态扫描过程使用视觉持久性现象。要提高显示性能,必须正确选择每个数码管的扫描时间,如果时间太长,可能会出现闪烁现象。40,解决过程-步骤1:设置段代码表,本示例使用总音LED,由于LED插针和PA端口的连接顺序不同(插针a、b、c、d、e、f、g、DP分别对应于PA端口的PA7至0,因此生成的段代码步骤41,2:您可以设置显示缓冲区,并将8个LED显示的数字放在显示缓冲区DispBuff中。例如,如果八个指示灯显示“20070501”,则可以将DispBuff的值设置为2,0,0,7,0,5,0,1。修改显示缓冲区,使8个LED显示不同的数字,从而简化软件设计。Disp buff: 02h、00h、00h、07h、00h、05h、00h、00h、01h放置8个数字作为定位下表的偏移。步骤42,3:设计8个指示灯交替出现的完整程序,/8255AMOVAL,10000000B初始化;PA、PC均使用方法0、输出MOVDX、PORTCTL;8255A控制端口OUTDX,ALBEGIN:MOVCX,8;8回圈MOVDI、OffsetDisBuffMOVBX、OffsetSegCodeTabMOVSI、0MOVAH、00000001B;将PC0设置为1,第一个指示灯,43,MOVAH,00000001B;将PC0设定为1,并将第一个LEDSCAN:MOVAL,ah;PC端口相应位置MOVDX、PORTC;MOVDX、PORTCTL;c端口控制命令OUTDX,al;PC端口相应位置ADDDI,si;查找显示缓冲区movdx,di;可显示的数字字符MOVALbx1dx;显示字符的段值(字形)INCSI移除。要显示字符的下一个偏移MOVDX、PORTA;PA端口输出字形代码OUTDX,ALCALLDELAY2MSSHLAH,1;准备显示下一个数字管。ADDAH,2;用于c端口位控制下一个数字管显示的LOOPSCANJMPBEGIN准备;准备。重复显示、44、6.3.2未编码键盘接口、键盘可分为根据实现方法编码的键盘和编码的键盘两种。编码键盘是可以直接提供键编码(如ASCII代码)的键盘。要提供键编码,必须有键盘扫描电路,以检测编码键盘内部是否有键击,并根据按了哪个键输出相应的代码。常用PC键盘等键盘专用于单片机,用于键盘检测和处理。未编码的键盘只有没有扫描电路的键,这些键由多个开关组合而成。45,16个键的键盘,对于大多数键盘,键按行和列排列的矩阵。以下举例说明了由机械开关构成的16个键的键盘(如图6-16所示),也适用于使用其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论