单片机串行接口的控制与应用

发布者:jingyun最新更新时间:2015-09-30 来源: eefocus关键字:单片机  串行接口  控制与应用 手机看文章 扫描二维码
随时随地手机看文章
 
  1. 概述

    21世纪是信息的社会,而信息的传递和交换,要有一定的途径和方法,你现在在网上就是在获取信息,对不对?如果你是使用电话拨号上网的话,就是在使用计算机的串行接口在通信的啦!!!

  2.  
  3. 串行接口的一般概念 计算机与外界进行信息交换称之为通讯。
    MCS-51单片机内部有一个全双工的串行接口,在物理结构上是由独立的接收和发送数据缓冲器(SBUF)组成,可同时发送、接收数据。

   8051单片机的通讯方式有两种:

    并行通讯:数据的各位同时发送或接收。

     串行通讯:数据一位一位顺序发送或接收。

串行通讯的方式:  在一帧格式中,包括:一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(可以省略),最后是停止位1。用这种格式表示字符后,则字符可以一个接一个地传送。

  1. 异步通讯:
    它是用一帧来表示一个字符。

从上可知CPU与外设之间必须有两项规定,即字符格式和波特率(传送的字符速度)。字符格式的规定是双方能够在对同一种0和1的字符串时能理解成同一种意义。原则上字符格式可以由通讯的双方自由制定,但从通用、方便的角度出发,一般还是使用一些标准为好,如采用ASCII标准。

波特率:即数据传送的速率,其定义是每秒钟传送的二进制数的位数。单位:位/秒,例如,数据传送的速率是120字符/s,即每秒传送120个字符,而每个字符如上述规定包含10数位,则传送波特率为10*120=1200波特。

 

  1. 通讯方向:在串行通讯中,把通讯接口只能发送或接收的单向传送方法叫单工传送;而把数据在甲乙两机之间的双向传递,称之为双工传送。在双工传送方式中又分为半双工传送和全双工传送。半双工传送是两机之间不能同时进行发送和接收,任一时该,只能发或者只能收信息。而全双工传送则发送和接收可同时进行。
  2. 同步通讯:在同步通讯中,每个字符要用起始位和停止位作为字符开始和结束的标志,占用了时间;所以在数据块传递时,为了提高速度,常去掉这些标志,采用同步传送。由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,故硬件较复杂。

    常用于计算机之间的通信。

  3. 2.8051单片机的串行接口结构

   8051串行接口是一个可编程的全双工串行通讯接口。它可用作异步通讯方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通讯协议进行全双工的8051多机系统也可以通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O口。

   8051单片机通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界通讯。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据,可对SBUF直接进行读/写。

  1.  

  2. 串行口的控制是由对专用的特殊功能寄存器进行设置来完成的。包括:SCON、PCON。

     

  1.  

  2. 串行口控制寄存器SCON

     

    它用于定义串行口的工作方式及实施接收和发送控制。字节地址为98H,其各位定义如下表:

    D7

    D6

    D5

    D4

    D3

    D2

    D1

    D0

    SM0

    SM1

    SM2

    REN

    TB8

    RB8

    TI

    RI

    SM0、SM1:串行口工作方式选择位,其定义如下:

    SM0、SM1

    工作方式

    功能描述

    波特率

    0 0

    方式0

    8位移位寄存器

    Fosc/12

    0 1

    方式1

    10位UART

    可变

    1 0

    方式2

    11位UART

    Fosc/64或fosc/32

    1 1

    方式3

    11位UART

    可变

    其中fosc为晶振频率

    SM2:多机通讯控制位。在方式0时,SM2一定要等于0。在方式1中,当(SM2)=1则只有接收到有效停止位时,RI才置1。在方式2或方式3当(SM2)=1且接收到的第九位数据RB8=0时,RI才置1。

    REN:接收允许控制位。由软件置位以允许接收,又由软件清0来禁止接收。

    TB8: 在方式2或方式3中,要发送的第9位数据位,根据需要由软件置1或清0。例如,可约定作为奇偶校验位,或在多机通讯中作为区别地址帧或数据帧的标志位。

    RB8:接收到的数据的第9位。在方式0中不使用RB8。在方式1中,若(SM2)=0,RB8为接收到的停止位。在方式2或方式3中,RB8为接收到的第9位数据。

    TI: 发送中断标志。在方式0中,第8位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。TI置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的方法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。TI必须用软件清0(如CLR TI)。

    RI: 接收中断标志位。在方式0,当接收完第8位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。RI置位表示一帧数据接收完毕,可用查询的方法获知或者用中断的方法获知。RI也必须用软件清0(如CLR RI)。

     

  3. 特殊功能寄存器PCON

     

PCON是为了在CHMOS的80C51单片机上实现电源控制而附加的。其中最高位是SMOD,为串行口波特率系数控制位,SMOD=1时,使波特率加倍,一般不用。

  1.  

  2. 串行口的工作方式

     

8051单片机的全双工串行口可编程为4种工作方式,现分述如下:

  1.  

  2. 方式0为移位寄存器输入/输出方式。可外接移位寄存器以扩展I/O口,也可以外接同步输入/输出设备。8位串行数据者是从RXD输入或输出,TXD用来输出同步脉冲。

     

  1.  

  2. 输出 串行数据从RXD引脚输出,TXD引脚输出移位脉冲。CPU将数据写入发送寄存器时,立即启动发送,将8位数据以fos/12的固定波特率从RXD输出,低位在前,高位在后。发送完一帧数据后,发送中断标志TI由硬件置位。

     

     

  3. 输入 当串行口以方式0接收时,先置位允许接收控制位REN。此时,RXD为串行数据输入端,TXD仍为同步脉冲移位输出端。当(RI)=0和(REN)=1同时满足时,开始接收。当接收到第8位数据时,将数据移入接收寄存器,并由硬件置位RI。

     

下面两图分别是方式0扩展输出和输入的接线图。

  1. 波特率选择
  2. 如前所述,在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。在8051串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。

     

  3. 方式0 方式0的波特率固定为主振频率的1/12。

     

  4. 方式2
  5. 方式2的波特率由PCON中的选择位SMOD来决定,可由下式表示:

波特率=2的SMOD次方除以64再乘一个fosc,也就是当SMOD=1时,波特率为1/32fosc,当SMOD=0时,波特率为1/64fosc

3.方式1和方式3

定时器T1作为波特率发生器,其公式如下:

波特率=[转载]单片机串行接口的控制与应用定时器T1溢出率

T1溢出率= T1计数率/产生溢出所需的周期数

 

式中T1计数率取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,T1计数率为fosc/12;当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于fosc/24。产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。

定时器T1工作于方式0:溢出所需周期数=8192-x

定时器T1工作于方式1:溢出所需周期数=65536-x

定时器T1工作于方式2:溢出所需周期数=256-x

因为方式2为自动重装入初值的8位定时器/计数器模式,所以用它来做波特率发生器最恰当。

当时钟频率选用11.0592MHZ时,取易获得标准的波特率,所以很多单片机系统选用这个看起来“怪”的晶振就是这个道理。

下表列出了定时器T1工作于方式2常用波特率及初值。

常用波特率

Fosc(MHZ)

SMOD

TH1初值

19200

11.0592

1

FDH

9600

11.0592

0

FDH

4800

11.0592

0

FAH

2400

11.0592

0

F4h

1200

11.0592

0

E8h

  方式3为波特率可变的11位UART方式。除波特率外,其余与方式2相同。
关键字:单片机  串行接口  控制与应用 引用地址:单片机串行接口的控制与应用

上一篇:单片机解析GPS数据算法
下一篇:Msp430Flash型单片机内部Flash存储器介绍

推荐阅读最新更新时间:2024-03-16 14:33

51单片机-定时器初始化新写法
1.书写优化 我们所写过的下面这些 TH0=0XB8; TL0=0X00; 或者 TH0=0X4C; TL0=0X00; 如果代码没有注释我们根本不知道这是要定时多长时间,所以为了增加程序的可读性,我们重新优化这两处的书写。 首先要明白在程序书写中,以前说过,赋值给寄存器的值可以书写成十六进制的数也可以是十进制的数。大家知道,TH0填充的是高8位,TL0是低8位,那么如果这个16位的变量的十进制值是258,二进制的值就是 0000000100000010 所以高八位的值为1 (258/256=1) 低八位的值为2 (258%256=2) “258/256=1”和“258%256=2”的意思以前已经讲解过了, 我
[单片机]
51<font color='red'>单片机</font>-定时器初始化新写法
兆易创新再推MCU新品GD32F130KxT6:全新封装,灵活超值
6月6日报道,今天国内知名芯片厂商兆易创新发布了MUC新品GD32F130KxT6。该芯片拥有全新封装,适用范围更广、性价比更高等特点。 据悉,此前GD32F130系列就屡获殊荣,本次为适应市场需求GD32F130KxT6以全新封装呈现,在LQFP32 7x7mm的封装内实现高效能和低成本的设计体验满足工业控制、家用电器、消费类产品的入门开发需要。 性能上,该芯片可在在48MHz时钟频率下,Cortex®-M3内核工作性能可达50DMIPS。具备内核访问闪存高速零等待,配备16KB到64KB的内置Flash,及4KB到8KB的SRAM。 接口方面,通信接口多达6个:包括2路高速USART、2路SPI、2路I2C;模拟外设1
[半导体设计/制造]
51单片机PC数据传输 温度 距离 监控系统设计
_ :功能概述: 通过串口PC和单片机通信,可以询问单片机测得的温度,可以询问声呐测距的测量距离,同时把测量温度显示在数码管上。 _ :PC部分 这里com.cpp和com.h是串口通信的函数封装,在主函数中: 刚开始调用封装好的串口通信函数,设置打开串口COM4,波特率设置为9600,超时设置: 1 if(openport( com4 )) 2 printf( open comport success\n ); 3 if(setupdcb(9600)) 4 printf( setupDCB success\n ); 5 if(setuptimeout(0,0,0,0,0)) //如果
[单片机]
51<font color='red'>单片机</font>PC数据传输 温度 距离 监控系统设计
赛普拉斯Traveo汽车用 MCU 系列集成 Altia 人机交互代码生成
电子网消息,赛普拉斯半导体公司 和 Altia 今日共同宣布为赛普拉斯 Traveo™ 汽车用微控制器 (MCU) 系列集成 Altia 人机交互代码生成器。本次合作为汽车制造商能够在仪表盘、平视显示器和 HVAC 显示器中实现丰富图形和先进功能相结合提供了低成本高效益的平台。Traveo 系列的 Altia 代码生成解决方案已被多家国际汽车制造商和顶级供应商采纳应用。 赛普拉斯 Traveo MCU 系列产品搭载具有Arm® Cortex®-R5 240-Mhz 内核的32-位 RISC 微控制器,以单芯片 MCU 解决方案实现高端图形功能。该系列微控制器配备高效的 2D/3D 图像引擎,集速度、防护安全、功能安全性能和高质
[半导体设计/制造]
基于AVR单片机PWM功能的低成本高精度数控恒流源
  随着电子技术的深入发展,各种智能仪器越来越多,涉及领域越来越广,而仪器对电源的要求也越来越高。现今,电源设备有朝着数字化方向发展的趋势。然而绝大多数数控电源设计是通过高位数的A/D和D/A芯片来实现的,这虽然能获得较高的精度,但也使得成本大为增加。本文介绍一种基于AVR单片机PWM功能的低成本高精度数控恒流源,能够精确实现0~2A恒流。 系统框图   图1为系统的总体框图。本系统通过小键盘和LCD实现人机交流,小键盘负责接收要实现的电流值,LCD 12864负责显示。AVR单片机根据输入的电流值产生对应的PWM波,经过滤波和功放电路后对压控恒流元件进行控制,产生电流,电流再经过采样电阻到达负载。同时,对采样电阻两端
[单片机]
基于AVR<font color='red'>单片机</font>PWM功能的低成本高精度数控恒流源
单片机系统运行参数的保存及有效性判别
1 引 言   在单片机构成的控制系统中,系统控制时需要使用和保存已经设置或优化的参数。如果将运行参数仅仅存储于单片机的RAM区中,则系统在掉电或重启时将会丢失这些重要参数,不能正常运行。为了解决上述问题,保证控制系统正常、可靠地运行,需要将这些运行参数保存在足够容量的电可擦除存储器(EEPROM)中。在写入或读出EEPROM中的数据时,为保证数据操作的正确性,则需要进行数据校验。在系统运行这些参数之前,为检查运行参数的取值是否在许可范围之内,则需要进行参数取值范围的检验。本文结合作者开发的电梯轿厢门机控制系统,来详细讨论参数保存和校验的设计及实现。 2 系统运行参数的存储   在单片机组成的控制系统中,系统设置的运行参数是系统正常
[单片机]
<font color='red'>单片机</font>系统运行参数的保存及有效性判别
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved