NOT AL ;取反,变0为1 OUT DX,AL
11.16 题略,参见p.275 mov dx, 0fffbh ;初始化8255A mov al, 89h ;1000 1001b out dx, al ; disp proc push ax push bx push dx mov bx, offset LEDtb DJ: mov cl, ffh mov dx, 0fffah ;PC为输入开关口 in al, dx DJ1: inc cl shr al ;al高位补0 jc DJ1 cmp cl, 08 jz XS mov al, cl xlat cs:LEDtb ;得到显示代码 mov dx, 0fff8h ;PA为段控制端口 out dx, al ;送出段码 XS: mov ah,0feh ;指向最左边数码管 mov dx, 0fff9h ; Pb为位控制端口 LED1: mov al, ah ;取出位显示代码 out dx, al ;送出位码 call delay ;实现数码管延时显示 rol ah,1 ;指向下一个数码管 cmp ah,0feh ;最右边的数码管? jnz LED1 ;显示下一个数字 jmp DJ pop dx pop bx pop ax
ret
LEDtb db 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h, 7fh disp endp
12.1 题省略,p.292 解:
串行异步通信发送01010101,起止式,奇校验,两个停止位
启动
1 0 1 0 1 0 1 0
校验 停止
N=1200bps/12 =100 字符ps
12.3 题省略,见p.292 。 解提示: 参见P283第一段,1. 16倍频接收。2. 连续8个有效接收才认可。 参见P283下部,采用多及缓冲器是为了防止(减少)溢出错误。
12.5 欲使通信字符为8个数据位、偶校验、2个停止位,则应向8250 通信线路控制 寄存器写入控制字00 011 1 11 ,其在PC机上的I/O地址(COM2)是 2F8~2FFH 。
12.7 题略,参见p.293
解: 程序头部读入COM1的IIR内容,判断是否FIFO,是则条件转移;不是则将COM1的地址保存至RS232-BASE字单元中;程序后半读入COM2的IIR内容,判断是否FIFO,是则条件转移;不是则将COM2的地址保存至相应字单元中。 若没有发生条件转移,RS232-BASE字单元中存放的是3F8H。
12.8 设定某次串行异步通信的数据为8位、无校验、1个停止位,传输速率为4800bps,采用中断工作方式。按此要求写出PC系列机中对第2个串行通信口的初始化程序。 解:初始化程序包括4个部分,先计算分频值N=1.8432M/(4800*16)=24,
⑴ 写入除数寄存器,设置传输率
⑵ 写入通信线路控制寄存器,设置字符格式 ⑶ 写入调制解调器控制寄存器,设置工作方式 ⑷ 写入中断允许寄存器,设置中断允许或屏蔽位 ;
MOV AL, 80H MOV DX, 2FBH
OUT DX, AL ;写入通信线路控制寄存器,使DLAB=1 MOV AX, 24 ;分频系数 MOV DX, 2F8H
OUT DX, AL ;写入除数寄存器低8位 MOV AL, AH INC DX
OUT DX, AL ;写入除数寄存器高8位 ;
MOV AL, 03H ;00 000 0 11B MOV DX, 2FBH
OUT DX, AL ;写入通信线路控制寄存器 ;
MOV AL,0BH ;控制为OUT2*低,允许INTRPT产生请求 MOV DX, 2FCH OUT DX,AL ;
MOV AL, 0FH ;开放中断 MOV DX, 2F9H
OUT DX, AL ;写入中断允许寄存器
13.3题省略p.308,参见p.301 图13-9 a)2及锁存电路 解: mov dx, prot1 mov al, bl out dx, al mov dx, port2 mov al, bh out dx, al mov dx, port3
+5V ALE out dx, al
DB PA IN0
OE EOC PC0 A
B STARPC7 13.7题省略p.308
C 解:
设8255A的端口地址为
ADC 0809 8255A
0FFF8H~0FFFBH,
端口A输入、PC0输入、PC7输出,所以方式字为1001 0001=91H。 Buff DB 10 DUP(0) Count EQU 10 MOV DX, 0FFFBH ;控制口 MOV AL, 91H OUT DX, AL ;初始化8255A MOV AL, 0000 1111B ;PC7置1 OUT DX, AL ;启动ADC MOV BX,OFFSET BUFF MOV CX,COUNT
REP: MOV DX, 0FFFAH;查询等待8255-C IN AL, DX ;读入PC0 TEST AL, 01H JZ REP MOV DX, 0FFF8H ;输入 IN AL, DX ;读PA MOV [BX], AL INC BX LOOP REP . exit
13.4 假定8位ADC输入电压范围是-5V~+5V,求出如下输入电压Vin的数字量编码(偏移码):⑴1.5V,⑵2V,⑶3.75V,⑷-2.5V,⑸-4.75V 解: 采用公式 N=(Vin-(-5))/(5-(-5))*28 = (Vin+5)/10*256 ⑴ N =(1.5+5)/10*256 = 166.4 ≈ 0A6H ⑵ N =(2+5)/10*256 = 179.2 ≈ 0B3H ⑶ N =(3.75+5)/10*256 = 224 = 0E0H ⑷ N =(-2.5+5)/10*256 = 64 = 40H ⑸ N =(-4.75+5)/10*256 = 6.4 ≈ 06H
13.6 题略,参见P.308
解: 程序包括:8255初始化,产生启动脉冲,读入转换数据,输出处理结果。
The End
;8255初始化:A方式1输入,B方式0输出 10110000 MOV DX,0FFFBH ;查询状态,读入转换数据 MOV AL,0B0H OUT DX,AL
;产生启动脉冲在PC7 MOV AL,0EH OUT DX,AL MOV AL,0FH OUT DX,AL CALL delay200 MOV AL,0EH OUT DX,AL
DEC DX AND AL,10H JZ DUZT MOV DX,0FFF8H IN AL,DX CALL
ADPRCS
DUZT: IN AL,DX
;输出处理结果
MOV DX,0FFF9H OUT DX,AL
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库微机原理与接口技术课程习题答案(6)在线全文阅读。
相关推荐: