实验单片机与PC机串口通信
- 格式:doc
- 大小:139.00 KB
- 文档页数:8


串⼝通信实验报告
基于Labwindows/CVI的串⾏通信接⼝实验报告
⼀、实验⽬的
通过软件Labwindows/CVI编写仪器⾯板,通过该⾯板实现计算机与外围设备的串⼝通信。设置好通信端⼝,波特率等参数后,在Text Box控件中输⼊数据字符,当点击发送按钮时,单⽚机开发箱中的指⽰灯发⽣相应的变化。仪器⾯板如下图所⽰。
⼆、实验器材PC机⼀台,单⽚机开发箱,220V交流电源,Labwindows/CVI软件,导线若⼲等。
三、实验原理
由于LabWindows/CVI提供了⼤量与外部代码或软件进⾏连接的机制,所以实现串⼝通信,可以使⽤其本⾝提供的RS⼀232函数库。1.RS—232函数库
RS—232函数库提供了各种⽅式的串⼝通信控制函数和I/O函数,包括:打开
/关闭函数;I/O读写函数;调制解调器控制函数;串⼝设置函数;寄存器状态函数;回调函数等。
(1) 打开/关闭函数:OpenCom,OpenComConfig和CloseComo。(2) I/O读写函数:总计有7组函数,以下为其中常⽤的四组:
1) ComRd:从串⼝的接收缓冲区读指定长度的字符;
2) ComRdByte:从串⼝的接收缓冲区读取⼀个字符;
3) ComWrt:向串⼝的输出缓冲区中写指定长度的字符;
4) ComWrtByte:向串⼝的输出缓冲区中写⼀个字符。
(3) Xmodem函数:它使⽤了⼀种包含出错检测的⽂件传输协议进⾏串⼝通信。在这种协议中,⽂件通过信息包来传送,信息包中不仅包括了⽂件中的数据,还包括了校验和同步信息。(4) 串⼝控制函数:总计有7组函数,以下为其中常⽤的四组:
1)SetComTime:设置I/O操作超时的时间限制;
2)SetCTSMode:禁⽌或允许硬件握⼿并设置硬件握⼿⽅式;3)FlushlnQ/FlushOutQ:清空输⼊/输出队列。
(5) 状态函数:主要包括端⼝状态信息和通信错误代码信息等。
(6) 回调函数InstallComCallback:为指定的串⼝安装回调函数。在Labwindows/CVI中提供了两种机制实现串⼝通信(即查询或使⽤回调函数)2.RS—232C数据传输
实验九 RS232串口通讯应用
一、实验目的
串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到电脑端,而且也能实现电脑对单片机的控制,比如可以很直观地把红外遥控器键值的
数据码显示在电脑上等。本次实验目的:
1、通过实际硬件连接及软件编程完成 51单片机和PC机之间的串口通讯,
从而加深对异步串行通信接口的基本结构、工作原理等串行通信基本概念的理
解;
2、了解RS-232C电平规定与TTL电平规定的不同,及采用专用芯片MAX232
实现两者之间电平转换的连接电路。
二、实验设备
51单片机实验板、PC机、串口连接线、串口调试软件、Keil软件、连接导
线等。
三、实验原理及内容
51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进
行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电
平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,在
此采用专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,
但是还是用专用芯片更简单可靠。
采用三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第
5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对
我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11
脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。
图1 串口通讯的硬件电路连接 为了能够在电脑端看到单片机发出的数据,必须借助一个WINDOWS软件
进行观察,这里利用一个免费的电脑串口调试软件(这是一个绿色的软件,无需
安装,可以直接在当前位置运行这个软件)。软件界面如下图,
先要设置一下串口通讯的参数,将波特率调整为4800,勾选十六进制显示。
串口选择为COM1,当然51单片机实验板的串口也要和电脑的COM1连接,将
烧写有以下程序的单片机插入单片机实验板的万能插座中,并接通51单片机实
501联r帕〔&TECHN以OGYI阳以袱月ATll笋」学术论坛PC机与单片机的串行通信设计
盆学义(周口职业技术学院河南周口466000)摘要:本文简要介绍了PC机与单片机的串行通信设计,并简单说明了如何$lJ用vC+十中的C蛇rial实现PC机与单片机系统之间的串行通信。关键词:VC++串行通信,PC机中图分类号:TNgls,02文献标识码:A文章编号,1672一3791(2007)05(a卜0146一01
1引言在自动化控制和智能仪器仪表中,单片机的应用越来越广泛。现在所采用的单片机内部的串行口通常都具有通信的功能,其串行口可以作为通信接日,利用该串行口与PC机的串行口COMI或COMZ进行串行通信,将单片机采集的数据传送到PC机中,由PC机的高级语言或数据库语言对数据进行整理及统计等复杂处理就能满足实际的应用需要。采用MAX202芯片实现R犯32电平和竹L电平的相互转换,其连接结构图如图1所示。图1中电容采用0。1”F的独石电容,这种电容可靠性高、电容量稳定,耐高温耐湿性好。
2串亨予通信原理串行通信的原理是:在数据输入过程中,数据从外设进入接口的“接收移位寄存器”,当“接收移位寄存器”中已接收完一个字符的各位后,数据就从“接收移位寄存器”进入“数据输人寄存器”。CPU从“数据输人寄存器”中读取接收到的字符。“接收移位寄存器,的移位速度由祷接收时钟”确定.在数据输出过程中,CPU把要输出的字符送入“数据输出寄存器”,“数据输出寄存器”的内容传输到“发送移位寄存器”,然后由“发送移位寄存器”移位,把数据一位一位地送到外设.“发送移位寄存器”的移位速度由“发送时钟”确定。这样就完成了系统内部数据的并行变串行输出,串行数据变并行输人的转换过程。接口中的“控制寄存器”用来存放CPU送给该接口的各种控制信息,这些控制信息决定接口的工作方式。“状态寄存器’的各位称为“状态位”,每一个状态位都可以用来指示数据传输过程中的状态或某种错误。例如,用状态寄存器的DS位为‘犷表示“数据输出寄存器空”,用DO位表示“数据输人寄存器满”,用DZ位表示“奇偶检验错”等。3串苛予通信硬件设计串行通信方式有RS232串行通信、RS485串行通信、CAN总线、USB总线和正E1394总线等。由于RsZ犯串行通信实现较简单,而且一般PC机都配有9针的RS232接口,所以本系统采用RS232串行通信。由于单片机输人和输出电平为TTL电平,而PC机配置的是RS232标谁串行接口.二者的电气规范不一致,因此,要完成单片机与PC机的数据通信,必须进行电平转换。本系统4软件设计PC机和单片机在进行通信时,首先分别对各自的串行口进行初始化、确定串行口工作方式、设定波特率、传输数据长度等,然后才开始数据传输,这些工作是由软件来完成的,因此对PC机和单片机均需设计相应的通信程序。4,通信协议通信协议是指通信双方的一种约定。在PC机与单片机通信中,PC机承担主控任务,负责控制参数的设定,单片机接收PC机指令,并根据指令信息上传数据或控制披控对象。通信协议是:采用RS232串口异步通信模式,1位起始位,8位数据位,1位停止位,无奇偶校验位,波特率为9600b/5。传输数据采用二进制传输模式。以一个数据包为例,其帧头字符“~”,字符值为7EH,然后是数据串,帧尾是字符值为ZA的“”字符,则整个数据包为书~XXXX”。其中“XXXX”就是已经约定好的指令码。每个“X”表示,个十六进制数.根据通信协议,结合vC十+的特点,提出了如下的编程方法。42PC机部分在使用Window3操作系统的PC机VC十十环境中,串行通信实现的方法有多种:一是调用API函数实现,但这种方法使用起来需要许多底层设置,较为繁琐,难以理解,另一种是使用Activex的MSComm控件,这种方法鼓较为简便,但仍不能满足使用多个串口进行复杂处理的需要。由于VC++的强大功能,本文采用VC++的C阳raU类,它可以支持多线程的处理,功能较强,CSeri川是由MllMegaTeChno10邵es公司提供的一个免费的VC++类,可方便地实现串行通信。4.3单片机部分单片机的波特率设置与微机一致,定时器Tl作为波特率发生器,设置为工作方式2,串口设置为工作方,数据的传送格式为二9600MOVTLI,#OFDHMOVSCON,#50H;串口方式1,REN=1MOVPCON,#80HSETBTRI;启动定时器TICLRTI;禁止于1中断SETBEA;开中断SETBES,允许串口中断,…:主程序其它处理NT:CLREA;关中断CLRRIPUS于IDPHPUSHDPLPUSllACCEIVE:MOVA,SBUF;接收数据一;接收数据处理sEND:MOVSBUF,A;发送数据wA汀:JNBTI,WAIT,未发送完,等待CLRTIPOPACC,恢复现场POPDPLPOPDPHSETBEA,开中断R衬1‘15结语vC++是一个非常优秀的用户平台,提供了多种方法对串口进行通信控制,使用户不必了解具体的硬件原理,简化了编程,使程序透明化,井且适应性好,可移植性高,而且VC十+可以很好的实现PC机与单片机的通信.在工业分布式控制系统中,微机与单片机通信的这一方法在实际运行中,运行可靠、稳定,效果良好,解决了上位机与下位机之间通信的问题。
单片机与 PC 机串行通信中波特率的确定
1 单片机异步通信口的特点及波特率的选定
MSC51 系列单片机有一个全双工的异步通信口,他利用其 RXD 和 TXD
与外界进行通信,其内部 有 2 个物理上完全独立的接收、发送缓冲器 SBUF,
可同时发送和接收数据。异步串行通信发送和接收数据的速率与移位脉冲同步。
一般用 51 系列的 T1 定时器作为波特率发生器,T1 的溢出率经二分频(或不分
频)后又经十六分频作为串行发送或接收的移位脉冲,移位脉冲的速率即波特率。
单片机的异步通信波特率与串行口的工作方式、主振频率 Fosc 及定时器 T1 的
工作方式有关。一般通信中使 T1 工作于方式 2(可重装时间常数方式),若 Fosc
取 6 MHz,则波特率的计算公式如下:
?
其中:SMOD 是可编程的(即 PCON 的第 8 位),由此公式计算出的波特
率是不标准的波特率。?
2 PC 机异步通信口及其波特率的设置
由于 UART(通用异步接收/发送器)的产品型号很多,PC 机和 XT 机都采
用的是 INS8250 芯片, AT 机采用的是 NSI16450 芯片,他们二者是兼容的。
因此这里以 8250 芯片为例来说明 PC 机异步通信波特率的设定方法。PC 机中
有 2 个异步通信口,一个是 COM1,其端口地址范围是 3F8H~3 FFH,另一个
是 COM2,其端口地址是 2F8H~2FFH。其与 MODEM 配合可以实现远距离通
信。其波特率是标准波特率 50~9 600 b/s。
8250 内部有 10 个寄存器端口,其中有一个除数锁存器,可以通过编程
除数的大小来确定异步通信的波特率。8250 使用的频率是 1843 2 MHz 的基准
时钟输入信号,所以必须用分频的方法产生所需要的波特率(移位脉冲)。除数