资源描述
. .
第1章
(略)
第2章
(略)
第4章
4. 1. 用下列芯片构成存储系统,各需要多少个RAM芯片?需要多少位地址作为片外地址译码?设系统为20位地址线,采用全译码方式。
(1) 512×4位RAM构成16KB的存储系统;
(2) 1024×1位RAM构成128KB的存储系统;
(3) 2K×4位RAM构成64KB的存储系统;
(4) 64K×1位RAM构成256KB的存储系统;
解:
1) 需要16KB/512×4=64片
片外地址译码需11位地址线。
2) 需要128KB/1K×1=1024片
片外地址译码需10位地址线。
3) 需要64KB/2K×4=64片
片外地址译码需9位地址线。
4) 需要256KB/64K×1位=32片
片外地址译码需4位地址线。
4. 2. 现有一种存储芯片容量为512×4位,若要用它组成4KB的存储容量,需多少这样的存储芯片?每块芯片需多少寻址线?而4KB存储系统最少需多少寻址线?
解:
4KB/ 512×4b= 16,需要16片
每片芯片需9条寻址线
4KB存储系统最少需12条寻址线
4. 3. 有-2732EPROM芯片的译码电路如图所示,请计算该芯片的地址X围及存储容量。
图习 4-1
解:
2732的地址X围为
000~111=FF000H~FFFFFH,
存储容量为4KB。
4. 4. 某一存储器系统如图习4-2所示,回答它们的存储容量各是多少?RAM和EPROM存储器地址分配X围各是多少?
解:
EPROM的地址X围为FD000H~FDFFFH,存储容量为4KB;RAM的地址X围为F9000H~F97FFH或F9800H~F9FFFH,存储容量为2KB。由于A11未参加译码,因而有地址重叠,一个内存单元有2个地址对应。
4. 5. 使用6116、2732和74LS138译码器构成一个存储容量为12KB ROM(00000H~02FFFH)、8KB RAM(03000H~04FFFH)的存储系统。系统地址总线为20位,数据总线为8位。
解:
4. 6. 8086CPU执行MOV[2001]H,AX指令从取指到执行指令最少需要多少时间?设时钟频率为5MHZ,该指令的机器码为4个字节,存放在1000H;2000H开始的4个单元中。
图习 5-2
解:
在无等待周期的情况下,从取指到执行共需:
4×4×1/5M=3.2µs(一个总线周期在无等待周期的情况下由4个时钟周期T组成)。
4.7. 用二片8K×8位的静态RAM芯片6264组成的8位微机系统的存储器电路如图习5-4所示,试计算芯片6264 #1和 #2的地址X围以及存储器的总容量。
图习5-4
解:
芯片 #1的的地址X围计算:
A19 ~ A15 A14 A13 A12 ~ A0
××××× 1 0 0 ~ 0
××××× 1 0 1 ~ 1
当无关项取“0”时,地址X围为04000H~05FFFH
芯片 #2的的地址X围计算:
A19 ~ A15 A14 A13 A12 ~ A0
××××× 0 1 0 ~ 0
××××× 0 1 1 ~ 1
当无关项取“0”时,地址X围为02000H~03FFFH。该存储器的总容量为16KB。
4.8. 微机系统的存储器由5片RAM芯片组成,如图习5-5所示,其中U1有12 条地址线,8条数据线,U2~U5各有10条地址线,4条数据线,试计算芯片U1和U2,U3的地址X围,以及该存储器的总容量。
图习5-5
解:
芯片 U1的的地址X围计算:
A19 ~ A14 A13 A12 A11 A10 ~ A0
0 ~ 0 0 1 0 0 ~ 0
0 ~ 0 0 1 1 1 ~ 1
地址X围为01000H~01FFFH
芯片 U2和U3的的地址X围计算:
A19 ~ A14 A13 A12 A11 A10 A9 ~ A0
0 ~ 0 1 0 0 0 0 ~ 0
0 ~ 0 1 0 0 0 1 ~ 1
地址X围为02000H~023FFH。总容量为6KB(U1为4KB、U2、U3为1KB、U4、U5为1KB)。
第5章
5. 1. CPU同外设交换的信息有三种类型:数据信息、状态信息和控制信息,请说明CPU是如何通过其三总线(地址总线、数据总线和控制总线)同外设交换这三类信息的?
5. 2. 简述查询式数据传送方式的工作过程。
5. 3. 简述中断传送方式的工作过程。
5. 4. 简述三种DMA传送方式的区别。
5. 5. 简述DMA控制器同一般接口芯片的区别。
5. 6. 画出查询传送方式输出数据的流程图
解:
读入状态字 ←←←←←←
↓↑N
检查输出设备是否准备好→
↓Y
数据口输出数据,控制口输出控制信息
5. 7. 通过如图习5-1的电路,可以把I/O指令寻址结构改为存储器映象I/O端口寻址的结构,试计算该电路结构中,I/O端口和存储器的地址X围。并扼要说明二种I/O端口寻址的区别。
图习 5-1 存储器映象I/O
解:
I/O端口的地址X围为:
000B~111B,
F0000H~FFFFFH
存储器的地址X围为:
000B~111B
00000H~EFFFFH
两者区别见教材P.214
5. 8. 图习6-2为一个LED接口电路,写出使8个LED管自左至右依次发亮2秒的程序,并说明该接口属于何种输入输出控制方式,为什么?
图习 6-2 LED接口
解:
控制程序为:
MOV AL,7FH
LOP: OUT 20H,AL
CALL DELAY2S ;调用延时2秒子程序
ROR AL,1
JMP LOP
该接口属无条件传送方式,CPU同LED之间无联络信号,且无中断控制逻辑。LED总是已准备好,可以接收来自CPU的信息。
5. 9. 简要说明8237A三种基本传送类型的特点。
5. 10. 简要说明8237A四种特殊传送类型的特点。
5. 11 图习6-4是一个具有中断功能的输入接口电路,当外设数据准备就绪时,发一个READY的正脉冲,向CPU发中断请求,请分析该电路的工作过程。
图习6-4
解:
该电路工作过程如下:当外设准备好数据后,把数据送入数据寄存器U1,同时发出一个READY正脉冲送到中断请求触发器U3,U3的Q为高电平,送与门3。U2为中断允许触发器,在传送数据前,由CPU对U2初始化,即用MOV AL,01H;OUT Y2,AL使U2的D =“1”,则U3的Q端生成的中断请求信号通过与门3向CPU发出中断请求INTR,CPU若满足中断响应条件,转入中断服务程序,在中断服务程序中用IN AL,Y1指令产生负脉冲,使U1(输入数据寄存器)的OE有效,读入外设送入的数据。
5.12. 具有中断屏蔽的接口电路中的“屏蔽”同“屏蔽中断”中的“屏蔽”是否一回事,若不是,有何区别?
5.13. 8086CPU有哪几种中断?
5.14. 简要说明8086中断的特点?
5.15. 简述8086可屏蔽中断的响应过程。
5.16. 简要说明8259A中断控制器中的IRR、ISR和IMR三个寄存器的功能。
5.17. 中断应答时序如图习5-4所示,说明前后两个INTA周期的任务。
图习 5-4
解:
从图可见,该中断应答时序是8086在最大方式下的总线时序,在两个INTA周期内,LOCK信号有效(低电平),通知其他CPU不能向当前控制总线的CPU发出总线请求RQ / GT信号,以保证中断响应周期完整地执行。
在第一个INTA有效期间,通知8259A,中断请求已被接受;在第二个INTA有效期间,8259A将请求服务的那个设备的中断类型码送上AD7~AD0。
5.18. 有-8086中断电路如图习5-5所示,请回答下列问题:
(1)根据图中给出条件,写出五种内部中断1、2、3、4、5的名称(1、2两项次序不能颠倒);
(2)写出8086三条引脚6、7、8的符号及名称;
(3)写出芯片9的名称,并简述其功能;
图习 5-5
解:
1.为单步中断; 2. 为溢出中断; 3. 为断点中断;
4. 为指令中断; 5. 为除法出错中断; (3~5可互换)
6. 不可屏蔽中断NMI; 7 为可屏蔽中断INTR
8. 为中断应答INTA;
9. 为可编程中断控制器8259,功能见教材P.258
第6章
6. 1. 根据接口电路的功能,简要说明I/O接口电路应包括哪些电路单元?
解:
[教材P.189]
6. 2. 扼要说明8255A工作于方式0和方式1的区别。
解:
[教材P.195]
6. 3. 试说明8255A在方式1输入时的工作过程。
解:
[教材P.196]
6. 4. 试说明8255A在方式1输出时的工作过程。
解:
[教材P.196]
6. 5. 8255A的三个端口在使用时有什么差别?
解:
PA口可工作于方式0、方式1、和方式2
PB口可工作于方式0、方式1
PC口仅可工作于方式0
方式0可工作于无条件传送和查询传送
方式1和2可工作于查询传送和中断传送
6.6. 说明8251A引脚信号中-RTS、-CTS、-DTS和-DSR的作用。
解:
[教材P.227]
6.7. 什么是8251A的方式指令字和命令指令字,对二者在串行通信中写入流程进行说明。
解:
[教材P.229]
6.8. 异步通信中,异步的含义是什么?
解:
这里的异步是指所传送的字符串中,字符之间是异步的,而各字符内各位之间还是同步的。
6.9. 8251A的状态字哪几位和引脚信号有关?状态位TXRDY和引脚信号TXRDY有什么区别?它们在系统设计中有什么用处?
解:
[教材P.228]
6.10. 试说明8251A芯片控制信号CS和C/D的功能。
解:
[教材P.227]
6.11. 8255用作查询式打印机接口时的电路连接和打印机各信号的时序如图习8-2 所示,8255的端口地址为80H~83H,工作于方式0,试编写一段程序,将数据区中变量DATA的8位数据送打印机打印,程序以RET指令结束,并写上注释。
解:打印程序为:
MOV AL,0DH ;置STB为“H”
OUT 83H,AL
PULL:IN AL,82H ;查询BUSY状态
TEST AL,04H
JNZ PULL
MOV AL,DATA ;将DATA送PA口
OUT 80H,AL
MOV AL,0CH ;置STB为“L”
OUT 83H,AL
MOV AL,0DH ;置STB为“H”
OUT 83H,AL ;产生负脉冲选通信号
RET
6.12. 键盘输入信息的过程有哪些?
解
[教材P.206]
6.13. 若用共阴极LED数码管作显示器,它的接口连接图如图习8-3所示。写出显示‘7’的段选码。
解:
共阴极接法,阴极接地,阳极连数据线接”1”,LED显示,”7”的段选码为CBA=111,即 07H。
6.14. 若输入设备输入的ASCII码通过8255A端口B,采用中断方式,将数据送入INBUF为首址的输入缓冲区中,连接输入直到遇到$就结束输入。假设此中断类型码为52H,中断服务程序的入口地址为INTRP。8255A的端口地址为80H~83H。
(1) 写出8255A初始化程序(包括把入口地址写入中断向量表);
(2) 写出完成输入一个数据,并存入输入缓冲区BUF1的中断服务程序。
解:
MOV AL , 84H
OUT 83H, AL
MOV AL, 04H
OUT 83H, AL
MOV [ 4×52H ] , OFFSET INBUF
MOV [4×52H +2 ] , SEG INBUF
STI
…….
INBUF PROC FAR
MOV BX , OFFSET BUF
LOP : IN AL , 81H
CMP AL , ‘ $ ‘
JZ DONE
MOV [ BX ] , AL
INC BX
JMP LOP
DONE :IRET
6.15. 设异步传输时,每个字符对应1个起始位、7个信息位、1个奇/偶校验位和一个停止位,如果波特率为9600b/s,则每秒钟能传输的最大字符数是什么?
解:
9600 /( 1+7+1+1)=960
6.16. 设8251A为异步方式,1个停止位,偶校验,7个数据位,波特率因子为16。请写出其方式字。若发送使能,接收使能,DTR端输出低电平,TXD端发送空白字符,-RTS端输出低电平,内部不复位,出错标志复位。请给出控制字。
解:
方式字为 01111010
控制字为 00101111
6.17. 对8251A进行初始化,要求:工作于异步方式、采用奇校验、指定二个停止位、7位ASCII字符、波特率因子为16;出错指示处于复位状态、允许发送、允许接收、数据终端就绪,不送出空白字符、内部不复位。
解:
设8251A的端口地址为80H和81H
则初始化程序为
MOV AL ,0DAH
OUT 81H , AL
MOV AL , 17H
OUT 81H , AL
6.18. 设计一个采用异步通信方式输出字符的程序段。规定波特率因子为64,7个数据位,1个停止位,用偶校验,端口地址为40H,42H,缓冲区为2000H~3000H。
解:
ADDR8251A EQU 40H
BUF EQU 3000H
……
CLI
XOR AX , AX
MOV DX , ADDR8251A
ADD DX , 2
OUT DX ,AL
OUT DX ,AL
OUT DX ,AL
MOV AL ,40H
OUT DX , AL
MOV AL ,01111011B
OUT DX , AL
MOV AL ,00110001B
OUT DX , AL
MOV AX ,2000H
MOV ES ,AX
MOV SI , BUF
AGAIN : IN ,AL , DX
TEST AL ,01H
JZ AGAIN
MOV AL ,ES:[ SI ]
SUB DX ,2
OUT DX ,AL
6.19. 如果8251A的工作方式寄存器内容为01111011,那么发送的字符格式如何?为了使接收的波特率和发送的波特率分别为300b/s和1200b/s,试问加到-RXC和-TXC上时钟信号的频率应为多少?
解:
方式字为 01111011B,表示8251A设定为异步方式,1位起始位,7位数据位,1位结束位,1位偶校验位,波特率因子为64,若接收和发送的波特率分别为300 b /s 和1200 b / s,则加到RXC和TXC上的时钟频率为300×64和1200×64。
6.20. 一个采用查询传送的输入接口由两个端口组成,一个是数据端口,地址为120H,一个是状态端口,地址为121H,用D7位表示就绪位,外设工作时,已启动外设。 利用上述接口电路从输入设备上输入1000个字节的数据送存储器中BUFFER缓冲区,画出流程图,编写控制程序段。
解:
该控制程序的流程图如图2.34所示。
程序段为:
LEA SI,BUFFER
MOV CX,1000
LOP: MOV DX,121H
LOP1: IN AL,DX
SHL AL,1
JNC LOP1
DEC DX
IN AL,DX
MOV [SI],AL
INC SI
LOOP LOP
HLT
图2.34 控制程序流程图
6.21. 一个采用查询传送的输出接口,其数据端口地址为205H,状态端口地址为206H,外设状态位用D0传送,输出数据时可启动外设,将存储器缓冲区BUFFER中的5000个字节数据输出,画出流程图,编写控制程序段。
解:
该控制程序的流程图如图2.35所示。
程序段为:
MOV SI,OFFSET BUFFER
MOV CX,5000
LOP1:MOV AL,[SI]
MOV DX,205H
OUT DX,AL
INC DX
LOP2:IN AL,DX
SHR AL,1
JC LOP2
INC SI
LOOP LOP1
HLT
图2.35控制程序流程图
6.22. 用一片8255A控制一组红、绿、黄灯,如习图8-8所示,反复检测K1,K2,要求由K1、K2的“闭合”和“断开”控制红、绿、黄三灯的点亮。
当K1合,K2合时,黄灯亮;
K1合,K2断时,红灯亮;
K1断,K2合时,绿灯亮;
K1断,K2断时,黄灯亮;
请编制初始化程序以及控制程序。 习图8-8
已知8255A的端口地址为60H~63H。
解:
初始化程序及控制程序如下:
MOV AL,90H ;初始化
OUT 63H,AL
LOP: IN AL,60H
AND AL,03H
JZ L3 ;K1,K2全合
CMP AL,03H
JE L3 ;K1,K2全断
CMP AL,02H
JE L2 ;K1合,K2断
CMP AL,01H
JE L1 ;K1断,K2合
JMP LOP
L1:MOV AL,02H ;亮绿灯
OUT 62H,AL
JMP LOP
L2:MOV AL,01H ;亮红灯
OUT 62H,AL
JMP LOP
L3:MOV AL,04H ;亮黄灯
OUT 62H,AL
JMP LOP
6.23. 教材图6-19的键盘接口中,若按下4行3列的键,问执行结果BL,BH,CX和AL各为何值?
解:
BL中的内容为键号,4行3列的键号为35, 则BL=35=23H;
BH中的内容为行码为EFH(11101111),但在执行后已指向下一行,故BH=DFH(11011111);
CX中的内容为计数值,扫描4行时CX=4;
AL中的内容为读出之列码,3列为F7H(11110111),但执行结束要循环右移到CF=1为止,此时AL=7FH(01111111)。
6.24. 教材图6-21的8位数字显示器接口图中,若7段LED采用共阴极接法,要求程序不改变,硬件线路应作何变动?
解:
为使程序不改变,硬件连接可作如下改动:8个数码管的共阴极分别通过缓冲器同PA口连接,而每个阳极经过反相器同PB口的各位相连。当选择PA口送出的位选码为“0”时,如果PB口送出的段选码为“0”,则对应的发光管就发光,这同原来的共阳接法一样。
6.25. 习图6-4为一微机系统的结构框图,#1、#2、#3是CPU总线,其中 #3为控制总线,h为M/-IO信号。试分析该结构框图,说明 #1、#2各为何种总线,a~g各为何种信号,U1~U9为何种器件?
习图8-12
解:
该微机系统由RAM、ROM、键盘、显示器、打印机及其接口组成。
①CPU三总线中已知 #3为控制总线,#1与 #2中 #2是双向总线,因此为数据总线;#1为地址总线。
②信号h接U1的控制端G,h经反相后接U2的控制端G,h为M/IO,U1,U2为地址译码器,其中U1供上部I/O接口的地址译码,U2供下部存储器的地址译码。U3为键盘接口是输入接口应为三态缓冲器,U4,U5分别是显示器接口和打印机接口是输出接口,应为锁存器。U6,U7的数据线为双向线,应为RAM,而U8,U9的数据线为输出线,应为ROM。
③信号a,f,g为RD信号,b,c为WR信号,d,e为RD或WR信号。
6.26. 8086CPU通过8255A同发光二极管L0~L7以及开关S0~S7的接口电路如习图6-5所示,发光二极管L0~L7不断显示对应开关S0~S7的通断状态。要求:(1)S0~S7的状态每隔半分钟改变一次,把每次变化的状态记录在从2000H:1000H开始的内存单元中;(2)S接通时,对应的L熄灭,S断开时,对应的L发亮(即S0断开,L0发亮;S0接通,L0熄灭);(3)连续工作24小时结束。
用8086汇编语言编写的控制程序如下,请填上程序中空缺的部分(包括指令、操作数或标号,初始化时无关项置“0”)。
START:MOV AL,⑴ ;初始化
MOV DX,⑵
⑶ DX,AL
MOV AX,⑷
MOV DS,AX
LOP: MOV CX,⑸ ;工作24小时
LOP1: MOV BX,⑹
LOP2: MOV DX,⑺ ;读PA口
⑻ AL,DX
MOV [BX],AL ;存S7~S0
INC ⑼
XOR AL,⑽ ;写PB口
MOV DX,⑾
⑿ DX,AL
⒀
⒁
CALL DELAY30S
⒂
⒃
LOOP ⒄
HLT
8255A的方式控制字如下:
延时半分钟子程序:
DELAY30S PROC
MOV BX,3000
DELAY: MOV CX,2801
WAIT: LOOP WAIT
DEC BX
JNZ DELAY
RET
DELAY30S ENDP
1
D6
D5
D4
D3
D2
D1
D0
D0— PC3~0
D1— PB 0 — 输出;
D2 — PC7~4 1— 输入
D4— PA
D3— PB工作方式,0=方式0,1=方式1
D5D6— PA工作方式,00=方式0,01=方式1,10=方式2
习图6-5
解:
①8255A端口地址计算:
A8A7A6A5A4A3A2A1A0
1 0 1 1 1 0 0 ××
端口地址为170H~173H
②8255A初始化:
MOV AL,10010000B ;PA口工作于方式0,输入
MOV DX,173H ;PB口工作于方式0,输出
OUT DX,AL
③开关状态记录存放在内存2000H:1000H开始的内存单元中,必须对DS赋值,指令为
MOV AX,2000H
MOV DS,AX
④开关状态每隔半分钟改变一次,控制电路连续工作24小时,则采样次数为24小时/0.5分钟 = 24×60/0.5=2880次。
⑤要求开关S接通,对应灯熄灭,开关S接通时输入“0”,而灯熄灭要求输出“1”,因此必须将PA口读入内容取反后输出到PB口。
⑥调用子程序前必须保护现场,返回子程序前必须恢复现场。这里的现场即子程序中所用到的寄存器。
⑦则答案应为
⑴ 90H ⑽ 0FFH
⑵ 173H ⑾ 171H
⑶ OUT ⑿ OUT
⑷ 2000H ⒀ PUSH BX
⑸ 2880 ⒁ PUSH CX
⑹ 1000H ⒂ POP CX
⑺ 170H ⒃ POP BX
⑻ IN ⒄ LOP2
⑼ BX
第7章
7.1. 说明8253-5的方式2与方式3的工作特点。
解:
可输出重复波形,既可软件触发启动,又可硬件触发启动。
7.2. 说明8253-5的方式1与方式5的工作特点。
解:
只能采用硬件触发启动。
7.3. 8253-5在写入计数初值时,二进制计数和十进制计数有无区别?若有,有何区别?
解:
采用二进制计数时,将计算所得的数值采用二进制、十进制或十六进制表示都可以,例如计数初值为50,可写成50、32H或00110010B都可;
采用十进制计数时,必需将计算所得的数值写成BCD码表示,例如, 计数初值为50,必需写成50H。
7.4. 定时器8253通道0按方式3(方波发生器)工作,时钟CLK0的频率为1MHZ,要求输出方波的频率为40KHZ,此时写入的计数初值应为多少?输出方波的“1”和“0”各占多少时间。
解:
计数初值为fCLK0 / fOUT0 = 1MHz / 40KHz = 25
方波的 ’1’ 占13μs, ‘ 0 ‘占12μs
7.5. 定时器8253输入时钟频率为1MHZ,并设定为按BCD码计数,若写入的计数初值为0080H,则该通道定时时间是多少?
解:
80μs:(TCLK = 1 / 1MHz =1μs )
7.6. 试编程,将8253计数器0设置为模式1,计数初值为3000H,计数器1设置为模式2,计数初值为2010H;计数器2设置为模式4,计数初值为4030H。
解:
0通道方式1
n0 = 3000H
1通道方式2
n1 = 2010H 图习 8-3
2通道方式4
n3 = 4030H
MOV AL , 22H (00110010B)
OUT 83H , AL
MOV AL , 30H
OUT 80H , AL
MOV AL , 74H (01110100B)
OUT 83H , AL
MOV AL , 10H
OUT 81H , AL
MOV AL , 20H
OUT 81H , AL
MOV AL , 0B8H (10111000B)
OUT 83H , AL
MOV AL , 30H
OUT 82H , AL
MOV AL , 40H
OUT 80H , AL
7.7. 8253-5的计数通道0连接如图习7-7,试回答
(1) 计数通道0工作于何种工作方式,并写出工作方式名称
(2) 写出计数通道0的计数初值(要列出计算式)
图习 7-1
解:
方式2,频率发生器
n0 = 1ms / 400ms = 1ms / 0.4 = 2500
7. 8. 若用8253计数器对设备的转轴的旋转速度进行测试,接口电路如图习7-2 所示。从图可知,若与轴相连的转盘上均匀地钻有每圈50个孔,当轴旋转时,通过光电转换,每通过一个小孔,产生一个正脉冲,当轴旋转一圈,就会有50个脉冲通过CLK输入8253计数器进行减法计数,若假设此转轴的转速X围在50~1000转/秒,并设8253的端口地址为84H~87H。习 7-2
(1) 若采用定时测试已转换过的脉冲个数而转换为测试转轴的转速,单位为转/秒。说明它的计算过程?
(2) 若用计数器0对脉冲计数,用计数器1作为定时器,设它的CLK1,频率为200KHZ,用定时100ms来计数。写出计数器0、1的工作方式控制字的计数初值,并注释?写出8253的初始化程序?
解:
(1) 若在定时T时间间隔内,测得计数脉冲个数为n,由于旋转一圈有50个脉冲,所以在T时间内旋转n / 50T (转 / 秒)。
(2)计数器0作为对脉冲个数计数,可以采用方式0,计数初值可设置为最大值0000H,因为可测的转速X围为50~1000转 / 秒,即2500~50000个脉冲 / 秒,按题意,采用100ms定时采集,脉冲个数也在250~5000之间,因此,采用BCD码,从10000开始减法计数。
计数器1作为100ms定时器,由它的OUT1作为定时中断请求,可设置为方式2,因为定时时间间隔T=NT0, N=T/T0
按题意:T = 0.1秒, f0=200×103,所以N=20000。
计数器0的工作方式控制字为:00110001B (31H)
计数初值N0=0000H,即10000
计数器0的工作方式控制字为:01110100B (74H)
计数初值N1=20000H,即4E20H
8253初始化程序
MOV AL , 31H
OUT 87H , AL
MOV AL , 00H
OUT 84H , AL
OUT 84H , AL
MOV AL , 74H
OUT 87H , AL
MOV AL ,20H
OUT 85H , AL
MOV AL , 4EH
OUT 85H , AL
7.9习图8-9为采用8253-5产生定时中断信号. 36. 习图8-9为采用8253-5产生定时中断信号,送8259A的IR2,已知fCLK=1MHz要求每隔1小时发出一个中断请求,IR2的中断类型号为0AH,中断服务程序的人口地址为INTER,8253-5的端口地址为180H~183H,试编制8253-5的初始化程序,并把中断服务程序的人口地址送入中断向量表。
解:
本题采用2个计数通道串联使用,要求两个计数通道的计数初始乘积为: n0×n1=TOUT1/TCLK0
TCLK0=1/fCLK0=1/1MHz=1ms
n0×n1=3600s/1ms=36×108,可选取n0×n1=6×104。因为n0和n1大于10000,必需采用二进制计数。为方便起见,设定二个计数通道都工作于方式2。
8253初始化程序为:
MOV AL,00110100B ;通道0初始化
MOV DX,183H
OUT DX,AL
MOV AL,01110100B ;通道1初始化
OUT DX,AL
MOV AX,60000 ;通道0写入计数初值
MOV DX,180H
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,181H ;通道1写入计数初值
MOV AX,60000
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV AX,0000H ;ES指向0000H(中断向量表首地址在00000H)
MOV ES,AX
MOV DI,4×0AH ;DI指向IR2的中断向量地址指针
CLD
MOV AX,OFFSET INTER;偏移量写入中断向量表
STOSW
MOV AX,SEG INTER ;段基值写入中断向量表
STOSW
HLT
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的时钟频率为2MHz,其口地址为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初始化
MOV DX,343H
OUT DX,AL
MOV AX,40000
MOV DX,340H
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV AL,01100111 (67H);通道1初始化
MOV DX,343H
OUT DX,AL
MOV AL,20H
MOV DX,341H
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
中断服务程序: 习图7-4
INTROUT SEGMENT AT 1480H (11)
ORG 3000H (12)
ROR AL,1 (13)
OUT 60H,A
展开阅读全文