1、P327页158255A有哪几种工作方式,对这些工作方式有什么规定?答:8255A有三种工作方式。分别是方式0(基本的输入输出方式);方式1(选通的输入输出方式);方式2(双向传输方式)。方式0:不需要应答联络信号。A、B、C口都可以工作在方式0。方式1:选通的输入输出方式,只有A、B端口可以工作在方式1,C端口作为A、B端口的应答信号。而且是单向的,作为输入端口,就不能做输出端口,作为输出端口就不能做输入端口。方式2:双向传输方式,只有A端口可以工作在方式2,C端口做为A端口输入输出时的应答信号,可以工作在输入,也可以工作在输出。16假设8255A端口地址为00C000C6H,要求:(1)对
2、8255A设置工作方式,A端口工作在方式1,输入;B端口工作在方式0,输出;端口C的4为配合端口A工作,端口C的低4为方式0,输入。(2)用置0置1,直接对PC6置1,对PC4置0答:端口地址0000 0000 1100 0000 0000 0000 1100 0110。说明A口地址为00C0H,B口地址为00C2H,C口地址为00C4H,控制字地址为00C6H。(1)控制字为:1011X001B,即0B1H(X取0)MOV AL,0B1HMOV DX,00C6HOUT DX,AL(2)直接对PC6置1时的控制字为:0XXX1101B,即0DHMOV AL,0DHMOV DX,00C6HOUT
3、 DX,AL直接对PC4置0时的控制字为:0XXX1000B,即08HMOV AL,08HMOV DX,00C6HOUT DX,AL17使用8255A作为开关和LED指示灯的接口。要求8255A的A口连接8个开关,B口连接8个LED(发光二极管),用作指示灯,将A口的开关状态读入,然后送至B口控制指示灯亮、灭。试画出接口电路设计图,并编写程序实现。解:根据要求,设计电路如图所示。用PA7引脚上的开关控制PB7上的LED,PA0引脚上的开关控制PB0上的LED。开关闭合输入低电平,开关打开输入高电平。高电平指示灯亮。A端口地址为8000H,B端口地址为8001H ,C端口地址为8002H ,控制
4、字寄存器地址为8003H(假设未使用的地址线都取0)。控制字:10010000B(C口工作在输出),即90H参考程序:MOV AL, 90HMOV DX, 8003HOUT DX, ALLOOP:MOV DX, 8000HIN AL, DXMOV DX, 8001HOUT DX, ALJMP LOOP+5V8255APA7D0D7PB7PB0A0A1A15A0A1WRRDCSA0驱动电路WRRD3若8253芯片的接口地址为D0D0HD0D3H,时钟信号为2MHz,现利用计数器0、1、2分别产生周期为10us的方波,每隔1ms和10ms产生一个负脉冲,试画出系统的连线图。并写出初始化程序。解:定
5、时器0的计数初值=1010-62106=20,工作在方式3。控制字:00010111(17H)定时器1的计数初值=110-32106=2000,工作在方式2。控制字:01110101(75H)定时器2的计数初值=1010-32106=20000=4E20H,工作在方式2。控制字:10110100(B4H)。初始化程序:MOV AL,17HMOV DX, 0D0D3HOUT DX, ALMOV AL,20MOV DX, 0D0D0HOUT DX, ALMOV AL,75HMOV DX, 0D0D3HOUT DX, ALMOV AX,00HMOV DX, 0D0D1HOUT DX, AL;先送计数
6、值低位MOV AL,20HOUT DX, AL;再送计数值高位MOV AL,0B4HMOV DX, 0D0D3HOUT DX, ALMOV AX,4E20HMOV DX, 0D0D2HOUT DX, AL;先送计数值低位MOV AL,AHOUT DX, AL;再送计数值高位A15A14A13A12A11A10A9A8A7A6A5A4A3A2G1G2AG2BCBAY4A1A0CSA0A1RDWRRDWRD7D0OUT0CLK0GATE0OUT1CLK1GATE1OUT2CLK2GATE2825374LS1384某计算机系统采用8253的计数0作为频率发生器,输出频率500Hz,利用计数器1产生1
7、000Hz的方波,输入的时钟频率为1.19MHz。请问计数器0和计数器1工作在什么方式下?计数初值分别是多少?解:计数器0工作方式2,计数器1工作方式3下。计数0初值=1.19106500=2380计数2初值=1.191061000=11905利用8254的通道1,产生500Hz的方波信号。设输入时钟的频率CLK1=2.5MHz,端口地址为FFA0HFFA3H,试编制初始化程序。解:计数器1工作方式3下。计数1初值=2.5106500=5000控制字:01110111(77H)初始化程序:MOV AL,77HMOV DX, 0FFA3HOUT DX, ALMOV AL,00HMOV DX, 0FFA1HOUT DX, AL ;先送计数值低位MOV AL,50HOUT DX, AL ;再送计数值高位6某系统使用5254的通道0作为计数器,计满1000,向CPU发中断请求,试编写初始化程序(端口地址自设)。解:计数器0工作方式0下。(假设端口地址为FFA0HFFA3H)计数1初值=1000控制字:00110001(31H)初始化程序:MOV AL,31HMOV DX, 0FFA3HOUT DX, ALMOV AL,00HMOV DX, 0FFA1HOUT DX, AL ;先送计数值低位MOV AL,10HOUT DX, AL ;再送计数值高位4