电子发烧友网 > 控制/MCU > 正文

单片机双机点对点通信设计

2019年05月29日 14:40 次阅读

/*双机点对点通信的从机部分*/

#ifndef__P2P_S_C__

#define__P2P_S_C__

#include

#include

#define__MAX_LEN_64//数据最大长度

#define_MHz_11//设置单片机使用的晶振频率(11.0592MHz)

/*以下为程序协议中使用的握手信号*/

#define__RDY_0x06//主机开始通信时发送的呼叫信号

#define__BUSY_0x15//从机忙应答

#define__OK_0x00//从机准备好

#define__SUCC_0x0f//数据传送成功

#define__ERR_0xf0//数据传送错误

voidinit_serial();//串口初始化

单片机双机点对点通信设计

unsignedcharrecv_data(unsignedchar*buf);//接收数据

voidBeep_ok();//蜂鸣表示数据接收ok,该函数代码未给出

voidmain()

{

charbuf[__MAX_LEN_];

unsignedchari=0;

unsignedchartmp=0xff;

/*串口初始化*/

init_serial();//初始化串口

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

/*进入设备应答阶段*/

while(1)

{

/*如果接收到的数据不是握手信号__RDY_,则继续等待*/

while(tmp!=__RDY_)

{

RI=0;

while(!RI);

tmp=SBUF;

RI=0;

}

/*程序通过检测P0口数据判断当前设备状态,若P0=0xab,表示当前设备忙*/

P0=0xff;

tmp=P0;

if(tmp==0xab)//如果P0口数据为0x,则当前设备忙,发送__BUSY_信号

{

TI=0;

SBUF=__BUSY_;

while(!TI);

TI=0;

conTInue;

}

TI=0;//否则发送__OK_信号表示可以接收数据

SBUF=__OK_;

while(!TI);

TI=0;

/*数据接收*/

tmp=0xff;

while(tmp==0xff)

{

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

}

Beep_ok();//蜂鸣表示数据接收成功

}

}

/*初始化串口*/

voidinit_serial()

{

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

TH1=250;//设置初值

TL1=250;

TR1=1;//开始计时

PCON=0x80;//SMOD=1

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

}

/*接收数据,注意该函数使用buf指向的缓冲区保存数据,在数据末尾使用’’表示数据结束

*返回值为0,数据校验成功,返回值为0xff,数据校验失败

*/

unsignedcharrecv_data(unsignedchar*buf)

{

unsignedcharlen;//该字节用于保存数据长度

unsignedcharecc;//该字节用于保存校验字节

unsignedchari,tmp;

/*接收数据长度*/

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;//清空数据缓冲区

TI=0;//发送校验失败信号

SBUF=__ERR_;

while(!TI);

TI=0;

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

}

TI=0;//校验成功

SBUF=__SUCC_;

while(!TI);

TI=0;

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

}

#endif

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

玩单片机到千万身家,“技术型老总”需要哪些神技能?

中国硬件创新大赛网络培训会—技术培训篇如果你就干这行,毫无疑问你不能错过这次直播;如果不是,可能你不一定喜欢单片机,也不

发烧友学院 发表于 2017-05-16 00:00 585次阅读
玩单片机到千万身家,“技术型老总”需要哪些神技能?

仪表量程会限制程序结果的显示吗?程序修改可以增大显示量程吗?

发表于 2019-05-30 10:29 80次阅读
仪表量程会限制程序结果的显示吗?程序修改可以增大显示量程吗?

请问那款型号的单片机较适合初学者使用

发表于 2019-05-30 05:55 5次阅读
请问那款型号的单片机较适合初学者使用

LED条图显示器相关应用

发表于 2019-05-30 05:00 11次阅读
LED条图显示器相关应用

jlink搭建的开发环境按下复位或者重新上电程序

发表于 2019-05-30 04:36 8次阅读
jlink搭建的开发环境按下复位或者重新上电程序

求keil4或者keil5,用于51内核单片机开发

发表于 2019-05-30 04:20 45次阅读
求keil4或者keil5,用于51内核单片机开发

不同蓝牙模块配对问题?

发表于 2019-05-30 02:53 9次阅读
不同蓝牙模块配对问题?

画了一块单片机最小系统的PCB,请大家帮忙检查下是否正确

发表于 2019-05-30 00:24 11次阅读
画了一块单片机最小系统的PCB,请大家帮忙检查下是否正确

请问直流输入2.5v-50v输出保持5v,驱动单片机和数码管用什么集成芯片能做到?

发表于 2019-05-29 21:59 7次阅读
请问直流输入2.5v-50v输出保持5v,驱动单片机和数码管用什么集成芯片能做到?

关于嵌入式ARM入学必知

发表于 2019-05-29 16:17 266次阅读
关于嵌入式ARM入学必知

单片机与传感器之间的单总线数据传输设计

首先是由总线控制器拉低总线,维持480us。在480us后释放总线,由上拉电阻讲总线拉高。等待5-6...

发表于 2019-05-29 14:34 66次阅读
单片机与传感器之间的单总线数据传输设计

单片机如何实现DAC输出0~20mA或0~10V?

发表于 2019-05-29 11:16 168次阅读
单片机如何实现DAC输出0~20mA或0~10V?

单片机C语言编程中没有到的中断而中断全部开启的错...

我们知道,51单片机有几个不同的中断源。对于一个系统的设计,通常在初始化程序里面需要定义各个中断等

发表于 2019-05-26 11:57 364次阅读
单片机C语言编程中没有到的中断而中断全部开启的错...

通过单片机来控制蜂鸣器

有图可知BZ1蜂鸣器的BZ引脚和ULN2003引脚的12引脚相连的,这是一个输出引脚,对应的输入引脚...

发表于 2019-05-26 10:22 124次阅读
通过单片机来控制蜂鸣器

单片机种类及选型

单片机作为计算机发展的一个重要分支领域,根据目前发展情况,从不同角度单片机大致可以分为通用型/专用型...

发表于 2019-05-24 16:51 244次阅读
单片机种类及选型

arm和单片机的区别

单片机的字面意义就是单芯片微型计算机,是把处理器,存储器和必要的外部设备集成在一块半导体芯片上构成的...

发表于 2019-05-24 16:26 591次阅读
arm和单片机的区别

如何采用MCU实现M1052跨界核心板的音视频应...

i.MX RT1052的内核运行速度高达600MHz,内置高密度的512KB TCM SRAM,并能...

发表于 2019-05-24 15:33 73次阅读
如何采用MCU实现M1052跨界核心板的音视频应...

单片机通讯程序设计

TMOD=0x20;//定时器T1为模式2 TL1=0xfd;//定时器初值 TH1=0...

发表于 2019-05-23 15:32 111次阅读
单片机通讯程序设计

单片机原理及应用

单片机现已渗透到我们日常生活中的各个领域,小到家用电器、仪器仪表,大到医疗器械、航空航天,无不存在着...

发表于 2019-05-23 13:58 203次阅读
单片机原理及应用

单片机与plc优缺点

PLC是一套比较成熟的控制系统,有相当的通用性,在它内部已经包含了几套单片机。单独的一个单片机就是一...

发表于 2019-05-23 13:54 397次阅读
单片机与plc优缺点

单片机编程步骤

单片机编程该如何进行?有哪些步骤?刚上手的新手大多数都会手忙脚乱,不知该从何入手。这是很正常的,大家...

发表于 2019-05-23 13:48 205次阅读
单片机编程步骤

单片机常用的14个C语言算法,看过的都成了大神!

算法(Algorithm): 计算机解题的基本思想方法和步骤。 算法的描述: 是对要解决一个问题或要...

发表于 2019-05-23 09:53 2438次阅读
单片机常用的14个C语言算法,看过的都成了大神!

常见硬件原理图中的“英文缩写”大全

常用控制接口EN:Enable,使能。使芯片能够工作。要用的时候,就打开EN脚,不用的时候就关闭。

发表于 2019-05-22 17:38 903次阅读
常见硬件原理图中的“英文缩写”大全

17种常见的单片机电路设计模块

本电路与SD卡的封装有关,注意与封装对应。此电路可以通过端口控制SD卡的电源,比较完善,可以用于5V...

发表于 2019-05-22 17:34 423次阅读
17种常见的单片机电路设计模块

单片机音乐程序的设计原理解析

我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则...

发表于 2019-05-20 16:08 138次阅读
单片机音乐程序的设计原理解析

单片机系统的EMC测试设计

EMC是电磁兼容(Electro- Magnetic Compatibility)的缩写,它包括电磁...

发表于 2019-05-20 15:39 96次阅读
单片机系统的EMC测试设计

集成电路 | 基于深度学习和低频通信阵列的无线面...

近年来,我国建筑在规模和层次上都发展到了一个新的高度,同时建筑施工安全管理也越发受到人们重视。

发表于 2019-05-20 14:18 312次阅读
集成电路 | 基于深度学习和低频通信阵列的无线面...

基于単片机室内照明智能控制系統

很多元件之间可能会互相影响,比如蜂鸣器会影响声控开关、热释电模块会影响红外通信(遥控,不过概率比较低...

发表于 2019-05-20 11:16 256次阅读
基于単片机室内照明智能控制系統

单片机5V转3.3V电平的19种方法你知道吗?

标准三端线性稳压器的压差通常是 2.0-3.0V。要把 5V 可靠地转换为 3.3V,就不能使用它们...

发表于 2019-05-18 11:44 684次阅读
单片机5V转3.3V电平的19种方法你知道吗?

初入电子类的学生到底应该怎么发展

这是本文的作者向苏老师自荐的一篇文章,想必是基于其亲身体会写得比较真切,故转发在此,分享给标题中的朋...

发表于 2019-05-18 11:16 473次阅读
初入电子类的学生到底应该怎么发展

使用STM32单片机进行线性稳压电源的设计方案详...

随着计算机技术与电子信息技术的快速发展,在实际应用中根据调整管不同的工作状态把电源区分为开关电源、线...

发表于 2019-05-18 10:03 419次阅读
使用STM32单片机进行线性稳压电源的设计方案详...

基于单片机控制的自主寻迹电动小车的设计

在小车的中部平行装有两个色标传感器,采用查询检测的方法对黑线进行检测。89C51在检测到黑线信号后,...

发表于 2019-05-17 15:49 203次阅读
基于单片机控制的自主寻迹电动小车的设计

如何制作单片机简单电路

把七或八只发光二极管组合在一个模件上组成了个8字和小数点,用以显示数字。为了减少管脚,把各个发光管的...

发表于 2019-05-16 18:03 455次阅读
如何制作单片机简单电路

基于EFM8 8位MCU的智能家居系统开关设计

Silicon Labs EFM8SB1系列单片机控制芯片是一款基于最节能的8位MCU,非常适用于对...

发表于 2019-05-16 17:06 297次阅读
基于EFM8 8位MCU的智能家居系统开关设计

STM32F030C8T6微控制器的主要特性介绍

STM32F030C8T6微控制器是一款32位M0系列LQFP-48 单片机,性价比很高的ARM单片...

发表于 2019-05-15 15:49 552次阅读
STM32F030C8T6微控制器的主要特性介绍

STC90C52RC系列单片机的特点及引脚功能分...

STC90C52RC系列单片机是宏晶科技推出的一款高速、低功耗、超强抗干扰的单片机,指令代码完全兼容...

发表于 2019-05-13 14:36 812次阅读
STC90C52RC系列单片机的特点及引脚功能分...

如何使用单片机进行可语音播报的脉搏检测仪的设计资...

设计功能:ST188光电传感器检测脉搏信号,并有脉搏信号指示灯; 具有温度检测功能,可检测人体温度...

发表于 2019-05-12 09:35 481次阅读
如何使用单片机进行可语音播报的脉搏检测仪的设计资...

如何利用单片机向电脑发送一串汉字

操作条件: 1.XP操作系统。 2.XP的超级终端显示。 3.WJ-V4.0开发板...

发表于 2019-05-11 10:40 133次阅读
如何利用单片机向电脑发送一串汉字

基于51单片机NRF905无线病房呼叫语音播报系...

一款医疗呼叫系统,主要功能是实现医院医务人员与病人之间信息沟通,可在不改变病房现有布局的情况下实现医...

发表于 2019-05-11 10:01 576次阅读
基于51单片机NRF905无线病房呼叫语音播报系...

STC15F104W单片机的特点及管脚图

STC15F104W单片机是STC生产的单时钟/机器周期(1T)的单片机,是高速/高可靠/低功耗/超...

发表于 2019-05-10 15:30 783次阅读
STC15F104W单片机的特点及管脚图

SRRC传导辐射过不了?AD软件怎么搞?看大咖们...

SRRC传导辐射过不了,有人遇到过这种问题吗,怎么解决的?

发表于 2019-05-09 15:18 249次阅读
SRRC传导辐射过不了?AD软件怎么搞?看大咖们...

ARM7单片机轻松入门与实践

ARM7是32 位通用微处理器ARM(Advanced RISC Machines)家族中的一员,具...

发表于 2019-05-09 14:56 243次阅读
ARM7单片机轻松入门与实践

基于机智云+STM32的智能物联网寝室

因为模块较多,而单片机的串口等和处理速度有限,为了提高处理速度,减轻单块单片机的负担,所以项目使用了...

发表于 2019-05-06 16:13 578次阅读
基于机智云+STM32的智能物联网寝室

C8051F340单片机对智能测量系统的控制设计

智能数据采集系统包括:步进电机控制、数据采集、数据传输、数据处理等部分(如图1 所示)。为了进一步提...

发表于 2019-05-06 15:29 123次阅读
C8051F340单片机对智能测量系统的控制设计

基于IAR开发EFM32单片机的过程及技巧

俗话说“工欲善其事、必先利其器”,为了能更好的开发ARM系单片机EFM32,熟练掌握一个或者多个ID...

发表于 2019-05-06 14:50 82次阅读
基于IAR开发EFM32单片机的过程及技巧

基于51单片机及嵌入式传感器的电网监控系统设计浅...

随着计算机技术的飞速发展,嵌入式系统已经成为计算机技术领域的一个非常重要的组成部分,普遍应用于商业和...

发表于 2019-05-06 14:42 196次阅读
基于51单片机及嵌入式传感器的电网监控系统设计浅...

利用51+NRF24L01实现银行排队系统

智能排队管理系统其具体要求和功能,完全模拟人群排队过程,通过取号、进队、排队等待、叫号服务等功能代替...

发表于 2019-05-05 17:24 311次阅读
利用51+NRF24L01实现银行排队系统

盘点当今市面上的主流单片机

单片机现在可谓是铺天盖地,种类繁多,让开发者们应接不暇,发展也是相当的迅速,从上世纪80年代,由当时...

发表于 2019-05-05 09:21 2330次阅读
盘点当今市面上的主流单片机

为什么单片机有了Flash还有EEPROM

Flash属于广义的EEPROM,因为它也是电擦除的ROM。但是为了区别于一般的按字节为单位的擦写的...

发表于 2019-05-03 09:45 273次阅读
为什么单片机有了Flash还有EEPROM

如何快速读懂单片机时序图实例教材说明

对于芯片开发使用来说,时序图是较为核心也较为重要的一个知识点。在厂家给出的芯片数据手册中,时序图也是...

发表于 2019-05-03 09:01 328次阅读
如何快速读懂单片机时序图实例教材说明

SOC中单片机嵌入式应用的技术特点

本文根据几年来对SOC技术和单片机应用技术发展的研究,对SOC的基本技术概念以及单片机与SOC技术的...

发表于 2019-05-01 14:04 414次阅读
SOC中单片机嵌入式应用的技术特点

单片机动态扫描显示接口的应用

动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段a-h...

发表于 2019-04-30 15:14 161次阅读
单片机动态扫描显示接口的应用

EM78447A单片机对智能晾衣架硬件电路的设计

单片机EM78447A接收来自传感器的信号后发出晾衣服架收缩或伸张功能的指令,使晾衣服架自动收缩或伸...

发表于 2019-04-30 15:07 183次阅读
EM78447A单片机对智能晾衣架硬件电路的设计

单片机各种延时程序符号的含义解析

DJNZ:这是另一条指令,我们来看一下这条指令后面跟着的两个东西,一个是R6,一个是D2,R6我们当...

发表于 2019-04-30 11:07 115次阅读
单片机各种延时程序符号的含义解析

单片机硬件参数设计解析

随着单片机的频率和集成度、单位面积的功率及数字信号速度的不断提高,而信号的幅度却不断降低,原先设计好...

发表于 2019-04-30 10:20 443次阅读
单片机硬件参数设计解析

介绍几款非常实用的单片机小工具

第9款:虚拟示波器,这是一款可以在电脑上使用的虚拟示波器软件,可自动扫描串口,并设置多种波特率,显示...

发表于 2019-04-29 11:30 730次阅读
介绍几款非常实用的单片机小工具

国内外电子元器件分销商150强数据统计

国内电子元器件分销商150强(排名不分先后)

发表于 2019-04-29 10:51 635次阅读
国内外电子元器件分销商150强数据统计

单片机系统开发入门知识储备

单片机程序下载器或在线仿真器。这个设备一般没有通用的,单片机系列不同,仿真器也不同。直接上某宝,搜“...

发表于 2019-04-28 15:55 345次阅读
单片机系统开发入门知识储备

Microchip推出首款基于Arm®内核的单片...

SAMV71Q21RT和SAMRH71允许软件开发人员在迁移到宇航级元件之前着手使用SAMV71 C...

发表于 2019-04-25 11:37 443次阅读
Microchip推出首款基于Arm®内核的单片...

单片机设计的电磁兼容性解决方案

PCB是单片机系统中电路元件和器件的支撑件,它提供电路元件和器件之间的电气连接。随着电子技术的飞速发...

发表于 2019-04-22 14:44 184次阅读
单片机设计的电磁兼容性解决方案

51、stm32单片机入门的一些经验

51单片机作为最经典的一款单片机,已在各大高校的电子、通信专业的入门单片机课程,想学单片机这是最好的...

发表于 2019-04-20 09:04 208次阅读
51、stm32单片机入门的一些经验

51单片机的学习步骤

从刚开始接触单片机,到现在已经有4年的时间了,在这期间学习和使用了51单片机、飞思卡尔单片机,LPC...

发表于 2019-04-20 09:03 321次阅读
51单片机的学习步骤

单片机浮点数的运算原理及表达方式

浮点数也有各种各样表示有符号数的方法,其中数的符号常和尾数放在一起,即把士M作为一个有符号的小数,它...

发表于 2019-04-18 15:38 159次阅读
单片机浮点数的运算原理及表达方式

飞思卡尔加速度传感器MMA7260QT对智能摇篮...

本系统采用飞思卡尔MC9S08QG8单片机作为控制器,使用飞思卡尔加速度传感器MMA7260QT判断...

发表于 2019-04-16 15:30 137次阅读
飞思卡尔加速度传感器MMA7260QT对智能摇篮...

看门狗工作原理、应用和设计思路解析

C8051Fxxx单片机内部也有一个21位的使用系统时钟的定时器,该定时器检测对其控制寄存器的两次特...

发表于 2019-04-16 13:59 397次阅读
看门狗工作原理、应用和设计思路解析

混合编程的基本方式, 在C51中嵌入汇编程序

用固定存储区传递参数给汇编程序,参数段首地址用段名“ function-nAMEBYTE”和“fun...

发表于 2019-04-15 11:41 500次阅读
混合编程的基本方式, 在C51中嵌入汇编程序

单片机累加器A的逻辑操作方法介绍

CLR A ;将A中的值清0,单周期单字节指令,与MOV A,#00H效果相同。 CPL A ...

发表于 2019-04-12 16:01 213次阅读
单片机累加器A的逻辑操作方法介绍

如何解决单片机的抗干扰问题

随着单片机的发展,单片机在家用电器、工业自动化、生产过程控制、智能仪器仪表等领域的应用越来越广泛。然...

发表于 2019-04-12 15:56 324次阅读
如何解决单片机的抗干扰问题

怎样才能学好单片机技术

要学习单片机这门技术,良好的教材和教程必不可少。单片机方面,大家可以直接学习我们这部教程,以及配套的...

发表于 2019-04-11 16:01 244次阅读
怎样才能学好单片机技术

单片机位处理指令的使用方法

1.位处理指令的一般性说明 在分类时将位传送归入传送指令类,条件转移归入程序控制类。其余位操作...

发表于 2019-04-10 16:22 148次阅读
单片机位处理指令的使用方法

MEGA8单片机对LCD1602液晶屏的驱动

1)由于找不到的1620资料,不知道它的操作时序。看到一些帖子说1620和1602没区别,还是有点将...

发表于 2019-04-09 15:16 286次阅读
MEGA8单片机对LCD1602液晶屏的驱动