微型计算机习题解答(6)

2019-07-13 17:43

STOSW MOV STOSW HLT

AX,SEG INTER ;段基值写入中断向量表

7.108253-5的通道0按方式3工作,时钟CLK0的频率为1MHz,要求输出方波的重复频率为40KMHz,此时应如何写入计数值。 解:

通道0 方式3 fCLK0 =1MHz fOUT0=40KHz n0 = fCLK0 / fOUT0 = 1MHz / 40KHz = 25

MOV AL , 00010111 (17H) OUT 83H , AL MOV AL , 25H OUT 80H , AL

( 设8253的端口地址为80H~83H )

7.11设8253-5与8086相连,8253-5的时钟频率为2 MHz,其口地址为340H~343H,通道0工作于定时方式,要求每20 ms向8086发出一中断请求信号,通道1要求输出频率为1000 Hz的方波,请编写初始化程序。 解:

8253的端口地址为340H~343H , fCLK=2MHz ,TCLK = 0.5μs 8253计数器0: TOUT0 = 20ms

计数器1:fCLK1=1KHz TOUT1 = 1ms

n0 = TOUT0 / TCLK0 = 20ms / 0.5μs = 40000 n0 = TOUT0 / TCLK0 = 1ms / 0.5μs = 2000

MOV

AL,00110100B (34H) ;通道0初始化 DX,343H DX,AL AX,40000 DX,340H DX,AL AL,AH DX,AL

AL,01100111 (67H);通道1初始化

MOV OUT

MOV

MOV OUT

MOV

OUT

MOV

26

MOV OUT

DX,343H DX,AL AL,20H DX,341H

MOV

MOV

OUT DX,AL

7.128255A的PA口写8个LED管连接如习图7-4,用8253作定时器控制8个LED管自下向上闪动,8253连接如习图7-5,闪动频率为每秒10次(即每秒钟每个LED管亮10次),8253三个计数通道和控制字寄存器的地址为40H~43H,8255A的端口地址为60H~63H,其控制程序如下: 主程序 … MOV AL,80H (1) OUT 63H,AL (2) MOV AL,34H (3) OUT 43H,AL (4) MOV AL,0A8H (5) OUT 40H,AL (6) MOV AL,61H (7) OUT 40H,AL (8) MOV AL,7FH (9) OUT 60H,AL (10) STI

LOP: HLT

JMP LOP 中断服务程序: INTROUT SEGMENT AT 1480H (11) ORG 3000H (12) ROR AL,1 (13) OUT 60H,AL (14) IRET (15) 试问:(1)从程序中给出的数据,计算8253中CLK0 的时钟周期TCLK0,以及该控制程序中所使用的中断服务程

序的中断类型号n的值,中断向量表见习图7-6。

(2)若闪动频率改为1分钟1次,且为自上到下闪动, 可采用如习图7-7所示的串接形式,中断类型为(1)中 8-15

习图7-4

习7-5图

27

计算值加1,请对程序作最小程度的更改,以满足上述要求(计数通道0工作不变)。

习图7-6 习图7-7

解::

(1)从主程序看,计数初值为61A8H=25000 n0 = Tout0 / TCLK0, TCLK0= Tout0 / n0 Tout0 = 1/10s÷8 = 12.5 ms fCLK0 = 1/TCLK0 = 2MHz

从中断服务程序看,中断向量为1480H:3000H,查中断向量表得中断向量的表指针为00034H,00034H/4=13=0DH(中断类型号)。这里必须指出中断向量的高8位1480H存在表内高地址,低8位3000存在表内低地址,因此所查中断向量从低地址到高地址为00H,30H,80H,14H。

(2)闪动频率改为1分钟1次即60秒内8个LED各亮1次。每管亮60秒/8 = 7.5秒

TCLK1=TOUT0=12.5ms,TOUT1=7.5s n1=TOUT1/TCLK1=7.5s/12.5ms=600=0258H

在主程序中指令(8)与指令(9)之间插入对计数通道1的初始化程序:

TCLK0 = Tout0 / n0 = 12.5 ms / 25000 = 0.5μs

MOV OUT

AL,74H 43H,AL AL,58H 41H,AL

28

MOV OUT

MOV OUT

AL,02H 41H,AL

AL,FEH

指令9 MOV AL,7FH改为MOV

据题意此时中断类型号为上一小题的ODH+1=0EH,0EH×4=38H,查表得中断向量为3000:1480H。

7.13让8253计数器0在1ms脉冲信号源作CLK0且工作在方式3定时1分钟,

用8255的PC6提供GATE0,在定时期间,由PC7控制的灯亮(PC7=1,亮),对OUT0的检测通过PC0进行,定时结束灯灭,先画出脉冲信号源、8253、8255的连接关系图,再编写程序段。(8253,8255采用PC机上的端口地址) 解:

(1) ①连接图见图2.39 ( 图中电阻R接PC7 )

图2.39

②程序段:

MOV OUT

AL,81H ;8255方式字 63H,AL

AL,36H ;8253计0初始化 43H,AL AL,60H 40H,AL AL,0EAH 40H,AL

MOV OUT

MOV OUT

MOV OUT

29

MOV OUT

AL,0DH ;GATE0=1 63H,AL

AL,0FH ;灯亮 63H,AL

AL,62H ;等待半分钟高电平结束 AL,1 LOP1

AL,62H ;等待半分钟低电平结束 AL,1 LOP2

AL,0EH ;灯灭 63H,AL

MOV OUT

LOP1: IN

SHR JC

LOP2: IN

SHR JNC

MOV OUT HLT

7.14. 有个1μs的脉冲信号源送8253的计数器1利用软件方式扩大定时1秒,每秒钟从8255的PA口读入一组开关数并送PB口的LED管显示,设8253,8255的端口地址分别为40H~43H,60H~63H且只用10条地址线(A0~A9)用于端口译码。

(1)请完成①画出脉冲信号源与8253,8255以及开关组和LED管之间的连接关系; ②写出8253和8255的-CS的表达式;

③画出8253和8255的-CS的逻辑电路。 (2)编写程序段:

① 编写对8253计数器1初始化程序段(仅50ms); ② 编写对8253的初始化程序以及一秒到后从PA口读入一个字节开关数并送PB口显示的程序段。

解:

① a. 连接图见图2.39

30


微型计算机习题解答(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第一单元小数除法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: