百家姓男孩女孩取名_周易八字测算_姓名免费评分

您现在的位置是:首页 > C > 正文

C

单片机C发言中的串口通讯允诺

admin2020-10-22C23
  的运行参数,那么显示仪表就需要从汽车的底层控制器取得数据。而这个数据的获得过程就是一个通信过程。类似的例子还有控制器通常是单片机或者的通信。通信的双方需要遵守一套既定的规则也称为协议,

  的运行参数,那么显示仪表就需要从汽车的底层控制器取得数据。而这个数据的获得过程就是一个通信过程。类似的例子还有控制器通常是单片机或者的通信。通信的双方需要遵守一套既定的规则也称为协议,这就好比我们人之间的对话,需要在双方都遵守一套语言语法规则才有可能达成对话。

  通信协议又分为硬件层协议和软件层协议。硬件层协议主要规范了物理上的连线,传输电平信号及传输的秩序等硬件性质的内容。常用的硬件协议有串口,IIC, SPIRS485,CANUSB。软件层协议则更侧重上层应用的规范,比如modbus协议。

  好了,那这里我们就着重介绍51单片机的串口通信协议,以下简称串口。串口的6个特征如下。

  (1)、物理上的连线根,分别是Tx数据发送线,Rx数据接收线,GND共用地线,﹢5V至﹢25V之间的电压信号为0 。TTL电平,约定5V的电压信号为1,0V电压信号为0 。CMOS电平,约定3.3V的电压信号为1,0V电压信号为0 。其中,CMOS电平一般用于

  (4)、波特率。收发双方共同约定的一个数据位(0或1)在数据传输线上维持的时间。也可理解为每秒可以传输的位数。常用的波特率有300bit/s, 600bit/s, 2400bit/s, 4800bit/s, 9600bit/s。

  (5)、通信的起始信号。发送方在没有发送数据时,应该将Tx置1 。当需发送时,先将Tx置0,并且保持1位的时间。接受方不断地侦测Rx,如果发现Rx常时间变高后,突然被拉低(置为0),则视为发送方将要发送数据,迅速启动自己的

  ,从而保证了收发双方定时器同步定时。(6)、停止信号。发送方发送完最后一个有效位时,必须再将Tx保持1位的时间,即为停止位。

  好了,理论暂时到这里,现在我们要做一个实验,将一个字节从51单片机发送到电脑串口调试助手上。这个实验的目的是为了掌握串口通信协议的收发过程。

  一般单片机都有专门的串口引脚,51里面分别是P3.0和P3.1,这些引脚拥有串口的硬件

  ,因此使用它们并不需要设置信号的发送停止。为了掌握协议,我们使用其他的引脚来模拟串口,所以也叫虚拟串口。这里我们选用P1.0,然而注意到我们51单片机要发送数据给电脑,必须经过一个串口转USB设备(即TTL电平转换为RS232电平),而限于我们的开发板只有P3.0与P3.1连接到了串口转USB设备,所以我们可以将P1.0短接到P3.1 。下图是这个串口转USB的原理图。

  器开始计数。当第一次溢出的时候,也就是过了104us,进入中断,同时接收方也侦测到了这个突然被拉低的信号,于是迅速启动自己的定时器。进入中断子函数后,先是重装定时器初值,然后i加1,也就是当i=1时,就应该发送数据的最低位了,总共有8位数据,所以使用条件语句if(i》=1 && i《=8)来判断是否发送完数据位。然后再通过if(i==9) 来发送停止位,最后当i=10时,也就是发送完了,这时候要关闭定时器(那么程序也就),同时i置0,ti置1(才能跳出while(ti==0)循环),最后将ti置0,保证下次要发送字节时让程序停留在while(ti==0)。片上串口

  以上说的是虚拟串口,上文中谈到与串口相关的引脚P3.0与P3.1,事实上51单片机自带片上串口,那这个串口又该怎么使用呢?

  线,而异步模式无时钟线。这里的时钟线是指在同步通信时,用一根线专门传输时钟信号,这个信号用来与要发送的每一位保持同步,这样就避免了例如异步通信中因为采用定时器而引入的时间误差。片上串口还支持8位模式和9位模式。如下图所示

  其中D0-D7是一个字节的8个位。9位模式只是多了一个位TB8,这个TB8的作用是奇偶校验或多机通信。奇偶校验原理这不加分析。多机通信时比如主机只发送数据给网络中的一台地址为0x02的设备,这时候先让TB8为1,前面的D0-D7则为地址即0x02,之后再让TB8为0,前面的D0-D7则为数据了。

  片上串口的波特率等于定时器1工作在方式2时溢出率的32分频。如果要定时器1工作在方式2,那么TMOD=0x20。另外要保证为32分频,我们还必须设置计数器初值。设

  为11.0592Mhz,则定时器的计数脉冲为F=f/12,则定时器每计一个脉冲的时间为T=12/f。又令计数器的起点为x,则溢出一次要计的脉冲数为(256-x)。所以在计数起点为x时,溢出一次的时间为t=12/f*(256-x)。则对应的溢出率为1/t=f/(12*(256-x))。对应的波特率就为b=f/(384*(256-x))。x=256-f/(384*b)

  例如当晶振为11.0592M,希望波特率为9600bit/s,则TH1=253。题外话,我们同样可以演算出在其他常用波特率情况下,TH1始终为一个整数。这里也就解释了为什么51里面选用了11.0592M的晶振而不是12M,这样就保证了串口的时序更加准确,虽然牺牲了定时器的准确度。

  串上面介绍了如何发送一个字节,那如何发送一个字符串甚至文本呢?这里我们首先介绍下字符串的概念。

  的某个地址开始,连续存放多个字符的ASCII码,并且在最后一个字符的后面存放一个0,这段连续的内存空间就叫字符串,最后的0叫字符串的结束符。注意这里的0和加单引号的0不是一个概念,加单引号的0是指0的ASCII码。数组与字符串的关系:字符串是数组的一种特殊情况,数组在特定条件下可当做字符串用。C语言用双引号描述一个字符串,如“abcd”。

  下面我们通过一个实验来展示如何发送字符串。我们实验的目标是打印字符串“Hello World ! 第一!”到打印机。直接上代码。

  单片机应用的核心技术是什么?是按键,数码管,流水灯,串口。是它们的程序框架。按键和数码管是输入是人机....

  非常的KEIL软件使用手册,内部包含详细的软件的使用介绍,含示例详解 ...

  01 单片机外部中断简介 所谓外部中断,就是通过外部信号所引起的中断,如单片机引脚上的电平变化(高电....

  说到单片机编程,不得不说到状态机,状态机做为软件编程的主要架构已经在各种语言中应用,当然包括C语言,....

  其实IAR 和keil 区别也没有多大,不过很多人就是怕(当初我也怕) 。怕什么呢,怕学会了,真的就....

  如何对一个数组里的元素进行运算,例:u16 a[3]={1,2,3},我想进行这样的运算:(123-50)*2,然后把这个数值输出,现在的问题是,...

  长期以来,学校、工厂等单位常用的打铃仪多采用单片机计时,计时误差每天达0.5 s,日积月累走时误差会....

  一氧化碳(CO)是一种无色无臭的气体。当CO进入人体血液循环系统后,就会与血红蛋白迅速结合形成碳氧血....

  【LINK仿真器(HC-LINK V3.0/HC-LINK V4.0/SDK开发板) 免费试用】+开箱贴

  感谢芯圣和论坛给予的试用机会,本次就先发下开箱贴后续在捣鼓下其他的。玩开发板的同学都知道仿真器的重要性,先期我在学习51单...

  翻译作者:码农网 gunner 在本篇文章中,我收集了很多经验和方法。应用这些经验和方法,可以帮助我....

  本文档的主要内容详细介绍的是单片机在线编程板下载板的PCB原理图免费下载。

  定义了指针变量,但是没有为指针分配内存,即指针没有指向一块合法的内存。浅显的例子就不举了,这里举几个....

  1. 简单的前后台顺序执行程序,这类写法是大多数人使用的方法,不需用思考程序的具体架构,直接通过执行顺序编写应用程序即可。2...

  存储器属于常见产品,在各类需要存储功能的器件中均存在存储器身影。本文中,小编将对单片机内部的各大存储....

  基于C8051F021单片机和SD2300芯片实现海流数据采集存储接口的设计

  在很多情况下,尤其是恶劣的工作环境下,高性能的单片机和大容量的Flash存储器是数据采集存储系统的最....

  如图1所示,系统包括控制处理单元、电源管理单元、供电和输电单元(包括太阳能电池板、蓄电池、市电、电能....

  本文档的主要内容详细介绍的是使用单片机驱动继电器的仿真电路图免费下载。

  链接:提取码:ylaj 以上是本人精心整理的【电子全能资料包】,内含...

  链接:提取码:ylaj 以上是本人精心整理的【电子全能资料包】,内含...

  TTL指的是TTL电平,0~5V之间,小于0.2V输出低电平,高于3.4V输出高电平。全称Trans....

  看来这波操作可行,似乎还省去了.h文件,之前bug菌说过,分析.h文件的时候直接把.h文件在对应的.....

  将C向MCU(俗称单片机)8051上的移植始于80年代的中后期。客观上讲,C向8051 MCU移植的....

  用单片机控制步进电机正转 反转 加速 减速; 由LCD1602实时显示步进电机的状态;F-正转 B-反转;数字越大,转速越大; ...

  嵌入式系统设计方法的演化总的来说是因为应用需求的牵引和IT技术的推动,随着微电子技术的不断创新和发展....

  在单片机编程中,有很多人会因为一些貌似简单的处理而把问题弄得乱七八糟,如林中蛛网一样,错综复杂。

  本文档的主要内容详细介绍的是单片机解码机器人的PCB电路原理图免费下载。

  本文档的主要内容详细介绍的是具有看门狗的单片机电机控制的PCB原理图免费下载。

  5V来自于TTL电平。5为True,0为False,之后用了压降更低的PN节,衍生出了3.3这个电平....

  交换a、b的值在C语言的学习中是很常见的问题。最常用的方法就是引入一个中间变量当做中间介质来交换a、....

  自单片机诞生以来,由于其成本低,环境适应性强,可靠性高,结构灵活,易于生产,引起了人们的广泛关注。

  随着生活水平的提高,人们对资源的消费日益增长,资源消费的计量、管理和收费工作日益繁杂,提高管理层次和....

  在单片机编程中,有很多人会因为一些貌似简单的处理而把问题弄得乱七八糟,如林中蛛网一样,错综复杂。 而....

  《数字电路》,不学这个连推挽和开漏都分不清楚?基本的概念总要知道。 《C语言》,这个是废话,C语言研究的再深也不为过吧。...

  基于ATMEGA16单片机实现LCD128x64显示程序的资料合集免费下载

  本文档的主要内容详细介绍的是基于ATMEGA16的LCD128x64显示程序资料合集免费下载。 ....

  电路图一:整个电路通过单片机(AT89C51)控制,P0 口和 DAC0832 的数据口直接相连,D....

  本文主要研究基于 STM32 单片机的车牌识别系统,以 STM32F103RBT 单片机为主控芯片,....

  8051 单片机有4 个I/O 口,它们分别是P0、P1、P2、P3 ,复位后对应它们的内容为0FF....

  ·用于 FOC 的 PIC32MK MCJ 和 MCM单片机:第二代32位单片机提供32位浮点运算和....

  本文档的主要内容详细介绍的是AVR单片机控制OSD的PCB原理图免费下载。

  优点:相对执行速度快,大部分是单周期指令,需要的存储空间也相对小,大部分是一个存储空间 (我这里的一....

  此外,作为一款面向物联网的芯片,数据安全也是Microchip这款WiFi单片机模块需要考虑的重点问....

  语音芯片提供按键接口,单片机的输入输出端口可以控制语音芯片的按键接口进行录音、播放、擦除、前、后等操....

  所以说,单片机中没有了晶振,也就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作,程....

  从学习C语言开始就一直写个一个函数,那么你知道它的标准写法什么什么样吗? main函数,又称主函数,....

  全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域....

  作者:明哥 今天分享下一个朋友【明哥】的计算机学习经历,以及他分享的零基础该如何学习计算机、推荐一些....

  计算思维的本质是抽象和自动化。对于 C 语言程序来说,抽象就是使用程序、函数、函数调用以及数据类型、....

  RDA1846和RDA1846D对讲机用单片机收发器的数据手册免费下载

  RDA1846是用于对讲机应用的高度集成的单片收发器。它只需一个微控制器就可以实现接收通道中射频载波....

  单片机的片上资源有多种通信方式,常用的如IIC、SPI、UART/USART、CAN,甚至高端一点的....

  2019年8月底,华为方舟编译器(OpenArkCompiler)正式开源,迈出了跨越性的一步。一年....

  本文档的主要内容详细介绍的是FPGA 10K10单片机配置的PCB原理图免费下载。

  [导读] 相信ADC的应用或多或少都会用到,在很多场合都有分辨率要求,要实现较高分辨率时,第一时间会....

  国产替代成为独特的宣传标语。可以发现展会现场以及多家厂商展位上出现国产替代、国产MCU、打造国人自己....

  单片机一种集成电路芯片,广泛用于各大行业中,可能很多朋友都不知道单片机主要寄存器有哪些?现在福利来啦....