《微机原理与接口技术》 洪永强习题答案 下载本文

41564736.doc集 - 23 - 编者:喻其山

MOV OUT MOV MOV OUT MOV MOV OUT MOV OUT

8.6

AL, AH DX, AL

DX, 04B6H ;控制口

AL, 0B7H ;计数器2方式3 DX, AL

DX, 04B4H ;计数器2 AX, 1000H ;计数值1000 DX, AL AL, AH DX, AL

将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 什么是DMA传送方式?为什么DMA方式能实现高速传送? 说明DMA控制器应具有什么功能?

8237A有哪些内部寄存器?各有什么功能?初始化编程要对哪些寄存器进行预置?

8.7 8.8 8.9

8.10 分述8237A单字节传送、请求传送、块传送三种工作方式的传送过程。 8.11 假设利用8237A通道1在存储器的两个区域BUF1和 BUF2间直接传送100

个数据,采用连续传送方式,传送完毕后不进行自动预置,试写出初始化程序。

41564736.doc集 - 24 - 编者:喻其山

第 9 章 并行接口与串行接口

9.1 可编程并行接口芯片8255A面向I/O设备一侧的端口有几个?其中C口的

使用有哪些特点? 9.2 试分别说明可编程并行接口芯片8255A的方式控制字和置位/复位字的作用

及其格式中每位的含义是什么? 9.3 “由于8255A的端口C按位置位/复位控制字是对C口进行操作,所以可以

写到C口”,这句话对吗?为什么? 答:(1)、不对!

(2)、因为该控制字按规定只能写入控制口,而且D7=0。 9.4 如何对8255A进行初始化编程?

答:通过向8255A控制口设定方式选择控制字来进行初始化编程。方式选

择控制字的格式如下图所示: 1 D6 D5 D4 D3 D2 D1 D0 方式选择控制 PC3~PC0:1—输入,0—输出 字的标识位 端口B:1—输入,0—输出 A组方式选择 端口A B组方式选择:0—方式0,1—方式1 00—方式0 1—输入 01PC7~PC4:1—输入,0—输出 —方式1 0—输出 1x —方式2 9.4图:方式选择控制字的格式

9.5 可编程并行接口芯片8255A有哪几种工作方式?各自的特点何在? 9.6 在方式1下输入和输出时,其专用联络信号是如何定义的?

9.7 现有4种简单的外设:①一组8位开关;②一组8位LED指示灯;③一个

按钮开关;④一个蜂鸣片。要求:

(1)用8255A作为接口芯片,将这些外设构成一个简单的微机应用系统,画出接口连接图。

(2)编制3种驱动程序,每个程序必须包括至少有两种外设共同作用的操作(例如,根据8位开关“ON”和“OFF”的状态来决定8个LED指示灯“亮”和“灭”。又如,当按下按钮开关时,才使蜂鸣片发声等)。(方式0和方式1下,在按下按钮并释放后,再根据8位开关“ON”和“OFF”的状态来决定8个LED指示灯“亮”和“灭”。 使用查询方式。)

答:(1)、接口连接图如下:8255与CPU的连接省略。

41564736.doc集 - 25 - 编者:喻其山 +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位开关,PC4经上拉电阻接按钮开关(作为PA口工作于方式1输入的选通信号STBA),PC0接蜂鸣片。假设8255的端口地址为60H、61H、62H、63H,地址译码电路图中未画出。

(2)、8255初始化程序段如下:A口方式0输入,B口方式0输出,C

口低4位输出、高4位输入。

MOV AL, 10011000B ;8255方式控制字98H OUT 63H, AL ; 控制口 MOV AL, 0FFH ;关闭8位LED指示灯 OUT 61H, AL ;B口 OUT 62H, AL ;C口,禁鸣蜂鸣片

;驱动程序1如下:根据8位开关“ON”和“OFF”的状态来决定8个LED

指示灯“亮”和“灭”。 NEXT: IN AL, 60H ;输入A口的8位开关状态

OUT 61H, AL ;送B口8位LED指示灯显示 JMP NEXT ;死循环输入并显示

;驱动程序2如下:当按下按钮开关时,才使蜂鸣片发声。 VOICE: IN AL, 62H ;输入C口的按钮开关状态

TEST AL, 10H ;PC4=0? JNZ VOICE_OFF MOV AL, 00H

41564736.doc集 - 26 - 编者:喻其山

OUT CALL JMP

VOICE_OFF:

MOV OUT JMP

63H,AL DELAY2S VOICE AL, 01H 63H,AL VOICE

;置PC0=0,发声 ;延时2秒

;置PC0=1,关闭声音 ;死循环检测发声

;驱动程序3如下:A口工作于方式0下,在按下按钮并释放后,再根据

8位开关“ON”和“OFF”的状态来决定8个LED指示灯“亮”和“灭”。使用查询方式。

LED0_OFF: IN AL, 62H ;输入C口的按钮开关状态

TEST AL, 10H ;PC4=0? JNZ LED0_OFF ;没有按按钮,继续等待按下

LED0_ON: IN AL, 62H ;输入C口的按钮开关状态

TEST AL, 10H ;PC4=0? JZ LED0_ON ;仍然按下,继续等待释放 IN AL, 60H ;输入A口的8位开关状态 OUT 61H, AL ;送B口8位LED指示灯显示 JMP LED0_OFF ;死循环输入并显示 ;驱动程序4如下:8255初始化程序段:A口方式1输入,B口方式0

输出,C口低4位输出、高4位配合A口工作。

MOV AL, 10110000B ;8255方式控制字0B0H OUT 63H, AL ; 控制口 MOV AL, 0FFH ;关闭8位LED指示灯 OUT 61H, AL ;B口 OUT 62H, AL ;C口,禁鸣蜂鸣片

;A口工作于方式1下,在按下按钮并释放后,再根据8位开关“ON”和

“OFF”的状态来决定8个LED指示灯“亮”和“灭”。使用查询方式。 LED1_OFF: IN AL, 62H ;输入C口的状态

TEST AL, 20H ;PC5=0?(PC5为IBFA) JZ LED1_OFF ;没有按按钮,继续等待STBA IN AL, 60H ;IBFA=1,输入A口的8位开关状态 OUT 61H, AL ;送B口8位LED指示灯显示 JMP LED1_OFF ;死循环输入并显示 9.8 串行传送的特点是什么?

9.9 什么是串行传送的全双工和半双工? 9.10 调制解调器(MODEM)在通信中的作用?

9.11 什么是波特率?发送时钟和接收时钟与波特率有什么关系?