当前位置: 首页 > 新闻中心
返回
列表

学习笔记之-51单片机串口通信

发表时间: 2024-01-30 作者: 新闻中心

  8051系列单片机有通用异步收发器(UART,universal Asynchronous Receiver/Transimitter)用于串口通信,发送时数据由TXD引脚引出,接收时数据从RXD引脚输入,有两个缓存器(Serial Buffer),一个作为发送缓存器,另一个作为接收缓存器。它们占用同一地址99H 。UART是可编程的全双工的串行口,短距离的机间通信能够正常的使用UART的TTL电平,使用驱动芯片(MAX232)可以与通用微机进行通信。更多通信的知识可以看我的串口通信。

  51单片机串口通信,重点就SCON,PCON,SBUF三个寄存器,其中SBUE是数据缓存器,下面重点介绍剩下的SCON和PCON寄存器。

  在方式2或3时(多用于这两者模式),若SM2=1;只有接收到第9位(RB8)为1,RI才置位。

  ●TB8,只用在在方式2或方式3中,是发送数据的第九位,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位。

  ●RB8,在方式2或方式3中,是接收到数据的第九位,作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,若SM2=0,则RB8是接收到的停止位。

  串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。

  串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。

  当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且TCON的TR1=1,以启动定时器)。这时溢出率取决于TH1中的计数值。

  串口工作为方式0时,串行口为同步移位寄存器的输入输出方式。大多数都用在扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。

  方式0的接收是在REN=1并且RI接收完成标志位为0时开始的,当接收的数据装到SBUF中时,RI会置位。

  方式0为移位寄存器输入输出方式,一般接上移位寄存器74LS164可以构成8位输出电路.

  方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图所示。其中1位起始位,8位数据位,1位停止位。

  方式1的输出起始于任何一条SBUF数据装载指令,发送的条件是TI要为0,数据发送完毕TI为1,这时要想再一次发送数据,那么必须手动将TI置0

  方式1的接收条件是REN要置1,RI要为0,两个条件同时成立 了,本次接收说明有效,单片机自动将数据装入SBUF和RB8位,RI置1,向CPU请求中断。不满足则放弃当前接收的数据。下面是详细的接收过程:

  当置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。移位寄存器将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。

  方式2和方式3都是11位异步收发通信口。起始位1位,数据9位(含1位附加的第9位,发送时为SCON中的TB8,接收时为RB8),停止位1位,一帧数据为11位。他们的操作完全一样,不同的只是波特率的设置。方式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器T1的溢出率决定。

  方式2和3的输出起始于任何一条SBUF数据装载指令,当第9位数据(TB8)输出之后,TI会被置1,并向CPU请求中断。

  方式2和3的输入也要求REN被置1,当第9位接收到之后,如果RI=0并且SM2=0(或者SM2=1,接收到的第9位数据为1),则将接收的数据装入SBUF和RB8,并将RI置位,向CPU请求中断。否则接收到的数据无效被舍弃

  sbit s2=P3^4; //定义按键 按下会发送保存在Test的内容,发送完毕后并清除Test中的内容

  1. 时钟模块包括高速晶体振荡器、低俗晶体振荡器、数字控制振荡器DCO、锁频环FLL以及锁频环增强版本FLL+等部件构成。 2. 时钟模块产生3个输出结果:ACLK(辅助时钟),MCLK(主系统时钟)和SMCLK(子系统时钟)。 3. MSP430采用锁频环FLL以及锁频环增强版本FLL+等部件将晶体频率倍频至系统频率。数字控制振荡器DCO和锁频环FLL计数相结合可实现快速启动。在晶体振荡器失效时DCO可自动用于系统时钟。 4. 3个时钟输入源: a) LFXT1CLK:低频时钟源 b) XT2CLK:高频时钟源 c) DCOCLK:数字控制RC振荡器 5. 3种时钟信号 a)

  (3)时钟模块 /

  MCS—51系列单片机内部只有两个外部中断源输入端,当外部中断源多于两个时,就一定要进行扩展,下面介绍两种简单的扩展方法: 一、采用硬件请求和软件查询的方法: 这种方法是:把各个中断源通过硬件“或非(高有效,如CD4002)”(与,低有效)门引入到单片机外部中断源输入 端(INT0或INT1),同时再把外部中断源送到单片机的某个输入输出端口,这 样当外部中断时,通过“或非”(与)门引起单片机中断,在中断服务程序中再通 过软件查询,进而转相应的中断服务程序。显然,这种方法的中断优先级取决于 软件查询的次序。其硬件连接和软件编程如下: Void zhongduan (void) interrupt 0

  的扩展中断方法 /

  可编程控制器PC(Programmable Controller),为与个人计算机PC(Personal Computer)相区别,可简称为PLC。它是按照成熟而有效的继电控制概念和设计思想,用先进的单片机技术来实现I/O的实时检测和控制,可靠性高,编程简单、易学,因此,得到普遍应用。 将PLC技术引进电工学、电力拖动课程,是课程建设现代化的重要措施。在教学经费相对紧张的情况下,我们自己动手,以AT89C51单片机为核心,设计并研制了LD型微型PLC,应用于继电控制实验,取得了良好的效果。 用单片机构成的PLC,实际上就是一个单片机测控系统。用这样一个程序控制的计算机系统去执行继电控制的梯形图程序,由于继电控制梯形图

  的微型可编程控制器 /

  摘要:介绍无线数据传输系统的组成、AT89C51单片机串行口的工作方式及其与无线数字电台接口的软硬件设计与实现方法。 关键词:AT89C51 串行口 无线数字电台 串行通信 一般的数字采集系统,是通过传感器将捕捉的现场信号转换为电信号,经模/数转换器ADC采样、量化、编码后,为成数字信号,存入数据存储器,或送给微处理器,或通过无线方式将数据发送给接收端做处理。无线数据传输系统就是 样一套利用无线手段,将采集的数据由测量站发送到主控站的设备。 1 系统组成 系统组成如图1、图2所示。 系统由测量站和主控站两部分所组成。测量站主要完成对现场信号的采集、存储,接收遥控指令并发送数据。主控站的主要工作是发送遥控指令、

  NI 公司于20 世纪70 年代提出了虚拟仪器的概念。虚拟仪器是在以计算机为核心的平台上,由用户设计,具有虚拟面板,由软件实现测试功能的计算机仪器系统,是计算机与测试仪器相结合的产物。虚拟仪器最常用的编程语言为LabVIEW,是NI公司的基于图形化编程语言的虚拟仪器开发工具,利用它可以轻松组建一个检测系统而无需进行繁琐的代码编写。因此虚拟仪器大大突破了传统仪器在灵活性,以及数据处理、显示、存储等方面的不足,其主要优点是:用户能根据需求灵活的进行功能修改和扩展;人机界面为视窗界面,形象直观;网络连接简单易行,便于组建测控网络。 目前虚拟仪器在通信、汽车、测控等行业得到了广泛的应用。相应的各大高校也在NI公司的支持下,

  的低成本LabVIEW实验教学系统设计 /

  前面我们学会了如何操作一个MCU的管脚(P1.0),让它设置为低电平(sbit LED= P1^0; LED=0),那么我们很容易的就能想到如何将MCU的管脚设置成高电平. 这一讲,我们就来讨论怎么来控制单片机的IO口,也就是输入输出端口(input and output port) 2.1单片机IO口操作与延时 既然我们学会了怎么来控制P1.0,那么同样的方式我们就能控制P1.1,P1.2, ... P1.7了。很奇怪,为什么单片机的引脚从P1.0开始到P1.7,为什么不是从P1.1到P1.8?基本上你所见到的控制芯片都是以0为起始的。我们把P1.0到P1.7叫做P1端口。那么这样的端口有多少个呢,在STC89C52中,一共有4组这

  一、盒仔机器人 BOXZ,昵称盒仔,是一款开源的互动娱乐平台!,有很多盒仔的制作教程,基本都是用arduino制作完成的。假期没事,带着宝宝们用51制作了一个廉价的BOXZ。先上张图: 从图上显而易见,为了宝宝们易于接受,我把盒仔的手机摇控改成了用线控的方法,做了一个简易的摇控器。 二、材料准备 名称 型号及参数 数量 备注 5V稳压模块 LM7805 1 充电电池 12V 1 电容 22pf 2 按钮 4 自锁按钮 1 51单片机 stc12c2052ad 1 晶振 11.0592Mhz 1 电机驱动 L298N模块 1 降压模块 可调,

  制作廉价盒仔机器人 /

  串行口是单片机与外界进行信息交换的工具,8051单片机的通信方式有两种: 并行通信:数据的各位同时发送或接收。 串行通信:数据一位一位次序发送或接收。 串行通信的方式 异步通信 用一个起始位0表示字符的开始,用停止位1表示字符的结束,中间夹着8个数据位,字符能一个接一个传送 CPU与外设之间必须有字符格式和波特率两项规定 字符格式规定能使双方把0和1串理解成同一种意义,原则上自由制定,通用角度使用标准如ASCII 波特率即数据传输速率,每秒传送的二进制位数,如120字符/s,每个字符10数位,则传送波特率为1200波特 同步通信 去掉了开始结束标志提高速度,但由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端

  的通信方式 /

  上机训练实战指南 (胡凡,曾磊主编)

  电源小课堂 从12V电池及供电网络优化的角度分析电动汽车E/E架构的趋势

  有奖直播 是德科技 InfiniiMax4.0系列高带宽示波器探头新品发布

  MPS电机研究院 让电机更听话的秘密! 第一站:电机应用知识大考!跟帖赢好礼~

  【下载】LAT1362 利用STM32 TIMER触发ADC实现分组转换

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

  【下载】LAT1347 基于STM32CubeIDE移植ClassB 4.0

  【下载】LAT1340 STM32H5读取温度传感器校准值时进HardFault的原因分析

  【生态】使用STM32CubeMX在STM32U5上配置LPBAM应用程序

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

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

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

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

  【新品】降本增效这事儿,就看STM32C0,低至0.24美元” ,开机即可物联世界

  【GUI开发】TouchGFX 4.23:支持矢量字体,节省Flash,更丰富的UI!

  【边缘AI】突破边缘AI应用的次元壁:首届意法半导体边缘人工智能峰会举行

  【生态系统】STM32CubeProgrammer和STM32CubeIDE协同调试的方法

  【无线携手创新微MinewSemi共创低功耗模块,引领中国智能连接未来

  因为公司有一部分设备生产年代久远,用的PLC非常古老的,有一款东芝EX20 40的用的单片机是P8051AH,其CPU板的图片如下。因此想尽可能的 ...

  本文设计了一种基于无线单片机的无线射频收发系统。该系统由发送模块和接收模块组成。发送模块主要将要发送的数 ...

  1 引言在如今的快速嵌入式系统模块设计中,目前比较流行的方案是在FPGA内集成应用软件或是软IP平台,以简化工序、加速产品面市日程。为此,很 ...

  W78E516D为6T 12T 8051单片机系列,其特点为管脚兼容于传统12T 8051。W78E516D提供工业温度规格、宽电压工作范围 2 4V至5 5V,支持在线 ...

  目前市场上USB设备的种类非常之多,但是这些设备会有一些共同的特性,依据这一些特性可以把USB设备划分为不同的类,如显示设备、通信设施、音 ...

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