微机原理(第三版)课后练习答案(DOC) 下载本文

OUT DX, AL

(3)MOV AL, 10110110B ; A口方式1输入,PC6和PC7输出,B口方式1输入 MOV DX, PORTK OUT DX, AL

11 思考与练习题

一、选择题

1.串行接口芯片825lA可实现( )。 D A.同步传送 B.异步传送 C.并行传送 D.A和B均可

2.825lA工作于串行异步接收时.当检测到( )引脚为低电平时,可能是起始位。 A A.RxD B.TxD C.-WE D.-RTS

3.输入控制发送器数据速率的时钟TxC频率可以是数据传送波特率的( )倍。 C A.1、16或64 B.1、32或64 C.16、32或64 D.16、64或128

4.如8251A设为异步通信方式,发送器时钟输入端和接收时钟输入端连接到频率19.2kHz输入信号上,波特率因子为16,则波特率为( )波特? A A.1200 B.2400 C.9600 D.19200 二、填空题

1.串行通信是指_______,其特点是_______,通常用于_______场合。 2.波特率是指_______,该指标用于衡量_______。

3.串行通信按通信约定的格式可分为_______和_______两种;前者的特点是_______;后者的特点是_______。

4.8251A是一种_______芯片,使用前必须对其进行_______设置,主要内容包括_______。 5.RS-232是应用于_______之间的_______接口。

6.在串行异步数据传送时,如果格式规定8位数据位。1位奇偶校验位,1位停止位,则一组异步数据总共有_______位? 三、设计题

1.某系统中使可编程串行接口芯片8251A工作在异步方式,7位数据位,偶校验,2位停止位,分频系数为96,允许发送也允许接收,若已知其控制口地址为03FBH,试编写初始化程序。

解:初始化程序如下: MOV DX, 03FBH ;

MOV AL, 11111010B ;方式字:异步方式,7位数据位,偶校验,2位停止位,分频系数为n=16 OUT DX, AL

MOV AL, 00010101B ;命令字:允许发送也允许接收,错误复位 OUT DX, AL

12 思考与练习题

一、选择题

1.启动8253的计数器开始或计数的方式有( )。 C A.软件方式 B.硬件方式 C.软件和硬件方式 D.门控信号

2.对8253进行操作前都必须先向8253写入一个( ),以确定8253的工作方式。 A A.控制字 B.计数初值 C.状态字 D.指令

3.8253定时器/数器中,在门控制信号上升沿到来后的( )时刻,输出信号OUT变成低电平。 D A.CLK上升沿 B.CLK下降沿

C.下一个CLK上升沿 D.下一个CLK下降沿

4.8253工作在( )方式时,OUT引脚能输出一个CLK周期宽度的负脉冲。 D A.方式0 B. 方式1 C.方式3 D.方式4或方式5 二、填空题

1.8253称为_______;它具有3个独立的_______;每个计数器有_______种工作方式;可按_______编程?

2.8253的初始化程序包括_______两部分。完成初始化后,8253即开始自动按_______进行工作。

3.8253定时器/计数器工作在某种方式时,需要在GATE端外加触发信号才能启动计数,这种方式称为_______。

4.8253内部有_______个对外输入/输出端口,有_______种工作方式,方式0称为_______,方式1称为_______,方式2称为_______。 5.设8253的工作频率为2.5MHz,若要使计数器0产生频率为1kHz的方波。则送入计数器0的计数初始值为_______,方波的电平为_______ms。 三、简答题

1.试说明8253的6种工作方式各自的功能和特点,其时钟信号CLK和门控信号GATE分别起什么作用?

答案在P265~P272(12.1.5)。

2.8253的最高工作频率是多少(2.6MHz)? 8254与8253的主要区别是什么(工作频率)? 3.对8253进行初始化编程要完成哪些工作?

答:初始化程序包括两部分:一是写各计数器的控制字,二是设置计数初始值。 四、设计题

1.设8253芯片的计数器O、计数器1和控制口地址分别为04B0H、0482H和0486H、定义计数器0工作在方式2,CLK0为5MHz,要求输出OUT0为1kHz方波;定义计数器1用OUT0作为计数脉冲,计数值为1000,计数器减到O时向CPU发出中断请求,CPU响应这一中断请求后继续写入计数值1000,开始重新计数,保持每一秒向CPU发出一次中断请求。试编写对8253的初始化程序,并画出系统的硬件连接图。

解:(1) 8253定时器0计数初值:5MHz/1KHz=5000 8253定时器1计数初值:1000

(2)8253的初始化程序如下:

MOV DX,04B6H ; 设置控制口

MOV AL,00110100B ; 计数器0工作在方式2、二进制计数、读写低高字节 OUT DX,AL

MOV AL,01110000B ; 计数器1工作在方式0、二进制计数、读写低高字节 OUT DX,AL

; 计数器0计数初值设置 MOV DX,04B0H ; 设置计数器0端口

MOV AX,5000 ; 设置计数器0的计数初值 OUT DX,AL ; 写低字节计数初值 MOV AL,AH

OUT DX,AL ; 写高字节计数初值 ; 计数器1计数初值设置

MOV DX,04B2H ; 设置计数器1端口

MOV AX,1000 ; 设置计数器1的计数初值 OUT DX,AL ; 写低字节计数初值 MOV AL,AH

OUT DX,AL ; 写高字节计数初值

(3)连接示意图 5MHz时钟 CLK0 OUT0 (计数器0) CLK1 OUT1 (计数器1) 连中断源

2.将8253定时器0设为方式3(方波发生器),定时器1设为方式2(分频器)。要求定时器0的输出脉冲作为定时器1的时钟输入,CLK0连接总线时钟2MHz,定时器1输出OUT1约为40Hz,试编写实现上述功能的程序。

解:设控制口:PORTK;计数器0端口:PORT0;计数器1端口:PORT1 (1)计算8253定时器0、1分频系数K0、K1 由40Hz=2MHz/K (K:总分频系数) 求K=2MHz/40Hz=50000=500*100 分别求得K0=500、K1=100

(2)初始化程序如下:

MOV DX, PORTK ;设置控制口

MOV AL, 00110110B ; 设置8253定时器0,方式3,先低后高读写字节计数值,二进制计数 OUT DX, AL

MOV AL, 01010100B ; 设置8253定时器1,方式2,仅读写低字节计数值,二进制计数 OUT DX, AL

MOV DX, PORT0 ; 设置计数器0端口 MOV AX, 500 ; 设置计数器0计数初值 OUT DX, AL ; 写低字节计数值初值 MOV AL, AH

OUT DX, AL ; 写高字节计数值初值

MOV DX, PORT1 ; 设置计数器1端口

MOV AL, 100 ; 设置计数器1计数初值 OUT DX, AL ; 写低字节计数值初值