当前位置: 首页 > 乐球直播在线
返回
列表

单片机双机通讯 非常详细的UART串口异步通讯

发表时间: 2024-01-02 作者: 乐球直播在线

  两片单片机之间进行串行通信,发送端将0~f循环发送到接收端,并在接收端显示。

  本次设计,对于两片89C51,采用RS232进行双机通信。发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。接受方接收后,在数码管上显示接收的信息。为提高抗干扰能力,还可以在输入输出端加光耦合进行光电隔离。

  软件部分,通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和作比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。从机收到16个正确数据后送到一个数码管显示。

  计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)就可以完成通信,成本低,传输的距离较远。

  51单片机的串行接口是一个全双工的接口,它可当作UART(通用异步接受和发送器)用,也可当作同步移位寄存器用。51单片机串行接口的结构如下:

  接受或发送的数据都要先送到SBUF缓存。有两个,一个缓存,另一个接受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。

  SM0,SM1:串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1、2、3。串行接口工作方式特点见下表

  TB8:方式2或3时,TB8为要发送的第9位数据,根据自身的需求由软件置1或清0。

  RB9:在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。

  TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续发送。

  RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续接收。

  接收的数据先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF中。

  波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器,T1设置在定时方式。波特率时用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。

  当定时器T1工作在定时方式的时候,定时器T1溢出率=(T1计数率)/(产生溢出所需机器周期)。由于是定时方式,T1计数率= fORC/12。产生溢出所需机器周期数=模M-计数初值X。

  用8051串行接口通信,如果两台8051单片机之间的距离很近(不超过1.5m),能够使用直接将两台8051单片机的串行接口直接相连,利用其自身的TTL电平(0-5V)直接传输数据信息。如果传输距离较远(超过1.5m),由于传输线的阻抗与分布电容,会产生电平损耗和波形畸变,以至于检测不出数据或数据出错。此时可利用 RS232标准总线接口,将单片机输出的TTL电平转换为RS232标准电平(逻辑1为-15—-5V;逻辑0为+5-—+15V)。用RS232可将传输距离提高到15m,如果想远距离传输,能够使用RS422或者RS485。

  电平转换芯片MAX232是美信公司(MAXIM)生产,专用于进行将TTL电平转换为RS232电平的芯片,MAX232内部有泵电源,能将+5V电源电压在芯片内提高到RS232电平所需的+10V或者-10V电平。

  最终设计电路如下图3所示,发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。接受方接收后,通过P1口在数码管上显示接收的信息。

  通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和作比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。从机收到16个正确数据后送到一个数码管显示。

  (1)串行口工作于方式1;用定时器1产生9600bit/s的波特率,工作于方式2。

  (2)功能:将本机ROM中数码表TAB[16]中的16个数发送到从机,并保存在从机内部ROM中,从机收到这16个数据后送到一个数码管循环显示。

  (3)通信协议:主机首先发送连络信号(AAH),从机接收到之后返回一个连络信号(BBH)表示从机已准备好接收。

  (5)从机接收到一个数据后,立即进行奇偶校验,若数据没有错误,则返回00H,否则返回FFH。

  (6)主机发送一个数据后,等待从机返回数据;若为00H,则继续发送下一个数据,若为FFH,则重新发送数据。

  在protues上进行仿真实验。首先使用KeilC将编写完成的程序编译生成HEX文件,将HEX文件烧录到两片单片机中,进行仿真实验,结果如下图所示,能够正常的看到,接收端已将接受到的数据完整的显示了出来。

  经过繁忙而又紧张的课程设计,终于顺利的完成了设计任务。虽然在最近一段时间里每天都那么繁忙,但是在这忙碌的过程中却得到了许多的收获。

  经过课程设计,在查阅资料的过程中,学习了基于单片机的C语言程序设计,了解了单片机串行通信的基本知识,对于以后的学习和工作都有很大的益处。

  在学习的过程中,也遇到了一些困难,比如开始的时候,由于发送端和接收端的通信协议没做好,导致数据不能正确的传输,在处理问题的过程中,对于通信协议的实现有了深刻的认识。

  从机发送程序和主机差不多,你能自己想一下看看能不能写出来。关键字:编辑:什么鱼 引用地址:单片机双机通讯 非常详细的UART串口异步通讯

  自己不断的折腾确实挺荒度时间的,但是真的收获颇丰。 问题 今天,在用12的时候,定时器无意之间debug竟然发现,定时不准? 查查查,,,一直没有头绪,还好没放弃一直在苦苦挣扎。 过程再现 #include #include unsigned char T0RH; unsigned char T0RL; /* 配置并启动T0,ms-T0定时时间 */ void ConfigTimer0(unsigned int ms) { unsigned long tmp; //临时变量 AUXR //定时器时钟12T模式 tmp = 12000000 / 12; //定

  定时竟然不准的问题 /

  爱特梅尔公司(Atmel® Corporation)宣布, 针对迅速增加、拥有超过10万用户的8位和32位AVR®嵌入式微控制器(MCU)设计社群,推出易于使用的新型全集成开发平台。新推出的Atmel AVR Studio 5是广受欢迎的爱特梅尔集成开发环境(IDE)的增强版本,支持所有8位和32位AVR MCU,能够明显提高研发人员的效率,并可使客户的应用程序在爱特梅尔8位和32位AVR MCU之间实现无缝移植。 AVR Studio® 5能够简化源代码的编辑和调试,具备辅助代码编写功能的编辑器、用于快速创建新项目的向导工具, AVR Software Framework源代码库、GNU C/C++编译器、功能强

  设计【爱特梅尔】 /

  一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D、D/A转换器等,要设计合适的接口电路。 系统的扩展和配置应遵循以下原则: 1、尽可能选择典型电路,并符合单片机常规用法。为硬件系统的标准化、模块化打下良好的基础。 2、系统扩展与外围设备的配置水平应充分满足应用系统的功能要求,并留有适当余地,以便进行二次开发。 3、硬件结构应结合应用软件方案一并考虑。硬件结构与软件方案会产生相互影响

  #include reg51.h #include intrins.h #include math.h #include string.h struct PID { unsigned int SetPoint; // 设定目标 Desired Value unsigned int Proportion; // 比例常数 Proportional Const unsigned int Integral; // 积分常数 Integral Const unsigned int Derivative; // 微分常数 Derivative Const unsigned int LastError; // Error

  第一部分、章节目录 1.16.1.AD转换及其相关背景知识 1.16.2.原理图和数据手册 1.16.3.结合例程分析时序 1.16.4.代码实践 1.16.5.串口直接显示电压值 1.16.6.DA转换 第二部分、章节介绍 1.16.1.AD转换及其相关背景知识1 本节对整个课程做介绍,并且主要讲了模拟量和数字量这两个概念以及AD转换相关概念, 主要是量程、精确度、分辨率、位数、转换速度等,并且举例说明了这些课程的联系。 1.16.2.原理图和数据手册 本节看原理图、确定接线,并且对照数据手册查看其中的关键点。 1.16.3.结合例程分析时序 本节重点分析数据手册中的时序图,并且通过对照官

  学习】第十六课:AD和DA转换 /

  2013 年 7 月 19 日,北京讯     日前,德州仪器 (TI) 宣布推出一款支持低至 100nA 超低总体系统静态电流的多模式电源管理单元 (PMU),其可最大限度降低基于微控制器的且由电池供电的水表、气表以及别的工业应用的功耗。该 TPS65290 PMU 可管理系统的所有电源需求,包括 100nA 至 500mA 的负载状况。     TPS65290 PMU 整合三个支持微控制器 (MCU) 睡眠模式的厂家可配置“常开”电源以及一个可从输入电压或升降压转换器选择电源的自动功能。此外,TPS65290 还能够与 TI 超低功率 MSP430F5328 等 MSP430 MCU 无缝工作。 TPS65290 的主

  系统中电池寿命 /

  1 引 言 经过多道工序的碾制之后,稻米的谷糠已被剥去,但米粒的表面显得比较粗糙,为保证米的质量和外观,需进行稻米加工的最后一道工序:抛光。米粒的抛光是由碾米抛光机来完成的。通过抛光可使米粒表面致密光洁,既保证了米的质量,又改善了米粒的外观。抛光是在一定温度和湿度条件下,经过一段时间的研磨完成的。因此抛光过程中一些重要的工艺参数必须得到满足。首先,加入水的温度必须严控,温度太低或太高都会使抛光后的米粒发黑,影响抛光的质量;其次,加入水量的多少必须严控。加入的水量太多,抛光后的湿度太大,既影响抛光的质量也影响将来的储运;加入的水量太少,抛光时的湿度太小,抛光后米粒的光洁度和致密度会达不到要求。 国产的中小型抛光机现有的抛光方

  项目场景: STM23G070单片机的PD0引脚作为开漏输出的时候,外部接了一个51K上拉电阻到5V,想让PD0开漏输出高的时候是5V,开漏输出低的时候是0V。 问题描述: STM23G070单片机的PD0引脚作为开漏输出的时候,外部接了一个51K上拉电阻到5V,单独测试PD0的时候是能够顺利的,开漏输出高的时候5V,低的时候能到0V,但是一旦PD1推挽输出输出高之后,情况就变了,在PD1推挽输出高情况下,PD0开漏输出高的时候却始终只有2.4V,输出低的时候是0V,正常的。 缘由分析: 查阅STM32G0数据手册可知 这个引脚的电平类型为FT_c,我们大家都知道FT是容忍5V的意思,那么FT_c是啥意思?不妨看看说明:

  PD0 PB15引脚内部下拉使用需要主意 /

  用vs2008向导生成了一个程序,选择的wince,cf2.0,只有一个窗体,一行代码都没写在wince5.0上运行提示:不是有效的wince程序已经安装cf2.0后来发现,windows目录下的cgacutil运行也提示不是有效的wince应用程序。是什么样的问题呢?请各位大侠赐教硬件是西门子的mp277multipanel操作屏,系统版本为wince5.0不是有效的windowsce应用程序?

  串口发送数据时怎样输入“CTRL+Z”,谢谢!,有点急!!!关于“CTRL+Z”输入问题

  前段时间调出来的ADS1118之前也困扰了我一段时间看见帖子里面也有朋友遇上问题就将它分享使用时注意管脚配置Ads1118未精调4mv误差

  为了少花点钱,买了个卡王,但是安装的时候,总是有问题,现在的问题是,把买的里面的小光盘放进去之后,并安装过后、它不能搜索。光标点到那个图标一直出来的是nortl8187请问大家如何来解决呀!!!(经验欠缺,忘高手指点!!感激不尽!!)急急急!!!卡王怎么装?

  接上一篇帖子基于SensorTile的数据存储系统模块设计-软件篇1-意法半导体AMGSensorTile开发大赛-电子工程世界-论坛的数据存储系统功能如下:1、SD数据存储,支持TTL、485通信2、数据存储前的时间戳添加,方便后期查看3、时钟可调+液晶显示4、支持不同通信协议(波特率、数据位、校验位等可变)时钟设置部分液晶显示函数定义如下

  有很多人喜欢用S9013作为驱动蜂鸣器、小型风扇、LED,S9013比S8050好在哪里?高频...

  有很多人喜欢用S9013作为驱动蜂鸣器、小型风扇、LED,S9013比S8050好在哪里?高频特性更好?有很多人喜欢用S9013作为驱动蜂鸣器、小型风扇、LED,S9013比S8050好在哪里?高频...

  构建射频应用

  研讨会 : 用于感测应用 带可配置信号链元素的新型 MSP430™ MCU

  CapTIvate™:引爆触摸新体验_2016 TI 嵌入式产品研讨会实录

  直播回放: 借助Sitara™ AM263x MCU 创造电气化的未来

  【电路】PC串口和MC68HC70-5K1微控制器之间的RS232传输电路

  解锁【W5500-EVB-Pico】,探秘以太网底层,得捷电子Follow me第4期来袭!

  参赛冲击【万元大奖】啦|2023 DigiKey“智造万物,快乐不停”创意大赛

  【下载】LAT1317 STM32CubeProgrammer和STM32CubeIDE协同调试的方法

  【下载】LAT1334 基于MCSDK5.4.8电机库修改两电阻采样方法

  【直播】轻松使用STM32MP13x如MCU般在Cortex A 核上裸跑应用程序

  【新品】STM32H5-Arm® Cortex®-M33 内核,主频高达250MHz,提升性能与信息安全性

  【新品】STM32MP13X-支持Linux、RTOS和Bare Metal应用,新一代通用工业级MPU

  【新品】Arm® Cortex®-M33处理器内核,运行频率160 MHz,基于Armv8-M架构并带有TrustZone®

  【Matter】康普和意法半导体强强联手,让物联网设备Matter证书管理既安全又简便

  【方案】STM32WLE5 x 利尔达LoRa模组助力亚残会开幕式惊艳秀

  【新品】意法半导体发布远距离无线微控制器,提高智能计量、智能建筑和工业监控的连接能效

  2023年12月20日,中国 - 意法半导体新软件帮助工程师把STM32微控制器应用代码移植到性能更强大的STM32MP1微处理器上,将嵌入式系统模块设计性 ...

  瑞萨推出面向图形显示应用和语音/视觉多模态AI应用的 全新RA8 MCU产品群

  瑞萨基于Arm® Cortex®-M85处理器的产品在优化图形显示功能的同时,为楼宇自动化、智能家居、消费及医疗应用带来超高性能和领先的安全性2 ...

  Microchip推出PIC18-Q24 系列单片机 为增强代码安全性设置新标准

  该系列单片机新增电压电平转换功能,有助于提高灵活性并降低系统成本从手机、汽车到智能恒温器和家用电器,慢慢的变多日常设备与云端相连。随 ...

  今天就分享一个读者问到的关于中断处理的问题。 很多人都知道STM32CubeMX这套工具的一个目的:减少开发者对STM32底层驱动的开发时间,把重 ...

  在万利STM32学习板的USB摇杆例程中,摇杆的按键处理并没有消抖处理,因此重新修改了摇杆的驱动,顺便还增加了两个按键以及摇杆中键下压的驱 ...

  STM32F103+ESP8266接入机智云 实现小型IOT智能家居项目

  stm32mp1 Cortex M4开发篇2:通过GPIO点亮LED灯详解

  站点相关:综合资讯51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程