RS-232接口实现串口数据传输的点对点通信设计

单片机在控制本地的外围期间时,信息的交互是通过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
}
}
}


汽车智能座舱反季节测试
浅谈FeRAM存储器市场情况
一文详解PLC转换指令
强人工智能时代有什么不一样的地方
三相异步电动机结构图及原理说明
RS-232接口实现串口数据传输的点对点通信设计
华为Mate40和苹果iPhone 12,谁更厉害?
海尔智家安防场景:你担心的水气隐患都解决了
脉冲电子围栏的工作原理是什么,它有哪些应用领域
旅游业通过人工智能来增强市场竞争力
拜登上位 科技公司悲喜交加 对中国科技企业态度如何?
旋转编码器的分类简述
荣耀9X系列,29天国内销售突破300万台!感谢信任
比较器的传播延迟规范与测量参数介绍
微雪电子SOT6 SOT-23测试座简介
使用Modulus OV平台和AI构建科学精确的数字孪生
使用英特尔数据分析加速库在Spark 集群上构建应用程序
敏芯股份:深耕MEMS传感器,多维度发展成为极具竞争力企业
图文教程:GC211(4G)转接板接入GoKit
Acrel-3000电能管理系统在张家港市康乐医院的应用