单片机实现点对点的数据传输-串口通讯

发布者:hzx312895379最新更新时间:2016-09-07 来源: eefocus关键字:单片机  点对点  的数据传输  串口通讯 手机看文章 扫描二维码
随时随地手机看文章
单片机在控制本地的外围期间时,信息的交互是通过8位并行数据总线进行的,但是在较大规模的现代控制系统中,单片机还需要控制远端的设备,可以利用单片机的串行通信模块,在学习了RS-232串口通信的原理和时序后,学习了利用RS-232接口实现串口数据传输的点对点通信。

 

主要器件:

1、  AT89C52单片机芯片,用于控制串口通信。

2、  接口电平转换芯片MAX3232,用于实现TTL电平和RS-232电平的转换。

 

试验流程图:主机部分                             


 

 从机部分:


 

试验电路图:
 

试验程序代码:

//PPDataR.h程序

#ifndef       _PPDATAR_H         // 防止PPDataT.h被重复引用

 

#define       _PPDATAR_H

 

#include

#include

 

#define uchar unsigned char

#define uint unsigned int

 

/* 握手信号宏定义 */

#define CALL 0x24              // 主机呼叫

#define BUSY 0x15              // 从机忙

#define OK 0x00                     // 从机准备好

#define SUCC 0x2A              // 接收成功

#define ERR 0xF0              // 接收错误

 

#define MAXLEN 64           // 缓冲区最大长度

 

uchar buf[MAXLEN];

 

#endif

 

//PPDataR.c程序

#include "PPDataR.h"

 

/* 发送数据函数 */

uchar recvdata(uchar *buf)

{

       uchar i,tmp;

       uchar len;                                   // 保存数据长度

       uchar ecc;                                   // 保存校验字节

      

       /* 接收数据长度字节 */

       RI = 0;

       while(!RI);

       len = SBUF;

       RI = 0;

      

       /* 使用len的值为校验字节ecc赋初值 */

       ecc = len;                                  

 

       /* 接收数据 */

       for (i=0;i

       {

              while(!RI);

              *buf = SBUF;    

              ecc = ecc^(*buf);            // 进行字节校验

              RI = 0;      

              buf++;             

       }

       *buf = 0;                             // 表示数据结束

      

       /* 接收校验字节 */

       while(!RI);

       tmp = SBUF;

       RI = 0;

 

       /* 进行数据校验 */

       ecc = tmp^ecc;

       if (ecc!=0)                                   // 如果校验错误

       {

              *(buf-len) = 0;                  // 清空数据缓冲区

             

              /* 发送校验错误信号ERR */

              TI = 0;      

              SBUF = ERR;

              while(!TI);

              TI = 0;

 

              return 0xff;                     // 返回0xff表示校验错误

       }

 

       /* 发送校验成功信号SUCC */

       TI = 0;

       SBUF = SUCC;

       while(!TI);

       TI = 0;

 

       return 0;                              // 校验成功,返回0

}

 

void init_serial()

{

       TMOD = 0x20;                           // 定时器T1使用工作方式2

       TH1 = 250;

       TL1 = 250;

       TR1 = 1;                             // 开始计时

       PCON = 0x80;                           // SMOD = 1

       SCON = 0x50;                           // 工作方式1,波特率9600kbit/s,允许接收

}

 

/* 主程序 */

void main()

{

       uchar tmp = 0;

       /* 串口初始化 */

       init_serial();

 

       EA = 0;                               // 关闭所有中断

 

       while(1)

       {

              /* 如果接收到的数据不是CALL,则继续等待 */

              while (tmp!=CALL)

              {

                     RI = 0;

                     while(!RI)

                     tmp = SBUF;

                     RI = 0;

              }

      

              /* 检测P0口判断当前是否工作忙,若P0=0xBB,则为忙状态 */

              P0 = 0xff;

              tmp = P0;

              if(tmp==0xBB)         // 如果P0口为0xBB,发送BUSY信号

              {

                     TI = 0;

                     SBUF = BUSY;

                     while(!TI);

                     TI = 0;

                     continue;

              }

 

              /* 否则发送OK信号,表示从机可以接收数据 */

              TI = 0;                           

              SBUF = OK;

              while(!TI);

              TI = 0;

 

              /* 数据接收 */

              tmp = 0xff;

              while(tmp==0xff)

              {

                     tmp = recvdata(buf); // 校验失败返回0xff,接收成功返回0

              }

       }

}

关键字:单片机  点对点  的数据传输  串口通讯 引用地址:单片机实现点对点的数据传输-串口通讯

上一篇:单片机实现段距离无线传输
下一篇:用集成芯片MAX038实现智能信号发生器

推荐阅读最新更新时间:2024-03-16 15:08

用C51单片机设计远程红外安防监控管理系统
  随着社会经济的发展和科学技术的进步,人们对办公场所的安全提出了更高的要求。特别对于企业而言,防火防盗更是必不可少的安全防范事件。针对传统的安防成本比较高、且实时性不强、集中管理控制困难、难以对安全隐患问题进行排查预警等情况; 现基于单片机技术和移动通信网络开发出一种实时、无线、便于管理、成本低廉的主动防护远程红外监控管理系统。   1 系统组成及功能   1.1 系统组成   整个系统主要由现场监控端、移动传输网络和监控中心三部分组成。现场监控端包括监控主机、传感器(包括红外传感器、烟雾传感器和门磁传感器)、摄像头和GPRS 通信模块。传输网络借由移动通信的GSM\\GPRS 网络,完成远程通信。监控中心由可靠的DCN
[单片机]
用C51<font color='red'>单片机</font>设计远程红外安防监控管理系统
基于89C51单片机智能视频监控系统控制电路设计
  键盘是数字视频监控录像系统中最重要的输入设备之一,是人机接口的重要组成部分。目前常用的工业控制计算机键盘除配置电子锁开关防止非法键盘输入外,与 PC键盘并没有多大区别。这种键盘不仅键数多,操作不灵活,而且通常只能作为输入设备,主机无法通过键盘与外设进行通信。本文在分析PC机键盘通信方式的基础上,设计出以89C51单片机为核心的数字视频监控系统键盘及报警控制卡,该卡具有键盘通信和输入输出报警两种功能,采用标准PCI卡的结构,但不占用主机硬件资源。其中,报警部分有4路输入和4路输出,可以与标准的报警传感器相连;键盘部分有16个键,通信方式与PC机完全兼容。    键盘接收主机命令和参数   主机首先将时钟线置为低电平,随后将数
[单片机]
基于89C51<font color='red'>单片机</font><font color='red'>的</font>智能视频监控系统控制电路设计
PIC单片机上实时时钟PCF8563测试程序
..............................PCF8563测试程序主函数............................ ............................................................................... ............................................................................... #include #include pcf8563.h #include IIC.h __CONFIG(FOSC_INTOSC&WDTE_OFF&MCLRE_OFF)
[单片机]
从集成电路角度认识单片机
本文着手从集成电路角度去认识单片机,主要介绍了单片机的引脚图及引脚功能,以及单片机简易编程。 首先,先看下80C51单片机的功能结构框图。 80C51单片机属于MCS-51系列单片机,采用40引脚双列直插式DIP(Dual In Line Package),内有128个RAM单元及4K的ROM。 80C51单片机的功能结构框图 下面介绍一下单片机的引脚图及引脚功能(如下图所示),引脚的具体功能将在之后详细介绍。 单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。 1. 电源: ⑴ VCC -芯片电源,接+5V; ⑵ VSS - 接地端
[单片机]
从集成电路角度认识<font color='red'>单片机</font>
基于单片机和DDS高精度频率信号实现
高精度的频率信号源对科研、通信系统、电子对抗以及各种电子测量技术十分重要。目前,国内低频信号合成器通常使用多个分立的锁相环元件,电路复杂、价格昂贵、精度低、易受外界环境影响,而且信号的建立时间长而动态范围较小。九十年代迅速发展起来的直接数字合成技术(DDS)将先进的数字处理技术与方法引入信号合成领域,优越的性能和突出的特点使其成为现代频率合成技术中的佼佼者。DDS器件采用高速数字电路和高速D/A转换技术,具备了频率转换时间短、频率分辨率高、频率稳定度高、输出信号频率和相位可快速程控切换等优点,可以实现对信号的全数字式调制。 1 AD9854芯片介绍 AD9854是美国ADI公司最近推出的单片DDS芯片,简单结构框图如图1所示。
[单片机]
基于<font color='red'>单片机</font>和DDS<font color='red'>的</font>高精度频率信号实现
基于单片机交流电机软启动器及其在机床电力拖动中应用
  众所周知,三相异步电动机以其低成本、高可靠性和易维护等特点,被广泛应用在各个行业。特别是 机床 设备中,它作为一种主要的动力设备,常常用来拖动主轴、工作台、冷却泵、油泵等装置。但是它在直接启动时,由于启动电流高达额定电流的5~7倍,所以会对电网及负载造成很大的冲击,影响了周边电器的工作,增加了机械传动部件的磨损,降低了设备的寿命。这里所介绍的基于 单片机 AT89C5l的三相异步电动机 软启动器 不但可以解决上述问题,从本质上改善交流电动机的启动特性,而且具有节电运行、过流保护、过载保护、缺相保护等功能。    1 工作原理及硬件构成   该软启动器的硬件电路结构框图如图1。   启动时(接到启动指令),从单片机输出
[单片机]
基于<font color='red'>单片机</font><font color='red'>的</font>交流电机软启动器及其在机床电力拖动中应用
意法半导体STM32 F4系列中最小微控制器产品已投入量产
意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)宣布旗下STM32F4系列的STM32F410基本型微控制器已投入量产,配备新的开发板NUCLEO-F410RB,实现尺寸更小、功耗及成本更低的高性能STM32 F4系列入门级产品。 STM32F410搭载ARM Cortex -M4F处理器内核,在100MHz时,运算速度可达125 DMIPS,并在EEMBC CoreMark 测试中取得339分的优异成绩。具有功耗敏感(Power-conscious)的STM32 Dynamic Efficiency 特性,例如意法半导体的ART Accelerator 和电压调节,可将动态功
[单片机]
在进行单片机设计时需要注意哪些事项
1.降低外时钟频率 外时钟是高频的噪声源,除能引起对本应用系统的干扰之外,还可能产生对外界的干扰,以8051单片机为例最短指令周期1μs时,外时钟是12MHz。而同样速度的Motorola单片机系统时钟只需4MHz微控制器产生的最有影响的高频噪声大约是时钟频率的3倍。 2.低噪声系列单片机 改进的技术将电源、地安排在两个相邻的引脚上,外部去耦电容在PCB设计上更容易安排。 3.时钟监测电路、看门狗技术与低电压复位 时钟监控有效与省电指令STOP是一对矛盾。只能使用其中之一。 看门狗技术是监测应用程序中的一段定时中断低电压复位技术是监测单片机电源电压,当电压低于某一值时产生复位信号。由于单片机技术的发展,单片机本身对电源电压
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved