A、B两台PC机利用辅串口进行点-点双工通信(不用联络线),A机发送、接收均采用查询方式,B机发送采用查询方式,接收采用中断方式。要求一帧字符7个数据位,2个停止位,偶校验,通信速率为2400波特(分频系数为0030H)。 ① 画出两台计算机RS232C口间的连线,并标明端子名称和端子号。 ② 用对端口直接编程的方法为A机编写8250初始化程序段。 ③ 用对端口直接编程的方法编写B机8250初始化程序段。 ④ 现通过A机发送一个字符 'E' 给B机。为A机写出使用查询方式发送的程序段。 ⑤ 针对于B机,编写子程序将其接收字符的中断服务程序SERVICE的入口地址写入中断向量表中。

时间: 2024-03-07 16:49:30 浏览: 14
1. 连线图如下: ``` A机 B机 ┌───────────────────┐ ┌───────────────────┐ │ │ │ │ │ 9针 D型 │ │ 9针 D型 │ │ │ │ │ │ 2 ────────────────┼──┼──────────────── 2 │ │ │ │ │ │ 3 ────────────────┼──┼──────────────── 3 │ │ │ │ │ │ 4 ────────────────┼──┼──────────────── 4 │ │ │ │ │ │ 5 ────────────────┼──┼──────────────── 5 │ │ │ │ │ │ 6 ────────────────┼──┼──────────────── 6 │ │ │ │ │ │ 7 ────────────────┼──┼──────────────── 7 │ │ │ │ │ │ 8 ────────────────┼──┼──────────────── 8 │ │ │ │ │ └───────────────────┘ └───────────────────┘ ``` 其中,A机和B机的串口分别连接到对方的串口,并且要保证连接的两个端子号相同。 2. A机8250初始化程序段: ``` MOV DX, 3F8H ;设置串口端口号 MOV AL, 0 ;禁止UART中断 OUT DX, AL ;写入IER寄存器 MOV AL, 80H ;设置DLAB位 OUT DX, AL ;写入LCR寄存器 MOV AL, 30H ;设置波特率分频系数低字节 OUT DX, AL ;写入DLL寄存器 MOV AL, 00H ;设置波特率分频系数高字节 OUT DX, AL ;写入DLM寄存器 MOV AL, 03H ;设置数据位为7位,无校验位,2个停止位 OUT DX, AL ;写入LCR寄存器 RET ;返回 ``` 3. B机8250初始化程序段: ``` MOV DX, 2F8H ;设置串口端口号 MOV AL, 0 ;禁止UART中断 OUT DX, AL ;写入IER寄存器 MOV AL, 80H ;设置DLAB位 OUT DX, AL ;写入LCR寄存器 MOV AL, 30H ;设置波特率分频系数低字节 OUT DX, AL ;写入DLL寄存器 MOV AL, 00H ;设置波特率分频系数高字节 OUT DX, AL ;写入DLM寄存器 MOV AL, 03H ;设置数据位为7位,无校验位,2个停止位 OUT DX, AL ;写入LCR寄存器 MOV AL, 01H ;使能UART中断 OUT DX, AL ;写入IER寄存器 MOV AX, SEG SERVICE ;将SERVICE的段地址保存到AX中 MOV DS, AX ;将DS指向SERVICE所在的段 MOV AX, OFFSET SERVICE ;将SERVICE的偏移地址保存到AX中 MOV WORD PTR DS:[0], AX ;将AX中的值写入中断向量表 MOV WORD PTR DS:[2], CS ;将CS的值写入中断向量表 RET ;返回 ``` 4. A机的查询方式发送程序段: ``` MOV DX, 3F8H ;设置串口端口号 MOV AL, 'E' ;将要发送的字符'E'保存到AL中 WAIT_SEND: IN AL, DX ;查询LSR寄存器 AND AL, 20H ;检查THRE位 JZ WAIT_SEND ;如果THRE位为0,则等待 OUT DX, AL ;将AL中的字符发送出去 RET ;返回 ``` 5. B机的中断服务程序为SERVICE,其入口地址为偏移地址为OFFSET和段地址为SEGMENT。将其写入中断向量表的子程序如下: ``` MOV AX, SEG SERVICE ;将SERVICE的段地址保存到AX中 MOV DS, AX ;将DS指向SERVICE所在的段 MOV AX, OFFSET SERVICE ;将SERVICE的偏移地址保存到AX中 MOV WORD PTR DS:[8], AX ;将AX中的值写入中断向量表 MOV WORD PTR DS:[10], CS ;将CS的值写入中断向量表 MOV AH, 0 ;将AH清零 INT 21H ;调用DOS功能 ``` 其中,8和10是1号串口的中断向量表地址,DS指向SERVICE所在的段,使用MOV指令将AX中的值写入中断向量表。最后,调用DOS功能,将写入中断向量表的结果保存到AH寄存器中。 注意:以上代码仅为示例,实际应用中要根据硬件和操作系统的要求进行相应的修改。

相关推荐

最新推荐

recommend-type

FPGA通过以太网与PC机通信完整方案

使用以太网接口实现PC和FPGA的通信,相对于串口而言,具有更高的传输速度。采用以太网接口的目的在于,在一定技术要求下,实现PC机和FPGA的实时数据传输。从而可以借助PC机强大的计算能力,降低FPGA的运算负担。
recommend-type

单片机与PC机串行通信&LCD显示(基于凌阳单片机SPCE061A)

单片机与PC机串行通信&LCD显示(基于凌阳单片机SPCE061A)程序设计
recommend-type

Python接收手机短信的代码整理

在本篇文章里小编给大家整理的是一篇关于Python接收手机短信的代码内容,需要的朋友们可以学习下。
recommend-type

单片机与PC机双向串行通信

这个是本人大学时期的综合课程设计,单片机和PC机的双向串行通信技术,严禁不注名的转载,后果自负,本人保留一切权利。
recommend-type

基于USB接口的51单片机与PC机通信的方法

基于USB接口的51单片机与PC机通信的方法,实现上位机和下位机数据传输
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解释minorization-maximization (MM) algorithm,并给出matlab代码编写的例子

Minorization-maximization (MM) algorithm是一种常用的优化算法,用于求解非凸问题或含有约束的优化问题。该算法的基本思想是通过构造一个凸下界函数来逼近原问题,然后通过求解凸下界函数的最优解来逼近原问题的最优解。具体步骤如下: 1. 初始化参数 $\theta_0$,设 $k=0$; 2. 构造一个凸下界函数 $Q(\theta|\theta_k)$,使其满足 $Q(\theta_k|\theta_k)=f(\theta_k)$; 3. 求解 $Q(\theta|\theta_k)$ 的最优值 $\theta_{k+1}=\arg\min_\theta Q(
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。