STC51单片机-异步串行通信系统-物联网应用系统设计项目开发

简介: STC51单片机-异步串行通信系统-物联网应用系统设计项目开发

一、说明

同步通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。串行通信可以分为同步通信和异步通信两类。


异步串行通信是指通信双方以一个字符(包括特定附加位)作为数据传输单位且发送方传送字符的间隔时间不一定,具有不规则数据段传送特性的串行数据传输。


它—般由起始位、数据位、奇偶校验位和停止位四部分组成。它用一个起始位表示字符的开始,用停止位表示字符的结束,构成一帧,即在异步通信中,发送的每一个数据字符均带有起始位、停止位和可选择的奇偶位。数据字符之间没有特殊关系,也没有发送接收时钟。


异步通信数据帧的第一位是开始位,在通信线上没有数据传送时处于逻辑’1’状态。当发送设备要发送一个字符数据时,首先发出一个逻辑“0”信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。因此,起始位所起的作用就是表示字符传送开始。


当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5,6,7或8位的数据。在字符数据传送过程中,数据位从最低位开始传输。数据发送完之后,可以发送奇偶校验位。奇偶校验位用于有限差错检测,通信双方在通信时需约定一致的奇偶校验方式。就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质,这种性质用于检错,虽有限但很容易实现。在奇偶位或数据位之后发送的是停止位,可以是1位、1.5位或2位,停止位一直为逻辑’1’状态。停止位是一个字符数据的结束标志。


在异步通信中,字符数据一个一个地传送。在发送间隙,即空闲时,通信线路总是处于逻辑“1”状态,每个字符数据的传送均以逻辑“0”开始。


用Proteus仿真编程实现以下功能:

  • 2个同种单片机之间的异步串行通信

二、重点

  • 单片机异步串行通信的工作方式及其控制方法
  • 单片机异步串行通信的实际应用

三、实现

  //从机1串行通信程序
#include <reg52.h>
sbit led=P2^0;          //定义P2.0连接的黄色LED
bit rrdy=0;         //接收准备标志位rrdy=0,表示未做好接收准备
bit trdy=0;           //发送准备标志位trdy=0,表示未做好发送准备
bit err=0;  
void delay_ms(unsigned int i)     //延时函数
{
  unsigned char j;
  for(;i>0;i--)     
  for(j=0;j<125;j++)    
  ;
} 
void main()         //从机1主函数      
{
  EA=1;       //总中断打开
  TMOD=0x20;      //T1方式2自动装载,用于设置波特率
  TL1=0xfd;TH1=0xfd; PCON=0x00;   //波特率设为9600
  SCON=0xd0;      //SM2设为0,TB8设为0
  TR1=1;        //启动定时器T1 
  P1=0xff;      //向P1写入全1,8个绿色LED全灭
  ES=1;       //允许串口中断
  while(RI==0);     //接收控制指令0xff
  if(SBUF==0xff) err=0;   //如果接收到的数据为0xff,err=0,表示通信正常
  else err=1;     //err=1,表示接收出错
  RI=0;       //接收中断标志清0
  SM2=1;        // SM2置1,为多机通讯做好准备。
  while(1);
}
void int1() interrupt 4       //串行口中断函数
{
 if(RI)       
 {
  if(RB8)         //如果RB8=1,表示接收的为地址帧
  {
    RB8=0;        
    if(SBUF==0x02)   //如接收的数据为地址帧0x01,是本从机的地址
            //2#机本句改为:if(SBUF==0x02)
    {
      SM2=0;    //则SM2清0,准备接收数据帧
      led=0;    //点亮本从机黄色发光二极管
    }
  }
  else          //如果接收的不是本从机的地址
  {
    rrdy=1;     //准备好接收标志置1
    P1=SBUF;    //串口接收的数据送P1,LED显示
      SM2=1;      // SM2仍为1 
    led=1;      // 熄灭本从机黄色发光二极管 
  }
  RI=0; 
}
delay_ms(500); 
P1=0xff;          //熄灭本从机8个绿色发光二极管  
}  
…………

四、下载

详见:STC51单片机-异步串行通信系统-物联网应用系统设计项目开发

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
6月前
|
数据采集 监控 网络协议
​MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
​MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
641 40
​MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
|
4月前
|
传感器 边缘计算 物联网
淘宝商品详情 API 与物联网技术融合的创新应用探索
在传统电商架构中,商品数据主要存储于云端服务器,但物联网设备的实时数据采集需求催生了边缘计算节点的部署。以智能货架为例,每个货架内置的RFID传感器与重量感应器实时采集商品库存变动数据,通过边缘计算网关进行数据预处理(如去重、异常值过滤),仅将关键信息(如库存低于阈值、商品被频繁拿起)通过淘宝商品详情API同步至云端。这种“边缘过滤+云端聚合”的模式,将数据传输量降低70%以上,同时确保库存数据的秒级更新。
Java 大视界 -- 基于 Java 的大数据实时流处理在工业物联网设备状态监测中的应用与挑战(167)
本文围绕基于 Java 的大数据实时流处理技术,深入探讨其在工业物联网设备状态监测中的应用与挑战。不仅介绍了技术架构、原理和案例,还引入边缘计算技术,提出应对数据质量、性能和安全等问题的策略。
|
7月前
|
存储 监控 安全
工业物联网关应用:PLC数据通过智能网关上传阿里云实战
本文介绍如何使用智能网关将工厂PLC数据传输至阿里云平台,适合中小企业远程监控设备状态。硬件准备包括三菱FX3U PLC、4G智能网关和24V电源。接线步骤涵盖PLC编程口与网关连接、运行状态检测及天线电源接入。配置过程涉及通讯参数、阿里云对接和数据点映射。PLC程序关键点包括数据上传触发和温度值处理。阿里云平台操作包含实时数据查看、数据可视化和规则引擎设置。最后提供常见故障排查表和安全建议,确保系统稳定运行。
649 1
|
10月前
|
供应链 监控 数据可视化
物联网技术在物流与供应链管理中的应用与挑战
本文探讨了物联网技术在物流与供应链管理中的应用,通过实时追踪、信息共享、智能化决策等手段,大幅提升了管理效率和智能化水平。特别介绍了板栗看板作为专业可视化工具,在数据监控、分析及协同作业中的重要作用。未来,随着技术的进一步发展,物流与供应链管理将更加智能高效,但也面临数据安全、标准化等挑战。
|
7月前
|
传感器 人工智能 物联网
健康监测设备的技术革命:AI+物联网如何让你随时掌握健康数据?
健康监测设备的技术革命:AI+物联网如何让你随时掌握健康数据?
938 19
|
11月前
|
存储 安全 物联网
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
361 60
|
11月前
|
安全 物联网 物联网安全
制定统一的物联网技术标准和规范的难点有哪些?
制定统一的物联网技术标准和规范的难点有哪些?
407 58
|
11月前
|
存储 数据采集 物联网
物联网技术在物流领域的应用会遇到哪些挑战?
物联网技术在物流领域的应用会遇到哪些挑战?
588 60
|
11月前
|
供应链 物联网 区块链
探索未来技术潮流:区块链、物联网、虚拟现实的融合与创新
【10月更文挑战第41天】随着科技的不断进步,新技术如区块链、物联网、虚拟现实等正在逐步渗透到我们的日常生活中。本文将深入探讨这些技术的发展趋势和应用场景,以及它们如何相互融合,共同推动社会的进步。我们将通过具体的代码示例,展示这些技术在实际应用中的潜力和价值。无论你是科技爱好者,还是对未来充满好奇的探索者,这篇文章都将为你打开一扇通往未来的窗口。
223 56