1、1 1第八章:第八章:I/OI/O接口及输入输出通道应用接口及输入输出通道应用2 2第八章:第八章:I/OI/O接口及输入输出通道应用接口及输入输出通道应用8.0可编程并行接口芯片可编程并行接口芯片8255A8.1 8255与简单开关量输入输出控制与简单开关量输入输出控制8.2 8255与步进电机控制与步进电机控制8.3可编程中断控制器可编程中断控制器8259A应用应用8.4可编程串行接口芯片可编程串行接口芯片8251A 应用应用8.5 8253与电子发声控制与电子发声控制8.6 A/D与与D/A转换器转换器PA1 8255A1 8255A的引脚与结构的引脚与结构n8255A8255A的引脚的
2、引脚u8255A8255A是可编程的并行输入输出是可编程的并行输入输出接口芯片,接口芯片,它具有三个它具有三个8 8位并行端位并行端口口(A(A口、口、B B口和口和C C口口),具有,具有4040个引个引脚,双列直插式封装,由脚,双列直插式封装,由+5V+5V供电供电(V VCCCC)。)。8255APC4PC0PC1PC2PC3PB0PB1PB23PA2PA1PA0RDCSGNDA1A0PC7PC6PC512345678910111213141516171819202827262524232221403938373635343332313029D6D7VCCPB7PB6PB5PB4PB3P
3、A4PA5PA6PA7WRRESETD0D1D2D3D4D58255AA口口C口口C口口B口口PA7 PA08PC7 PC44PC3 PC04PB7 PB08A组组B组组D7 D0WRRDA0A1CSRESET3 38.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A8.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A4 4n8255A8255A的内部结构的内部结构B 组组控制部件控制部件数据总线数据总线缓冲器缓冲器读读/写写控制逻辑控制逻辑A组组端口端口A(8)A组组端口端口C(高高4位位)B组组端口端口C(低低4位位)B组组端口端口B(8)A 组组控
4、制部件控制部件内部内部 DB(8)PA7PA0PC7PC4PC3PC0PB7PB0CSRDA1A0RESETD7D0WRCPU外设8.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A5 58255A8255A的工作方式与控制字的工作方式与控制字n8255A8255A的工作方式的工作方式u8255A8255A在使用前要先写入一个工作方式控制字,以指定在使用前要先写入一个工作方式控制字,以指定A A、B B、C C三个端口各自的工作方式。三个端口各自的工作方式。8255A8255A共有三种工作方式:共有三种工作方式:方式方式00基本输入输出方式,即无须联络就可以直接进基本输入输
5、出方式,即无须联络就可以直接进行行8255A8255A与外设之间的数据输入或输出操作。与外设之间的数据输入或输出操作。方式方式11选通输入输出方式,此时选通输入输出方式,此时8255A8255A的的A A口和口和B B口与口与外设之间进行输入或输出操作时,需要外设之间进行输入或输出操作时,需要C C口的部分口的部分I/OI/O线提线提供联络信号。供联络信号。方式方式22双向输入输出方式,即同一端口的双向输入输出方式,即同一端口的I/OI/O线既可线既可以输入也可以输出,以输入也可以输出,只有只有A A口可工作于方式口可工作于方式2 2。端口端口A A可处于三种工作方式(方式可处于三种工作方式(
6、方式0 0,方式,方式1 1,方式,方式2 2),端口),端口B B可可处于两种工作方式(方式处于两种工作方式(方式0 0,方式,方式1 1 ),端口),端口C C常常被分成高常常被分成高4 4位位和低和低4 4位两部分,可分别用来传送数据或控制信息。位两部分,可分别用来传送数据或控制信息。8.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A6 6n8255A8255A的控制字(的控制字(定义工作方式控制字和定义工作方式控制字和C C口置位口置位/复位控制字复位控制字)(1)(1)工作方式选择控制字工作方式选择控制字u8255A8255A的工作方式可由的工作方式可由CPUC
7、PU写一个工作方式选择控制字到写一个工作方式选择控制字到8255A8255A的控制端口实现。可以分别选择端口的控制端口实现。可以分别选择端口A A、端口、端口B B和和端口端口C C上下两部分的工作方式。注意上下两部分的工作方式。注意8255A8255A工作方式选择控工作方式选择控 制字的最高位制字的最高位D D7(特征位特征位)应为应为1 1。8.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A7 7(2)(2)C C口置位口置位/复位控制字复位控制字u8255A8255A的的C C口按位置位口按位置位/复位控制字的最高位复位控制字的最高位D D7(特征位特征位)应为应为
8、0 0。无关位无关位DD3 3DD1 1D D5 5DD0 0位操作位操作DD2 2PCPC口位选择口位选择DD7 7特征位特征位D D6 6D D4 4D7=0标标明是明是C口口位操作位操作控制字控制字例如:例如:使端口使端口C C的的PC4PC4置置位的控制字为位的控制字为000000001001001B(09H)1B(09H)使使PC4PC4复位的控制复位的控制字为字为000000001001000B(08H)0B(08H)PC0PC1PC2PC3PC4PC5PC6PC70 复位复位1 置位置位当当端口端口A A定义为方式定义为方式1 1或方式或方式2 2或将端口或将端口B B定义为方式
9、定义为方式1 1时时,要求使用端口,要求使用端口C C的某些位作控制用,这时需要一个置位的某些位作控制用,这时需要一个置位/复位控制字对控制端口复位控制字对控制端口C C的各位进的各位进行置位行置位/复位操作。复位操作。8 8各种工作方式的功能各种工作方式的功能n方式方式00基本输入输出方式基本输入输出方式u方式方式0 0无须联络无须联络就可以直接进行就可以直接进行8255A8255A与外设之间的数与外设之间的数据输入或输出操作。它适用于无须应答据输入或输出操作。它适用于无须应答(握手握手)信号的简单的信号的简单的无条件输入无条件输入/输出数据的场合,即输出数据的场合,即输入输入/输出设备始终
10、处于输出设备始终处于准备好状态准备好状态。u在此方式下,在此方式下,A A口、口、B B口、口、C C口的高口的高4 4位和低位和低4 4位可以位可以分别分别设置为输入或输出,即设置为输入或输出,即8255A8255A的这的这四个部分都可以工作于四个部分都可以工作于方式方式0 0。输入或输出的定义是相对于输入或输出的定义是相对于8255A8255A芯片而言的。当芯片而言的。当数据从外设送往数据从外设送往8255A8255A时为输入,反之,数据从时为输入,反之,数据从8255A8255A送往外设则为输出。送往外设则为输出。8.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A9
11、 9各种工作方式的功能各种工作方式的功能n方式方式00基本输入输出方式基本输入输出方式100XX0XX如果三个端口均处于工作方式如果三个端口均处于工作方式0 0,则可由工作方式控制字定义,则可由工作方式控制字定义1616种种工作方式的组合。此时,工作方式的组合。此时,CPUCPU与三个端口之间交换数据可以直接由与三个端口之间交换数据可以直接由CPUCPU执行执行ININ或或OUTOUT指令来完成。指令来完成。8.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A方式方式0 0也可以用于查询方式也可以用于查询方式的输入或输的输入或输出接口电路,此时端口出接口电路,此时端口A A
12、和和B B分别作为分别作为一个数据端口,而用端口一个数据端口,而用端口C C的某些位的某些位作为这两个数据端口的控制和状态信作为这两个数据端口的控制和状态信息。息。例如右图就是一个例如右图就是一个A A口和口和B B口工作口工作在方式在方式0 0时利用时利用C C口某些位作为联络信口某些位作为联络信号的接口电路。在此例中将号的接口电路。在此例中将8255A8255A设设置为:置为:A A口输出,口输出,B B口输入,口输入,C C口高口高4 4位输入位输入(现仅用现仅用PCPC7 7、PCPC6 6两位输入外两位输入外设的状态设的状态),C C口低口低4 4位输出位输出(现仅用现仅用PCPC1
13、 1、PCPC0 0两位输出选通及清除信两位输出选通及清除信号号)。此时此时8255A8255A的工作方式控制字为的工作方式控制字为10001010B(8AH)10001010B(8AH)。选通选通准备好准备好准备好准备好清除清除A口口PC1PC78255APC6PC0B口口输出设备输出设备输入设备输入设备D7D6D5D4D3D2D1PC74方向方向B方式方式B方向方向D0特征特征A方式方式A方向方向PC30方向方向1010101010008.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A其工作原理是:在向输出设备其工作原理是:在向输出设备送数据前,先通过送数据前,先通过
14、PCPC7 查询设备查询设备状态,若设备准备好则从状态,若设备准备好则从A A口送口送出数据,然后通过出数据,然后通过PCPC1 发选通信发选通信号使输出设备接收数据。从输入号使输出设备接收数据。从输入设备取数据前,先通过设备取数据前,先通过PCPC6 查询查询设备状态,设备准备好后,再从设备状态,设备准备好后,再从B B 口读入数据,然后通过口读入数据,然后通过PCPC0 发发清除信号,以便输入后续字节。清除信号,以便输入后续字节。u与后面介绍的选通输入输出方与后面介绍的选通输入输出方式式(方式方式1)1)和选通双向输入输出方和选通双向输入输出方式式(方式方式2)2)相比,相比,方式方式0
15、0的联络信的联络信号线可由用户自行安排号线可由用户自行安排(方式方式1 1和和方式方式2 2中使用的中使用的C C口联络线是已定口联络线是已定义好的义好的),且只能用于查询,不能,且只能用于查询,不能实现中断。实现中断。输出设备选通准备好准备好清除A口PC1PC78255APC6PC0B口输入设备11118.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A1212n方式方式11选通输入输出方式:选通输入输出方式:这种工作方式下,数据输入输这种工作方式下,数据输入输出操作要在选通信号控制下完成出操作要在选通信号控制下完成u与方式与方式0 0相比,它的主要特点是当相比,它的主要
16、特点是当A A口、口、B B口工作于方式口工作于方式1 1时,时,C C口的某口的某些些I/OI/O线被定义为线被定义为A A口和口和B B口在方式口在方式1 1下工作时所需的联络信号线,这些下工作时所需的联络信号线,这些线已经定义,不能由用户改变。线已经定义,不能由用户改变。1 1)-STB-STB:选通信号。由外设送给:选通信号。由外设送给8255A8255A,低电平有效,低电平有效-STB-STB有效时,将外部输入的有效时,将外部输入的8 8位数据锁存到所选端口的输入锁存器。对于位数据锁存到所选端口的输入锁存器。对于A A组来说,指定端口组来说,指定端口C C的的PCPC4 4用来接收向
17、端口用来接收向端口A A输入的输入的STBSTB信号;对于信号;对于B B组来说,指定端口组来说,指定端口C C的的PCPC2 2位用来接收向端口位用来接收向端口B B输入的输入的-STB-STB信号。信号。2 2)IBFIBF:输入缓冲器满信号,向外部输出,高电平有效:输入缓冲器满信号,向外部输出,高电平有效IBFIBF有效时,表示由输入设备输入的数据已占用该端口的输入锁存器,它实际是对有效时,表示由输入设备输入的数据已占用该端口的输入锁存器,它实际是对-STB-STB信号的信号的回答信号,待回答信号,待CPUCPU执行执行ININ指令时,指令时,-RD-RD有效,将输入数据读入有效,将输入
18、数据读入CPUCPU,其后沿将,其后沿将IBFIBF置置0 0,表示输,表示输入缓冲器已空,外设可继续输入后续数据。对入缓冲器已空,外设可继续输入后续数据。对A A组来说,指定端口组来说,指定端口C C的的PCPC5 5作为从端口作为从端口A A输出的输出的IBFIBF信号;对信号;对B B组来说,指定端口组来说,指定端口C C的的PCPC1 1作为从端口作为从端口B B输出的输出的IBFIBF信号。信号。3 3)INTRINTR:中断请求信号,向:中断请求信号,向CPUCPU输出,高电平有效输出,高电平有效A A组和组和B B组向组向CPUCPU发中断请求信号。发中断请求信号。A A组的组的
19、INTRAINTRA通过通过PCPC3 3送出;送出;B B组的组的INTRBINTRB通过通过PCPC0 0送出。送出。(1 1)采用工作方式)采用工作方式1 1进行输入操作时,需要使用的控制信号如下:进行输入操作时,需要使用的控制信号如下:8.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A1313n方式方式11选通输入输出方式:选通输入输出方式:PC4 STB方式方式1 1输入输入PC5 IBFPC3 INTRA A组组PC1 IBFPC0 INTRB B组组PC2 STB8255A8255A中的端口中的端口A A和端口和端口B B均可工作于工作方式均可工作于工作方式
20、1 1完成输入完成输入操作功能。操作功能。(1 1)当端口)当端口A A和和B B同时被定义为方式同时被定义为方式1 1完成输入操作时完成输入操作时,端,端口口C C的的PCPC0 0PCPC5 5被用作控制信号,只有被用作控制信号,只有PCPC7 7和和PCPC6 6位可用来位可用来完成数据输入或输出操作,因此实际上构成两种组合状态:完成数据输入或输出操作,因此实际上构成两种组合状态:1 1)端口)端口A A、B B输入,输入,PC7PC7和和PC6PC6输入;输入;2 2)端口)端口A A、B B输入,输入,PC7PC7和和PC6PC6输出。输出。中断允许或屏蔽(中断允许或屏蔽(C C口置
21、位或复位操作):口置位或复位操作):1 1)A A端口(端口(PCPC4 4)=1=1处于中断允许;处于中断允许;=0=0,处于中断屏蔽状态;处于中断屏蔽状态;2 2)B B端口(端口(PCPC2 2)=1=1处于中断允许;处于中断允许;=0=0,处于中断屏蔽状态;处于中断屏蔽状态;8.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A1414n方式方式11选通输入输出方式选通输入输出方式1 1)-OBF-OBF:输出缓冲器满信号。向外部输出,低电平有效:输出缓冲器满信号。向外部输出,低电平有效-OBF-OBF有效时,表示有效时,表示CPUCPU已将数据写入该端口正等待输出。
22、当已将数据写入该端口正等待输出。当CPUCPU执行执行OUTOUT指令,指令,-WR-WR有效有效时,表示将数据锁存到数据输出缓冲器,由时,表示将数据锁存到数据输出缓冲器,由-WR-WR的上升沿将的上升沿将-OBF-OBF置为有效。对于置为有效。对于A A组来说,组来说,指定端口指定端口C C的的PCPC7 7用来作为从端口用来作为从端口A A输出的输出的-OBF-OBF信号;对于信号;对于B B组,指定端口组,指定端口C C的的PCPC1 1位用作从位用作从端口端口B B输出的输出的-OBF-OBF信号。信号。2 2)-ACK-ACK:外部应答信号。由外部输入,低电平有效:外部应答信号。由外
23、部输入,低电平有效-ACK-ACK有效时,表示外部设备已经收到由有效时,表示外部设备已经收到由8255A8255A输出的输出的8 8位数据,它实际是对位数据,它实际是对-OBF-OBF信号的回信号的回答信号。对答信号。对A A组来说,指定端口组来说,指定端口C C的的PCPC6 6用来接收向端口用来接收向端口A A输入的输入的-ACK-ACK信号;对信号;对B B组来说,指组来说,指定端口定端口C C的的PCPC2 2用来接收向端口用来接收向端口B B输入的输入的-ACK-ACK信号。信号。3 3)INTRINTR:中断请求信号,向:中断请求信号,向CPUCPU输出,高电平有效输出,高电平有效
24、A A组和组和B B组向组向CPUCPU发中断请求信号。发中断请求信号。A A组的组的INTRAINTRA通过通过PCPC3 3送出;送出;B B组的组的INTRBINTRB通过通过PCPC0 0送出。送出。(2 2)采用工作方式)采用工作方式1 1进行输出操作时,需要使用的控制信号如下:进行输出操作时,需要使用的控制信号如下:8.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A1515n方式方式11选通输入输出方式:选通输入输出方式:8255A8255A中的端口中的端口A A和端口和端口B B均可工作于工作方式均可工作于工作方式1 1完成输出完成输出操作功能。操作功能。(
25、2 2)当端口)当端口A A和和B B同时被定义为方式同时被定义为方式1 1完成输出操作时完成输出操作时,端,端口口C C的的PCPC6 6,PC7 7和和PCPC3 3PCPC0 0被用作控制信号,只有被用作控制信号,只有PCPC4 4和和PCPC5 5位可用来完成数据输入或输出操作,因此实际上构成两位可用来完成数据输入或输出操作,因此实际上构成两种组合状态:种组合状态:1 1)端口)端口A A、B B输出,输出,PC4PC4和和PC5PC5输入;输入;2 2)端口)端口A A、B B输出,输出,PC4PC4和和PC5PC5输出。输出。方式方式1 1输出输出PC6 ACKPC7 OBFPC3
26、 INTRA A组组PC1 OBFPC0 INTRB B组组PC2 ACK中断允许或屏蔽(中断允许或屏蔽(C C口置位或复位操作):口置位或复位操作):1 1)A A端口(端口(PCPC6 6)=1=1处于中断允许;处于中断允许;=0=0,处于中断屏蔽状态;处于中断屏蔽状态;2 2)B B端口(端口(PCPC2 2)=1=1处于中断允许;处于中断允许;=0=0,处于中断屏蔽状态;处于中断屏蔽状态;8.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A1616n方式方式11选通输入输出方式选通输入输出方式(3 3)端口)端口A A输入,端口输入,端口B B输出输出当被定义为方式
27、当被定义为方式1 1端口端口A A输入,端口输入,端口B B输出输出时时,端口,端口C C的的PCPC5 5PCPC0 0被用作控制信号,只有被用作控制信号,只有PCPC6 6和和PCPC7 7位可用来完成数位可用来完成数据输入或输出操作,这又构成两种组合状态:据输入或输出操作,这又构成两种组合状态:1 1)端口端口A输入,端口输入,端口B输出输出,PC6和和PC7输入;输入;2 2)端口端口A输入,端口输入,端口B输出输出,PC6和和PC7输出。输出。8.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A1717n方式方式11选通输入输出方式选通输入输出方式(4 4)端口)
28、端口A A输出,端口输出,端口B B输入输入当被定义为方式当被定义为方式1 1端口端口A A输出,端口输出,端口B B输入输入时时,端口,端口C C的的PC6 6和和PC7 7,PCPC3 3PCPC0 0被用作控制信号,只有被用作控制信号,只有PCPC4 4和和PCPC5 5位可用位可用作数据输入作数据输入/输出用,这又构成两种组合状态:输出用,这又构成两种组合状态:1 1)端口端口A输出,端口输出,端口B输入输入,PC4和和PC5输入;输入;2 2)端口端口A输出,端口输出,端口B输入输入,PC4和和PC5输出。输出。8.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A
29、8255A8255A中的端口中的端口A A和和B B工作在方式工作在方式1 1时,可构成时,可构成8 8种不同的状态种不同的状态端口端口C C的低四位总是作控制用,而高四位中总是保持有两位仍然可作数据输入的低四位总是作控制用,而高四位中总是保持有两位仍然可作数据输入/输出用,因此控制字中的输出用,因此控制字中的DD0 0位可为任意值,由位可为任意值,由DD1 1,DD3 3,D D4 4位的不同取值构成位的不同取值构成八种不同的状态组合方式。(八种不同的状态组合方式。(也允许也允许A/BA/B口为方式口为方式0 0,与另一端口的方式,与另一端口的方式1 1配合配合工作工作)8.0 8.0 可编
30、程并行接口芯片可编程并行接口芯片8255A8255A1919INTR(PC6)1PC3n方式方式22选通双向输入输出方式选通双向输入输出方式u选通双向输入输出方式,即同一端口的选通双向输入输出方式,即同一端口的I/OI/O线既可以输入线既可以输入也可以输出,也可以输出,只有只有A A口可工作于方式口可工作于方式2 2。此时。此时C C口有口有5 5条线条线(PC7(PC7 PC3)PC3)被规定为联络信号线。剩下的被规定为联络信号线。剩下的3 3条线条线 (PC2(PC2 PC0)PC0)可以作为可以作为B B口工作于方式口工作于方式1 1时的联络线,也可以时的联络线,也可以独立工作于方式独立
31、工作于方式0 0。PA7 PA 0&PC7PC6INTE1(PC4)INTE2&PC4PC5PC2 PC0OBFACKSTBIBFI/ORDWRD71D61工作方式控制字工作方式控制字D5 D4 D3 D2 1/0 1/0D11/0D01/08.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A例:编一初始化程序,使例:编一初始化程序,使8255A8255A的的PC5PC5端输出一个负跳变。端输出一个负跳变。如果要求如果要求PC5PC5端输出一个负脉冲程序又怎样的?控制口地端输出一个负脉冲程序又怎样的?控制口地址为址为83H83H。MOV AL,0BH;PC5置置1-ALMO
32、V DX,83H;控制口地址;控制口地址OUT DX,ALMOV AL,0AH;PC5置置0-ALOUT DX,ALPC5PC5端输出一个负跳变端输出一个负跳变MOV AL,0BH;PC5置置1-ALMOV DX,83H;控制口地址;控制口地址OUT DX,ALMOV AL,0AH;PC5置置0-ALOUT DX,ALMOV AL,0BH;PC5置置1-ALMOV DX,ALPC5PC5端输出一个负脉冲端输出一个负脉冲DD3 3DD1 1D D5 5DD0 0位操作位操作DD2 2PCPC口位选择口位选择DD7 7特征位特征位D D6 6D D4 41 0 18.0 8.0 可编程并行接口芯片
33、可编程并行接口芯片8255A8255APC7n8255A8255A初始化编程初始化编程u设设8255A8255A的的A A口工作方式口工作方式1 1输出,输出,uB B口工作方式口工作方式1 1输入,输入,PC4PC4和和PC5PC5输入,禁止输入,禁止B B口中断。设口中断。设片选信号片选信号CSCS由由A9A9 A2=10000000A2=10000000确定。试编写程序对确定。试编写程序对8255A8255A进行初始化。进行初始化。根据题意,设计接口电路。根据题意,设计接口电路。控制字控制字特征位特征位I/ORDWR译译码码A2A9RDWR PC6PC2PC1PC4,PC5OBFAACK
34、A外设外设STBBIBFBPA7 PA 0D7 D 08255APB7 PB0A0A1INTRA0A1INTRACSD71D60D11D0工作方式控制字工作方式控制字D5 D4 D3 D21 0 1 1A口口方式方式1A口口输出输出PC4、PC5输输入入B口口输入输入任任意意B口口方式方式121218.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255An初始化程序:初始化程序:;控制字送控制字送ALAL;8255A8255A控制字寄存器地址送控制字寄存器地址送DXDX;控制字送控制字送8255A8255A的控制寄存器的控制寄存器;PC6PC6置置1 1,允许,允许A A口中断
35、(口中断(A A出,出,PC6PC6);PC2PC2置置0 0,禁止,禁止B B口中断口中断(B B入入 ,PC2PC2)uMOVMOVuMOVMOVuOUTOUTuMOVMOVuOUTOUTuMOVMOVuOUTOUTALAL,1010111010101110B B DXDX,10000011B10000011BDXDX,ALALALAL,00001101B00001101BDXDX,ALALALAL,00000100B00000100BDXDX,ALAL控制字控制字特征位特征位D71工作方式控制字工作方式控制字D60D51D31D21D11D0D40A口口方式方式1A口口输出输出PC4、P
36、C5输输入入任任意意B口口输入输入B口口方式方式122220000:A A口;口;0101:B B口;口;1010:C C口;口;1111:控制口:控制口8.0 8.0 可编程并行接口芯片可编程并行接口芯片8255A8255A8.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制2323n利用利用8255A8255A对按键进行查询输入对按键进行查询输入u设图中设图中8255A8255A的的A A口和控制寄存器的地址分别为口和控制寄存器的地址分别为80H80H和和83H83H,试编写,试编写8255A8255A的初始化程序。的初始化程序。控制字控制字特征位特征位D71D
37、60D50D3D2D1D0D41A口口方式方式0A口口输入输入任任意意任任意意任任意意任任意意依题意初始化依题意初始化8255A8255A的的A A口为方式口为方式0 0、输入:、输入:uMOV ALMOV AL,10010000B10010000BuMOV DXMOV DX,83H83HuOUT DXOUT DX,ALAL按键状态输入:按键状态输入:uMOV DXMOV DX,80H80HuIN ALIN AL,DXDX工作方式控制字工作方式控制字;控制字送控制字送ALAL;8255A8255A控制字寄存器地址送控制字寄存器地址送DXDX;控制字送控制字送8255A8255A的控制寄存器的控
38、制寄存器;8255A8255A端口端口A A地址送地址送DXDX;按键状态输入在按键状态输入在ALAL24248.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制n实验硬件连接实验硬件连接8.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制26268255编程例编程例1n情形情形1code segmentstart:mov al,80Hout 83H,almov al,83Hout 82H,alhltcode endsend start10001000,00110011;对应的;对应的C C口的第口的第1 1,2 2和和8 8个发光二极管
39、亮个发光二极管亮8.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制2727code segmentstart:mov al,81Hout 83H,almov al,83Hout 82H,alhltcode endsend start1AM1 AM0 AIO CHIO BMBIO CLIOn情形情形210001000,00110011;对应的;对应的C C口的第口的第8 8个发光二极管亮个发光二极管亮8.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制28281AM1 AM0 AIO CHIO BMBIO CLIO8255编程例编程例2c
40、ode segmentstart:mov al,80Hout 83H,almov al,01Hlp:out 82H,alcall delayror al,1jmp lpdelay procpush cxmov cx,0010Hdly:loop dlypop cxretdelay endpcode endsend start二极管:二极管:PC0-PC7-PC6-PC5-依次循环顺序点亮依次循环顺序点亮8.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制29291AM1 AM0 AIO CHIO BMBIO CLIOcode segmentstart:mov al,9
41、0Hout 83H,alin al,80Hout 82H,aljmp startcode endsend start8255编程例编程例3读读A A口的开关状态,将口的开关状态,将A A口开关状态输出到口开关状态输出到C C口去口去8.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制30301AM1 AM0 AIO CHIO BMBIO CLIOcode segmentstart:mov al,90Hout 83H,alin al,80Hnot alout 82H,aljmp startcode endsend start读读A A口的开关状态,将口的开关状态,将A
42、 A口开关状态取反输出到口开关状态取反输出到C C口去口去8.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制31318.1.5 8255编程例编程例4n数码显示数码显示8.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制将十进制数字(将十进制数字(0909)翻译成七段显示码的译码表,如下:)翻译成七段显示码的译码表,如下:十进制数十进制数字字七段显示码七段显示码 g f e d c b ag f e d c b a0 00 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 3FH3FH1 10 0 0 0 0 1 1 0 0
43、0 0 0 0 1 1 0 06H06H2 20 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 5BH5BH3 30 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 4FH4FH4 40 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 66H66H5 50 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 6DH6DH6 60 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 7DH7DH7 70 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 07H07Habcdefg十六进制十六进制8.1 82558.1 8255与简单
44、开关量输入输出控制与简单开关量输入输出控制3333datadigitdatasegmentdb 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fHendscode segmentstart:mov ax,datamov ds,axmov al,90Hout 83H,almov si,offset digitlp1:mov bx,0lp2:mov al,bx+siout 81H,alcall delayinc bxcmp bx,10jc lp2jmp lp1delay procpush cxmov cx,0050Hdly:loop dlypop cxretdelay
45、endpcode endsend start;数字;数字0909;A A口方式口方式0 0入,入,B B、;、;C C口方式口方式0 0出出;B B口出口出B B口输出对应的数码管依次循环显示口输出对应的数码管依次循环显示09098.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制3434TD-PITE 8255基本基本I/O实验实验n实验内容实验内容1u使使8255 端口端口A 工作在方式工作在方式0 并作为输入口,端并作为输入口,端口口B工作在方式工作在方式0 并作为输出口。用一组开关信号并作为输出口。用一组开关信号接入端口接入端口A,端口,端口B 输出线接至一
46、组数据灯上,然输出线接至一组数据灯上,然后通过对后通过对8255 芯片编程来实现输入输出功能。芯片编程来实现输入输出功能。8.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制3535CODE SEGMENTASSUME CS:CODE,SS:SSTACKSTART:MOV DX,0646HMOV AL,90HOUT DX,ALAA1:MOV DX,0640HIN AL,DXCALL DELAYMOV DX,0642HOUT DX,ALJMP AA1DELAY:PUSH CXMOV CX,0F00HAA2:PUSH AXPOP AXLOOP AA2POP CXRETC
47、ODE ENDSEND STARTSSTACKSSTACKSEGMENT STACKDW 32 DUP(?)ENDSn实验源程序实验源程序A A口:口:0640H0640H;B B口:口:0642H0642H;控制口:控制口:0646H0646H;8.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制3636TD-PITE 8255流水灯实验流水灯实验n实验内容实验内容2u使使8255 的的A 口和口和B 口均为输出,数据灯口均为输出,数据灯D7D0 由左向右,每次仅亮一个灯,循环显示,由左向右,每次仅亮一个灯,循环显示,D15D8 与与D7D0 正相反,由右向左,每
48、次仅点亮一个灯,正相反,由右向左,每次仅点亮一个灯,循环显示。循环显示。8.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制3737SSTACKSEGMENT STACKSSTACKDW 32 DUP(?)ENDSCODE SEGMENTASSUME CS:CODE,SS:SSTACKSTART:MOV DX,0646HMOV AL,80HOUT DX,ALMOV BX,8001HAA1:MOV DX,0640HMOV AL,BHOUT DX,ALROR BH,1MOV DX,0642HMOV AL,BLOUT DX,ALROL BL,1CALL DELAYCALL
49、 DELAYJMP AA1DELAY:PUSH CXMOV CX,0F000HAA2:PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDSEND STARTn实验源程序实验源程序8.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制A A口:口:0640H0640H;B B口:口:0642H0642H;控制口:控制口:0646H0646H;3838更多的更多的8255简单简单I/O编程练习编程练习n练习练习1每次亮相邻两盏灯,按照每次亮相邻两盏灯,按照C C口口PC0PC0,PC1-PC1PC1-PC1,PC2-PC2PC2-PC2,PC3P
50、C3循环顺序点亮循环顺序点亮8.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制3939n练习练习2每次亮相邻两盏灯,按照每次亮相邻两盏灯,按照C C口口PC0PC0,PC1-PC2PC1-PC2,PC3-PC4PC3-PC4,PC4-PC4-循环顺序点亮循环顺序点亮8.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制4040n练习练习3交替点亮交替点亮8.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制41418.1 82558.1 8255与简单开关量输入输出控制与简单开关量输入输出控制n练习练习41 1,
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。