微机原理课后习题参考答案 下载本文

内容发布更新时间 : 2024/11/2 14:21:45星期一 下面是文章的全部内容请认真阅读。

设8259A的I/O地址为20H,21H,中断类型号0AH,从IR2引入 DATA SEGMENT

MESS DB '*****',OAH,ODH,'$' INTA00 EQU 0020H INTA01 EQU 0021H DATA ENDS

STACK SEGMENT STACK DB 100H DUP (?) STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK MAIN:MOV AX,DATA MOV DS,AX

MOV DX,INTA00 ;8259A初始化 MOV AL,13H ;写ICW1 OUT DX,AL

MOV DX,INTA01

MOV AL,08H ;写ICW2 OUT DX,AL

MOV AL,01H ;写ICW4 OUT DX,AL PUSH DS

MOV AX,SEG INT-P ;设置中断矢量 MOV DS,AX

MOV DX,OFFSET INT-P MOV AL,0AH MOV AH,25H INT 21H POP DS

MOV AL,0FBH ;写中断屏蔽字OCW1 OUT DX,AL

MOV DX,INTA00

MOV AL,20H ;写中断结束方式OCW2 OUT DX,AL MOV BX,10

WAIT1: STI ;开中断 JMP WAIT1;等待中断

INT-P:MOV AX,DATA ;中断服务程序入口 MOV DS,AX

MOV DX,OFFSET MESS ;输出指定字符串 MOV AH,09H INT 21H

MOV DX,INTA00 ;写OCW2,送中断结束命令EOI

MOV AL,20H OUT DX,AL

DEC BX ;控制10次循环 JNZ NEXT

MOV DX,INTA01 ;读屏蔽寄存器IMR IN AL,DX

OR AL,04H ;屏蔽IR2请求 OUT DX,AL

STI ;开中断

MOV AX,4C00H ;返回操作系统 INT 21H

NEXT: IRET ;中断返回 CODE: ENDS END MAIN

第七章

3、CPU与IO接口设备数据传送的控制方式有哪几种?它们各有何特点? 答:(1)查询方式:不需要额外的硬件支持,但由于CPU与外设工作的不同步,致使CPU利用率低,适用于工作不太繁忙的系统中。 (2)中断方式:CPU与外部设备并行工作

(3)DMA方式:数据传送过程中,由DMA控制器参与工作,不需要CPU的干预,对批量数据传送效率高。

6、设8255A的A口工作于方式1输出,B口工作于方式0输入,试编写初始化程序(设端口地址为40H~43H) 答:MOV DX ,43H

MOV AL ,10100010 OUT DX,AL 7.使用8255A作为开关和LED指示灯电路的接口.要求8255A的A口连接8个开关,B口连接8个LED指示灯,将A口的开关状态读入,然后送至B口控制指示灯亮、灭。试画出接口电路设计图,并编写程序实现。

VCCR1R2R3R4R5R6R7R8D0-D7U13433323130292827RDWRA0A1RESET53698356D0D1D2D3D4D5D6D7RDWRA0A1RESETCSPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7825513432140393837181920212223242514151617131211101U3A74063U3B740656740698D4D34D2S1S2S3S4S5S6S7S8VCC2D1U2A2A3A4123ABCY0Y1Y2Y3Y4Y5Y6Y715141312111097U3C456VCCU3D7406E1E2E374LS13811U3E740610D5U3F740612D61U4A74062D73U4B74064D8 程序实现:

设8255的地址:0FFE0H~0FFE3H DATA SEGMENT

DB 100H DUP(?) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE ,DS DATA

START:MOV AX,DATA MOV DS,AX

MOV AL,10010000 ;A口方式0输入B口方式0输出 MOV DX,0FFE3H OUT DX,AL

MOV DX,0FFE0H IN AL,DX ;读取A口开关状态 INC DX NOT AL OUT DX,AL ;输出B口驱动LED,开关闭合则LED亮 RET

CODE ENDS

END START

10、利用8254的通道1,产生500Hz的方波信号。设输入时钟频率CKL1=2.5MHz,端口地

址为FFA0H~FFA3H,试编写初始化程序。 答:端口地址:FFA0H-FFA3H

计数器1的控制字:01110110B=76H 计数常数=2.5M/500=5000 初始化程序: MOV AL,76H MOV DX,0FFA3H OUT DX,AL MOV AX,5000 MOV DX,0FFA1H

OUT DX,AL ;写入计数器1的低字节 MOV AL,AH OUT DX,AL ;写入计数器1的高字节

11、某系统使用8254的通道0作为计数器,记满1000,向CPU发中断请求,试编写初始化程序(端口地址自设)。

答:设8254端口地址:40H-43H

计数器0的控制字:00110000B=30H 计数常数=1000 初始化程序: MOV AL,30H OUT 43H,AL MOV AX,1000 OUT 40H,AL MOV AL,AH

;写入计数器0的低字节

OUT 40H,AL ;写入计数器0的高字节

12、采用8254的通道0产生周期为10ms的方波信号,设输入时钟频率为100kHz,8254的端口地址为38H-3BH,试编写初始化程序。 答:8254端口地址:38H-3BH

计数器0的控制字:00110110B=36H 计数常数=100K*10ms=1000 初始化程序: MOV AL,36H OUT 3BH,AL MOV AX,1000 OUT 38H,AL ;写入计数器0的低字节 MOV AL,AH OUT 38H,AL ;写入计数器0的高字节

15、什么是波特率?假设异步传输的一帧信息由1为起始位,7位数据位、1为校验位和1位停止位构成,传送的波特率为9600,则每秒钟能传输字符的个数是多少?

答:波特率是指数据传送的速率,含义是指每秒钟传二进制数的位数,单位用bps或波特表示每秒可传送的字符个数。 9600/(1+7+1+1)=960

16、一个异步串行发送器,发送的字符格式为:1位起始位、7位数据位、1位奇偶校验位和2位停止位,若每秒传送100个字符,则其波特率为多少? 答:100*(1+7+1+2)=1100bps

19、设某系统使用一片8250进行串行通信,要求波特率为2400,8位数据位,2位停止位,偶校验,对接收缓冲器满开中断,试编写初始化程序。