当前位置:文档之家› 第九章并行接口与串行接口习题选解

第九章并行接口与串行接口习题选解

9.4写出下列两种情况下8,}55A的工作方式控制字(包括I/O方式控制字和必要的按位置位/复位控制字)。

(1) 8255A用做键盘和终端地址接口,如图9 ..4所示。

.(2)8255A用做基本软盘接日,如图9.5所示。

解:(1)由图9.4可知:A口工作在方式1输人,采用中断读键盘,C口的PC4 , PC5为A口方式1输人提供固定的握手联络信号,而PC6,PC7用于输出“LT忙”和“测试LT",所以C口高4位工作在方式。

输出,B口用于输人终端地址,所以B口应工作在方式。

输人。

由此分析可知,8255A的初始化包括设置工作方式和开中断操作,其控制字为: 工作方式控制字:1011001 x B按位置位/复位控制字(开放中断INTEA=1,即PC4置位):00001001B(2) A口工作在方式2中断方式输人/输出,B口和C口低4位工作在方式0输出,所以8255A的初始化也包括设置工作方式和开中断操作,其控制字为:工作方式控制字:11 x x x 000B开放输人中断按位置位/复位控制字,即PC4置位:0000l001B开放输出中断按位置位/复位控制字,即PC6置位:00001101B9.5设8255A的端口A,B,C和控制寄存器的地址为F4H,F5H,F6H,F7H,要使A口工作于方式0输出,B口工作于方式1输人.C口上半部输人,下半部输出,且要求初始化时使PC6=0.试设计82SSA与PC系列机的接A电路,并编写初始化程序。

解:82SSA与FC系列机的接口电路如图9.5所示。

初始化程序如下:·MO V A L , 10001110F3 ;方式字OUT 0F7H, ALMOV AL,00000110B ;PC6=0OUT 0F7H, ALMOV AL,00000101 ;开中断OUT 0F7H,AL9.6在PC系列微机系统中,用8255A做某快速启停电容式纸带机接口的硬件连接如图9.7所示,试用汇编语言编写8255A的初始化程序。

解:由图9.7可知,A口工作于方式1中断输入.PC6用于输出正脉冲启动纸带机,所以C口上半部工作于方式0输出。

A口、B口、C口和控制寄存器的地址为x x x x x 000B、x x xx x 001B, x x x x x 0l0B, x x x x 011B,可任选其中的一个地址、编制初始化程序如下: MOV AL,10110x x xB ;A口方式1输人,C口上半部愉出卜.OUT 03H;AL ;写方式控制字MOV AL, 00001100B ; Pq输出正脉冲启动纸带机OUT 03H,ALMOV AL,00001101BOUT 03H,ALMOV AL,00001100B;OUT 03H,ALMOV AL,0000l001B. ;PC4置位开放中断OUT 03H,AL,9.7用8255A做某PC系列微机系统中的键盘和显示器的接口,A口与一全译码键盘连接,B口与一自扫描视频显示器连接,如图9.8所示。

试设计其接口驱动程序。

解:A口工作于方式1中断输人,B口工作于方式1中断输出,C口上半部工作于方式0输出。

A口、B口、C口和控制寄存器的地址为x x x x x 000B, x x x x x 001B, x x x x x010B,xxxxx011B,可任选其中的一个地址。

接口驱动程序包括8255A的初始化程序和键盘输人及显示输出程序。

8255A初始化程序如下:INI8255:MOV AL,0B4HOUT 03H,ALMOV AL,09HOUT 03H,ALMOV AL,05HOUT 03H,AL输人/输出中断处理程序如下:INT_IO: PUSHAIN AL,02HTEST AL , 08HJNZ KEYTEST AL,O1HJNZ DISPEXIT: POPASTIIRETKEY: ….JMP EXITDISP: …….JMP EXIT9.8用PC系列微机实现对注塑机的时间顺序控制。

注塑机生产一个工件的工艺流程为:合模(1s)—注射(2 s)—延时(3 s)—开模(1 s)—产伸(1 s)—产退(1 s) 。

假若用8255A的B口PB。

~PB5每根线控制一个执行机构动作,用PA7和PA6作为掉电和低温警告监视输人。

如果正常,各执行机构按工艺流程顺序周而复始地切换;一旦出现异常,则通过PC0控制一红色LED发亮,作为故障报警,并设置6s故障处理时间,时间到,若故障已排除,则系统又继续运行,否则停止生产。

(1)请设计出硬件连接电路;(2)按控制要求编制程序。

解:硬件连接如图9.9所示,8255A各端口地址为0F4H~ 0F7H, A组、B组均工作在方式0。

采用软件延时(用INT 15H的86号功能调用),控制程序如下:DATA SEGMENTDELAY TIME DB 1,2,3,1,1,1 ;定义延时秒值……..DA TA ENDSCODE SEGMENTASSUME GS: CODE, DS: DATASTART: MOV AX,DATAMOV DS,AxMOV AL, l 0010000B : A口方式0输人、B和C口方式0输出OUT 0UF7H.ALMOV AL , 00000000B PC0=0 .发光二极管灭,系统正常OUT 0F7H.ALBEIGlN: MOV DL,01H ;PB口输出控制字初值,从合模开MOV BX,0 ;BX指向对应延时秒值存放单元REPEAT: IN AL.0F4H ;读A口TEST AL, 03HJNZ ERROR ;转故障处理MOV AL,DL ;取PB口输出控制字OUT 0F5H,AL ;控制执行机构SHL DL, 1 ;输出控制字左移1位。

指向下一工艺MOV CL, DELAY_TIME[BX] ;取延时秒值WAIT$:CALL IIELAY1S ;延时1sDEC CL.JNZ W AIT$INC BX : BX指向下一道工艺延时秒遗CMP BX,6 ;6个工艺处理完?JNZ REPEAT :未完.继续下一道工艺JMP BEIGIN ;重开始下一工艺流程ERROR: MOV AL,01HOUT 0F7H ,ALMOV CX, 6WAIT1:CALL DELAY1SLOOP W AIT1IN AL , 0F4HTEST AL , 03HJNZ EXITMOV AL ,00HOUT 0F7HJMP REPEATEXIT:MOV AH, 4CHINT 21H;延时1s子程序,用INT 15H 的86H 号功能调用;1s=1 000 000 us=F4240H usDELAYIS PROCPUSH AX ;保护程序中用到的寄存器PUSH CXPUSH DXMOV AH, 86H ;INT 15H调用的功能号MOVCX ,0FH ;延时时间的高16位MOV DX ,4240H ;延时时间的低16位INT 15HPOP DX ;恢复保存的寄存器值POP CXPOP AXRETDELAYIS ENDPCODE ENDSEND START9.9拟用8255A和AT机系统板上8254通道1设计一个十字路口交通灯管理系统。

要求:东西、南北方向各装有红、黄、绿指示灯;东西向和南北向通行时间分别为30 s和20 s;由绿灯变为红灯前的3s内,绿灯灭而黄灯亮;时间由两位7段LED显示器倒计时显示;当某方向显示红灯时,允许人工干预强行改变两个方向的指示灯颜色,以让救护车、警车通行,但发出改变通行命令后,应有3s时间使显示绿灯的方向变为显示黄灯且以每秒10次的频率闪烁,以示警告。

试完成硬件和软件设计(仍假定8255A和8254的地址分别为03C0H~ 03C3H和04C0H~04C3H )。

解:用8255A设计的十字路口交通灯管理系统如图9.10所示。

A口、B口方式0输出,分别控制东西方向和南北方向LED显示器显示定时时间,C口方式0输出控制交通灯,其中PC7~PC5分别控制东西方向红、黄、绿灯,PC3~PC1分别控制南北方向红、黄、绿灯。

8254用于定时.通道0工作于方式3输出1 kHz方波.计数初值为:通道0计数初值=( 5 MHz) /(1 kHz) = 5 000通道1工作于方式2输出周期为1s的负脉冲作为秒定时中断请求信号,接系统板IRQ3,计数初值为:通道1计数初值=1 s/(1 /(1 kHz ) ) =1 000在秒中断处理程序中,完成开关检测和交通灯控制,处理流程如图9.11所示。

程序如下:·MODEL SMALL·STACK·DA TAFM DB 1 ;方向标志FM = 1东西向通,为0南北向通SCONT DB 30H ;秒计数器,初值30 s(BCD数)KONG DB 00101000B ;红黄绿灯控制字,东西向绿灯亮南北向红灯亮KEYON DB 0 ;强制改变方向标志,初始为正常SA VECS DW ?SA VEIP DW ?KEEP DB ?MODE EQU 10000000B·CODESTART:MOV AX,@DA TAMOV DS,AXCLIMOV AH,35HMOV AL,OBHINT 21H ;保存系统IRQ3原中断向量MOV SA VEIP,BXMOV SA VECS, ESPUSH DSMOV AX,SEG TIMEIS ;计数中断服务程序人口地址MOV DS,AXMOV DX,OFFSET TIMEISMOV AH,25HMOV AL,0BHINT 21HPOP DSMOV AL,MODE ;写8255方式控制字MOV DX,3C3HOUT DX , ALMOV DX,4C3H ;初始化8253通道0工作方式MOV AL, 36HOUT DX,ALMOV DX,4C0HMOV AX,5000 ;通道0计数值OUT DX,ALMOV AL , AHOUT DX,ALMOV DX,4C3H ;初始化8253通道1工作方式MOV AL , 74HOUT DX,ALMOV DX,4C1HMOV AL,1000 ;通道1计数值OUT DX,ALIN AL,21HMOV KEEP, AL ;保存系统中断屏蔽字AND AL, OF7HOUT 21H,AL ;清IRQ3中断屏蔽位STI ;开中断WAIT$: MOV AH,1 ;有键按下?INT 16HJZ W AIT$ ;无键按下,等待MOV AL, KEEP ;退出OUT 21H,AL ;恢复系统中断屏蔽字MOV DX, SA VEIP ;恢复系统IRQ3中断向量MOV AX, SA VECSMOV DS , AXMOV AH, 25HMOV AL, 0BHINT 21HMOV AH, 4CHINT 21H;计数中断服务程序TIM1S PROC FARPUSH AXPUSH DXPUSH DSMOV AX,@ DATAMOV DS,AXIN AL,80H ;输人开关S状态TEST AL,01H ;检测开关S闭合?JNZ LL ;闭合转LL,判是否从断开到闭合CMP KEYON , 0 ;判断是否从闭合到断开?JNZ ONTOFF ;从闭合到断开,转ONTOFFJ MP STRONTOFF: MOV KEYON , 0CALL TURNJMP OUTPUTLL: CMP KEYON,0 ;从断开到闭合?JZ OFFTON ;是,转强制切换处理CALL STIME ;强制状态,修改秒计数值JMP EXIT ;返回OFFTON: MO V KEYON,1NOT FMMOV SCON,99HCMP FM,OFFHJZ QDFM ;是,转QDFMMOV KONG,10000010B ;修改控制字,南北向绿灯亮JMP OUTPUTQDFM: MOV KONG,00101000B ;修改控制字,东西向绿灯亮JMP OUTPUTSTR: MOV AL, SCONTCMP AL,OOHJNZ NEXTCALL TURNJMP OUTPUTNEXT: CALL STIMECMP AL,03HJNZ EXIT;剩3s,绿灯灭,黄灯亮处理CMP FM,OFFHJZ DXFMMOV AL,00000l00BAND KONG, OFOHJMP FDONDXFM: MOV AL,01000000BAND KONG, 0FHFDON: OR KONG, AL ;修改输出控制字JMP OUTPUT ;转控制字输出DFM: MOV SCON, ,30H ;修改定时时间。

相关主题