当前位置: 首页 > news >正文

c51单片机串行通信示例代码(单片机--单片机通信)(附带proteus线路图)

 

//这个发送端代码
#include "reg51.h"
#include "myheader.h"
#define uchar unsigned char
long int sleep_i=0;
long int main_i=0;
void main()
{uchar sendx[6]={2,0,2,3,8,1};sleep(2000);TMOD=0x20;TH1=0XF4;//根据波特率计算公式这里需要设置为这么多才能够在串行数据传输模式1的状况下实现波特率2400B/STL1=0XF4;TR1=1;SCON=0X40;while(1){for(main_i=0;main_i<6;main_i++){SBUF=sendx[main_i];while(TI==0);//这个是清除发送的中断,不是清除闹钟中断TI=0;}}
}void sleep(long int a)
{for(sleep_i=0;sleep_i<a;sleep_i++){;}
}

后面这个是接收端代码

#include "reg51.h"
#include "myheader.h"
#define uchar unsigned char
int szc[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int bufferc[6]={0};
int sza[6]={0x01,0x02,0x04,0x08,0x10,0x20};
void display()
{uchar i=0;uchar num=0;for(i=0;i<6;i++){num=bufferc[i];P2=szc[num];P1=sza[i];sleep(50);P2=0xff;}
}void main()
{uchar i=0;TMOD=0x20;TH1=0XF4;//根据波特率计算公式这里需要设置为这么多才能够在串行数据传输模式1的状况下实现波特率2400B/STL1=0XF4;TR1=1;SCON=0x40;//串口工作与方式1,定义了传送数据的格式REN=1;for(i=0;i<6;i++){while(RI==0){;}bufferc[i]=SBUF;RI=0;}while(1){display();}
}void sleep(long int a)
{uchar i=0;for(i=0;i<a;i++){;}
}

 另外发现一个奇怪的现象:如果把T1口改为T0口没有办法正常模拟

http://www.lryc.cn/news/119323.html

相关文章:

  • UML之四种事物
  • 盒子模型和新盒子模型及区别
  • 移动端Vue组件库-vant
  • Java课题笔记~ JSP内置对象
  • 数据结构笔记--链表经典高频题
  • Android Ble蓝牙App(三)特性和属性
  • 日常BUG——使用Long类型作id,后端返回给前段后精度丢失问题
  • 【C++初阶】string类的常见基本使用
  • 【ArcGIS Pro二次开发】(60):按图层导出布局
  • docker-desktop数据目录迁移
  • 03.利用Redis实现缓存功能---解决缓存穿透版
  • 全景图!最近20年,自然语言处理领域的发展
  • Mybatis参数传递
  • 手动实现 Spring 底层机制 实现任务阶段一编写自己 Spring 容器-准备篇【2】
  • 部署模型并与 TVM 集成
  • Android Navigation 导航切换fragment用法
  • Anaconda Prompt使用pip安装PyQt5-tools后无法打开Spyder或闪退
  • 【jvm】jvm整体结构(hotspot)
  • 通达信波段选股公式,使用钱德动量摆动指标(CMO)
  • 家电维修小程序开发指南:从零搭建到上线
  • 玩赚音视频开发高阶技术——FFmpeg
  • python 变量赋值 修改之后 原值改变
  • 拂袖一挥,zipfile秒列zip包内容
  • InnoDB文件物理结构解析2 - FIL_PAGE_INDEX
  • XML-BEANS compiled schema: Could not locate compiled schema resource 异常处理
  • IOC容器 - Autofac
  • 用i18n 实现vue2+element UI的国际化多语言切换详细步骤及代码
  • Vue3 :Pinia入门
  • Java线程池的类型和使用
  • QT的信号槽的四种写法和五种链接方式