基于MAX485 实现PC 机与单片机通信的程序设计

合集下载

单片机与pc机通信毕业设计

单片机与pc机通信毕业设计

单片机与pc机通信毕业设计单片机与PC机通信毕业设计引言:在现代科技的发展中,单片机与PC机之间的通信技术起到了非常重要的作用。

单片机是一种集成电路,能够完成特定的功能,而PC机则是我们日常生活中常用的个人电脑。

单片机与PC机之间的通信可以实现数据的传输和控制指令的发送,为各种设备的智能化提供了技术支持。

本文将探讨单片机与PC机通信的毕业设计。

一、设计目的与背景单片机与PC机通信的毕业设计的目的是为了实现两者之间的数据传输和指令控制。

在现代工业自动化、智能家居等领域,单片机与PC机通信技术的应用非常广泛。

通过该设计,可以提高设备的智能化水平,实现设备的远程控制和监测。

二、设计原理单片机与PC机通信的毕业设计可以采用串口通信的方式。

串口通信是一种常见的通信方式,通过串口线连接单片机和PC机,实现数据的传输和控制指令的发送。

在设计中,需要确定合适的波特率、数据位、停止位等参数,以确保通信的稳定和可靠。

三、设计步骤1. 硬件设计:首先,需要设计单片机与PC机之间的硬件连接。

可以选择使用RS232串口或USB接口进行连接。

根据接口类型,选择合适的连接线缆,并进行相应的电路设计。

2. 软件设计:接下来,需要编写单片机和PC机的通信程序。

在单片机端,需要编写相应的串口通信程序,实现数据的接收和发送。

在PC机端,需要编写相应的软件程序,通过串口与单片机进行通信。

3. 通信测试:完成硬件和软件设计后,进行通信测试。

通过发送数据和指令,检验通信是否正常。

可以使用示波器、逻辑分析仪等工具进行测试,确保通信的稳定和可靠。

四、设计优化与改进在进行单片机与PC机通信的毕业设计时,可以考虑进一步优化和改进设计。

例如,可以采用无线通信方式,实现单片机与PC机之间的无线通信。

可以选择蓝牙、Wi-Fi等无线通信模块,将传输距离进一步扩大,提高通信的灵活性和便捷性。

五、设计应用单片机与PC机通信的毕业设计在各种设备中都有广泛的应用。

基于485总线的PC机与多片单片机的通信毕业设计说明书

基于485总线的PC机与多片单片机的通信毕业设计说明书

武汉工程大学邮电与信息工程学院毕业设计(论文)说明书论文题目 PC机与多台单片机之间的串行通信目录摘要 (Ⅱ)Abstract (Ⅲ)第一章绪论 (1)第二章课题实施方案 (2)第三章硬件电路设计 (5)3.1 80C51单片机结构及其串行通信原理 (5)3.2 串行接口及其差分转换电路 (17)3.3 Protel DXP 2004原理图设计 (20)第四章软件电路设计 (29)4.1 系统的通信协议 (29)4.2 C51编程实现PC机与单片机之间的串行通信 (29)4.3 Windows集成开发环境uVision2 (33)总结 (39)致谢 (41)参考文献 (42)摘要本文详细介绍了基于RS-485总线的PC机与多台单片机间的串行通信原理、实现方法和相应的通信硬件、软件设计。

该设计是由PC机与单片机组成的主从控制系统,其中PC机做为上位机对下位单片机是实现控制和监视功能。

它包括通信和控制两个功能模块。

单片机作为下位机在整个系统中属于从属地位,主要用来接收上位机的命令。

由于此通信的PC接口是RS232的9针接口,且下位机数目有限(32台)。

所以本设计采用了RS485总线以及RS232转RS485的协议芯片以满足长距离多机通信,本文讨论了总线接口转换、主从式通信协议设计方法,给出了采用中断式处理的通信过程流程图,并叙述了设计过程中必备的绘图软件Protel DXP的应用,以及编辑源代码软件keil uVision2的应用,实现了PC机对多个单片机组成采集终端的通信与管理。

关键词:PC机单片机RS-485 通信AbstractThe communication 、realized method and corresponding design of hardware and software between PC and multiple MCUs based on RS-485 is described in detai in the article. This design instroduces a pincipal and subordinate control system which is composed of PC and single chip. Divided from its function, it includes two parts: communication and control, in which PC is used as master, and MCUs is used as slave so as to receive the single order from the master.The bus interface conversion and the design of master-slave communication protocol is introduced and The program flowchart of communication with interrupt process is also given. In the process of design, the use of unnecessary painter software and code editor software is depicted so that realize the communication and administration between PC and multiple MCUs which composed collection terminal.Keywords: PC MCUs RS-485 communication第一章绪论单片机由于其具有控制功能强、设计灵活和性能价格比高的特点。

MAX485在PC机与单片机间通信的应用

MAX485在PC机与单片机间通信的应用
因为 RS - 485 接口具有良好的抗干扰性、速率 高、传输距离远等优点,使其成为首选的串行接口, 实现 PC 机一端发送数据单片机接收,或单片机发 送 PC 机接收( 半双工) ,并且保证发送数据的可靠 性和发生错误时的处理功能。而且,RS - 232 接口
在总线上只允许连接 1 个收发器,即单站能力,而 RS - 485 接口在总线上是允许连接多达 32 个收发 器,即具有多站能力,这样用户可以利用单一的 RS - 485 接口方便地建立起设备网络,在测控应用领域, 应用很广泛。因而本次设计选用了 RS - 485 接口 芯片与上位机进行串行通信。
Abstract: The paper discussed how to use MAX485 to realize the serial communication between PC and ATmega48 single chip microprocessor. It gives the related hardware design electric circuit and the software design thought. Key words: MAX485; ATmega48; serial communication
中图分类号: TN915 文献标识码: A 文章编号: 1009 - 2552( 2011) 06 - 0180 - 03
MAX485 在 PC 机与单片机间通信的应用
王 颖,吕显强,张 菁
( 大连海洋大学信息工程学院,大连 116023)
摘 要: 介绍采用 MAX485 芯片实现 PC 机与 ATmega48 单片机的串行通信,给出相关的硬件设 计电路和软件设计思想。 关键词: MAX485; ATmega48; 串行通信

利用MAX485实现PC机与单片机之间的串行通讯

利用MAX485实现PC机与单片机之间的串行通讯

利用MAX485实现PC机与单片机之间的串行通讯摘要介绍一种RS-485接口芯片MAX485,利用此芯片可以很方便地实现PC机与单片机之间的串行通讯,同时给出PC机与单片机实现多点通讯的实例。

关键词RS-485串行通讯多点通讯随着数据采集系统的广泛应用,通常由单片机构成的应用系统,如仪器仪表、智能设备等,都需要与PC机之间交换数据,实现与PC机之间的通讯功能,以充分发挥PC和单片机之间的功能互补,资源共享的优势。

以往常用的RS-232协议在很大程度上已不能满足设计的要求,如传输速率慢,传输距离短,传输信号易受外界的干扰等缺点。

本文介绍一种性能优越的RS-485接口芯片,以及如何利用此芯片实现单片机与PC机之间的远程通讯,并讨论将其功能进行扩充,实现PC机管理单片机阵列的功能。

1 RS-485协议简介及MAX485芯片介绍由于RS-232的种种缺点,新的串行通讯接口标准RS-449被制定出来,与之相对应的是RS-485的电气标准。

RS-485是美国电气工业联合会(EIA)制定的利用平衡双绞线作传输线的多点通讯标准。

它采用差分信号进行传输;最大传输距离可以达到1.2 km;最大可连接32个驱动器和收发器;接收器最小灵敏度可达±200 mV;最大传输速率可达2.5 Mb/s。

由此可见,RS -485协议正是针对远距离、高灵敏度、多点通讯制定的标准。

MAX485接口芯片是Maxim公司的一种RS-485芯片。

采用单一电源+5 V工作,额定电流为300 μA,采用半双工通讯方式。

它完成将TTL电平与RS-485电平转换的功能。

其引脚结构图如图1所示。

从图中可以看出,MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。

RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD 和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B 时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。

基于RS485总线的PC与多个单片机通信的C语言程序

基于RS485总线的PC与多个单片机通信的C语言程序
思路:
PC方面:可以用MSCOMM控件先发一个字符表示接收地址,后延迟1ms,(注意PC端在485通讯在字符发送过程中一定要加延迟,这是我多次测试的总结,如果是用调试助手的话,他内部代码已经加过延迟了,就不必考虑这个问题)再发控制指令,初学者建议直接用调试助手
单片机方面:首先对接收数据进行核对,如果不是本地地址,放弃,如果是本地地址,在检测命令是否正确,如果正确,做出处理后返回PC本地地址并发送命令
{
while(RI==0);
RI=0;
if(SBUF==0x01) //发送指令
{
MAX485_DIR=1; //开发送
SBUF=AddressID;
while(TI==0);
TI=0;
SBUF=0x6f; //发送o
while(TI==0);
TI=0;
SBUF=0x6b; //发送k
MAX485_DIR=0; //开接收
sbit MAX485_DIR=P3^7;
main()
{
//****************通讯设置
SCON = 0xF0; //REN=1允许串行接受状态,串口工作模式3,SM2=1
TMOD|= 0x20; //定时器工作方式2
PCON|= 0x80; //波特率提高一倍
IP=0x10; //串口优先级高
}
if(SBUF==0x00) //收
{
//这里怎么处理就看你自己要怎么做了,你没要求,我也不好怎么写,就自己写吧
}
}
}
程序调试通过,可以直接套用
//TH1 = 0xFD; //baud*2 /* reload value 19200、数据位8、停止位1。效验位无(11.0592)

基于RS485总线技术的PC机与单片机多机通讯设计

基于RS485总线技术的PC机与单片机多机通讯设计
PC机接收一组数据子程序流程图如图 4 ( b). PC机在发送地址成功后 ,发送的控制命令字为 01H
(单片机发送数据命令 ) ,然后打开 r. txt文件 ,接收 的 10帧数据存放在 r. txt中 ,同时计算累加和. 接收 数据完成后 ,再接收单片机发送的累加校验和 ,把接 收累加校验和与 PC 机计算的累加和相比较 ,如相 同则发回 59H (“Y”的 ASCⅡ码 ) ,结束本次接收 ;否 则发送 4EH (“N ”的 ASCⅡ码 ) ,重新接收数据.
始化顺序如下 :
PC机发送一组数据子程序流程图如图 4 ( a).
(1)向 通 信 线 路 控 制 寄 存 器 LCR ( 2FBH ) 送 首先发送从机单片机的地址码 ,然后接收从机单片
80H ,即寻址波特率除数寄存器.
机回送的地址码 ,如相符则发控制命令字给从机. 控
(2)向两个波特率除数锁存器 (LSB 和 M SB )送 制命令字为 00H (单片机接收数据命令 )以及 01H
器 , R6作累加和寄存器用.
2. 1 通讯协议约定
2. 2 单片机通讯程序设计
● 系统中允许接有 64台从机 ,它们的地址分
串行口选择工作方式 1,其波特率由定时器 T1
别为 00 - 3FH.
的溢出率与 SMOD 位同时控制. 定时器 T1 则选操
● 地址 FFH 是对所有从机都起作用的一条 作模式 2, SMOD = 0波特率不增倍 ,单片机的振荡频
其它为非法命令.
发送该下位机的地址 ,此时所有下位机均中断响应 ,
● 每次收发数据块的长度为 10个字节.
比较总线上的地址是否与本机地址相符 ,如不符则
● 波特率设计为 2400 b / s,数据格式用 8 位 退出中断程序 ,相符则发回地址. 当地址为 FFH 时 ,

基于RS485总线的PC机与多单片机系统的串行通信

基于RS485总线的PC机与多单片机系统的串行通信

4 结束语运用形态学基本运算(膨胀、腐蚀)及其联合运算(开、闭)不需额外增加专门的去噪运算,在运用开、闭运算修整工件时只要选用比噪声大的结构元素即可去除噪声。

修整工件时,只要选择合适的结构元素,即可去除突刺、填补缺陷,从而达到平滑轮廓、快速识别工件的目的。

而进行边缘检测时,只需对工件进行膨胀(或腐蚀)处理后与原图片相减即可得到边缘轮廓线。

综上所述,运用形态学运算进行工件识别预处理,其算法简单、易于实现,提高了整体识别速度。

参考文献:[1] 吴敏金.图像形态学[M ].上海:上海科学技术文献出版社,1991.[2] 飞思科技产品研发中心.Matlab6.5辅助图像处理[M ].北京:电子工业出版社,2003.[3] 谢根全.工件表面质量缺陷的计算机自动识别[J ].机械与电子,2001,(4):51-52.[4] 姚 远,王广雄,张田文.基于模糊细胞神经网络的彩色图像形态学重构[J ].计算机学报,1999,22(7):727-732.[5] 李 林,高 政.一种新颖的灰度形态学算子[J ].计算机辅助设计与图形学学报,2001,13(9):820-823.[6] 王家文,曹 宇.Matlab6.5图形图像处理[M ].北京:国防工业出版社,2004.作者简介:张金萍 (1977-),女,河南尉氏人,东北大学机械工程与自动化学院博士研究生,研究方向为机电一体化;刘 杰 (1944-),男,辽宁昌图人,东北大学机械工程与自动化学院教授,博士研究生导师,研究方向为振动利用与控制、机电一体化。

基于RS485总线的PC 机与多单片机系统的串行通信林 颖,罗金炎,刘 骄,陈 忠,李伟光(华南理工大学,广东广州510640)Serial Communication Based on RS485Bus between PC and Multisinglechip SystemL IN Ying ,L U O Jinyan ,L IU Jiao ,CHEN Zhong ,L I Wei gu ang(South China University of Technology ,Guangzhou 510640,China ) 摘要:根据所开发的电子产品故障维修实验系统的要求,提出了一套基于RS485总线的PC 机与多单片机系统间的串行通信协议,已成功应用于故障维修实验系统中。

PC机与单片机RS485通信系统的设计

PC机与单片机RS485通信系统的设计

PC机与单片机RS485通信系统的设计【摘要】本文介绍了利用Visual Basic 6.0开发工具和Atmle89S52单片机进行通信,探讨在VB环境下来实现PC机与单片机之间的数据传输方式,着重介绍通过max485芯片实现PC机与单片机之间的通信以及单片机串口通信的实现方法。

【关键词】单片机;485通讯;MSComm控件1.引言随着计算机技术特别是单片机技术的发展,在各种单片机应用系统的设计中,常常遇到计算机与外界的信息交换问题。

目前,许多检测仪表、在线分析仪、工控机等均采用RS485方式通过串口与上位机进行通信,用户通过串行通信可以实现实时监控远程设备的工作情况,对设备运行参数进行优化,通过指令反馈控制仪器的运行情况,从而实现生产节能与质量控制。

鉴于PC机具有强大的监控和管理功能,单片机则具有快速以及容易控制的特点,在数据量不大、传输要求不高的情况下。

在本文中采用的是MAX485芯片实现RS485方式通信。

PC机与单片机一般采用应答方式,当PC机控制多个单片机终端时,PC机发送一个地址帧选中一个终端,再对选中的终端进行一对一的通信,实现这种通信方式需要对发送帧的格式和单片机端的相应寄存器进行设置。

2.系统组成介绍本系统由1台PC机作为上位机,多个89S52单片机为核心作为系统终端,通过RS485总线结构将PC机和各个终端机连接起来。

PC机通过RS232/485转换器连接到485总线,单片机通过MAX485芯片模块连接到485总线上,实现与PC机的通信,PC机通过查询方式与各个终端通信,完成监测、控制等功能。

各个终端接受主控机指令,完成就地调整、控制、测量以及信息回传等工作。

3.通信过程与通信协议由于MAX485通讯是一种半双工通讯,发送和接收共用同一物理信道。

在任意时刻只允许一台单机处于发送状态。

因此要求应答的单机必须在侦听到总线上呼叫信号已经发送完毕,并且没有其它单机发出应答信号的情况下,才能应答。

基于RS_485总线的PC与多单片机间的串行通信

基于RS_485总线的PC与多单片机间的串行通信

MSComml.Settings=Settings
设置
; 串口的波特率 ; 数据发送数组
4 结束语
本文设计并实现了一种应用于油田钻井滚动轴 承的振动信号测控系统。该系统采用 PC 与多单片机 之间的串行通信实现测控 , 采用 RS- 485 总线标准 , 半 双工传输方式。上位机采用 Windows 环境 下 VB6.0 开发 , 编程简单 , 界面良好 , 维护方便 ; 下位机利用单 片机内自带的 USART 通信接口 , 很好的实现异步串 行通信。实验表明 , 该方法对于工作环境比较恶劣的 钻井油田滚动轴承的振动信号的采集与传输 , 达到了 实际要求 , 为滚动轴承故障检测提供了方便而有效的 1 通信系统的硬件设计
尽管 RS- 232 有些缺点 , 但在两台短距离设备间的 短距离信息传输时 , 最通用的还是 RS- 232 。但对于多 台设备的长距离传输 , 它就很难实现。 而 RS- 485 是一 个多引出线接口 , 这个接口可以有多个驱动器和接 收 器 , 可以实现一台 PC 和多台单片机之间的串行通信 ; 而且 RS- 485 的最长的传输距离为 1200m, 适合中距离 的传输。本文针对油田钻井的滚动轴承信号采集及传 输 , 根据工地实际工作环境 , 采用 RS- 485 通信接口。 1.1 PC 和 RS- 485 总线的接口 吴秋明 : 硕士研究生 基金项目 : 江苏省高校自然科学基金资助项 目 ( 03KJ B510025 )
定时向下位机发送呼叫指令。此时 , 每台下位 机都中 断接受并判断, 地址不相符的下位机中断返回, 执行 其他下位机任务 ; 反之则把本机地址及其状态作为应 答信号发送给上位机。上位机接收到应答信号后 , 可 以作进一步的处理。
2.2 通信协议

MAX485两单片机半双工通信

MAX485两单片机半双工通信

#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit P0_0=P0^0; //定义P0^0为MAX485使能控制端口ucharidatatable[17]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xaa,0xbd,0xee,0xdd,0x99,0xfd,0xff, 0xff}; //定义灯的16种状态uchar idata table2[10]; //定义接收数据存放数组uchar num,temp; //设置temp变量,num为对应按键设定的编号uchar num1=0,flag; //设置flag为标志位,num1为发送和接收方选择变量/************延时子函数*********/void delay(uint z) //延时自函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}uchar keyscan();/************外部中断INT0实现接收子函数*********/void int0(void) interrupt 0{ int m;P1=0xff; //接收前先使接收方灯全部熄灭for(m=0;m<5;m++) //输出按键发送的5次灯的状态{ P1=table2[m];delay(500); //调用延时子函数}}/***********T1,INT0中断初始化函数**************/void init(){ TMOD=0x20; //设置定时器1为工作方式2TH1=0xe8; //赋计数初值,对应定时26usTL1=0xe8;TR1=1; //T1中断开启EA=1; //总中断开启EX0=1; //外部中断INT0开启IT0=1; //INT0方式下降沿有效REN=1; //串行接收允许SM0=0; //串行通信方式选择方式1SM1=1;}/************接收子函数receive()***************/void receive() //接收子函数{ RI=0; //接收中断开启P0_0=0; //MAX485接收中断有效do //握手过程{SBUF=0x01; //接收方向发送方发送0x01while(TI==0); //发送,如果没发完则继续等待TI=0; //发送成功,那么0->TIwhile(RI==0); //发送方接收接受方的握手信号,若没收到继续等待RI=0; //接收后,0-RI}while(SBUF!=0x02) ; //接收到信号如果等于0x02那么握手成功,否则继续重新收发while(!RI); //如果没收到,继续等待delay(500); //调用延时函数P1=SBUF; //将收到的数据送到P1口显示m=SBUF; //将收到的数据送到接收数组table2[n]中存放table2[n]=m;n++;RI=0; //再次开启接收中断}/*************发送子函数send()************/void send(){ flag=1; //flag标志位赋值,控制按键有效do //握手信号{ SBUF=0x02; //发送方给接收方发送握手信号0x02while(TI==0); //如果没发送完,那么继续等待TI=0; //发送成功,那么0->TIwhile(RI==0); //发送方接收接受方发送的握手信号,若没收到,继续等待RI=0; //若收到,0->RI}while(SBUF!=0x01);//接收到信号如果等于0x01那么握手成功,否则继续重新收发while(flag) i=keyscan(); //将扫描的键盘编码对应的num号码赋值给iflag=1;P0_0=1; //设置MAX485发送使能端有效TI=0; //开启发送中断SBUF=table[i-1]; //将设置数组中的数赋值给发送缓冲区while (!TI); //如果没发送完,那么继续等待P1=table[i-1]; //将设置数组中的数赋值给发送P1TI=0; //若收到,0->TI}/*************主函数main()*************/void main(){ uchar n=0; //设定初始变量n,m,iuchar m;uchar i=0;flag=1; //flag标志位赋值,控制按键有效void init(); //调用T1,INT0中断初始化函数while(flag) i=keyscan(); //将扫描的键盘编码对应的num号码赋值给iflag=1; //flag标志位赋值,控制按键有效while(1){ if(num1==0) //如果num1=0,那么对应为接收方{void receive(); //调用接收子函数}else if(num1==1) //如果num1=1,那么对应为发送方{void send(); //调用发送子函数}}}/**************矩阵键盘4*4函数*************/uchar keyscan(){ P2=0xfe; //选中第四列temp=P2;temp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数,软件防抖动{ delay(5); //延时函数调用temp=P2; //P2口数据送入temptemp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数{ temp=P2; //P2口数据送入tempswitch(temp) //选择所按键的键码{case 0xee:{num=1;flag=0;} break; //第四列第一行按键编号为1case 0xde:{num=2; flag=0;} break; //第四列第二行按键编号为2case 0xbe:{num=3; flag=0;} break; //第四列第三行按键编号为3case 0x7e:{num=4; flag=0;} break; //第四列第四行按键编号为4}while(temp!=0xf0) //去抖动,并且实现下一次按键的扫描{ temp=P2;temp=temp&0xf0;}}}P2=0xfd; //选中第三列temp=P2;temp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数,软件防抖动{ delay(5); //延时函数调用temp=P2; //P2口数据送入temptemp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数{ temp=P2; //P2口数据送入tempswitch(temp) //选择所按键的键码{ case 0xed:{num=5;flag=0;} break; //第三列第一行按键编号为5 case 0xdd:{num=6;flag=0;} break; //第三列第二行按键编号为6case 0xbd:{num=7;flag=0;} break; //第三列第三行按键编号为7case 0x7d:{num=8;flag=0;} break; //第三列第四行按键编号为8 }while(temp!=0xf0) //去抖动,并且实现下一次按键的扫描{ temp=P2;temp=temp&0xf0;}}}P2=0xfb; //选中第二列temp=P2;temp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数,软件防抖动{ delay(5); //延时函数调用temp=P2; //P2口数据送入temptemp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数{ temp=P2; //P2口数据送入tempswitch(temp) //选择所按键的键码{ case 0xeb:{num=9; flag=0;} break; //第二列第一行按键编号为9 case 0xdb:{num=10; flag=0;} break; //第二列第二行按键编号为10case 0xbb:{num=11;flag=0;} break; //第二列第三行按键编号为11case 0x7b:{num=12; flag=0;} break; //第二列第四行按键编号为12 }while(temp!=0xf0) //去抖动,并且实现下一次按键的扫描{ temp=P2;temp=temp&0xf0;}}}P2=0xf7; //选中第一列temp=P2;temp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数,软件防抖动{ delay(5); //延时函数调用temp=P2; //P2口数据送入temptemp=temp&0xf0; //取P2口数据的高四位,对应为按键的行扫描码while(temp!=0xf0) //如果有按键按下执行以下子函数{ temp=P2; //P2口数据送入tempswitch(temp) //选择所按键的键码{ case 0xe7:{num=13; flag=0;} break; //第一列第一行按键编号为13 case 0xd7:{num=14; flag=0;} break; //第一列第二行按键编号为14case 0xb7:{num=15;num1=1;flag=0;} break; //第一列第三行按键编号为15case 0x77:{num=16; flag=0;num1=0;} break; //第一列第四行按键编号为16 }while(temp!=0xf0) //去抖动,并且实现下一次按键的扫描{ temp=P2;temp=temp&0xf0;}}}return num; //返回对应按键的标号return flag; //返回对应按键子函数的控制标志位}图:硬件仿真总原理图如图所示,系统总的硬件仿真原理图中包含了单片机系统的时钟电路,复位电路,矩阵键盘4*4电路,即灯显示电路,MAX485串行半双工连接电路的相应电路模块,其中通过选择第三行第一列的按键为发送方,选择第四行第一列的按键为接收方,而且在同一个矩阵键盘中不可以同时按这两个键,通过这种选择可是实现分时的发送和接收,满足半双工的通信方式,其中选择完后,在发送方的矩阵键盘中选择按键,每按一个按键,对应的灯状态在发送和接收两方的P1口显示其的灯状态,连续按5次后,对应灯状态也显示5次,再在接收方的INT0按键按下,可以再次显示刚才5次按键对应灯状态的连续显示。

基于MAX485 实现PC 机与单片机通信的程序设计

基于MAX485 实现PC 机与单片机通信的程序设计

信息技术 In formation T echnology 2005年第4期基于M AX485实现PC机与单片机通信的程序设计周 凯,郭黎利(哈尔滨工程大学信息与通信工程学院,哈尔滨150001)摘 要:介绍M AX485芯片在PC机与单片机串行数据通信中的应用,并详细说明串行通信接口的程序设计及软件设计中需注意的问题。

关键词:M AX485芯片;单片机;串行通信;程序设计中图分类号:T N915 文献标识码:A 文章编号:1009-2552(2005)04-0010-03 Program for serial communication betw een PC and singlechip microprocessor based on MAX485ZHOU K ai,G UO Li2li(College of I nform ation and Communication E ngineering,H arbin E ngineering U niversity,H arbin150001,China) Abstract:This paper presents a method how to use M AX485applied in serial communication between mcs51 single chip microprocess or and PC.It als o discusses the program design of the communication interface and must be note s ome questions during s oftware design in detail.K ey w ords:M AX485;single chip microprocess or;serial communication;program design0 引言数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来达到信息交换的目的,无论是完整的七层OSI模型,还是简化的三层(或四层)工业局部网络,其第一层均为物理层。

面向RS485协议配置应用的单片机与PC机之间的通信

面向RS485协议配置应用的单片机与PC机之间的通信

文章编号:16732095X (2009)022*******面向RS 485协议配置应用的单片机与PC 机之间的通信陈在平,杜金利(天津理工大学自动化学院,天津300384)摘 要:本文主要完成了对RS485协议的配置问题.现今工业现场设备广泛应用RS485通信协议,而RS485串行通信协议具有一定的开放性,即并不统一,不同的RS485设备具有不同的串行通信协议,若将完成RS485总线桥的转换必然需要转换单元能够适应不同的RS485设备的协议,本文总线桥转换单元采用AT89S52单片机作为配置的主控制器,上位机利用图形化编程软件Lab V I E W 完成上位机通信软件的编写,将所需要配置的串行通信协议信息在上位机界面中输入,通过上位机软件与转换单元的MCU 通信,将配置信息通过RS232接口发送给转换单元,供单元在初始化RS485设备时调用.经过系统调试,转换单元与PC 机能够实现良好的通信,并能够成功配置RS485通信协议.关键词:RS485;Lab V I E W;RS232通信;单片机中图分类号:TP368.1 文献标识码:AComm un i ca ti on between si n gle 2ch i p m i crocon troller andPC for conf i gura ti on the RS485protocolCHEN Zai 2p ing,DU J in 2li(School of Eleetrical Engineering,Tianjin University of Technol ogy,Tianjin 300384,China )Abstract:The paper has mainly accomp lished configuring the RS485p r ot ocol .The RS485p r ot ocol nowadays is app lied t o the industry l ocale mostly,but RS485p r ot ocol is open,not accordant,that is a different RS485device has a different p r ot ocol .So it requests the conversi on cell t o adap t t o different RS4585deviceswith non 2accordant p r ot ocol .The paper uses single 2chi p m i 2cr ocontr oller AT89S52as main contr oller,and graphics p r ogra mmer s oft w are Lab V I E W as internet app licati ons design t ool .The serial communicati on p r ot ocolmessages are inputted via Lab V I E W by RS232,and are sent t o the conversi on cell f or trans 2ferred by cell during in initializing the RS485devices .After the debugging system,conversi on cell can communicate with PC greatly,and can configuratie RS485p r ot ocol successfully .Key words:RS232communicati on;single 2chi p m icr ocontr oller;serial communicati on;p r ot ocol configurati on 在现代工业自动化生产中,工业现场智能设备广泛应用RS485通信协议进行通信,随着先进的现场总线及工业以太网的出现及逐渐广泛的应用,各种基于RS485的总线桥不断出现,但是RS485串行通信的协议并不是统一的,不同的设备根据其数据信息及性能,其通信协议并不统一,例如:数据位、通信波特率、停止位、校验位等都有可能不一样,所以实现对RS485设备的协议自由匹配显得尤为重要,并具有重要的意义.1 串行通信协议简介串行通信是指通信的发送方和接收方之间数据信息的传输是在单根数据线上,以每次一个二进制位移动的.它的优点是只需一对传输线进行传送信息,因此其成本低,适用于远距离通信;它的缺点是传送速度低.串行通信有异步通信和同步通信两种基本通信方式.同步通信适用于传送速度高的情况,其硬件复收稿日期:2008210230.第一作者:陈在平(1950— ),男,教授,硕士生导师.第25卷 第2期2009年4月天 津 理 工 大 学 学 报J O URNAL O F T I ANJ I N UN I VERS I T Y O F TECHNOLO GY Vol .25No .2Ap r .2009杂.而异步通信应用于传送速度在50到19200波特率之间.是比较常用的传送方式.在异步通信中,数据是一帧一帧传送的,每一串行帧的数据格式由一位起始位,5~8位的数据位,一位奇偶校验位(可省略)和一位停止位四部分组成.在串行通信中,发送方和接收方要约定具体的数据格式和波特率(通信协议).RS485通信协议即为串行通信协议,其数据帧的格式并不统一.2 硬件设计系统总体功能框图如图1所示:图1 系统总体功能框图F i g .1 The collecti v ity functi on由图1可知,本文所做的主要工作是单片机通过RS232接口与PC 机进行通信,PC 机将RS485设备所需要的协议通过RS232接口发送给单片机,由单片机初始化其串口以适应RS485设备的通信协议.本系统采用AT89S52单片机作为主控制器,利用MAX232芯片作为RS232协议转换芯片[1],与PC 机进行通信.如图2所示:图2 RS232接口电路F i g .2 RS232i n terface c i rcu it3 软件设计3.1 需要配置的RS 485协议信息在串行通信中,数据位,停止位,奇偶校验位,波特率是不尽相同的,数据位为5~8位,停止位为1、1.5、2位;奇偶校验位为无、奇校验、偶校验;波特率常用的为1200~62500kbp s .3.2 单片机软件设计在系统启动开始的时候,由于加电的冲击等原因,单片机并未处于稳定状态,所以先延时一段时间,待单片机稳定以后再进行初始化等后续工作.下位机程序总体流程图如图3所示.当PC 机向下位机转换单元发送开始信号时,下位机转换单元便进入中断子程序进行数据的接收处理.中断处理子程序如图4所示.进入中断子程序之后,先关闭串口中断,采用查询方式接收PC 机发送给本地的RS485的配置信息.配置信息主要有四个数据,在本地创建一数组来接收配置信息并存储到存储器中.3.3 上位机软件设计在PC 机端采用图形化编程软件LabV I E W 编写上位机软件.LabV I E W 采用数据流编程方式,程序框图中节点之间的数据流向决定了程序的执行顺序.・97・2009年4月 陈在平,等:面向RS485协议配置应用的单片机与PC 机之间的通信Lab V I E W 提供很多外观与传统仪器类似的控件,可用来方便的创建用户界面每个控件对应程序框图中的一个对象,当数据"流向"该控件时,控件就会根据自己的特性以一定的方式显示数据[224].上位机应用程序流程图如图5所示.图5 上位机应用程序流程图F i g .5 The appli ca ti on program flow chart of PC5 系统实验调试本系统经过调试,系统能够稳定可靠的运行,通过上位机可以有效的给下位机发送配置信息,成功配置RS485协议信息.在编写上位机软件时,要添加串行通信协议变量的局部变量将其加载到上位机配置成功显示子程序中才能够正确显示配置成功信息及协议内容.图6给出了基于图形化编程软件Lab 2V I E W 编写的PC 机端应用程序的配置界面.图6 应用程序界面F i g .6 The appli ca ti on program i n terface6 结 论RS485的通信协议尽管有一些差异,但是通过在PC 机端编写协议配置应用软件,通过串口与下位机本地控制端进行通信,可以比较方便的完成对本地控制端的串行通信口的协议的配置以适应RS485设备的通信协议,使本地控制端与不同的RS485设备能够实现有效的通信,只要每次在应用RS485设备之前进行协议信息配置便可与该RS485设备进行配置,即可以使转换模块灵活的与不同的RS485设备进行通信,具有一定的通用性.参 考 文 献:[1] 郭宏亮,PC 机与AT89C51单片机的串行通信接口设计[J ].平原大学学报,2007(6):326.[2] 马 伟,麦云飞.基于MCS -51与Lab V I E W 的数据采集系统[J ].工业控制计算机,2007(9):325.[3] 肖金壮,张 伟,基于Lab V I E W 的单片机温度测控系统设计[J ].微计算机信息,2007(29):527.[4] 黄章华,陆华忠.基于Lab V I E W 和单片机的步进电机控制系统设计[J ].现代电子技术,2007(17):426.・08・ 天 津 理 工 大 学 学 报 第25卷 第2期。

我的51单片机之 MAX485的 C语言与汇编的编程

我的51单片机之 MAX485的 C语言与汇编的编程

//与自制软件 ComTest 通信,设好通信口,按下软件中相应按钮,数码管显示相应值
//made by luqichao
//************************************************************************
#include <reg51.h>
;
{ 0 , 1, 2 , 3 , 4 , 5, 6, 7, 8, 9 }
MAIN:
MOV SCON,#50H; 串口工作于方式 1,充许接收
MOV PCON,#0H;
波特率不倍增
MOV TMOD,#20H; 定时器计数器 1 工作于方式 2;
MOV TH1,#0FDH;
MOV TL1,#0FDH; 波特率为 9600;
LEDCODE EQU P1 ComData EQU 40H; LED1 EQU P0.6; LED2 EQU P0.7; M485 EQU P0.5;
//作为收发数据的使能短,1 为发数据 0 为收数据
;字形码:0--f 及小数点
AscLed:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;
四、汇编程序: ;************************************************************************** ;与自制软件 ComTest 通信,设好通信口,按下软件中相应按钮,数码管显示相应值 ;made by luqichao ;************************************************************************** ORG 0000H AJMP MAIN ORG 001BH AJMP T1P ORG 0023H AJMP COMM ORG 0030H

基于MAX485的双机通信系统设计

基于MAX485的双机通信系统设计

河南机电高等专科学校毕业设计论文论文题目:基于MAX485的双机通信系统设计系部电子通信工程系专业应用电子技术专业班级2004级应电043班学生姓名崔国贤学号*******指导教师董蕴华2007年4月15 日摘要本论文使用A T89S51单片机作为核心控制器件,通过一按键控制自身主从机模式的选择,在一个主机和一个从机模式下完成双方的数据传送,这给现代工业测控领域带来了新的技术,为集中处理各种数据奠定了基础。

这个数字通信系统主要由MAX485,BS207,74LS164及MAX232组成。

系统基于汇编语言,依照一定的协议,具有高速数据传送、直接数字控制、人工智能等特点。

该通信系统以RS-485串行标准总线接口进行连接,具有结构简单、体积小、可靠性高、灵活性强、价格低等优点。

也有门限效应的缺点。

关键词:MAX485;AT89S51;数字通信系统ABSTRACTThis paper with the AT89S51 the single a machine as the core controller piece.One key-pad of the electrical circuit controlled itself model.When one is active model and the other is passive model,the systerm could achieve commmunication of data,this brought the once new technique paved the way for intergrated managerment.It brought new technical to the measure and control realm of the current modern industry,This DCS(Digital Communication System) primarily consisted of MAX485 ,BS207,74LS164 and MAX232.It based on Assembly Language, depended on some protocol, had high speed data communication ,directly digital control ,artificial intelligence too. Its interface is RS-485 ,it has lots of advantages, such as the structure simple, small volume, high reliability, good flexibility, the price is low .One disadvantage of this DCS is no graceful degradation.Key W ords MAX485;AT89S51;DCS目录毕业设计任务 (I)摘要 (Ⅱ)绪论 (1)第1章数据通信基础 (2)1.1通信的分类及原理 (2)1.2串行通信 (2)1.3波特率及通信协议的设定 (4)第2章异步串行通信接口 (7)2.1 异步串行接口的分类 (7)2.2 RS-232及RS-422A与RS-423A总线标准芯片及接口 (8)2.3 RS-485总线标准芯片及20mA电流环串行接口 (11)第3章系统硬件电路的组成 (15)3.1 AT89S51简介 (15)3.2标准+5V电源电路及显示电路的分析与设计 (19)3.3A T89S51芯片程序烧写电路的分析与设计 (21)3.4 R S-232接口与RS-485接口转换电路分析与设计 (22)3.5 双机通信系统电路图及电路板的分析与设计 (23)第4章系统软件分析及系统调试 (25)4.1“主--从”机通信系统 (25)4.2程序流程图 (27)4.3设计结论 (30)第5章结束语 (31)致谢/参考文献 (32)附录 (34)绪论现代智能通信系统是在计算机、电子、通讯和网络技术飞速发展的基础上,通过在已知初始条件及其约束条件下构造一个控制模型,实现对多项物理量实施精确和优化控制通信的系统。

单片机与PC机RS-485串行通讯设计

单片机与PC机RS-485串行通讯设计

单片机与PC机RS-485串行通讯设计摘要:本文提出了一种PC机与单片机进行串行通信的方案,该方案通过PC 机的RS232串口、485总线实现与51单片机的串口通信,PC机送出的信号进行电平转换后送到485总线,单片机则接受MAX485芯片转换得到的信号,从而进行串行通信。

该系统的特点是电路设计简单可行、通信稳定、实用性强。

关键词:PC机;单片机;串口通信;MAX485芯片引言在计算机测控领域经常会采用一台PC 机与一个或多个单片机组成小型的测控网络,这种测控系统充分发挥了单片机功能强,抗干扰性能好,温度适应范围宽,面向控制的优点,同时又可以利用计算机弥补单片机在数据处理和交互性等方面的不足。

在测控系统中一般是以PC 机作为主控机,采用串行通讯定时扫描以单片机为核心的智能控制器(从机)以便采集数据或发送信号。

PC机的串口一般采用RS—232的总线标准,但由于RS—232接口标准发布较早,难免有不足之处,主要体现在以下四点:1、接口信号的电平值较高,已损坏接口电路芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接;2、传送速率较低,在异步传送时,波特率为20Kbps;3、接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱;4、传输距离有限,最大传输距离标准为50英尺,实际上也只能用在50m左右。

1 总体方案设计针对本课题的设计任务,进行分析得到:本次设计用RS-485标准进行单片机与PC机的串行通信,PC机发出的数据经过RS-232/485转化器后发送,再经过单片机端的MAX485芯片把信号转换成TTL电平送给单片机,单片机接收到PC机发来的数据后再回送给PC机。

该串行通信系统设计,在总体上大致可分为以下几个部分组成:1、RS-232/RS-485转换电路,TTL电平转换芯片,单片机最小系统。

2 硬件电路设计2.1单片机介绍单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

采用MAX485实现单片机与PC机串行通信的一种方法

采用MAX485实现单片机与PC机串行通信的一种方法
[3] 5 李5 华, ;712!3 系列单片机实用接口技术 [ ;] ,北 京: 北京航空航天大学出版社, 399%, [.] 5 戴梅萼, 史嘉权, 微型计算机技术与应用 5 樊昌信, 詹道庸, 徐炳祥, 等, 通信原理 [ ;] , 北京: 国防工业出版社, 399!, [+] 5 索 5 梅, 郑甫京, ):4)% @ ):.)% 汇编语言程序设计 [ ;] , 北京: 清华大学出版社, 399+,
"# 引# 言
CD 机有一个功能强大的可编程异步串行控 制器 A)B" 和 ) 个采用 W/9)!)D 串行通信标准接 DH7) , 而单片机中有一个采用 33L 电 口 DH7: 、 平的可编程串口, 所以要使它们之间通信, 必须采 用一个电平转换电路。这里采用符合 W/9@AB 标 准的 7*?N7 公司生产的 7*?@AB 和波士公司生 W/9@AB 转接头, 将 W/9)!) 信号电 产的 W/9)!)D 、 平转换成 W/9@AB 标准电平信号, 利用 W/9@AB 标 准电平的优势, 在一些特殊通信领域内实现 CD 机和单片机之间的串行长距离可靠通信。具体任 务是在 CD 机一端发送数据单片机接收, 或单片 ( 半双工) , 并且保证发送数据 机发送 CD 机接收 的可靠性和发生错误时的处理功能。
:# W/9@AB 标准
在计算机网络以及分布式工业控制系统中, 经常采用串行通信来达到信息交换的目的, 无论 是完整的 > 层 H/N 模型还是简化的 ! 层 ( 或 @ 层) W/9)!)D 、 工业局部网络, 其第一层均为物理层, W/9@)) 、 W/9@AB 既是物理层的协议标准, 也是串 行通信接口的电器标准, 采用标准接口后, 能很方 便地把各种计算机、 外部设备、 测量仪器有机地连 接起来, 构成测量、 控制系统。:;>> 年 RN* 制定 了新的标准 W/9@@; , 它定义了在 W/9)!)D 中没有 的 :" 种电路功能, 可以支持较高的传输速率、 较 远的传输距离, 提供平衡电路改进接口的电器特 性, 规定用 !> 脚连接器 W/9@)! X @)) 是 W/9@@; 标 W/9@AB 则是 W/9@)) 的一个变型。 准的子集,

基于MAX232 MAX485的通信模块设计

基于MAX232 MAX485的通信模块设计

1西南科技大学自动化专业方向设计报告设计名称:基MAX232和MAX485的通信模块设计姓名: XXX学号: XXX班级: XXX指导教师:聂诗良起止日期: 2012.10.15-2012.11.15 西南科技大学信息工程学院制方向设计任务书学生班级:XXX 学生姓名:XXX 学号:XXX设计名称:基于MAX232 MAX485的通信模块设计起止日期:2012.10.15-2012.11.15 指导教师:聂诗良方向设计学生日志基于MAX232 MAX485的通信模块设计摘要(150-250字)Rs232是个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。

通常RS-232 接口以9个引脚(DB-9) 或是25个引脚(DB-25) 的型态出现。

RS232使用12V,0,-12V电压来表示逻辑,(-12V表示逻辑1,12V表示逻辑0),全双工,最少3条通信线(RX,TX,GND),因为使用绝对电压表示逻辑,由于干扰,导线电阻等原因,通讯距离不远。

Rs485使用TTL差动电平表示逻辑,就是两根的电压差表示逻辑,RS485是半双工,而且一个驱动器的驱动能力至少可以驱动32个接收器。

Rs-485通讯距离与通讯速率有关系,一般距离短时可以使用高速率进行通信,速率低时可以进行较远距离通信,一般可达数百上千米。

MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。

MAX485接口芯片是Maxim公司的一种RS-485芯片,MAX485、MAX487-MAX491以及MAX1487是用于RS-485与RS-422通信的低功耗收发器。

由于PC机器上只有RS232的串口,因此,若欲实现PC机通过MAX485与单片机的通信,必须要借助RS232转RS485的转换电路。

基于MAX485实现PC机与单片机通信的程序设计

基于MAX485实现PC机与单片机通信的程序设计

基于MAX485实现PC机与单片机通信的程序设计
周凯;郭黎利
【期刊名称】《信息技术》
【年(卷),期】2005(29)4
【摘要】介绍MAX485芯片在PC机与单片机串行数据通信中的应用,并详细说明串行通信接口的程序设计及软件设计中需注意的问题.
【总页数】3页(P10-12)
【作者】周凯;郭黎利
【作者单位】哈尔滨工程大学信息与通信工程学院,哈尔滨,150001;哈尔滨工程大学信息与通信工程学院,哈尔滨,150001
【正文语种】中文
【中图分类】TN915
【相关文献】
1.采用MAX485实现单片机与PC机串行通信的一种方法 [J], 周凯;郭黎利
2.基于MSComm的PC机与单片机串行通信程序设计 [J], 邱育桥
3.基于VB的单片机与PC机串行通信程序设计 [J], 罗红萍;彭云柯
4.实现32位单片机MC68332与PC机串行通信的底层程序设计 [J], 钟军;冯静;卓斌
5.基于C++ Builder的PC机与单片机通信程序设计 [J], 王宜结;闻国才
因版权原因,仅展示原文概要,查看原文内容请购买。

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

信息技术 In formation T echnology 2005年第4期基于M AX485实现PC机与单片机通信的程序设计周 凯,郭黎利(哈尔滨工程大学信息与通信工程学院,哈尔滨150001)摘 要:介绍M AX485芯片在PC机与单片机串行数据通信中的应用,并详细说明串行通信接口的程序设计及软件设计中需注意的问题。

关键词:M AX485芯片;单片机;串行通信;程序设计中图分类号:T N915 文献标识码:A 文章编号:1009-2552(2005)04-0010-03 Program for serial communication betw een PC and singlechip microprocessor based on MAX485ZHOU K ai,G UO Li2li(College of I nform ation and Communication E ngineering,H arbin E ngineering U niversity,H arbin150001,China) Abstract:This paper presents a method how to use M AX485applied in serial communication between mcs51 single chip microprocess or and PC.It als o discusses the program design of the communication interface and must be note s ome questions during s oftware design in detail.K ey w ords:M AX485;single chip microprocess or;serial communication;program design0 引言数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来达到信息交换的目的,无论是完整的七层OSI模型,还是简化的三层(或四层)工业局部网络,其第一层均为物理层。

RS-232C,RS-422,RS485既是物理层的协议标准,也是串行通信接口的电气标准。

PC机有一个功能强大的可编程异步串行控制器8250和两个采用RS-232C串行通信标准接口C OM1,C OM2,而单片机中有一个采用TT L电平的可编程串口,所以要使它们之间通信,必须采用一个电平转换电路,这里采用符合RS-485标准的M AXI M 公司生产的M AX485和波士公司生产的RS-232C-RS485转接头,将RS-232信号电平转换成RS-485标准电平信号,利用RS-485标准电平的优势,在一些特殊通信领域内实现PC机和单片机之间的串行长距离可靠通信。

1 RS-485标准优点(1)通信速度和通信距离通常标准接口的电气特性,都有满足可靠传输时的最大通信速度和传送距离指标,但这两个指标具有相关性,适当的降低通信速度,可以提高通信距离,反之亦然,例如:采用RS-232C标准进行单向数据传输时,最大数据传输速率为20kbitΠs,最大传送距离为15m,若改用RS-422标准时,最大传输速率可达10MbitΠs,最大传送距离为300m,降低数据传输速率,可传送距离可达到1200m。

(2)抗干扰能力通常选择的标准接口,在保证不超过其使用范围时都有一定的抗干扰能力,以保证可靠的信号传输,但在一些工业测控系统,通信环境往往十分恶劣,因此在通信接口标准选择时要充分注意其抗干扰能力,并采取必要的抗干扰措施。

例如在长距离传输时使用RS-422标准能有效的抑制共模信号干扰,使用20mA电流环技术,能大大降低对噪声的敏感程度。

在高噪声污染环境中,通过使用光纤介质收稿日期:2005-02-07作者简介:周凯(1971-),男,讲师,主要研究方向为数字通信技术与网络。

—1—减少噪声干扰,通过光电隔离提高通信系统的安全性等都是一些行之有效的方法。

(3)RS -232C 与RS -422,RS -485性能参数比较在RS -232连接的串行通信系统中实际上只用到RX D TX D 和地,在本设计中用到RS -232C ,RS -485标准,RS -485标准是一种多发送器的电路标准,它扩展了RS -422A 的性能,允许双导线上一个发送驱动32个负载设备,负载设备可以是被动发送器、接收器或收发器。

RS -485标准没有规定在何时控制发送器发送或接收机接收数据的规则,电缆选择比RS -422更严格。

对驱动器和接收器规定了双端电气接口形式,把电位差转变成逻辑电平,实现终端的信息接收。

2 单片机与PC 机串行通信系统构成单片机与PC 机串行通信的总体原理图如图1所示,采用RS -485最大的优点在于它的多点总线互连功能,它可以连接一台主机和多台终端同时通信,由于它是半双工的,同时只能有一方发送,一方接收,而且它采用差动电平接收的方法来提高抗干扰能力,适合在比较恶劣的环境下工作,因为在同一对电缆中所受到的干扰是很类似的,采用差动方法可以用作差的方法将干扰抵销一大部分。

图1 单片机与PC 机串行通信原理图由于RS -485通信是一种半双工通信,发送和接收共用同一物理信道。

在任意时刻只允许一台单机处于发送状态。

因此要求应答的单机必须在监听到总线上呼叫信号已经发送完毕,并且没有其它单机发出应答信号的情况下,才能应答。

半双工通信对主机和从机的发送和接收时序有严格的要求。

如果在时序上配合不好,就会发生总线冲突,使整个系统的通信瘫痪,无法正常工作。

要做到总线上的设备在时序上的严格配合,必须要遵从以下几项原则。

(1)复位时,主从机都应该处于接收状态ΠRE 和DE 端相连为低时,从机处于接收状态,在上电复位时,由于硬件电路稳定需要一定的时间,并且单片机各端口复位后处于高电平状态,这样就会使总线上各个分机处于发送状态,加上上电时各电路的不稳定,可能向总线发送信息。

因此,如果用一根口线作发送和接收控制信号,应该将口线反向后接入M AX485的控制端,使上电时M AX485处于接收状态。

(2)控制端ΠRE ,DE 的信号要求在RS -232,RS -422等全双工通讯过程中,发送和接收信号分别在不同的物理链路上传输,发送端始终为发送端,接收端始终为接收端,不存在发送、接收控制信号切换问题。

在RS -485半双工通信中,由于M AX485的发送和接收都由同一器件完成,并且发送和接收使用同一物理链路,必须对控制信号进行切换。

控制信号何时为高电平,何时为低电平,一般以单片机的TI ,RI 信号作参考。

发送时,检测TI 是否建立起来,当TI 为高电平后关闭发送功能转为接收功能;接收时,检测RI 是否建立起来,当RI 为高电平后,接收完毕,又可以转为发送。

(3)发送控制信号在时序上的要求总线上所连接的各单机的发送控制信号在时序上完全隔开。

为了保证发送和接收信号的完整和正确,避免总线上信号的碰撞,对总线的使用权必须进行分配才能避免竞争,连接到总线上的单机,其发送控制信号在时间上要完全隔离。

总之,发送和接收控制信号应该足够宽,以保证完整地接收一帧数据,任意两个单机的发送控制信号在时间上完全分开,避免总线争端。

3 通信协议的制定(1)通信双方的串行波特率为2400bit Πs 。

(2)帧格式:一个起始位,八个数据位,一个可编程的第九位,一个停止位。

(3)工作方式选择:PC 机采用查询方式,选择串口C OM2工作于方式2;单片机采用中断方式以提高效率,串口工作于方式2。

(4)功能标志:发送请求标志#0F1H ,接收请求标志#0FFH 。

(5)校验:通信双方采用求和校验的方式,即发送一串字符,双方计算累加和,在主控机(PC 机)比较。

不等则认为有错,优点为速度快,程序处理简单;缺点是不能纠错,不能查出位出错,例如:不能区别出0001和0100。

但是考虑到RS -485通信可靠性很高,这样的情况发生的概率很小,即使发生了,—11—再发一遍也可以解决问题。

(6)资源分配:由于单片机的地址空间和标志空间是公用的,所以,不能任意的向单片机的地址里写数据,如果恰好写到标志位里,容易使程序错乱,读数据不影响,所以规定写入地址范围#60H ~#80H ,读出的地址不限。

4 PC 机的通信程序PC 机的通信编程选择C 语言是因为C 语言对硬件操作简单方便,外挂函数功能丰富,应用广泛,与其它高级语言的程序接口编程也比较简单。

根据通信协议,程序流程如图2所示。

图2 PC 机程序流程图5 单片机通信程序单片机用汇编编程的优点是操作方便,直观,缺点是程序代码过长时检错困难。

根据通信协议,通信串行口工作于方式2,用订时器T 1作为波特率发生器,T 0工作于方式2,帧格式:一位起始位,8位校验位,一个可编程的第9位,一个停止位。

用T 1定时器产生2400波特率,晶体振荡器的频率为12MH z ,T 1的计数初值为E6H ,中断入口地址0023H ,程序流程如图3所示。

6 软件的调试(1)PC 端程序的测试在T URBOC 2.0的开发环境中运行程序,因为用的是C OM2口,在C OM2口的3脚用示波器测得方波脉冲(程序中反复发送AAH ),并且在单片机的图3 单片机程序流程图第10脚测得高电压,说明PC 机的信号已成功发出。

(2)单片机程序在仿真器中运行程序,在运行到W AIT:RI ,W AIT 时停止,运行PC 机程序,程序运行到C LR RI ,查看到寄存器中S BUF 值为F1H (成功通信),然后程序逐渐添加功能,以实现发送接收的功能。

7 结束语本设计操作的对象是双方的通信端口,在许多场合,如果波特率较低或CPU 还要完成其它任务,在发送和接收过程中都可采用中断方式进行控制,以提高工作效率,用于多机通信时,只需要在程序的前边加入发送的地址码以判定具体是那个单片机,并在合适的通信协议和合理的通信程序支持下,完成PC 机与单片机的长距离、抗干扰能力强的串行数据通信任务。

参考文献:[1] 李华.MCS -51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1996.[2] 戴梅萼,史嘉权.微型计算机技术与应用[M].北京:清华大学出版社,1996.[3] 王士元.C 高级实用程序设计[M].北京:清华大学出版社,2000.3.[4] 张振荣,晋明武,等.MCS -51单片机原理及应用[M].北京:人民邮电出版社,2000.8.责任编辑:杨立民—21—。

相关文档
最新文档