一、目标

单片机甲机P1端口外接8位拨码开关;乙机P0外接8只LED。要求使用单片机串行口通信,在查询状态下使单片机乙机的8只LED能够显示甲机8位拨码开关的状态。

二、布线

三、实现

1、首先我们先来编写发送机的代码。利用T1定时器的工作方式2(八位自动重装载模式)进行波特率的设置。常用的波特率有:1200、4800、9600、19200。我们选择采用9600的波特率对应的定时器初始值为0xFD。设置SCON串行口控制寄存器,令其工作在方式1(可变波特率,10位UART)。这里是发送机所以不需要接收功能,将REN设置为禁止接收状态。

#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char//宏定义
#define uint  unsigned int //宏定义void sending(uint p1)
{SBUF=p1;//将p1送进缓冲区while(!TI);//TI=0表示正在发送TI=0;
}void init()
{TMOD=0x20;//T1,工作方式2,8位自动重装载SCON=0x40;//工作方式1,禁止接收TH1=0xFD;TL1=0xFD;//9600TR1=1;PCON=0x00;//波特率不加倍
}int main()
{init();while(1){sending(P1);}return 0;
}

2、接下来我们来设置接收机的代码。这时我们需要接收甲机发送过来的数据,所以REN接收允许位应该置1,即允许接收。同样的采用串行口的工作方式1,所以串行口控制寄存器SCON应该设置为0x50;波特率的设置应该与发送机保持一致,否则接收机将无法正常接收到甲机发送的完整数据。

#include<reg51.h>
//#include<intrins.h>
#define uint unsigned int;
#define uchar unsigned char;int p0=0x00;int receive()
{if(RI)//RI=1时表示接收完毕{  RI=0;p0=SBUF;//接收完毕后将缓冲区接受的数据储存到p0}return p0;
}void init()
{TMOD=0x20;//T1,方式2,自动重装载SCON=0x50;//方式1,允许接受TH1=0XFD;TL1=0XFD;//9600TR1=1;PCON=0X00;//波特率不加倍
}int main()
{init();while(1){P0=receive();//将存储下来的数据显示出来即可}return 0;
}

四、结语

在完成单片机串口通信相关的功能时,一定要注意发送机和接收机的串口通信波特率设置是否一致,在下可是在这上面吃过亏的,有一次做实验时排查了好久都找不出问题所在,结果是因为波特率设置时粗心导致的两片机器波特率不一致造成的。

好啦 !以上就是这次分享的全部内容了,希望大家可以亲动脑筋,举一反三!
祝各位学习愉快哟!(^_^)y!

甲机通过传串口控制乙机的LED显示状态相关推荐

  1. 甲、乙机之间采用方式 1 双向串行通信,具体要求如下: (1)甲机的 k1 按键可通过串行口控制乙机的 LEDI 点亮、LED2 灭,甲机的 k2 按键控制 乙机的 LED1

    (原创)Proteus 虚拟仿真.甲.乙机之间采用方式 1 双向串行通信,具体要求如下: (1)甲机的 k1 按键可通过串行口控制乙机的 LEDI 点亮.LED2 灭,甲机的 k2 按键控制乙机的 L ...

  2. c语言串口控制单片机,单片机C语言程序设计:甲机通过串口控制乙机 LED

    /* 名称:乙机程序接收甲机发送字符并完成相应动作 说明:乙机接收到甲机发送的信号后,根据相应信号控制 LED 完成不同闪烁动作. */ #includereg51.h> #define uch ...

  3. matlab制作以太网数据接收上位机_Python制作串口通讯上位机

    串口通讯具有简单易用的特点广泛应用于测试设备的通讯和数据传递.单片机与计算机的通讯等,本案例基于Python语言制作一个用于接收燃油质量流量计的串口通讯上位机,实现数据的读取和保存. 1. 相关知识点 ...

  4. c语言stm32串口控制单片机,USART1-RGB-control 实现STM32F103单片机的串口控制RGB三色LED灯 - 下载 - 搜珍网...

    USART1-USART1指令控制RGB彩灯/ USART1-USART1指令控制RGB彩灯/Doc/ USART1-USART1指令控制RGB彩灯/Doc/readme.txt USART1-USA ...

  5. 【51单片机多机通信】主机控制从机1步进电机、从机2超声波测距(主机可集中显示步进电机的转速、转向、启停状态以及超声波测距结果)

    一.设计目标 使用三个51单片机,实现多机通信. 二.实现功能 1号单片机可遥控2.3号单片机.超声波测距等: 1号单片机可集中显示步进电机的转速.转向.启停状态以及超声波测距结果. 三.硬件原理 5 ...

  6. 蓝牙芯片支持音频传输,播放U盘TF卡,还能传输数据透传串口控制

    一.前言             选型是很关键的一环,因为选型的结果,就会影响到整个产品的性价比,以及开发周期等等一些列的问题,所以这里我们做了一些系统化的分类,帮助工程师挑选到最合适的方案 蓝牙芯片 ...

  7. 电脑通过串口控制51单片机的LED

    一.功能介绍 在电脑端的串口助手通过串口对51单片机发送一个字节的16进制数控制LED的亮灭 单片机通过串口将接收到的数据发送回电脑 二.串口通信的相关知识 1.51单片机的串口 51单片机内部自带U ...

  8. C#上位机(数据校验发送指令来控制下位机)

    对于"数据校验发送指令来控制下位机"的上位机,该模块主要有三个: (1)串口扫描,获取串口号,通过打开按钮来控制按钮是否打开. (2)发送数据校验的函数,将数据发送个给相应的下位机 ...

  9. 《STM32单片机开发应用教程(HAL库版)—基于国信长天嵌入式竞赛实训平台(CT117E-M4)》第四章4.1 LED显示控制实验

    写在前面-- <STM32单片机开发应用教程(HAL库版)-基于国信长天嵌入式竞赛实训平台(CT117E-M4)>第四章4.1,本节将通过LED显示控制实验,学习STM32G431的开发技 ...

最新文章

  1. 在Ubuntu 14.04 64bit上安装网易云音乐Linux版本(最新官方版)
  2. java多线程aqs实现工具类_Java并发多线程 - 并发工具类JUC
  3. web前端零基础入门学习!前端真不难!
  4. 网游类似魔兽世界的服务器维护都是在干嘛?
  5. 【AcWing 235. 魔法珠
  6. mybatis缓存二级缓存_MyBatis缓存与Apache Ignite的陷阱
  7. md5加密+盐方式一
  8. multisim高频小信号放大器_什么是放大器及其用处_光纤传感器_传感器
  9. 大家可以在十分钟内入睡吗?有什么快速入睡的方法吗?
  10. 毕业工具大全:开题、答辩、格式排版等stata、spss等多种统计软件、绘图软件(附送教学视频)超200G资料
  11. 2018年尚硅谷徐靖博老师的分布式电商项目视频
  12. 2440 led-管道-控制应用程序详细解释(摘抄+解释部分)
  13. luogu P1375 小猫
  14. Hadoop-HDFS可靠性
  15. 最长重复子字符串:123321||12321
  16. MSI文件无法安装问题
  17. python画海贼王_用python自动爬取海贼王漫画推送kindle
  18. 讯飞AIUI集成语音语义的21003错误
  19. 10年过去,人们买不起旗舰机了
  20. MABSA(Multimodal Aspect-Based Sentiment Analysis)2022ACL 预训练

热门文章

  1. ireport1.3.2 pdf字体加粗失效的问题
  2. Java版skiplist跳表详解
  3. 鸿蒙开发实例 | 鸿蒙原子化服务卡片开发完美体验
  4. 【Blender教程】在Blender中制作森系少女(下)
  5. 蓄电池爆炸、起火等事故频发?机房这一步至关重要
  6. Aspose.Words利用word样式写入标题及正文(.NET)
  7. 解决Chrome无法更新的问题:检查更新时出错:无法启动更新检查(错误代码为 4: 0x80070005 -- system level)。
  8. PHP用数组遍历新闻列表,php数组遍历_php
  9. AIFashion第二十八天——安装自定义开机动画
  10. 数据结构与算法课程设计C语言之体育器材管理系统