实验单片机与PC机串口通信

合集下载

串口通信实验报告

串口通信实验报告

串⼝通信实验报告基于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:为指定的串⼝安装回调函数。

单片机MSP430与PC机串口通讯设计

单片机MSP430与PC机串口通讯设计

单片机MSP430与PC机串口通讯设计一、引言串口通信是指通过串行通信接口进行数据传输的一种通信方式。

单片机MSP430和PC机的串口通信设计可以实现二者之间的数据传输和通信交互。

本文将从串口介绍、硬件设计和软件实现等方面详细介绍该设计。

二、串口介绍串口是一种串行通信接口,常用的有RS232和RS485等。

RS232是一种使用较为广泛的串口通信协议。

RS232接口有三根线,分别为发送线Tx、接收线Rx和地线GND。

该协议规定,发送端与接收端之间的电平差为±3至±15V,其中正电平表示逻辑0,负电平表示逻辑1三、硬件设计1.MSP430硬件设计MSP430是一种低功耗的专用于嵌入式应用的16位RISC微控制器。

它具有丰富的外设资源,包括多个通用输入输出引脚(GPIO)和两个USART (UART)接口。

其中一个USART接口用于将MSP430与PC机连接。

2.PC机硬件设计PC机通过串口连接到MSP430。

首先,需要将PC机的串口RS232转换为TTL电平,即RS232转TTL电平转换器。

其次,将转换后的TTL电平通过杜邦线连接至MSP430的USART接口的Tx和Rx引脚。

四、软件实现1.MSP430软件设计(1)串口初始化:设置数据位长度、停止位、奇偶校验等。

(2)发送数据:将要发送的数据存入发送缓冲区,并使能发送中断。

(3)接收数据:开启接收中断,并将接收到的数据存入接收缓冲区。

(4)中断处理:发送中断和接收中断时,分别从发送缓冲区和接收缓冲区读取数据并发送/接收。

2.PC机软件设计(1)打开串口:设置串口参数,如波特率、数据位长度等。

(2)发送数据:向串口发送数据,可以通过打开的串口进行写入。

(3)接收数据:使用轮询或中断方式读取串口接收到的数据。

五、总结与展望本文详细介绍了单片机MSP430与PC机串口通信设计,主要包括了串口介绍、硬件设计和软件实现。

通过串口通信,MSP430和PC机可以实现数据传输和通信交互,从而满足各种嵌入式应用的需求。

PC与51单片机串口通信

PC与51单片机串口通信

PC与51单片机串口通信串行通信是计算机和外设进行通讯、对外设进行监控并获取由外设采集到的监测数据的一个非常重要的手段。

由于其所用的传输线少,成本低,实现起来方便易行,因而得到广泛的应用。

STC89C52RC有一个可编程的全双工串行通信接口,可以方便的实现PC机与其之间的串行通信。

一、总体方案系统中采用STC89C52RC/STC89C54RD+单片机作为下位机,PC机为上位机,二者通过CH340将PC的USB口转成RS232的串行口接收或上传数据。

单片机部分的程序采用C语言编程,用Keil uVision4编译后产生HEX文件下载到单片机内,从而实现数据收发。

PC端采用一个串口调试助手(sscom4.2)或MATLAB GUI 实现数据的收发。

二、具体方案1、简单通信测试程序本程序为了测试通信方式是否合适,以便于下一步增加程序的内容。

(1)利用STC提供STC-ISP-V4.83软件检查MCU选项MCU Type is: STC89C54RD+MCU Firmware Version: 3.2CChinese:MCU 固件版本号: 3.2CDouble speed / 双倍速: 12T/单倍速振荡放大器增益: full gain下次下载时 P1.0/P1.1 与下载无关内部扩展AUX-RAM: 允许访问(强烈推荐)下次下载用户应用程序时将数据Flash区擦除: NO用户软件启动内部看门狗后: 复位关看门狗ALE pin 仍为 ALE内部时钟频率:11.061806M外部时钟频率:11.061806M(2)串行口初始参数设定串行口工作方式为方式1(10位异步收发),波特率为9600bps,用定时器1作波特率发生器,选用定时器模式2,其它详见程序及说明。

(3)程序功能说明通过串口调试助手,向单片机发送字符,发送字符的末尾需加“!”,让单片机识别数据接收完毕,返回“Wait command!”字符串。

单片机与pc机通信

单片机与pc机通信

单片机与PC机通信1. 引言随着物联网的发展,单片机在各个领域中的应用越来越广泛。

在许多场景中,单片机与PC机的通信是必不可少的。

本文将介绍单片机与PC机通信的原理、常用的通信方式,以及如何实现单片机与PC机的通信。

2. 通信原理单片机与PC机通信的原理是通过串行通信实现的。

串行通信是一种逐位传输数据的通信方式,数据的传输速率较低,但占用的引脚少,适合单片机与PC机之间的通信。

3. 通信方式单片机与PC机之间的通信方式有多种,常见的方式包括:- 串口通信:使用串口通信可以方便地实现单片机与PC机之间的数据传输。

串口通信需要通过串口线连接单片机和PC机,单片机通过串口发送数据,PC机通过串口接收数据。

- USB通信:通过USB接口连接单片机和PC机,可以实现高速的数据传输。

USB通信需要使用USB转串口模块或者USB转串口芯片来实现。

- 以太网通信:通过以太网接口连接单片机和PC机,可以实现远程的数据传输。

以太网通信需要使用以太网模块或者以太网芯片来实现。

4. 实现单片机与PC机通信的步骤下面将介绍如何实现单片机与PC机的通信。

以串口通信为例,步骤如下:4.1. 硬件连接首先,需要通过串口线连接单片机和PC机。

单片机的串口引脚连接到串口线的发送端和接收端,PC机的串口引脚连接到串口线的接收端和发送端。

确保连接正确可靠。

4.2. 单片机程序编写在单片机上编写程序,使其能够通过串口发送数据给PC机。

根据单片机的型号和开发平台,选择相应的串口通信库或者使用底层的串口驱动程序来实现串口通信功能。

4.3. PC机程序编写在PC机上编写程序,使其能够通过串口接收来自单片机的数据。

根据PC机的操作系统和编程语言,选择相应的串口通信库或者使用底层的串口驱动程序来实现串口通信功能。

4.4. 通信测试与调试编写完成的单片机程序和PC机程序可以进行通信测试与调试。

首先确保单片机和PC机之间的连接没有问题,然后运行单片机程序和PC机程序,观察数据的发送和接收情况。

单片机与PC机串行通信

单片机与PC机串行通信
1.4.1
小键盘选择功能:首先设置定时器及波特率,然后在设计键盘扫描函数和按键检测函数,使之能实现小键盘的选择功能。输入不同的数实现调用不同的函数,从而实现不同的功能。
1.4.2
功能1:设计PC发送函数,此功能还需要有串行口中断函数。目的是实现单片机可以接收PC机发送的数据,并且将其发送给PC机。设置一个返回键,让按键1实现返回小键盘选择功能,可以重新选择功能1还是功能2。
若选择“2”,即要实现功能2,须调用小键盘扫描函数,将数据显示到数码管上,同时然后将该数据转化成acsii码的形式通过串行口发送到PC机上。当从小键盘按键NEXT时,返回初始状态,可以进行功能1和2的重新选择。
2
本课设主要分3个模块,第一个模块是主程序中的键盘扫描,通过键盘扫描程序来获取从小键盘输入的键值,此次课设里面用到的键盘的按键主要有三个,一个是‘0’,一个是‘1’,另一个是‘2’。当输入‘0’时,结束。当输入的是‘1’时,进入第二个功能模块,由PC机发送数据,将数据发送给单片机,然互在传给PC机。当输入数值‘2’时,进入第二个模块,将数据由单片机小键盘输入,发送给PC机。模块调用图如下页图2.1所示
这样就可以通过输出的列码和读取的行码来判断按下的是哪个该模块中键盘扫描的电路图和键盘扫描电路如图32和33所示沈阳航空航天大学课程设计报告32键盘电路图开始初始化地址参数输出列扫描信号列扫描信号移位读入行信号该列有键输入6列扫描完按照行列计算键值查表得键码等待按键释放33键盘扫描流程图沈阳航空航天大学课程设计报告主函数模块首先设置定时器及波特率的选择根据标志位k1的值选择是pc模式发送数据还是小键盘模式发送数据并根据功能选择模块中对各模式的信息的进行相应的初始设置
(2)课程设计要求:
①认真完成课程设计任务;

(完整word版)PC机与单片机的串口通信

(完整word版)PC机与单片机的串口通信

(C51编程)实训报告学院名称:福建船政交通职业学院专业:11计算机控制技术题目:单片机与PC机串口通信组别:第一组组员姓名:池清清,黄倩滢,蓝春燕学号:114103101,114103111,114103116 指导教师:朱其祥,黄炳乐,武光信,陈明,任慧1实训要求与任务 (1)1.1要求 (1)1.2任务 (1)2程序代码 (1)3程序运行平台 (3)4总体设计 (3)5串行通信方案设计 (4)6 PROTEUS仿真 (5)7结论 (6)摘要串行口是计算机与外部设备之间进行数据交换的重要介质,所以串行通信在工程中有着广泛的应用。

这种通信的实现,主要是靠上位PC机与下位单片机组成的二级系统通过RS232进行通信。

此次设计通过计算机输入数据通过串口传送给单片机进而在LED上显示,使学生进一步巩固所学的单片机系统硬件知识,C语言程序设计方法,计算机通信原理,计算机可视化程序设计,综合性很强,学生得到很大的锻炼。

关键词:单片机PC机串口通信把COMPIM 放在仿真电路图中,当仿真运行起来之后,送到COMPIM 3 号引脚的串行数据,将会通过PC 机的COM1 串行口输出,如果在PC 机的COM1 串行口外接一条电缆,可将串行数据送到其它的硬件设备上。

同样道理,其它的硬件设备送到PC 机的COM1 的串行数据,也会在COMPIM 的号引脚出现,送到仿真电路里面。

由于COMPIM 组件内部,自带RS-232 和TTL 的电平转换功能,因此不需要再使用电平转换芯片。

5.2 利用VSPD 软件7结论这次实训,有很多的心得体会,有关于单片机与串口通信方面的,更多的是关于人与人之间关系方面的。

在这短短一周期间,我得到了很多老师与同学的帮助。

本组对单片机并不是很熟悉,理论联系不了实际。

串口调试与软件安装令我们束手无策了。

后来请教我们班的同学,看他边做边给我们讲解。

最后调试成功,完成了本程序。

最后说明对这次实训的感受,课堂教学考虑到大多数同学的需求,主要强调“基本”—基本知识、基本理论、基本方法、基本技能。

单片机串行口与PC机通讯资料.pdf

单片机串行口与PC机通讯资料.pdf

单片机串行口与PC机通讯目录第1节引言 (1)1.1 单片机串行口与PC机通信概述 (1)1.2 系统主要功能 (1)第2节单片机串行口与PC机通讯硬件设计 (2)2.1系统的硬件构成 (2)2.2设计说明 (2)2.3系统电路图 (3)2.48031单片机及其引脚说明 (5)2.5显示接口8279的功能及其引脚说明 (5)2.6 数据格式和数据的协议 (6)第3节系统软件设计 (7)3.1系统主程序框架图 (7)3.2系统主要程序 (8)第3节结束语 (14)参考文献 (15)第1节引言单片机应用中,串口通信是不可缺少的部分。

如何编写有效的串口通信程序对程序的结构、可靠性都有很大的影响。

串口控制程序一般分为查询和中断两者方式。

查询方式适用于简单的应用,简单可靠,但是缺点是需要占用处理器资源,在发送或者接收数据的时候不能做其它的事情,处理器利用率低。

中断方式下,在发送或者接受数据的时候处理器还可以做其它的工作,效率较高。

1.1 单片机串行口与PC机通讯概述目前,计算机控制系统已逐步从单机控制发展成为多机控制并出现了以计算机技术为核心,与数据通讯技术相结合的集检测、控制和管理为一体的计算机网络,即集中分布式测控系统。

其中单片机作为从机,负责现场控制和实时数据的采集;PC机作为主机,负责对各从机发来的数据进行分析、处理,并向各从机发布命令,以实现对工业现场的集中监控与管理。

由于主从机需不断进行信息交流,因此通信成为分布式测控系统重要而基本的功能。

基本原理PC机与单片机之间通常采用2种通信方式:并行通信和串行通信。

并行通信是指将待发送数据的各位同时传送,串行通信则将数据一位一位地按顺序传送。

并行通信虽然传输效率高,由于所需硬件设备复杂,不适于长距离通信,所以一般只适用于要求实时性强,传送速率较高的控制系统中,实用面较窄;相比之下,串行通信简单易实现,传输距离较长,所以已被广泛应用于各种工控系统中。

串行通信分为同步通信和异步通信2种方式。

设备通信实验报告(3篇)

设备通信实验报告(3篇)

第1篇一、实验目的1. 理解并掌握串行通信的基本原理和通信协议。

2. 掌握单片机与PC之间的串行通信编程方法。

3. 通过实验验证串行通信在实际应用中的可靠性。

二、实验设备1. 单片机最小系统教学实验模块(含AT89S51单片机)2. PC机3. 串口通信线4. 示波器5. 数码管显示模块三、实验原理串行通信是一种串行传输数据的方式,数据按照位顺序逐位传输。

串行通信分为同步通信和异步通信两种方式。

本实验采用异步通信方式,即串行数据传输过程中,每个字符数据前都有一个起始位,字符数据后有一个或多个停止位,字符数据之间可以插入空闲位。

异步通信的波特率是指每秒钟传输的位数。

本实验中,单片机与PC之间的通信波特率为9600。

四、实验内容1. 单片机与PC之间的串行通信(1)编写单片机串行通信程序,实现数据发送和接收。

(2)编写PC端串口通信程序,实现数据发送和接收。

(3)使用示波器观察单片机串行通信过程中的信号波形。

2. 双机通信实验(1)连接两套单片机实验模块,实现单片机之间的串行通信。

(2)编写两个单片机之间的串行通信程序,实现数据发送和接收。

(3)使用数码管显示模块显示接收到的数据。

五、实验步骤1. 编写单片机串行通信程序(1)设置单片机串行口工作在方式1,波特率为9600。

(2)编写数据发送函数,实现数据的串行发送。

(3)编写数据接收函数,实现数据的串行接收。

2. 编写PC端串口通信程序(1)打开串口,设置波特率为9600,数据位为8位,停止位为1位,校验位为无。

(2)编写数据发送函数,实现数据的串行发送。

(3)编写数据接收函数,实现数据的串行接收。

3. 使用示波器观察单片机串行通信过程中的信号波形(1)将示波器的探头连接到单片机的串行通信接口。

(2)运行单片机程序,发送数据。

(3)观察示波器上的信号波形,验证串行通信的可靠性。

4. 连接两套单片机实验模块,实现单片机之间的串行通信(1)将两套单片机实验模块的串行通信接口通过串口通信线连接。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1
实验 单片机与PC机串口通信(C51编程)实验
要求:
1、 掌握串行口的控制与状态寄存器SCON
2、 掌握特殊功能寄存器PCON
3、 掌握串行口的工作方式及其设置
4、 掌握串行口的波特率(bond rate)选择
任务:
1、实现PC机发送一个字符给单片机,单片机接收到后即在个
位、十位数码管上进行显示,同时将其回发给PC机。要求:单
片机收到PC机发来的信号后用串口中断方式处理,而单片机回
发给PC机时用查询方式。
采用软件仿真的方式完成,用串口调试助手和KEIL C,或串
口调试助手和PROTEUS分别仿真。
需要用到以下软件:KEIL,VSPD XP5(virtual serial ports
driver xp5.1虚拟串口软件),串口调试助手,Proteus。

(1)虚拟串口软件、串口调试助手和KEIL C的联调
首先在KEIL里编译写好的程序。
#include
#define uchar unsigned char
#define uint unsigned int
2

uchar code
SEG7[10]={0X3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}
;//数码管位值
uchar code ACT[4]={0XFE,0xfd,0xfb,0xf7};%数码管位选信号
uchar code as[]="Receving data:\0";%回送预置数据
uchar a=0x30,b;
//initiate,串口设置为波特率9600,
void init(void){
TMOD=0X20;
TH1=0XFD;
TL1=0XFD;
SCON=0X50;
TR1=1;
ES=1;
EA=1;
}
//DELAY,为数据管交替显示
void delay(uint k){
uint data i,j;
for(i=0;ifor(j=0;j<121;j++)
{;}
3

}
}

//main
void main(void){
uchar i;
init();
while(1){ //用数码管显示PC发给单片机的数据,并回送给PC
P1=SEG7[(a-0x30)/10];
P2=ACT[1];
delay(500);
P1=SEG7[(a-0x30)%10];
P2=ACT[0];
delay(500);
if(RI){
RI=0;
i=0;
while(as[i]!='\0'){
SBUF=as[i];
while(!TI){
;
}
4

TI=0;
i++;
}
SBUF=b;
while(!TI){
;
}
TI=0;
EA=1;
}
}
}

//INTERRUPT 4,将收到的信息进行转存
void serial_serve(void) interrupt 4
{
a=SBUF;
b=a;
EA=0;
}
5

打开VSPD,界面如下图所示:(注明:这个软件用来进行
串口的虚拟实现。在其网站上可以下载,但使用期为2周)。

左边栏最上面的是电脑自带的物理串口。点右边的add
pair,可以添加成对的串口。一对串口已经虚拟互联了,如果添
加的是COM3、COM4,用COM3发送数据,COM4就可以接收数据,
反过来也可以。

接下来的一步很关键。把KEIL和虚拟出来的串口绑定。现在
把COM3和KEIL绑定。在KEIL中进入DEBUG模式。在最下面的
COMMAND命令行,输入

mode com3 9600,0,8,1 %分别设置com3的波特率、奇偶
校验位、数据位、停止位

assign com3 sout %把单片机的串口和COM3绑定到
6

一起。因为所用的单片机是
%AT89C51,只有一个串口,所以
用SIN,SOUT,如果单片机有

%几个串口,可以选择S0OIN,S0OUT,S1IN,
S1OUT。

(以上参数设置注意要和所编程序中设置一致!)
打开串口调试助手

可以看到虚拟出来的串口COM3、COM4,选择COM4,设置为
波特率9600,无校验位、8位数据位,1位停止位(和COM3、程
序里的设置一样)。打开COM4。
7

现在就可以开始调试串口发送接收程序了。可以通过KEIL
发送数据,在串口调试助手中就可以显示出来。也可以通过串口
调试助手发送数据,在KEIL中接收。

实验实现PC机发送一个字符给单片机,单片机接收到后将其
回发给PC机。在调试助手上(模拟PC)发送数据,单片机收
到后将收到的结果回送到调试助手上。

2、以下在Proteus和串口调试助手实现的结果:
将编译好的HEX程序加载到Proteus中,注意这里需要加上
串口模块,用来进行串行通信参数的设置。

XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD3
36
P0.4/AD4
35

P0.5/AD5
34

P0.6/AD6
33

P0.7/AD7
32

P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD
10
P3.1/TXD
11

P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U2AT89C51ERRORTXD3RXD2CTS8RTS7DSR6DTR4DCD
1

RI
9

P1

COMPIM
点击串口,可以对串口进行设置:
8

用串口调试助手发送数据,即可看到仿真结果。
实验参考程序源文件在exp2-comm文件夹中。

相关文档
最新文档