(完整word版)51单片机与PC机通信资料
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!”字符串。
(完整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结论这次实训,有很多的心得体会,有关于单片机与串口通信方面的,更多的是关于人与人之间关系方面的。
在这短短一周期间,我得到了很多老师与同学的帮助。
本组对单片机并不是很熟悉,理论联系不了实际。
串口调试与软件安装令我们束手无策了。
后来请教我们班的同学,看他边做边给我们讲解。
最后调试成功,完成了本程序。
最后说明对这次实训的感受,课堂教学考虑到大多数同学的需求,主要强调“基本”—基本知识、基本理论、基本方法、基本技能。
51单片机与PC机串口通信

单片机P2口接8只LED灯,P3.2~P3.3引脚连接有K1和K2共2个按键,使用单片机串行口与PC机通信。
1)由PC机控制单片机的P2口,将PC机送出的数以二进制形式显示在LED灯上;2)按下按键K1向PC机发送数字0x55,按下K2向PC机发送数字0xAA。
源程序如下:#define uchar unsigned char#include "string.h"#include "reg51.h"unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, 0x08,0x03,0x46,0x21,0x06,0x0e}; //十六进制-7段译码表void mDelay(unsigned int DelayTime) //延时函数{ unsigned char j=0;for(;DelayTime>0;DelayTime--) //延时循环{ for(j=0;j<125;j++){;}}}void SendData(uchar Dat) //发送函数{ uchar i=0;SBUF=Dat; //发送Datwhile(1){if(TI) //如果发送中断标志为1,则等待,{ TI=0; break; } //否则清除发送中断标志}}uchar Key() //按键处理函数{ uchar KValue; //声明键值函数P3|=0x3e; //中间4位置高电平 0011 1101if((KValue=P3|0xe3)!=0xff) //如果按键按下{ mDelay(10); //延迟时间函数if((KValue=P3|0xe3)!=0xff) //如果按键还在按下状态{ for(;;) //等待if((P3|0xe3)==0xff) //如果按键抬起,return(KValue); //返回键值}}return(0); //如果按键没有按下,返回0}void main() //主函数{ uchar KeyValue; //定义键值变量KeyValueunsigned char ns,ng,temp; //定义变量ns,ng,tempP2=0xff; //熄灭P2口连接的所有发光管TMOD=0x20; //确定定时器工作模式,模式2,常数自动装入TH1=0xFD;TL0=0xFD; //定时器1的初值波特率为9600,晶体为11.0592MHz //PCON&=0x80; 若是SMOD=1 可以使波特率加倍TR1=1; //启动定时器1SCON=0x40; //串口工作方式1 运行在8位模式REN=1; //允许接收for(;;) //无限循环{if(KeyValue=Key()) //调用按键函数,获取按键信息{ if((KeyValue|0xfb)!=0xff) //如果按键k1按下SendData(0x55); //调用发送函数,送出0x55if((KeyValue|0xf7)!=0xff) //如果k2按下SendData(0xaa); //调用发送函数,送出0xaa}if(RI) //如果接收中断发生{ P2=SBUF; //将接收数据写到端口P2RI=0; } //清除接收标志位temp=P2; //暂存接收到的数据ng=temp & 0x0f; //取接收数据低4位ns=temp>>4; //将高4位右移4位ns &=0x0f; //取接收数据高4位P0=table[ng]; //P0口连接的数码管显示低4位P1=table[ns]; //P1口连接的数码管显示高4位}}。
MC51单片机与PC 机的串口通信

单片机与PC 机的串口通信这一讲将介绍单片机上的串口通信。
通过该讲,读者可以掌握单片机上串口的工作原理和如何通过程序来对串口进行设置,并根据所给出的实例实现与PC 机通信。
一、原理简介51 单片机内部有一个全双工串行接口。
什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。
串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。
其缺点是传输速度较低。
与之前一样,首先我们来了解单片机串口相关的寄存器。
SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对SBUF 的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。
从而控制外部两条独立的收发信号线RXD(P3.0)、TXD(P3.1),同时发送、接收数据,实现全双工。
串行口控制寄存器SC ON(见表1)。
表1 SCON寄存器表中各位(从左至右为从高位到低位)含义如下。
SM0 和SM1 :串行口工作方式控制位,其定义如表2 所示。
表2 串行口工作方式控制位其中,fOSC 为单片机的时钟频率;波特率指串行口每秒钟发送(或接收)的位数。
SM2 :多机通信控制位。
该仅用于方式2 和方式3 的多机通信。
其中发送机SM2 =1(需要程序控制设置)。
接收机的串行口工作于方式2 或3,SM2=1 时,只有当接收到第9 位数据(RB8)为1 时,才把接收到的前8 位数据送入SBUF,且置位RI 发出中断申请引发串行接收中断,否则会将接受到的数据放弃。
当SM2=0 时,就不管第位数据是0 还是1,都将数据送入SBUF,并置位RI 发出中断申请。
工作于方式0 时,SM2 必须为0。
REN :串行接收允许位:REN =0 时,禁止接收;REN =1 时,允许接收。
TB8 :在方式2、3 中,TB8 是发送机要发送的第9 位数据。
MCS_51单片机与PC机串行通讯的实现

MCS -51单片机与PC 机串行通讯的实现赵迎生(淮阴工学院,江苏淮阴223300)摘要:本文利用VB 程序在PC 机上的强大的编程功能和MCS -51单片机的接口设计简单可靠的特点,介绍了实现PC 机与MCS -51单片机相互间进行通讯的软硬件设计,提供了通讯的VB 程序和MCS -51单片机汇编程序。
关键词:PC 机;单片机;通讯;程序The R ealization of Serial Communication B et w een MCS -51Microcomputer and PCZHAO Y ing 2sheng(Huaiyin Institute of Technology ,Hua i ’an 223001,China )Abstract :Based on the powerful programming function of Visual Basic program on personal computer and the simple and reliable characteristic of interface design of MCS -51series microcomputer ,the design method of software and hardware is introduced to re 2alize the communication between PC and MCS -51series microcomputer ,and VB program and MCS -51assembly language pro 2gram process is offered.K eyw ords :Personal computer ;Microcomputer ;Communication ;Programm0 前言VB 程序的编程功能非常强大,根据实际应用系统的需要,在PC 机上可以迅速设计出应用系统的图文显示控制界面,且具有通用性,易于移植。
PC机与51单片机的通信

SETB TR1
;启动定时器T1
MOV PCON ,#80H ;设SMOD=1
MOV SCON ,#0D0H ;置串行口方式3,允许接收
MOV DPTR ,#4000H ;置数据块首址
MOV R0 ,#80H
;置发送字节数初值
SETB ES
;允许串行口中断
SETB EA
;CPU开中断
MOVX A ,@DPTR
;发校验和
;从机接收正确 ;从机接收不正确,重新发送
JZ RE_DATA
;从机准备好发送,可以接收
LJMP SE_DATA
RE_DATA:MOV R6,#00H ;清校验和接收16个字节数据
MOV R0,#30H
MOV R7,#10H
LOOP2:JNB RI,$
CLR RI
MOV A,SBUF
MOV @R0,A
INC R0
ADD A,R6
MOV R6,A
•主机收到从机应答地址后,确认地址是否相符,如 果地址不符,发复位信号(数据帧中TB8=1);如果 地址相符,则清TB8,开始发送数据。
•从机收到复位命令后回到监听地址状态(SM2=1)。 否则开始接收数据和命令。
3、应用程序
•主机发送的地址联络信号为:00H,01H,02H ,… …(即从机设备地 址),地址FFH为命令各从机复位,即恢复SM2=1。 •主机命令编码为:01H,主机命令从机接收数据;02H,主机命令从机发 送数据。其它都按02H对待。
;串行口的中断入口地址
LJMP SERVE2
;转向乙机中断服务程序
ORG 2000H
;主程序
MAIN: MOV TMOD ,#20H ;设T1工作与模式2
单片机与PC机通信实验(中断方式)

初始化后,设置串口工作。
3、串行通信中,只有通信双方采用相同的接口标准,才能进行正常的通信。MCS-51 单片机的串口严格遵循 TTL 标准,其中高电平为 5V,低电平为 0V。但是计算机的串口遵 循的是 RS-232 标准,为负逻辑电平,高电平为-3V~-15V,低电平为 3V~15V。因此当计 算机与单片机之前通信时,必须加电平转换芯片,否则,如果它们直接连到一起不但不能实 现通信,还可能将一些硬件烧毁。目前常用的集成电路转换芯片有 MAX232,MAX202, HIN232 等。 MAX232 芯片是 MAXIM 公司生产的、包含两路接收器和驱动器的 IC 芯片,它的内部 有一个电源电压变换器, 可以把输入的+5V 电源电压变换成为 RS-232 输出电平所需的+10V
PC 机发送的,所以接收数据是不可预知的,即单片机不知道 PC 机何时发送数据,也不知 道发送的是什么数据,所以单片机接收数据可以采用中断方式;而单片机接收到数据后,立 即给 PC 机发送字符串,发送字符串的过程是可以预知的,所以发送字符串的过程可以采用 查询方式。 但如果打开串口中断, 无论是串口接收到一帧数据还是发送一帧数据均可引起串 口中断,所以进入中断服务程序后先判断是不是由接收数据引起的,即判断 RI 是否置位, 如果是接收数据引起则处理,否则不处理。在收到数据后应首先关闭串行口中断,原因还是 刚才讲过的,因为接下来要发送数据,如果不关闭串行口中断,那么每发送完一帧数据后同 样会引起串行口中断,又会进入中断服务程序。再接下来要使 RI 软件清零,这样才能产生 下一次中断;将 SBUF 中的数据读走给 rev;将标志位 flag 置 1,以便在主程序中查询判断是 否已经接收到数据。 主程序在进入大循环 while(1)后,一直在检测标志位 flag 是否为 1,当检测到为 1 时, 说明程序已经执行过串口中断服务程序,即收到数据,可以进行发送数据了。在发送数据之 前,先将 flag 清零,这是为了标志下次接收数据。在发送数据时,发送前面固定字符,使 用了一个 for 循环语句,将前面字符依次发送出去,后面再接着发送从中断服务程序中读回 来的 rev 数据。发送每个字符的时候,当向 SBUF 中写入一个数据后就会开始发送,使用查 询方式“while(!TI);”等待是否发送完毕,因为当发送完毕后 TI 会由硬件置 1,接下来再手动 将 TI 清零。随后,打开串口中断,等待下次单片机再接收到数据。
单片机与pc机串口通信

单片机与pc机串口通信单片机与 PC 机串口通信在现代电子技术领域,单片机与 PC 机之间的串口通信是一项非常重要的技术。
它为各种应用场景提供了便捷的数据传输方式,使得单片机系统能够与强大的 PC 机进行有效的信息交互。
首先,让我们来了解一下什么是单片机。
单片机,也被称为微控制器(MCU),是一种集成了 CPU、内存、I/O 接口等多种功能于一体的小型芯片。
它在各种电子设备中扮演着“大脑”的角色,负责控制和协调设备的运行。
而 PC 机,作为功能强大的通用计算机,拥有丰富的资源和强大的处理能力。
那么,为什么要实现单片机与 PC 机的串口通信呢?原因有很多。
一方面,通过串口通信,PC 机可以向单片机发送控制指令,实现对单片机所控制设备的远程操作。
另一方面,单片机可以将其采集到的数据实时传输给 PC 机,以便在 PC 机上进行进一步的处理、分析和存储。
串口通信的原理其实并不复杂。
它是一种基于串行数据传输的通信方式,通过发送和接收一系列的二进制位来实现信息的传递。
在串口通信中,数据以一位一位的顺序依次传输,相比于并行通信,虽然速度较慢,但具有线路简单、成本低、可靠性高等优点。
要实现单片机与 PC 机的串口通信,需要一些硬件和软件的支持。
在硬件方面,通常需要一个串口转换芯片,将单片机的 TTL 电平(通常为 0 5V)转换为 PC 机所使用的 RS232 电平(通常为-10V 到+10V)。
常见的串口转换芯片有 MAX232 等。
此外,还需要连接相应的数据线,将单片机的串口引脚与 PC 机的串口接口相连。
在软件方面,对于单片机来说,需要编写相应的串口通信程序,设置串口的工作模式、波特率、数据位、停止位等参数,并实现数据的发送和接收功能。
而对于 PC 机,通常可以使用各种编程语言,如 C++、C、Python 等,通过调用操作系统提供的串口通信库来实现与单片机的通信。
```cinclude <reg52h>void initUART(){TMOD = 0x20; //设置定时器 1 为模式 2TH1 = 0xfd; //波特率 9600TL1 = 0xfd;TR1 = 1; //启动定时器 1SCON = 0x50; //工作方式 1,允许接收}void sendByte(unsigned char dat){SBUF = dat;while (!TI);//等待发送完成TI = 0; //清除发送标志}void main(){initUART();while (1){sendByte('A');delay_ms(1000);}}```在这个示例中,首先通过`initUART` 函数对串口进行初始化设置,包括波特率等参数。
PC机与单片机的通讯

4800 00h 18h
9600 00h 0Ch
19200 00h 06h
38400 00h 03h
57600 00h 02h
115200 00h 01h
以下几个表格为8250的寄存器的功能描述:
中断允许寄存器(IER):
4 Read/Write MCR MODEM控制寄存器
5 Read LSR 线路状态寄存器
6 Read MSR MODEM状态寄存器
7 Read/Write - Scratch Register
PC机支持1-4个串行口,即COM1-COM4,其基地址在BIOS数据区0000:0400-0000:0406中描述,对应地址分别为3F8/2F8/3E8/2E8,COM1及COM3使用PC机中断4,COM2及COM4使用中断3。
位 注 释
7 未使用
6 未使用
5 进入低功耗模式(16750)
4 进入睡眠模式(16750)
3 允许MODEM状态中断
2 允许接收线路状态中断
1 允许发送保持器空中断
0 允许接收数据就绪中断
Bit0置1将允许接收到数据时产生中断,Bit1置1时允许发送保持寄存器空时产生中断,Bit2置1将在LSR变化时产生中断,相应的Bit3置位将在MSR变化时产生中断。
Bit5:3=111 奇偶保持为0
Bit2=0 1位停止位
Bit2=1 2位停止位(数据位6-8位),1.5位停止位(5位数据位)
Bit1:0=00 5位数据位
Bit1:0=01 6位数据位
Bit1:0=10 7位数据位
Bit1:0=11 8位数据位
51单片机和PC机串行通信系统设计

3 通信软件的设计 PC机和单片机在进行通信时 ,首先分别对各自
的串行口进行初始化 、确定串行口工作方式 、设定波 特率 、传输数据长度等 ,然后才开始数据传输 ,这些 工作是由软件来完成的 ,因此对 PC 机和单片机均 需设计相应的通信软件 。
收稿日期 : 2005202221
图 2 MC1488引脚示意图
图 3 MC1489引脚示意图
图 4 单片机与 RS2232标准接口电路
开始通信前 ,首先要初始化串口 ,包括选串口 、 设置串口掩码 、设置缓冲区 、设置波特率 、创建同步 事件 、创建线程并让辅助线程处于发信号状态等 。 用户通过调用 AP I提供的函数来完成 。W in 32 对 I/O 口 ,如串口 、并口等进行操作需通过“文件 ”方式 实现 ,串口的打开 、关闭 、读取和写入所用的函数和 操作文件的方式相似 。常用的函数调用有 :
·41·
( 3)设置缓冲区大小 。如果程序需要重新分配 发送和接收缓冲区 ,则使用 SetupComm ( )函数 。
( 4)清除缓冲区 。可使用 PurgeComm ( )函数 。 ( 5)从串口接收数据 。可使用 Read2File ( ) 函 数。 ( 6)从串口发送数据 。可使用 W rite2File ( ) 函 数。 ( 7)关闭串口 。可使用 CloseHandle ( )函数 。 有了 W in32 AP I串行通信函数 ,就可以实现串 口的打开和关闭 ,设置串口状态 ,并进行串行数据的 发送和接收 ,完成串行通信任务 。编写 W in32 串行 通信程序的基本步骤是 : ①使用 CreateFile ( )函数获得串口句柄 ; ②使用 BuildCommDCB ( )和 SetCommState ( )函 数设置串口工作状态 ; ③可根据需要选择相应的结构和函数进行其它 设置 。如重新设置发送接收缓冲区可使用 Setup2 Comm ( )函数 ;设置超时则可修改 COMMTIMEOUTS 结构并使用 SetCommTimeouts( )函数等 ; ④使用 ReadFile ( ) 和 W riteFile ( ) 函数读写串 口; ⑤串行通信结束时 ,使用 CloseHandle ( )函数关 闭串口以释放控制权 ,使串口可以被其它的程序使 用。 3. 2 单片机收发软件设计 设计单片机的通信软件 ,实际上是对单片机的 串行口的设计 ,通常采用汇编语言来设计 。首先必 须设置串行通 信 方式 ( SCON ) 和 波特 率 ( PCON ) 。 汇编程序如下所示 : ( 1)发送程序的设计 。 TRT: MOV SCON , #50H; 初始化方式 1,波特率
51单片机与PC机通信

《专业综合实习报告》专业:电子信息工程年级:2013级指导教师:学生:目录一:实验项目名称二:前言三:项目内容及要求四:串口通信原理五:设计思路5.1虚拟串口的设置5.2下位机电路和程序设计5.3串口通信仿真六:电路原理框图七:相关硬件及配套软件7.1 AT89C51器件简介7.2 COMPIN简介7.3 MAX232器件简介7.4友善串口调试助手7.5 虚拟串口软件Virtual Serial Port Driver 6.9八:程序设计九:proteus仿真调试十:总结十一:参考文献一:实验项目名称:基于51单片机的单片机与PC机通信二:前言在国内外,以PC机作为上位机,单片机作为下位机的控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行积极交互,而单片机系统根据被控对象配置相应的前向,后向信息通道,工作时作为主控机测对象,作为被控机接受PC机监督,指挥,定期或受命向上位机提供对象及本身的工作状态信息。
目前,随着集成电路集成度的增加,电子计算机向微型化和超微型化方向发展,微型计算机已成为导弹,智能机器人,人类宇宙和太空和太空奥妙复杂系统不可缺少的智能部件。
在一些工业控制中,经常需要以多台单片机作为下位机执行对被控对象的直接控制,以一台PC机为上位机完成复杂的数据处理,组成一种以集中管理、分散控制为特点的集散控制系统。
为了提高系统管理的先进性和安全性,计算机工业自动控制和监测系统越来越多地采用集总分算系统。
较为常见的形式是由一台做管理用的上位主计算机(主机)和一台直接参与控制检测的下位机(单片机)构成的主从式系统,主机和从机之间以通讯的方式来协调工作。
主机的作用一是要向从机发送各种命令及参数:二是要及时收集、整理和分析从机发回的数据,供进一步的决策和报表。
从机被动地接受、执行主机发来的命令,并且根据主机的要求向主机回传相应烦人实时数据,报告其运行状态。
用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。
51单片机与PC串口通讯

目录第1章需求分析 ............................................................................................................................ - 1 -1.1课题名称 (1)1.2任务 (1)1.3要求 (1)1.4设计思想 (1)1.5课程设计环境 (1)1.6设备运行环境 (2)1.7我在本实验中完成的任务 (2)第2章概要设计 ............................................................................................................................ - 2 -2.1程序流程图 (2)2.2设计方法及原理 (3)第3章详细设计 ............................................................................................................................ - 3 -3.1电路原理 (3)3.1.1STC89C52芯片 ............................................................................................................. - 3 -3.2串口通信协议 (4)3.3程序设计 (5)3.3.1主程序模块 .................................................................................................................... - 5 -3.3.2串口通讯模块 ................................................................................................................ - 6 -3.3.3控制部分文件 ................................................................................................................ - 8 -3.3.4公共部分模块 .............................................................................................................. - 11 -3.4电路搭建 (12)3.4.1电路原理图 .................................................................................................................. - 12 -第4章上位机关键代码分析 ...................................................................................................... - 12 -4.1打开串口操作 (12)4.2后台线程处理串口程序 (15)4.3程序运行界面 (18)第5章课程设计总结与体会 ...................................................................................................... - 19 -第6章致谢 .................................................................................................................................. - 19 -参考文献........................................................................................................................................... - 19 -第1章需求分析1.1 课题名称故障诊断数据采集通信系统设计与制作。
单片机与PC机串行通信的实现方法

单片机与PC机串行通信的实现方法随着单片机和微机技术的不断发展,特别是网络技术在测控领域的广泛应用,由PC机和多台单片机构成的多机网络测控系统已成为单片机技术发展的一个方向。
它结合了单片机在实时数据采集和微机对图形处理、显示的优点。
同时,windows环境下后台微机在数据库管理上具有明显的优势。
二者结合,使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成了向以网络为核心的分布式多点系统发展的趋势。
本文主要介绍PC机与51系列单片机实现通信的一般方法和步骤。
硬件结构和单片机的通1S程序设计单片机和PC机的串行通信一般采用RS-232、RS-422或B3-485总线标准接口,也有采用非标准的20nnJL 电流环的。
为保证通信的可靠,在选择接口时必须注意:(1)通信的速率;(2)通信距离:(3)抗干扰能力;(4)组网方式。
本文主要介绍采用RS-232接口与单片机通信的方法。
1、 RS-232电平转换和PC机的接口电路RS-232是早期为公用电话网络数据通信而制定的标准,其逻辑电平与ITL\CMOS电乎完全不同。
逻辑"0"规定为+5- +15V之间,逻辑"1,,规定为-5~-15V之间。
由于RS-232发送和接收之间有公共地,传输采用非平衡模式,因此共模噪声会耦合到信号系统中,其标准建议的最大通信距离为15米.但实际应用中我们在300bi:/s的速率下可以达到300米。
RS-232规定的电平和一般微处理器的逻辑电平不一致,必须进行电平转换,实现逻辑电平转换可以采用以下三种方式。
采用MCl488和MCl489芯片的转换接口 MCl488和MCl489芯片为早期的RS-232至TTL逻辑电平的转换芯片,图1为实际电路。
该电路的不便之处是需要±12V电压,并且功耗较大,不适合用于低功耗的系统。
图中TXD、RXD分别接单片机的发送和接收端。
采用MAX232芯片的转换接口 MAX232是MAXIM公司生产的,包含两路驱动器和接收器的RS-232转换芯片。
51单片机与PC机通信

51单片机与PC机通信随着嵌入式系统和物联网技术的发展,51单片机在许多应用中扮演着重要的角色。
这些单片机具有低功耗、高性能和易于编程等优点,使其在各种嵌入式设备中得到广泛应用。
在这些应用中,与PC机的通信是一个关键的需求。
本文将探讨51单片机与PC机通信的方法和协议。
串口通信是51单片机与PC机进行通信的最常用方式之一。
串口通信使用一个或多个串行数据线来传输数据,通常使用RS232或TTL电平标准。
在硬件连接方面,需要将51单片机的串口与PC机的串口进行连接。
通常使用DB9或USB转TTL电路来实现这一连接。
在软件编程方面,需要使用51单片机的UART控制器来进行数据的发送和接收。
具体实现可以使用Keil C51或IAR Embedded Workbench 等集成开发环境进行编程。
USB通信是一种比较新的通信方式,它具有传输速度快、支持热插拔等优点。
在51单片机中,可以使用USB接口芯片来实现与PC机的通信。
在硬件连接方面,需要将51单片机的USB接口芯片与PC机的USB接口进行连接。
通常使用CH340G或FT232等USB转串口芯片来实现这一连接。
在软件编程方面,需要使用51单片机的USB接口芯片来进行数据的发送和接收。
具体实现可以使用相应的USB库来进行编程。
网络通信是一种更加灵活和高效的通信方式。
在51单片机中,可以使用以太网控制器来实现与PC机的网络通信。
在硬件连接方面,需要将51单片机的以太网控制器与PC机的网络接口进行连接。
通常使用ENC28J60等以太网控制器来实现这一连接。
在软件编程方面,需要使用51单片机的以太网控制器来进行数据的发送和接收。
具体实现可以使用相应的网络库来进行编程。
需要注意的是,网络编程涉及到更多的协议和数据格式,需要有一定的网络基础知识。
本文介绍了51单片机与PC机通信的三种常用方式:串口通信、USB 通信和网络通信。
每种方式都有其各自的优缺点和适用场景。
第19章-51系列单片机与PC的串行通信

第十九讲:51系列单片机与PC的串行通信
课程安排
• 串行通信接口概述 • 串行通信接口芯片 • 单片机与PC的串行通信实例
串行通信接口概述
• 串行通信也就是数据按照比特逐个发送和接收的通 信标准。 • 主要包括如下几种:
– – – – – 基本串行通信接口RS-232C; 高速率增强型串行通信接口RS-449; 平衡方式高速率增强型串行通信接口RS-422; 非平衡方式增强型串行通信接口RS-423; 多发送/接收器远距离增强型串行通信接口RS-485;
RS-423A串行通信接口标准
• RS-423A标准是另外一种采用非平衡数据传输的方 式 • RS-423A标准采用了差分接收器代替原来的RS232C的单端接收器
发送器 DS3691 数据输入 RS-423A信号线 接收器 26L32 数据输出
信号公用线
RS-422A串行通信接口标准
• RS-422A标准是另外一种以平衡方式传输的标准 • 发送端和接收端分别采用平衡发送器和差动接收器。 • 该标准中规定只有一个发送器,但可以有多个接收器
– 抗干扰串行通信接口20mA电流环。
RS-232C串行通信接口标准
识别代号 最后一次修订的标准版本号
RS
Recommended Standard (推荐标准)
232
C
RS-449串行通信接口标准
• RS-449标准利用的是信号导线之间的信号电压差 ,也就是平衡信号差。 • 速率高 • 传输距离远 • 可以实现多点或使用公共线通信
1 2 3 4 5 6 7 8 9
TxD
GND
GND
单片机与PC的串行通信实例
运行结果
性格决定命运, 专注成就人生
PC机和MCS_51单片机间的串行通信

一、引言随着计算机与数据终端的普及,数据通信在现代工业控制领域中得到广泛应用,在生产过程中,利用串行通信,人们可以远离现场对计算机操作,能够方便地对现场进行数据的采集、处理、存储、控制等工作[1]。
单片机和PC机之间的串行通信在进行数据交换时经常被使用。
在串行通信时,要求通信双方都采用一个标准接口,RS-232C接口是单片机和PC机进行通信最常用的一种接口。
但串口还不能直接和单片机相连,在本文,我们选用MAX232芯片来进行电平的转换。
为了实现单片机和PC机之间的串行通信,在PC机上采用Visual Basic语言(简称VB)。
VB已成为广大程序设计人员开发Windows的主要语言。
它支持面向对象的程序设计,具有结构化的事件驱动编写模式,并可以使用无限扩增的控件,而且可以十分简便地做出良好的人机界面[2]。
用VB编程语言中提供的专门用于串口通信的MSComm控件,来实现PC机与单片机间的通信。
利用MSComm控件可以非常方便地实现对串口的访问以及计算机端口和外部设备的数据传输,使得编程的效率得到了大大提高[3]。
二、系统硬件设计PC 机和MCS-51单片机间的串行通信陈欣琳 王海峰 金亮1 串行通信接口标准PC机上均带有标准的RS-232C接口。
RS-232C是美国电子工业协会(EIA)于1969年正式公布的串行总线标准,也是目前最常用的串行接口标准。
该标准适用于数据通信设备(DCE)和数据终端设备(DTE)间的串行二进制通信[4][5]。
RS-232C提供了单片机与单片机、单片机与PC机之间串行数据通信的标准接口。
为保证通信的可靠,在选择接口时必须注意:(1)通信的速率;(2)通信距离;(3)抗干扰能力;(4)组网方式。
采用RS-232标准进行数据传输时,最高数据传送速率可达20kbit/s,最长传送电缆可达15米。
由于RS-232C发送和接收之间有公共地,传输采用非平衡模式,因此共模噪声会耦合到信号系统中[6]。
51单片机与PC机通信

《专业综合实习报告》专业:电子信息工程年级: 2013级指导教师:学生:目录一:实验项目名称二:前言三:项目内容及要求四:串口通信原理五:设计思路5、1虚拟串口得设置5、2下位机电路与程序设计5、3串口通信仿真六:电路原理框图七:相关硬件及配套软件7、1 AT89C51器件简介7、2PIN简介7、3 MAX232器件简介7、4友善串口调试助手7、5虚拟串口软件Virtual Serial Port Driver 6、9八:程序设计九:proteus仿真调试十:总结十一:参考文献一:实验项目名称:基于51单片机得单片机与PC机通信二:前言在国内外,以PC机作为上位机,单片机作为下位机得控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行积极交互,而单片机系统根据被控对象配置相应得前向,后向信息通道,工作时作为主控机测对象,作为被控机接受PC机监督,指挥,定期或受命向上位机提供对象及本身得工作状态信息。
目前,随着集成电路集成度得增加,电子计算机向微型化与超微型化方向发展,微型计算机已成为导弹,智能机器人,人类宇宙与太空与太空奥妙复杂系统不可缺少得智能部件.在一些工业控制中,经常需要以多台单片机作为下位机执行对被控对象得直接控制,以一台PC机为上位机完成复杂得数据处理,组成一种以集中管理、分散控制为特点得集散控制系统.为了提高系统管理得先进性与安全性,计算机工业自动控制与监测系统越来越多地采用集总分算系统。
较为常见得形式就是由一台做管理用得上位主计算机(主机)与一台直接参与控制检测得下位机(单片机)构成得主从式系统,主机与从机之间以通讯得方式来协调工作。
主机得作用一就是要向从机发送各种命令及参数:二就是要及时收集、整理与分析从机发回得数据,供进一步得决策与报表.从机被动地接受、执行主机发来得命令,并且根据主机得要求向主机回传相应烦人实时数据,报告其运行状态。
用串行总线技术可以使系统得硬件设计大大简化、系统得体积减小、可靠性提高。
MCS-51单片机与PC机串行通讯的实现

MCS-51单片机与PC机串行通讯的实现
赵迎生
【期刊名称】《机床与液压》
【年(卷),期】2004(000)001
【摘要】本文利用VB程序在PC机上的强大的编程功能和MCS-51单片机的接口设计简单可靠的特点,介绍了实现PC机与MCS-51单片机相互间进行通讯的软硬件设计,提供了通讯的VB程序和MCS-51单片机汇编程序.
【总页数】2页(P114-115)
【作者】赵迎生
【作者单位】淮阴工学院,江苏淮阴,223300
【正文语种】中文
【中图分类】TP3
【相关文献】
1.MCS-51单片机与GPS-OEM板的串行数据通讯的实现 [J], 倪青松;熊克
2.用VB实现PC机与多个MCS-51单片机主从式通讯的实例 [J], 肖本贤
3.利用VB6.0实现PC机与MCS-51单片机之间的串行通信 [J], 李敏孜;刘志鸿;王宏
4.用 MCS-51 单片机实现 I^2c 串行通讯规程 [J], 范明
5.基于DELPHI实现PC机与MCS-51单片机的串行通信 [J], 阚保强;王建业因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《专业综合实习报告》专业:电子信息工程年级:2013级指导教师:学生:目录一:实验项目名称二:前言三:项目内容及要求四:串口通信原理五:设计思路5.1虚拟串口的设置5.2下位机电路和程序设计5.3串口通信仿真六:电路原理框图七:相关硬件及配套软件7.1 AT89C51器件简介7.2 COMPIN简介7.3 MAX232器件简介7.4友善串口调试助手7.5 虚拟串口软件Virtual Serial Port Driver 6.9八:程序设计九:proteus仿真调试十:总结十一:参考文献一:实验项目名称:基于51单片机的单片机与PC机通信二:前言在国内外,以PC机作为上位机,单片机作为下位机的控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行积极交互,而单片机系统根据被控对象配置相应的前向,后向信息通道,工作时作为主控机测对象,作为被控机接受PC机监督,指挥,定期或受命向上位机提供对象及本身的工作状态信息。
目前,随着集成电路集成度的增加,电子计算机向微型化和超微型化方向发展,微型计算机已成为导弹,智能机器人,人类宇宙和太空和太空奥妙复杂系统不可缺少的智能部件。
在一些工业控制中,经常需要以多台单片机作为下位机执行对被控对象的直接控制,以一台PC机为上位机完成复杂的数据处理,组成一种以集中管理、分散控制为特点的集散控制系统。
为了提高系统管理的先进性和安全性,计算机工业自动控制和监测系统越来越多地采用集总分算系统。
较为常见的形式是由一台做管理用的上位主计算机(主机)和一台直接参与控制检测的下位机(单片机)构成的主从式系统,主机和从机之间以通讯的方式来协调工作。
主机的作用一是要向从机发送各种命令及参数:二是要及时收集、整理和分析从机发回的数据,供进一步的决策和报表。
从机被动地接受、执行主机发来的命令,并且根据主机的要求向主机回传相应烦人实时数据,报告其运行状态。
用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。
同时,系统的更改和扩充极为容易。
MCS-51系列单片机,由于内部带有一个可用于异步通讯的全双工的穿行通讯接口,阴齿可以很方便的构成一个主从式系统。
串口是计算机上一种非常通用的设备通讯协议,大多数计算机包容两个基于RS232的串口。
串口同时也是仪器仪表设备通过用的通讯协议,很多GPIB兼容的设备也带有RS-232口。
同时串口通讯协议也可以用于获取远程采集设备数据。
所以,深入的理解学习和研究串口通信相关知识是非常必要的。
此次毕业设计选题为“PC机与MCS-51单片机的串口通讯”,使用51单片机来实现一个主从式的总线通讯系统。
通过此次设计,对串口通讯的原理和应用融会贯通,为以后的时间工作储备知识和研究方法。
三.项目内容及要求基于51单片机,在相关软件的辅助下,建立起单片机与PC机之间的通信机制,使用proteus仿真软件进行仿真,要求可从PC机上发送数字及英文字母出来,由单片机接收并在虚拟软件显示屏上显现出来,有开关控制数字或者是字母的发送。
四:串口通信原理单片机与外围部件或设备的数据传输方式有并行通信和串行通信两种方式,本实验主要通过串行通信方式进行单片机与PC机之间的数据传输,故略去并行通信方式的介绍。
串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。
使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。
其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。
串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。
这种传送方式具有方法简单,灵活性强,可靠性高等特点,同时需要的传送线少,适于远距离传送。
但是,由于数据是按位发送出去的,因此这种数据传送方式比并行通信速率低。
串行通信又可以分为同步通信和异步通信两种方式。
同步通信是指同步通信是一种比特同步通信技术,要求发收双方具有同频同相的同步时钟信号,只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后便在同步时钟的控制下逐位发送/接收。
进行数据传输时,发送和接收双方要保持完全的同步,因此,要求接收和发送设备必须使用同一时钟。
相对于同步通信,异步通信在发送字符时,所发送的字符之间的时隙可以是任意的,当然,接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。
发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。
内部处理器在完成了相应的操作后,通过一个回调的机制,以便通知发送端发送的字符已经得到了回复。
五.设计思路Pc机和单片机的串口通信系统的调试一般通过一根串口连接线把带有软件上位机的(Pc机)和下位机(即单片机)连接起来进行,用这种调试串口通信程序比较烦琐。
本文介绍一种用纯软件实现PC机和单片机串口通信的仿真的方法,所有的调试都在一台电脑上通过软件完成。
上位机由Pc机代替,下位机由用PROTEUS软件设计的AT89C51单片机仿真电路代替串口及连接通过由虚拟串口软Virtual Serial Port Driver 6.9进行连接。
5.1虚拟串口的设置安装虚拟串口软件Virtual Serial Port Driver 6.9,然后打开,左边上面的COMl是电脑上实际的物理串口,下面是虚拟串口,在没有设置前是空的。
因为电脑最多有两个物理串口,将圆圈里的串口改为COMl,COM3,点击Add pair,这就表示,利用这个软件将计算机的串口l和模拟串口3联接了起来,这两个串口可以进行通信了。
5.2下位机电路和程序设计用Proteus6.9设计的仿真电路只用了几个元器件。
由于两个虚拟串口采用相同的标准电平,因此电路中用来作,ITllL电平向RS232电平转换的电路在仿真电路中可以省略。
单片机的实例程序用Keil C51语言编写,串口接收数据采用中断的方式,发送数据采用外部中断的方式,用按钮开关控制数据的发送。
5.3串口通信仿真打开友善串口调试助手,修改串口为COM3,波特率为9600,校验位为None,数据位8,停止位为1。
用Proteus打开仿真电路文件,先设置AT89C51的属性,右击选中AT89C5l,再用左键单击AT89C51,在出现的属性对话框里点击Program File后的打开按钮,找到自Keil源程序编译好的.HEX文件后单击打开,然后在Clock Frequency后填写12M。
单击OK接下来打开串口COMPIN的属性对话框,在PhsicalPort后选择COMl,波特率为9600,校验位为None,数据位8,停止位为l。
设置好后,启动仿真就可以实现电脑和单片机串口通信的仿真了。
首先演示一下单片机向计算机的串口发送数据。
拨动开关向右拨,运行,按一下开关。
虚拟串口终端最示单片机向计算机COMl发送的数据,而计算机的COMI已经和COM3相连,因软件PROTEUS 所此可以在COM3收到单片机发送给COMi的数据。
接着冉演示一下计算机的串口向单片机发送数据。
拨动开关向左拨,在口调试助手中输入想要发送的数据,点击手动则字符串由COM3发送给了计算机的COMI。
再由COMI发送给单片机。
单片机的程序里面有回显功能,将接送给了COM因此可以在COM3的接受框内能够接收到会显得字符串。
六.电路原理框图七.相关硬件及配套软件7.1 AT89C51器件简介AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
7.2 COMPIN简介COM口( cluster communication port )即串行通讯端口。
微机上的com口通常是9针,也有25针的接口,最大速率115200bps。
通常用于连接鼠标(串口)及通讯设备(如连接外置式MODEM进行数据通讯或一些工厂的CNC机接口)等。
一般主板外部只有一个COM口,机箱后面和并口一起的那个九孔输出端(梯形),就是COM1口,COM2口一般要从主板上插针引出。
并口是最长的那个梯形口。
本实验主要应用九针接口。
7.3 MAX232器件简介MAX232是一种双组驱动器/接收器,片内含有一个电容性电压发生器以便在单5V电源供电时提供EIA/TIA-232-E电平。
当用单片机和PC机通过串口进行通信,尽管单片机有串行通信的功能,但单片机提供的信号电平和RS232的标准不一样,因此要通过max232这种类似的芯片进行电平转换。
7.4友善串口调试助手一个强大而稳定的串口调试助手,支持常用的110-921600bps波特率及自定义波特率,波特率最高可支持8000000(串口硬件有关),可适应于非标准波特率。
支持串口自动识别,能设置校验、数据位和停止位,能以ASCII码或十六进制接收或发送任何数据或字符,可以任意设定自动发送周期,并能将接收数据保存成文本文件,能发送任意大小的文本文件。
7.5虚拟串口软件Virtual Serial Port Driver 6.9简介该软件安装成功后可以虚拟出多个串口用于实验,虚拟串口都是成对出现使用的,最大限度的方便了用户数的需求。
八.程序设计注:本程序采用C语言编写,程序如下:#include <reg52.h>#define uint unsigned int#define uchar unsigned charuchar Receive_Buffer[101];uchar Buf_Index = 0;uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};void Delay(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}void main(){uchar i;P0 = 0x00;Receive_Buffer[0]=i;SCON = 0x50;TMOD = 0x20;PCON = 0x00;TH1 = 0xfd;TL1 = 0xfd;EA = 1;EX0 = 1;IT0 = 1;ES = 1;IP = 0x01;TR1 = 1;while(1){for(i=0;i<100;i++){if(Receive_Buffer[i]==-1)break;P0 = DSY_CODE[Receive_Buffer[i]];Delay(200);}Delay(200);}}void Serial_INT() interrupt 4{uchar c;if(RI==0)return;ES = 0;RI = 0;c = SBUF;if(c>='0' && c<='9'){Receive_Buffer[Buf_Index]=c-'0';Receive_Buffer[Buf_Index+1]=-1;Buf_Index = (Buf_Index+1)%100;}ES = 1;}void EX_INT0() interrupt 0{uchar *s = ("Receiving From 8051...\r\n");uchar i = 0;while(s[i]!='\0'){SBUF = s[i];while(TI == 0);TI = 0;i++;}}。