第4次书面作业 接口芯片参考答案
教材P286: 5 、9 、14、18
5. 8254通道1产生500HZ的方波信号,设输入时钟频率CLK1=2.5M HZ 端
口地址为0FFA0H~0FFA3H,试编制初始化程序。 解:
8254初始化流程:
1)确定初值和工作方式选择字; 2)写入方式选择字和初值 1)初值确定:
方波,选择工作方式3,f=2.5M,需要500HZ,则 初值=2500000/500=5000
选择二进制计数方式,需要使用16位计数初值寄存器 方式选择字:01 11 011 0 2)写入程序:
MOV AL, 76H MOV DX, 0FFA3H OUT DX, AL MOV BX, 5000 MOV AL, BL
MOV DX, 0FFA1H OUT DX, AL MOV AL, BH OUT DX, AL
9. 波特率是数据传送速率的指标,表示每秒钟传送的二进制位数,单位b/s 每帧数据组成:1+7+1+1=10位二进制位,每秒传输的字符个数=9600/10=960
14. 两个微机近距离使用8251实现串行通信,近距离,可以直接一个8251的
TXD连接到另一台的8251的RXD引脚。
传送2KB数据,没有指定模式字的具体内容,因此自己设定。 两个8251芯片均需要初始化,初始化流程:
1)设定工作方式,A发送,B接收;
2)A发控制命令启动发送;B发接收命令准备接收 3)数据传送一次
4)如还有数据,继续传送 初始化程序:
MOV AL, 0CEH 11 00 11 10 2个停止位,无校验,字长8, 因子16,发送允许,清除错误标志 MOV DX, 8251_A_CTRL OUT DX, AL
MOV AL, 31H 00 11 00 01 启动发送命令 OUT DX, AL MOV AL, 0CEH 11 00 11 10 2个停止位,无校验,字长8, 因子16,发送允许,清除错误标志 MOV DX, 8251_B_CTRL OUT DX, AL MOV AL, 34H 00 11 01 00 启动发送命令 OUT DX, AL
A数据发送程序,查询方式: B数据接收程序,查询方式: MOV CX, 2048 MOV CX, 2048 MOV SI, OFFSET BUFFER MOV SI, OFFSET BUFFER MOV DX, 8251_A_CTRL MOV DX, 8251_B_CTRL L1: IN AL, DX L1: IN AL, DX TEST AL, 01H TEST AL, 02H JZ L1 JZ L1 MOV AL, [SI] IN AL, 8251_B_DATA OUT 8251_A_DATA, AL MOV [SI], AL INC SI INC SI LOOP L1 LOOP L1
18. 两个微机使用8255实现并行通信,直接将一个8255的A端口连接到另一台
的8255的B端口,主机A的PC6(ACK)接主机B的PC7,主机A的PC7(OBF)接主机B的PC0。
指定A机的工作在方式1,B机工作在方式0,双机都采用查询传送方式。 两个8255芯片均需要初始化,初始化流程: 1)设定工作方式,A发送,B接收; A发送,工作方式1,采用查询方式,和主机的握手信号是PC6的ACK信号,通知接收设备是PC7的OBF信号;
B接收,需指定和主机B、外设的握手信号,需采用C端口的2位,选择PC0表示已经接收结束,主机B可以取,PC7表示主机B已经取走数据,可以接收下一个数据。 2)数据传送
初始化程序:
MOV AL, 0A0H 10 10 00 00 主机A的A端口发送,方式1 MOV DX, 8251_A_CTRL OUT DX, AL MOV AL, 8AH 10 00 10 10 主机B的B端口接收,方式0 MOV DX, 8251_B_CTRL OUT DX, AL
数据传输:
主机A发送数据,查询方式: 主机B接收数据,查询方式: MOV MOV MOV L1: MOV OUT PUSH MOV L2: IN TEST JNZ POP INC LOOP CX, M SI, OFFSET BUFFER DX, 8255_A_A AL, [SI] DX, AL DX DX, 8255_A_C AL, DX AL, 40H L2 L1
MOV CX, M MOV SI, OFFSET BUFFER MOV DX, 8255_B_C L2: IN AL, DX TEST AL, 01H JNZ L2 PUSH DX MOV DX, 8255_B_B IN DX, AL MOV [SI], AL MOV AL, 0EH MOV DX, 8255_B_CTRL OUT DX, AL POP DX INC SI LOOP L2 DX SI
相关推荐: