教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

微机原理补充习题(4)

来源:网络收集 时间:2026-09-05
导读: 8284APCLKREADYRESETCLKD0~D7WRRDA2A1D0~D7WRRDA1A0CLK1GATE1OUT11kHZ示波器或其他波形接收器8086CPUINTRA7A6A5A4A3A0M/IO&≥1CSCLK2GATE2OUT2CLK0GATE0OUT0IR0...IR2...8253外部事件发生源8259A 图中,8253的数据

8284APCLKREADYRESETCLKD0~D7WRRDA2A1D0~D7WRRDA1A0CLK1GATE1OUT11kHZ示波器或其他波形接收器8086CPUINTRA7A6A5A4A3A0M/IO&≥1CSCLK2GATE2OUT2CLK0GATE0OUT0IR0...IR2...8253外部事件发生源8259A

图中,8253的数据线与8086CPU的低8位数据线相连,因此,要求8253的4个端口都必须为偶地址(A0=0)。所以8253的A1、A0与8086CPU的A2、A1相连,而8086CPU的引脚A0应固定为0参加高位地址译码,译码器产生片选信号给8253的CS,从而保证CPU访问8253端口地址为偶地址。假设8253的地址为70H、72H、74H、76H,系统中8259A的地址为20H、22H。

由图中各计数器外部连接以及系统对8253的要求,列出各计数器的工作见下表: 计数器 0 1 2 工作方式 方式0计数 方式3 方式2定时 输入CLK 外部源 时钟脉冲(2.5MHZ) 输出OUT 方波(1KHZ) GATE 1 1 计数值 32H 09C4H 1000 方式控制字 00010000 01110110 10100101 接8259A的IR0 1 方波(1KHZ) 接8259A的IR2 初始化程序段如下: CCC SEGMENT

ASSUME CS:CCC ST: MOV DX,76H

MOV AL,10H ;设置计数器0方式控制字 OUT DX,AL

MOV DX,70H

MOV AL,32H ;计数值写入计数器0 OUT DX,AL MOV DX,76H

MOV AL,76H ;设置计数器1方式控制字 OUT DX,AL MOV DX,72H

MOV AX,09C4H ;计数值写入计数器1 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,76H

MOV AL,0A5H ;设置计数器2方式控制字 OUT DX,AL MOV DX,74H

MOV AL,10H ;计数值写入计数器2 OUT DX,AL

MOV DX,20H ;8259A初始化,定义计数器0、2的中断类型码

MOV AL,13H ;为50H和52H,屏蔽除IR0和IR2外的所有中断 OUT DX,AL MOV DX,22H MOV AL,50H OUT DX,AL MOV AL,01H OUT DX,AL MOV AL,0FAH OUT DX,AL

DONE: STI ;开中断

· · ·

JMP DONE

CCC ENDS

END

另外,本例中为列出的两个中断服务程序:一是对计数器0发出的计数到中断进行处理;二是对计数器2发出的定时1s到中断进行处理,应视具体问题而编制程序。

2、 在8088系统中,用8253监视一个生产流水线,每通过100个工件,扬声器响5s,频率为2KHZ。

解:图为8253与该设备的连接示意图。图中工件从光源与光敏电阻之间通过时,晶体管的发射极上会产生一个脉冲,将次脉冲作为计数器0的输入脉冲CLK,当计数器0计数满100时,由OUT0输出负脉冲作为8253的一个中断请求输入(如接IR2),手动开关或继电器用于允许或停止计数。在中断服务程序中,启动8253计数器1工作,由OUT1连续输出2000HZ的方波,持续5s后,由8255A的PA0控制停止工作。

+5V工作光源CLK0光敏电阻GATE0+5V8253OUT0CLK1GATE1OUT1手动开关或继电器接8259A的IR22.5MHZ接8255A的PA0 驱动器扬声器

由上述要求,设置计数器0工作于方式2完成计数功能,计数值为100=64H,产生的中断接8259A的IR2。设置计数器1工作于方式3完成输出方波,输入时钟脉冲CLK为2.5MHZ,输出的方波频率为2KHZ,因而计数值为:

计数值=定时时间/输入时钟脉冲周期=(1/2KHZ)/(1/2.5MHZ)=1250=04E2H 设8253各端口地址分别为60H、62H、64H、66H。8255A端口A地址为80H,8259A的偶地址端口为20H。8253的初始化程序及中断服务程序如下: C_SEG SEGMENT

ASSUME CS:C_SEG · · ·

;8253初始化

MOV AL,14H ;设置计数器0的方式控制字 OUT 63H,AL

MOV AL,64H ;计数值写入计数器0 OUT 60H,AL

STI ;开中断

DONE: HLT ;等待中断

JMP DONE

;8253中断服务程序

MOV AL,01H ;计数器1的GATE1置1,允许计数 OUT 80H,AL

MOV AL,76H ;设置计数器1方式控制字 OUT 63H,AL

MOV AX,04E2H ;计数值写入计数器1 OUT 61H,AL MOV AL,AH OUT 61H,AL

CALL DL5s ;调用延时5s子程序

MOV AL,0 ;计数器1的GATE1置0,停止计数 OUT 80H,AL MOV AL,20H OUT 20H,AL IRET

C_SEG ENDS END

此程序中,未写出8259A的初始化程序及8255A的初始化程序。

3、 选用ADC0809采样8个模拟量,用中断方式读取转换结果并存入内存BUF开始的缓冲区。

解:ADC0809与CPU的连接应注意的几个方面:

1)数字线的连接 ADC0809芯片内部带有输出锁存器,因此可直接与CPU数据总线连接也可通过I/O接口芯片连接,本例采用直接与CPU相连的连接方式。

2)启动转换 ADC0809的启动信号START为脉冲信号,将其与地址锁存信号ALE连在一起,由执行输出指令时产生的IO/M、WR、地址译码输出信号组合启动。

3)多模拟输入通道选择 ADC0809有8个模拟输入通道,可由数据线或地址线给出通道选择信号,本例由CPU地址的低3位给出。

4)转换结束 转换结束可通过定时读取、查询、中断方式获得转换结果,本例将ADC0809的转换结束信号EOC作为中断请求信号送人8259A的中断请求输入端。在中断服务程序中通过执行输入指令时产生的M/IO、RD、地址译码输出信号读取转换结果。

ADC0809与8086CPU直接连接的示意图如图所示。

系统时钟D0~D7WRRDA3A2A1M/IOA7A6A5A4分频CLK D0~D7STARTALEADC0809OEADDCADDBADDAIN.7IN0..≥1≥1...EOC11≥18259A的IRi

设8259A的端口地址为20H、22H,且8259A的初始化在主程序中已设置。主程序中与A/D转换有关的程序段:

·

· · STI

LEA SI,BUF MOV CX,8 MOV DX,50H

OUT DX,AL ;启动转换 · · ·

A/D转换的中断服务程序:

IN AL,DX MOV [SI],AL INC SI LOOP NEXT

JMP DONE ;8次转换结束,停止转换

NEXT: INC DX

INC DX ;启动下一通道的转换

OUT DX,AL

DONE: MOV AL,20H

OUT 20H,AL IRET

4、 利用8255A作为打印机、纸带读入机的接口。

打印机上两个控制、状态信号:

DATA STORBE数据选通信号,输入低电平有效。有效时,通知打印机接受数据线上的数据。可作为8255A输出给外设的选通信号。

BUSY 打印机“忙”信号,输出,高电平有效。有效时,表示打印机忙(正在输出数据),不能接收新数据。 纸带读入机上也有两个控制、状态信号:

DRIVE RIGHT纸带机的驱动信号,有效时驱动纸带读入机前进一步,并读入一个字符。可作为8255A输给外设的启动信号。

DATA READY数据准备就绪信号,输出。有效时,表示纸带读入机已准备好输入了。

解:8255A选用方式0查询 …… 此处隐藏:2605字,全部文档内容请下载后查看。喜欢就下载吧 ……

微机原理补充习题(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/436117.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)