MOV AH, 02H MOV DL, ' ' INT 21H POP AX RET
INPUT ENDP
OUTPUT PROC
PUSH AX PUSH DX PUSH CX
MOV AH, 02H MOV DL, ' ' INT 21H MOV DL, BH OR DL, 30H MOV AH, 02H INT 21H MOV DL, BL MOV CL, 04H SHR DL, CL OR DL, 30H MOV AH, 02H INT 21H MOV DL, BL AND DL, 0FH OR DL, 30H MOV AH, 02H INT 21H POP CX POP DX POP AX RET
OUTPUT ENDP CODE ENDS
END START
;显示空格
;显示空格
;显示进位位
;进位位转换为ASCII码
;显示求和结果高位
;结果高位转换为ASCII码
;显示求和结果低位 ;结果低位转换为ASCII码
16. 比较变量x、y的大小使用16进制的形式在屏幕上输出较大的值,若x=y,
则输出字符串‘EQUAL’。 17. 请用字程序结构编写如下程序:从键盘输入一个二位十进制数的月份数(01~12),然后显示出相应的英文缩写名。 18. 在ARRAY数组中,保存一个从大到小顺序排列的以字为单位的字符数组,数组长度存放于数组的第一个单元中。从键盘接受一个字符,在数组中查找
在字符,若找到,则使CF为1。并在SI中保存该字符数组中的偏移地址;若找不到,则提示继续输入字符,直至在ARRAY数组中找到该字符为止。 19. 从键盘输入一串字符,并在显示屏上显示出来。要求用DOS中断的09功能。 20. 在磁盘中建立一个文件,并显示完成的结果,假设BUF1中存放正常信息,
BUF2中存放错误信息。
第 8 章 计数器/定时器与DMA控制器
1. 微机系统中的外部定时有哪两种方法?其特点如何?(硬件定时和软件定
时) 2. 8253计数/定时器有哪些特点? 3. 8253初始化编程包括哪两项内容?
答:设定方式控制字和计数初始值。
4. 8253有哪几种工作方式?区分不同工作方式的特点体现在哪几方面? 5. 设8253芯片的计数器0、计数器2和控制口地址分别为04B0H、04B4H、
04B6H。定义计数器0工作在方式3,CLK0为5MHz,要求输出OUT0为1KHz方波;定义计数器2用OUT0作计数脉冲,计数值为1000,计数器计到0时向CPU发出中断请求,CPU响应这一中断请求后继续写入计数值1000,开始重新计数,保持每一秒钟向CPU发出一次中断请求。试写出对8253的初始化程序,并画出硬件连接图。 答:硬件连接图如下页所示:
8253的初始化程序段如下: INIT8253: MOV DX, 04B6H ;控制口
MOV AL, 37H ;计数器0方式3 OUT DX, AL
MOV DX, 04B0H ;计数器0
MOV AX, 5000H ;计数值=5MHz/1kHz=5000 OUT DX, AL MOV AL, AH OUT DX, AL
MOV DX, 04B6H ;控制口
MOV AL, 0B5H ;计数器2方式2 OUT DX, AL
MOV DX, 04B4H ;计数器2 MOV AX, 1000H ;计数值1000 OUT DX, AL MOV AL, AH
OUT
D7~D0 S2 S1 S0 INTR 8086CPU A9 A8 A10 A6 A7
DX, AL
D7~D0 WR 8259 1Hz IR RD IOWC IORC INTA 8253 OUT2 CLK0 OUT0 GATE0 GATE2 CLK2 5MHz +5V 或门 7432 7400 G2A Y0 74LS138 G2B G1 C Y5 B Y6 6. 将8253计数器0设为方式3(方波发生器),计数器1设为方式2(分频器)。
要求计数器0的输出脉冲作为计数器1的时钟输入,CLK0连接总线时钟4.77MHz,定时器1输出OUT1约为40HZ,试编一段程序。设8253端口地址为:40H~43H。
答:程序段如下:计数值 = 4.77MHZ÷40Hz =119250 = 2385×50 INIT8253: MOV AL, 37H ;计数器0方式字
OUT 43H, AL ;控制口
MOV AX, 2385H ;计数器0计数值 OUT 40H, AL MOV AL, AH OUT 40H, AL
MOV AL, 55H ;计数器1方式字 OUT 43H, AL ;控制口
MOV AL, 50H ;计数器1计数值 OUT 41H, AL 7. 某8086系统中包含一片8253芯片,要求完成如下功能:
(1) 利用技术器0完成对外部事件计数功能,每计满100次向CPU发出中断请求;
(2) 利用技术器1产生频率为1kHz的方波(计数输入脉冲为2.5MHz); (3) 利用技术器2输出1s定时信号? 8. 什么是DMA传送方式?为什么DMA方式能实现高速传送? 9. 说明DMA控制器应具有什么功能?
10. 8237A有哪些内部寄存器?各有什么功能?初始化编程要对哪些寄存器进行
预置?
11. 分述8237A单字节传送(每次DMA操作只操作,即发送出一次总线请求,
DMAC占用总线后,进入DMA周期,只传送一个字节数据,便释放总线)、数据块传送(只要DMA传送一开始,DMAC始终占用总线,直到数据传送结束或校验完毕或检索到匹配字符,才把总线控制权还给CPU)、请求传送(DMAC控制总线以后,每传送完一个字节,都由DMAC检测外设是否有继续传送的要求,如果有,继续传送数据,如果没有则释放总线,继续检测外设的传送要求,直到外设重新有了利用DMAC传送数据的要求时,再申请总线)三种工作方式的传送过程。 12. 简要说明8237A的初始化步骤。
13. 假设利用8237A通道1在存储器的两个区域BUF1和 BUF2间直接传送100
个数据,采用连续传送方式,传送完毕后不进行自动预置,试写出初始化程序。 14. 设8237A的端口地址为00H~0FH,通道0的页面寄存器地址为87H,使通
道0工作在成组方式,地址增变化,自动预置功能,把从内存25000H开始的1024字节传送给外设端口。DACK为高电平有效,DREQ为低电平有效,固定优先级,正常时序,不扩展写信号,非存储器到存储器传送。试设计8237A的初始化程序。
第 9 章 并行接口与串行接口
1. 可编程并行接口芯片8255A面向I/O设备一侧的端口有几个?其中C口的使
用有哪些特点? 2. 试分别说明可编程并行接口芯片8255A的方式控制字和置位/复位字的作用
及其格式中每位的含义是什么? 3. “由于8255A的端口C按位置位/复位控制字是对C口进行操作,所以可以写
到C口”,这句话对吗?为什么? 答:(1)、不对!
(2)、因为该控制字按规定只能写入控制口,而且D7=0。 4. 如何对8255A进行初始化编程?
答:通过向8255A控制口设定方式选择控制字来进行初始化编程。方式选择
控制字的格式如下页图所示: 5. 可编程并行接口芯片8255A有哪几种工作方式?各自的特点何在?
1 D6 D5 D4 D3 D2 D1 D0 方式选择控制 字的标识位 00—方式0 01—方式1 1x—方式2
A组方式选择 端口A 1—输入 0—输出 PC3~PC0:1—输入,0—输出 端口B:1—输入,0—输出 B组方式选择:0—方式0,1—方式1 PC7~PC4:1—输入,0—输出
9.4图:方式选择控制字的格式
6. 在方式1下输入和输出时,其专用联络信号是如何定义的?
7. 8255A工作于方式2,采用中断传送,CPU如何区分是输入中断还是输出中
断? 8. 设计一个利用8255A的PC5输出占空比1:1的方波电路,并编写相应程序。 9. 现有4种简单的外设:①一组8位开关;②一组8位LED指示灯;③一个
按钮开关;④一个蜂鸣片。要求:
(1) 用8255A作为接口芯片,将这些外设构成一个简单的微机应用系统,画出接口连接图。
(2) 编制3种驱动程序,每个程序必须包括至少有两种外设共同作用的操作(例如,根据8位开关“ON”和“OFF”的状态来决定8个LED指示灯“亮”和“灭”。又如,当按下按钮开关时,才使蜂鸣片发声等)。(方式0和方式1下,在按下按钮并释放后,再根据8位开关“ON”和“OFF”的状态来决定8个LED指示灯“亮”和“灭”。 使用查询方式。)
答:(1)、接口连接图如下:8255与CPU的连接省略。 +5V D7 D6 D5 D4 D3 D2 D1 D0 1K 1K 1K 1K 1K 1K 1K 1K PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PC0 KN 8255 PC4 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 5K 5K 5K 5K 5K 5K 5K 5K 5K K7 K6 K5 K4 K3 K2 K1 K0
图中,PB口经限流电阻接8位LED指示灯;PA口经上拉电阻接8位开关,