- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
南昌航空大学
信息工程学院
综合性实验报告
课程名称: 微机原理与接口技术
实验名称: 异步串行通信控制
学 号: ***********
姓 名: *************
日 期: 20**年*月*日
指导教师:
成 绩:
一、实验目的
掌握串行通信的原理和控制方法。
采用三线连接的方法,编程控制,实现微机异步串行通信。
二、实验原理
串口通信连接
用串行接口实现双机异步串行通信,要用到计算机RS-232C接口。一般该接口位于计算机主板上(9针D型插座),计算机后边的串口为针形。它们的引脚定义如表1和图1所示
表1 9针串口引脚定义
引脚
信号
引脚
信号
1
载波检测(DCD)
6
数据准备好(DSR)
2
接受数据(rxd)
7
请求发送(RTS)
3
发出数据(TXD)
8
清除发送(CTS)
4
数据终端准备好(DTR)
9
振铃指示(RI)
5
信号地线(SG)
图1 针脚定义
要实现两机的异步串行通信,首先要建立物理上的连接;将PC机A串口的发送脚(3脚)与PC机的B的接收脚(2脚)相连,同样反过来,将PC机B串口的发送脚(3脚)与PC机的A的接收脚相连,同时,两台PC的地线(5脚)相连,则完成物理连接。
本实验中使用一台PC接自我通信的方式,只需将2脚3脚用跳线相连即可。
三、实验步骤
1.新建一个Java项目,使用add方法添加窗口元素,使用到的窗口元素有
发送窗口——textfield
接收窗口——textfield
选择串口——selectmenu
波特率——selectmenu
数据位——selectmenu
停止位——selectmenu
打开串口——button
关闭串口——button
2.配置实现环境变量及comm.jar包路径
把perties文件拷贝到Java运行时环境的lib目录中,即:
C:\Program Files\Java\jdk1.5.0_12\lib\perties
C:\Program Files\Java\jdk1.5.0_12\jre\lib\perties
把win32com.dll拷贝到C:\windows\system32\ 和 C:\ProgramFiles\Java\jdk1.6.0_20\jre\bin\下
把comm.jar放到Java运行时环境的lib目录中,即C:\ProgramFiles\Java\jdk1.6.0_20\lib\comm.jar
在环境变量的CLASSPATH中添加comm.jar,如:%JAVA_HOME%\lib\comm.jar;
(如果不直接复制到路径,也可以使用myeclipse导入的方法)
3.编写代码,实现串口获取并实现打开关闭操作
4.编写代码,实现数据向串口发送操作
5.编写代码,实现数据相应操作
6.编写代码,实现各个监听功能
7.最后调试阶段,测试发送接收结果
四、实验小结
通过实验,对异步串行通信技术有了比较深刻的了解,熟悉了串口通信控制操作,学会使用编程的方法控制PC机串口通信功能,同时在一定程度上提高了编写调试java程序的能力,进一步激发了对计算机硬件编程技术,java编程技术的兴趣。
实现通信的过程中碰到不少问题,比如实验环境中使用的jdk为1.6版本,但是配置comm.jar包是配置在1.6.0_20版本,导致由于识别不了正确路径检测不出端口。
实验实现过程在课后进行仿真时发现该方法并不能在windows 7,win 2003等高版本系统上实现,具体问题有待研究。
对于笔记本上线本实验过程的问题,可以尝试使用模拟窗口的方法实现。
五、附录(实验关键代码)
serialcommunication.java——通信处理类
import java.util.*;
import java.io.*;
import m.*;
import m.CommPortIdentifier;
import java.awt.*;
import m.SerialPortEvent.*;
import m.SerialPortEventListener.*;
public class SerialCommunication
{
String portName;
CommPortIdentifier portId;
InputS
文档评论(0)