汇编与接口 第六章作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P327页
15.8255A有哪几种工作方式,对这些工作方式有什么规定?
答:8255A有三种工作方式。分别是方式0(基本的输入输出方式);方式1(选通的输入输出方式);方式2(双向传输方式)。
方式0:不需要应答联络信号。A、B、C口都可以工作在方式0。
方式1:选通的输入输出方式,只有A、B端口可以工作在方式1,C端口作为A、B端口的应答信号。而且是单向的,作为输入端口,就不能做输出端口,作为输出端口就不能做输入端口。
方式2:双向传输方式,只有A端口可以工作在方式2,C端口做为A端口输入输出时的应答信号,可以工作在输入,也可以工作在输出。
16.假设8255A端口地址为00C0~00C6H,要求:
(1)对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,0B1H
MOV DX,00C6H
OUT DX,AL
(2)直接对PC6置1时的控制字为:0XXX1101B,即0DH
MOV AL,0DH
MOV DX,00C6H
OUT DX,AL
直接对PC4置0时的控制字为:0XXX1000B,即08H
MOV AL,08H
MOV DX,00C6H
OUT DX,AL
17.使用8255A作为开关和LED指示灯的接口。要求8255A的A口连接8个开关,B口连接8个LED(发光二极管),用作指示灯,将A口的开关状态读入,然后送至B口控制指示灯亮、灭。试画出接口电路设计图,并编写程序实现。
解:根据要求,设计电路如图所示。用PA7引脚上的开关控制PB7上的LED,PA0引脚上的开关控制PB0上的LED。开关闭合输入低电平,开关打开输入高电平。高电平指示灯亮。A端口地址为8000H,B端口地址为8001H ,C端口地址为8002H ,控制字寄存器地址为8003H(假设未使用的地址线都取0)。
控制字:10010000B(C口工作在输出),即90H
参考程序:
MOV AL, 90H
MOV DX, 8003H
OUT DX, AL
LOOP: MOV DX, 8000H
IN AL, DX
MOV DX, 8001H
OUT DX, AL
JMP LOOP
3.若8253芯片的接口地址为D0D0H~D0D3H,时钟信号为2MHz,现利用计数器0、1、2分别产生周期为10us的方波,每隔1ms和10ms产生一个负脉冲,试画出系统的连线图。并写出初始化程序。
解:定时器0的计数初值=10×10-6×2×106=20,工作在方式3。控制字:00010111(17H)定时器1的计数初值=1×10-3×2×106=2000,工作在方式2。控制字:01110101(75H)定时器2的计数初值=10×10-3×2×106=20000=4E20H,工作在方式2。控制字:10110100(B4H)。
初始化程序:
MOV AL,17H
MOV DX, 0D0D3H
OUT DX, AL
MOV AL,20
MOV DX, 0D0D0H
OUT DX, AL
MOV AL,75H
MOV DX, 0D0D3H
OUT DX, AL
MOV AX,00H
MOV DX, 0D0D1H
OUT DX, AL ;先送计数值低位
MOV AL,20H
OUT DX, AL ;再送计数值高位
MOV AL,0B4H
MOV DX, 0D0D3H
OUT DX, AL
MOV AX,4E20H
MOV DX, 0D0D2H OUT DX, AL ;先送计数值低位 MOV AL,AH OUT DX, AL ;再送计数值高位
4.某计算机系统采用8253的计数0作为频率发生器,输出频率500Hz ,利用计数器1产生1000Hz 的方波,输入的时钟频率为1.19MHz 。请问计数器0和计数器1工作在什么方式下?计数初值分别是多少?
解:计数器0工作方式2,计数器1工作方式3下。
计数0初值=1.19×106
÷500=2380
计数2初值=1.19×106
÷1000=1190
5.利用8254的通道1,产生500Hz 的方波信号。设输入时钟的频率CLK1=2.5MHz ,端口地址为FFA0H~FFA3H ,试编制初始化程序。 解:计数器1工作方式3下。
计数1初值=2.5×106
÷500=5000 控制字:01110111(77H ) 初始化程序:
MOV AL,77H
MOV DX, 0FFA3H OUT DX, AL MOV AL,00H
MOV DX, 0FFA1H OUT DX, AL ;先送计数值低位 MOV AL,50H
OUT DX, AL ;再送计数值高位
0 0 0 1 1 1
2 2 2
6.某系统使用5254的通道0作为计数器,计满1000,向CPU发中断请求,试编写初始化程序(端口地址自设)。
解:计数器0工作方式0下。(假设端口地址为FFA0H~FFA3H)
计数1初值=1000
控制字:00110001(31H)
初始化程序:
MOV AL,31H
MOV DX, 0FFA3H
OUT DX, AL
MOV AL,00H
MOV DX, 0FFA1H
OUT DX, AL ;先送计数值低位
MOV AL,10H
OUT DX, AL ;再送计数值高位