7.在异步传输时,如果发送方的波特率是600,接收方的波特率是1200,能否进行正常通信?为什么?
答:不能进行正常通信,因为发送方和接收方的波特率不同,而接收端的采样频率是按传输波特率来设置。
8. 8251A在编程时,应遵循什么规则?
答:8251在初始化编程时,首先使芯片复位,第一次向控制端口(奇地址)写入的是方式字;如果输入的是同步方式,接着向奇地址端口写入的是同步字符,若有2个同步字符,则分2次写入;以后不管是同步方式还是异步方式,只要不是复位命令,由CPU向奇地址端口写入的是命令控制字,向偶地址端口写入的是数据。
9. 试对一个8251A进行初始化编程,要求工作在同步方式,7位数据位,奇校验,1个停止位。
答:对原题目的补充改动,要求工作在内同步方式,2个同步字符。
方式字是:00011000B=18H
程序段如下:
XOR AX,AX
MOV DX,PORT
OUT DX,AL
OUT DX,AL
OUT DX,AL ;向8251的控制口送3个00H
MOV AL,40H
OUT DX,AL ;向8251的控制口送40H,复位
MOV AL,18H
OUT DX,AL ;向8251送方式字
MOV AL,SYNC ;SYNC为同步字符
OUT DX,AL
OUT DX,AL ;输出2个同步字符
MOV AL,10111111B
OUT DX,AL ;向8251送控制字
10. 一个异步串行发送器,发送具有8位数据位的字符,在系统中使用一位作偶校验,2个停止位。若每秒钟发送100个字符,它的波特率和位周期是多少?
答:每个字符需要的发送位数是12位(数据位8位,校验位1位,停止位2位,起始位1位)。每秒发送100个字符共1200位。因此波特率为1200波特,位周期= ≈833?s。
第9章 可编程计数/定时器与DMA控制器
1. 设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。试编写程序片段,读出计数器2的内容,并把读出的数据装入寄存器AX。
答:
MOV AL,80H
OUT 200H,AL
IN AL,203H
MOV BL,AL
IN AL,203H,
MOV BH,AL
MOV AX,BX
2. 设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。输入时钟为2MHz,让1号通道周期性的发出脉冲,其脉冲周期为1ms,试编写初化程序段。
答: 要输出脉冲周期为1ms,输出脉冲的频率是 ,当输入时钟频率为2MHz时,计数器初值是
使用计数器1,先读低8位,后读高8位,设为方式3,二进制计数,控制字是76H。设控制口的地址是200H,计数器0的地址是202H。程序段如下:
MOV DX,200H
MOV AL,76H
OUT DX,,AL
MOV DX,202H
MOV AX,2000
OUT DX,AL
MOV AL,AH
OUT DX,AL
3. 设8253计数器的时钟输入频率为1.91MHz,为产生25KHz的方波输出信号,应向计数器装入的计数初值为多少?
答: = 76.4,应向计数器装入的初值是76。
4. 设8253的计数器0,工作在方式1,计数初值为2050H;计数器1,工作在方式2,计数初值为3000H;计数器2,工作在方式3,计数初值为1000H。如果三个计数器的GATE都接高电平,三个计数器的CLK都接2MHz时钟信号,试画出OUT0、OUT1、OUT2的输出波形。
答: 计数器0工作在方式1,即可编程的单脉冲方式。这种方式下,计数的启动必须由外部门控脉冲GATE控制。因为GATE接了高电平,当方式控制字写入后OUT0变高,计数器无法启动,所以OUT0输出高电平。计数器1工作在方式2,即分频器的方式。输出波形的频率f= = =666.7HZ,其周期为1.5ms,输出负脉冲的宽度等于CLK的周期为0.5?s。计数器2工作在方式3,即方波发生器的方式。输出频率f= = 2000Hz的对称方波。三个OUT的输出波形如下:
13.比较中断与DMA两种传输方式的特点。
答:中断方式下,外设需与主机传输数据时要请求主给予中断服务,中断当前主程序的执行,自动转向对应的中断处理程序,控制数据的传输,过程始终是在处理器所执行的指令控制之下。
直接存储器访问(DMA)方式下,系统中有一个DMA控制器,它是一个可驱动总线的主控部件。当外设与主存储器之间需要传输数据时,外设向DMA控制器发出DMA请求,DMA控制器向中央处理器发出总线请求,取得总线控制权以后,DMA控制器按照总线时序控制外设与存储器间的数据传输而不是通过指令来控制数据传输,传输速度大大高于中断方式。
14.DMA控制器应具有那些功能?
答:DMA控制器应有DMA请求输入线,接收I/O设备的DMA请求信号;DMA控制器应有向主机发出总线请求的信号线和接收主机响应的信号线;DMA控制器在取得总线控制权以后应能发出内存地址、I/O读写命令及存储器读写命令控制I/O与存储器间的数据传输过程。