1、3 设 8255A 的 4 个寻址地址号为 0060H0063H,试编写下列各种情况下的初始化程序。(12 分)(1) 将 A 组和 B 组设置成方式 0,A 口、B 口为输入,C 口为输出。(2)将 A 组工作方式设置成方式 2,B 组为方式 1,B 口作为输出。(3)将 A 口、B 口均设置成方式 1,均为输入,PC 6和 PC1为输出。(4) A 口工作在方式 1,输入;B 口工作在方式 0,输出; C 口高 4 位配合 A 口工作,低4 位为输入。附:8255 控制字格式:D7 D6 D5 D4 D3 D2 D1 D0D7=1工作方式控制字标志;D6 D5,A 口工作方式选择(00=方
2、式 0,01=方式 1,1x=方式 2) ;D4,A 口输入输出选择(1=输入,0=输出) ;D3,C 口高位选择(1=输入,0=输出) ;D2,B 口工作方式选择(0=方式 0,1=方式 1) ;D1,B 口输入输出选择(1=输入,0=输出) ;D0,C 口低位选择(方式 0时) (1=输入,0=输出) 。答:每个3分(1 ) MOV AL,10010010BOUT 63H,AL(2 ) MOV AL,11000100BOUT 63H,AL(3 ) MOV AL,10110110BOUT 63H,AL(4 ) MOV AL,10110001BOUT 63H,AL2. 下图为 PC 机扬声器系
3、统。由图可知,若要利用 8253 定时器 2 产生的方波信号来发声,必须使 PB1 为 1,若已知 8255 的 PB 口地址为 61H,8253 定时器 2 的端口地址为 42H,其控制寄存器端口地址为 43H,请填写下列程序的空白处。(12 分)CLK1.19MHzMOV AL,0B6H ;设置定时器 2 的工作方式 3 的控制字;送往控制寄存器端口MOV AX,51AH ;设计数初值为 51AH;先送低字节;再送高字节IN AL, 61H ;读 PB 口的状态MOV AH,AL;开 PB1 及 GATE2 位,其余位不变OUT 61H,AL ;送到 61H 端口,扬声器响MOV AL,A
4、H ;如果要使扬声器停止鸣响,只要恢复 61H 端口原值,即取回原值;送至 61H 端口OUT 43H,ALOUT 42H,ALMOV AL,AHOUT 42H,ALOR AL,03H OUT 61H,AL (各 2 分)五、综合应用题:(22 分)1 一个微机系统中包含以下器件:微处理器 8086 一片,并行接口 8255A 一片(设备号:A 口60H ,B 口 62H,C 口64H,控制口66H) ,定时器 8253 一片(设备号:计数器 070H,计数器 172H,计数器 274H,控制口 76H) 。现将 8255 的 A 口连接一输入设备,工作在 0 方式。B 口连接一输出设备,也工
5、作在 0 方式,PC4 作为输出设备的选通输出端且低电平有效。8253 工作于“模式 0”,设置计数器 0 的计数常数为 1080H,进行二进制计数。请填充下面程序中的空白项(注意:控制字中可 0 可 1 位选 0,8255 未用端口设成输入方式),(微处理器 8086 的 A1、A2 接各芯片的 A0、A1) 。 (10 分)MOV AL,_ ; 8255 初始化OUT _, ALMOV AL, 30H ; 8253 初始化OUT _, ALMOV AL, _ ;设 8253 计数初值OUT _, ALMOV AL, _ ;OUT _, AL IN AL,_ ; 从 8255 的 A 口读入
6、数据PUSH AXMOV AL,09H ; 用按位置位/复位方式使选通无效OUT 66H, ALPOP AXOUT _, AL ; 往 B 口输出数据 MOV AL, 08H ; 用按位置位/复位方式使选通有效OUT _, ALMOV AL , 09H ; 撤消选通信号OUT 66H, AL附:8255 控制字格式:D7 D6 D5 D4 D3 D2 D1 D0D7=1工作方式控制字标志;D6 D5,A 口工作方式选择(00=方式 0,01=方式 1,1x=方式 2) ;D4,A 口输入输出选择(1=输入,0=输出) ;D3,C 口高位选择(1=输入,0=输出) ;D2,B 口工作方式选择(0
7、=方式 0,1=方式 1) ;D1,B 口输入输出选择(1=输入,0=输出) ;D0,C 口低位选择(方式 0时) (1=输入,0=输出) 。答:91H 66H 76H 80H 70H 10H 70H 60H 62H 66H 2. 已知某 8088 微机系统包括 8255,8253 两个可编程接口电路。其中 8253 三个计数器分别工作在不同的方式下,可以为 AD 转换器提供可编程的采样频率和采样时间;8255A 的PB0可用于检测按键开关的位置,PB 7可根据 PB0的状态决定是否点亮 LED 指示灯。设系统所要求有关硬件连线已经全部接好,如图 1 所示。试完成下列各项要求。(1) 分别列出
8、 8255A,8253 各个端口的地址编码,其中片选信号 , 采用图 22PS3中的译码地址。 (4 分)(2) 根据图 2 所示 8255A 的 A 口和 B 口的连接方式,写出接口初始化程序片段。 (4 分)(3) 设计一个程序片段,使 8255A 监测 PB0的输入状态,当 PB01 时使 LED 灯亮。 (4分)图 1 图 2(1) 8255 的口地址码为 08H,09H,0AH,0BH,8253 的口地址码为0CH,0DH,0EH,0FH(2) 8255 的初始化程序MOV AL,10000010BOUT 0BH,AL(3) 8255 检测到当 PB01 时点亮灯的程序片段IN AL
9、,09H ;读 B 口状态K1: TEST 01H ;测试 PB01 否JZ K1 ;不为 1,踏步MOV AL,00H ;PB 01,使 PA00,点亮 LEDOUT 08H,AL1在某 8086 系统中,设某片 8253 芯片的应用电路如下图,三个计数通道分别设置为:通道 0方式,计数初值为 1000;通道 1方式,计数初值为 500;通道 2方式 3,计数初值为 2000。外接时钟CLK 为 2.5MHz。试计算在开关 K 打到+5V 后,OUT 脉冲的重复周期和波形的持续时间,并写初始化程序。(设 8253 所占端口地址为 80H,81H,82H,83H)答: 已知 CLK 的周期为
10、T=1/2.5s=400ns。而通道 0 工作在方式 2,CLK0 采用 CLK,计数初值为 1000,所以,OUT 的脉冲重复周期为 T0=1000*400ns=400s。由于通道 2 工作在方式 3,CLK2 采用 CLK,计数初值为 2000,则 OUT2 的输出为对称方波,周期为T2=2000*400ns=800s;而通道 1 工作在方式 1,CLK1 采用 OUT1 的反相,计数初值为 500,则 OUT1 的输出为单个负脉冲,宽度为 T1=500*T2=400ms;该信号作为通道 0 的 GATE0,所以 OUT 的波形的持续时间为400ms。初始化程序为:mov al,00110
11、101bout 83h,almov al,00hout 80h,almov al,10hout 80h,al mov al,01110011bout 83h,almov al,00hout 81h,almov al,05hout 81h,al mov al,1011011bout 83h,almov al,00hout 82h,almov al,20hout 82h,al 1 8253 芯片中,使用 2 号计数器,工作在方式 2,计数初值设为 789H,采用二进制计数。其程序如下:请将空格上的指令完成。 (每空 3 分,共 9 分)TIMER EQU 040HMOV AL,10110100BOUT TIMER+3,ALMOV AX,789HOUT TIMER+2,ALMOV AL,AHOUT TIMER+2,AL