51单片机与PC机通信.docx
《51单片机与PC机通信.docx》由会员分享,可在线阅读,更多相关《51单片机与PC机通信.docx(12页珍藏版)》请在冰豆网上搜索。
51单片机与PC机通信
《专业综合实习报告》
专 业:
电子信息工程
年级:
2013级
指导教师:
学生:
一:
实验项目名称
二:
前言
三:
项目内容及要求
四:
串口通信原理
五:
设计思路
5、1虚拟串口得设置
5、2下位机电路与程序设计
5、3串口通信仿真
六:
电路原理框图
七:
相关硬件及配套软件
7、1AT89C51器件简介
7、2 PIN简介
7、3MAX232器件简介
7、4 友善串口调试助手
7、5 虚拟串口软件Virtual SerialPortDriver6、9
八:
程序设计
九:
proteus仿真调试
十:
总结
十一:
参考文献
一:
实验项目名称:
基于51单片机得单片机与PC机通信
二:
前言
在国内外,以PC机作为上位机,单片机作为下位机得控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行积极交互,而单片机系统根据被控对象配置相应得前向,后向信息通道,工作时作为主控机测对象,作为被控机接受PC机监督,指挥,定期或受命向上位机提供对象及本身得工作状态信息。
目前,随着集成电路集成度得增加,电子计算机向微型化与超微型化方向发展,微型计算机已成为导弹,智能机器人,人类宇宙与太空与太空奥妙复杂系统不可缺少得智能部件.在一些工业控制中,经常需要以多台单片机作为下位机执行对被控对象得直接控制,以一台PC机为上位机完成复杂得数据处理,组成一种以集中管理、分散控制为特点得集散控制系统.
为了提高系统管理得先进性与安全性,计算机工业自动控制与监测系统越来越多地采用集总分算系统。
较为常见得形式就是由一台做管理用得上位主计算机(主机)与一台直接参与控制检测得下位机(单片机)构成得主从式系统,主机与从机之间以通讯得方式来协调工作。
主机得作用一就是要向从机发送各种命令及参数:
二就是要及时收集、整理与分析从机发回得数据,供进一步得决策与报表.从机被动地接受、执行主机发来得命令,并且根据主机得要求向主机回传相应烦人实时数据,报告其运行状态。
用串行总线技术可以使系统得硬件设计大大简化、系统得体积减小、可靠性提高。
同时,系统得更改与扩充极为容易。
MCS—51系列单片机,由于内部带有一个可用于异步通讯得全双工得穿行通讯接口,阴齿可以很方便得构成一个主从式系统。
串口就是计算机上一种非常通用得设备通讯协议,大多数计算机包容两个基于RS232得串口。
串口同时也就是仪器仪表设备通过用得通讯协议,很多GPIB兼容得设备也带有RS-232口。
同时串口通讯协议也可以用于获取远程采集设备数据.所以,深入得理解学习与研究串口通信相关知识就是非常必要得.此次毕业设计选题为“PC机与MCS-51单片机得串口通讯”,使用51单片机来实现一个主从式得总线通讯系统.通过此次设计,对串口通讯得原理与应用融会贯通,为以后得时间工作储备知识与研究方法。
3.项目内容及要求
基于51单片机,在相关软件得辅助下,建立起单片机与PC机之间得通信机制,使用proteus仿真软件进行仿真,要求可从PC机上发送数字及英文字母出来,由单片机接收并在虚拟软件显示屏上显现出来,有开关控制数字或者就是字母得发送。
四:
串口通信原理
单片机与外围部件或设备得数据传输方式有并行通信与串行通信两种方式,本实验主要通过串行通信方式进行单片机与PC机之间得数据传输,故略去并行通信方式得介绍。
串行通信就是指计算机主机与外设之间以及主机系统与主机系统之间数据得串行传送.使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定得时间长度。
其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间得远距离通信。
串口通信时,发送与接收到得每一个字符实际上都就是一次一位得传送得,每一位为1或者为0.这种传送方式具有方法简单,灵活性强,可靠性高等特点,同时需要得传送线少,适于远距离传送.但就是,由于数据就是按位发送出去得,因此这种数据传送方式比并行通信速率低。
串行通信又可以分为同步通信与异步通信两种方式。
同步通信就是指同步通信就是一种比特同步通信技术,要求发收双方具有同频同相得同步时钟信号,只需在传送报文得最前面附加特定得同步字符,使发收双方建立同步,此后便在同步时钟得控制下逐位发送/接收。
进行数据传输时,发送与接收双方要保持完全得同步,因此,要求接收与发送设备必须使用同一时钟。
相对于同步通信,异步通信在发送字符时,所发送得字符之间得时隙可以就是任意得,当然,接收端必须时刻做好接收得准备(如果接收端主机得电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。
发送端可以在任意时刻开始发送字符,因此必须在每一个字符得开始与结束得地方加上标志,即加上开始位与停止位,以便使接收端能够正确地将每一个字符接收下来。
内部处理器在完成了相应得操作后,通过一个回调得机制,以便通知发送端发送得字符已经得到了回复。
5.设计思路
Pc机与单片机得串口通信系统得调试一般通过一根串口连接线把带有软件上位机得(Pc机)与下位机(即单片机)连接起来进行,用这种调试串口通信程序比较烦琐。
本文介绍一种用纯软件实现PC机与单片机串口通信得仿真得方法,所有得调试都在一台电脑上通过软件完成。
上位机由Pc机代替,下位机由用PROTEUS软件设计得AT89C51单片机仿真电路代替串口及连接通过由虚拟串口软Virtual Serial PortDriver6、9进行连接。
5、1虚拟串口得设置
安装虚拟串口软件VirtualSerial Port Driver6、9,然后打开,左边上面得l就是电脑上实际得物理串口,下面就是虚拟串口,在没有设置前就是空得。
因为电脑最多有两个物理串口,将圆圈里得串口改为l,3,点击Addpair,这就表示,利用这个软件将计算机得串口l与模拟串口3联接了起来,这两个串口可以进行通信了。
5、2下位机电路与程序设计
用Proteus6。
9设计得仿真电路只用了几个元器件。
由于两个虚拟串口采用相同得标准电平,因此电路中用来作,ITllL电平向RS232电平转换得电路在仿真电路中可以省略。
单片机得实例程序用KeilﻩC51语言编写,串口接收数据采用中断得方式,发送数据采用外部中断得方式,用按钮开关控制数据得发送。
5、3串口通信仿真
打开友善串口调试助手,修改串口为3,波特率为9600,校验位为None,数据位8,停止位为1。
用Proteus打开仿真电路文件,先设置AT89C51得属性,右击选中AT89C5l,再用左键单击AT89C51,在出现得属性对话框里点击ProgramFile后得打开按钮,找到自Keil源程序编译好得。
HEX文件后单击打开,然后在ClockFrequency后填写12M.单击OK接下来打开串口PIN得属性对话框,在PhsicalPort后选择l,波特率为9600,校验位为None,数据位8,停止位为l。
设置好后,启动仿真就可以实现电脑与单片机串口通信得仿真了。
首先演示一下单片机向计算机得串口发送数据。
拨动开关向右拨,运行,按一下开关。
虚拟串口终端最示单片机向计算机l发送得数据,而计算机得I已经与3相连,因软件PROTEUS所此可以在3收到单片机发送给i得数据。
接着冉演示一下计算机得串口向单片机发送数据.拨动开关向左拨,在口调试助手中输入想要发送得数据,点击手动则字符串由3发送给了计算机得I。
再由I发送给单片机。
单片机得程序里面有回显功能,将接送给了因
此可以在3得接受框内能够接收到会显得字符串。
六.电路原理框图
7.相关硬件及配套软件
7、1AT89C51器件简介
AT89C51就是一种带4K字节FLASH存储器(FPEROM—Flash Programmableand Erasable Read OnlyMemory)得低电压、高性能CMOS8位微处理器,俗称单片机.AT89C2051就是一种带2K字节闪存可编程可擦除只读存储器得单片机.单片机得可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准得MCS-51指令集与输出管脚相兼容。
由于将多功能8位CPU与闪速存储器组合在单个芯片中,ATMEL得AT89C51就是一种高效微控制器,AT89C051就是它得一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉得方案。
7、2PIN简介
口( clustermunicationport)即串行通讯端口.微机上得口通常就是9针,也有25针得接口,最大速率115200bps。
通常用于连接鼠标(串口)及通讯设备(如连接外置式MODEM进行数据通讯或一些工厂得CNC机接口)等。
一般主板外部只有一个口,机箱后面与并口一起得那个九孔输出端(梯形),就就是1口,2口一般要从主板上插针引出。
并口就是最长得那个梯形口。
本实验主要应用九针接口。
7、3MAX232器件简介
MAX232就是一种双组驱动器/接收器,片内含有一个电容性电压发生器以便在单5V电源供电时提供EIA/TIA—232—E电平.
当用单片机与PC机通过串口进行通信,尽管单片机有串行通信得功能,但单片机提供得信号电平与RS232得标准不一样,因此要通过max232这种类似得芯片进行电平转换。
7、4友善串口调试助手
一个强大而稳定得串口调试助手,支持常用得110-921600bps波特率及自定义波特率,波特率最高可支持8000000(串口硬件有关),可适应于非标准波特率.支持串口自动识别,能设置校验、数据位与停止位,能以ASCII码或十六进制接收或发送任何数据或字符,可以任意设定自动发送周期,并能将接收数据保存成文本文件,能发送任意大小得文本文件。
7、5虚拟串口软件VirtualSerialPortDriver6、9简介
该软件安装成功后可以虚拟出多个串口用于实验,虚拟串口都就是成对出现使用得,最大限度得方便了用户数得需求。
8.程序设计
注:
本程序采用C语言编写,程序如下:
#include〈reg52、h>
#defineuint unsignedint
#defineuchar unsignedchar
ucharReceive_Buffer[101];
ucharBuf_Index=0;
ucharcodeDSY_CODE[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
voidDelay(uintx)
{
ﻩuchari;
ﻩwhile(x—-)
{
ﻩfor(i=0;i<120;i++);
ﻩ}
}
voidmain()
{
ﻩuchari;
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()interrupt4
{
ﻩucharc;
ﻩ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;
}
voidEX_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++;
ﻩ}
}