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

news/2024/12/22 1:01:58/

 

//这个发送端代码
#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.ppmy.cn/news/1023118.html

相关文章

教你一招:非计算机科班如何丝滑转码?

近年来&#xff0c;很多人想要从其他行业跳槽转入计算机领域。非计算机科班如何丝滑转码&#xff1f; 目录 一、确定方向 二、确定学习计划&#xff08;自学&#xff09; 三、学习 看到组里好多非科班姐妹决定转码之后&#xff0c;因为相关背景知识不足难以确定学习计划&am…

js 使用 Object.defineProperty() 对属性进行限制 06

小夏小夏&#xff0c;可爱到爆炸 &#x1f923; &#x1f495;&#x1f495;&#x1f495; 文章目录 一、对属性操作的控制二、属性描述符三、数据属性描述符四、存取属性描述符五、vue2 响应式原理六、defineProerties 同时定义多个属性七、对象方法补充 一、对属性操作的控制…

从零开始配置前端环境以及安装必备的软件及其插件

从零开始配置前端环境以及安装必备的软件及其插件 前言一、 安装 Node.js二、 安装编辑器三、 安装版本控制工具&#xff1a;四、 安装浏览器五、 安装包管理工具六、 安装必备的VS Code 插件1、必备插件2、Vue.js 插件3、React 插件 总结 前言 前端开发是一个快速发展的领域&…

elasticsearch简单入门语法

基本操作 创建不同的分词器 ik_smart&#xff1a; 极简分词 &#xff1b; ik_max_word: 最细力再度分词 基本的rest命令 methodurl地址描述PUTlocalhost:9200/索引名称/类型名称/文档id创建文档&#xff08;指定文档id&#xff09;POSTlocalhost:9200/索引名称/类型名称创建文…

Arrays.asList() 返回的list不能add,remove

一.Arrays.asList() 返回的list不能add,remove Arrays.asList()返回的是List,而且是一个定长的List&#xff0c;所以不能转换为ArrayList&#xff0c;只能转换为AbstractList 原因在于asList()方法返回的是某个数组的列表形式,返回的列表只是数组的另一个视图,而数组本身并没…

彩色图转灰度图之c++实现(qt + 不调包)

1.介绍 在日常生活中&#xff0c;我们经常看到的图片是彩色图片&#xff0c;有时我们需要将彩色图片转换成灰度图片来处理&#xff0c;也就是将RGB三通道图片按照一定规则转换成一通道图片。 2.转换方式 彩色图片转灰度图片&#xff0c;一般有三种方法 第一种&#xff1a;平均法…

香港第一金:美联储官员放鹰 贵金属跳水下跌

香港第一金基本面分析&#xff1a; 中国纸黄金交易通显示&#xff0c;全球最大黄金上市交易基金(ETF)截至08月10日持仓量为903.38吨&#xff0c;较上日减持0.31吨&#xff0c;本月止净减持9.55吨。 周四公布的美国上月消费者物价指数(CPI)上涨0.2%&#xff0c;与6月涨幅持平。…

TOPIAM 社区版 1.0.0 发布,开源 IAM/IDaaS 企业身份管理平台

文章目录 产品概述系统架构功能列表管理端门户端 技术架构后续规划相关地址 ​Hi&#xff0c;亲爱的朋友们&#xff0c;今天是传统 24 节气中的立秋&#xff0c;秋天是禾谷成熟、收获的季节。经过长时间优化和迭代&#xff0c;TOPIAM 企业身份管控平台也迎来了当下的成长和收获…