精华内容
下载资源
问答
  • 51 串行口初始化

    2012-03-20 20:42:00
    串行口工作之前首先应对其进行初始化,主要是设置产生波特率的定时器1,、串行口控制和中断控制。具体步骤如下: 1.确定T1的工作方式(编程TMOD寄存器); 2.计算T1的初值,装载TH1,TL1; 3.启动T1(编程TCON中的...

      串行口工作之前首先应对其进行初始化,主要是设置产生波特率的定时器1,、串行口控制和中断控制。具体步骤如下:

    1.确定T1的工作方式(编程TMOD寄存器);

    2.计算T1的初值,装载TH1,TL1;

    3.启动T1(编程TCON中的TR1位);

    4.确定串行口控制(编程SCON寄存器);

    串行口在中断方式工作时,要进行中断设置(编程IE,IP寄存器)

    转载于:https://www.cnblogs.com/steararre/archive/2012/03/20/2408517.html

    展开全文
  • 学习串行口时,感觉挺复杂得 ,但是进入代码之后感觉还行,所以说还是得多练习实践。 2.80c51的串行口结构 2.1、内部结构介绍 AT89S51单片机串行口的内部结构如下图所示。它有两个物理上独立的接收、发送缓冲器...

    学习串行口时,感觉挺复杂得 ,但是进入代码之后感觉还行,所以说还是得多练习实践。

    2.80c51的串行口结构

    2.1、内部结构介绍

    AT89S51单片机串行口的内部结构如下图所示。它有两个物理上独立的接收、发送缓冲器SBUF(属于特殊功能寄存器),可同时发送、接收数据发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器共用一个特殊功能寄存器字节地址(99H)。

    TXD(P3.0)发送数据 Transmit(tx) Data 简写形式 

    RXD(P3.1)接受数据 Receive(rx) Data 简写形式 

    1. 串行口的控制寄存器共有两个:特殊功能寄存器SCON和PCON。下面介绍这两个特殊功能寄存器各位的功能。

    2.1.1、串行口控制寄存器SCON

    串行口控制寄存器SCON,字节地址98H,可位寻址,位地址为98H~9FH。SCON时一个特殊功能寄存器,用以设定串行口的工作方式,接收发送控制以设置状态标志,格式如下图所示。(不用的话 设置0,一般默认是0)

    下面介绍SCON中各位的功能。

    (1) SM0、SMl:串行口4种工作方式选择位。

    SM0、SM1两位的编码所对应的4种工作方式见下表。

    表 串行口的4种工作方式

    注:方式1最常用,以此为例!

    (2)SM2:多机通信控制位。

     

    因为多机通信是在方式2和方式3下进行的,因此SM2位主要用于方式2或方式3中。当串行口以方式2或方式3接收时,

    如果SM2=1,则只有当接收到的第9位数据(RB8)为1时,才使RI置l,产生中断请求,并将接收到的前8位数据送人SBUF;当接收到的第9位数据(RB8)为0时,则将接收到的前8位数据丢弃。

    而当SM2=0时,则不论第9位数据是l还是0,都将前8位数据送入SBUF中,并使RI置1,产生中断请求。(RB8不具有激活RI的功能)

    在方式1时,如果SM2=1,则只有收到有效的停止位时才会激活RI(接受控制器)。

    在方式0时,SM2必须为0。

    (3)REN:允许串行接收位

    由软件置1或清0。

    REN=1,允许串行口接收数据。

    REN=O,禁止串行口接收数据。

    (4)TB8:发送的第9位数据。

    方式2和方式3时,TB8是要发送的第9位数据,其值由软件置l或清O。在双机串行通信时,TB8一般作为奇偶校验位使用;在多机串行通信中用来表示主机发送的是地址帧还是数据帧,TB8=1为地址帧,TB8=0为数据帧

    在方式0和1中,该位未用(0)

    (5) RB8:接收的第9位数据。

    工作在方式2和方式3时,RB8存放接收到的第9位数据。在方式1,如果SM2=0,RB8是接收到的停止位。在方式0,不使用RB8。

    (6)TI:发送中断标志位

    串行口工作在方式0时,串行发送的第8位数据结束时TI由硬件置1,在其他工作方式中,串行口发送停止位的开始时置TI为1。TI=1,表示一帧数据发送结束。TI位的状态可供软件查询,也可申请中断。CPU响应中断后,在中断服务程序中向SBUF写入要发送的下一帧数据。TI必须由软件清0

    (7) RI:接收中断标志位

    串行口工作在方式0时,接收完第8位数据时,RI由硬件置1。在其他工作方式中,串行接收到停止位时,该位置l。RI=1,表示一帧数据接收完毕,并申请中断,要求CPU从接收SBUF取走数据。该位的状态也可供软件查询。RI必须由软件清0。

    SCON的所有位都可进行位操作清0或置1。

    2.1.2、特殊功能寄存器PCON

    特殊功能寄存器PCON字节地址为87H,不能位寻址。PCON的格式如下图所示。

    其中,仅仅是最高位SMOD与串行口有关。

    SMOD位:波特率选择位。

    当SMOD=1时,要比SMOD=O时的波特率加倍,所以也称SMOD位为波特率倍增位。

    2.2、80c51的串行口工作方式

    由SM0、SM1两位的编码决定有4种方式!

    2.2.1、方式1、

    只介绍方式1。

    传送一帧数据的格式如图所示,其中:

    TXD为发送端引脚,RXD为接收端引脚。一帧为10位,1位起始位、8位数据位(先低后高)、1位停止位。波特率由T1或T2的溢出率确定。

    在发送或接收到一帧数据后,硬件置TI=1或RI=1,向CPU申请中断;但必须用软件清除中断标志(置0),否则,下一帧数据无法发送或接收。

    (1)发送:

    CPU执行一条写SBUF指令,启动了串行口发送,同时将1写入输出移位寄存器的第9位。发送起始位后,在每个移位脉冲的作用下,输出移位寄存器右移一位,左边移入0,在数据最高位移到输出位时,原写入的第9位1的左边全是0,检测电路检测到这一条件后,使控制电路作最后一次移位,/SEND和DATA无效,发送停止位,一帧结束,置TI=1。

     

    (2)接收:

    REN=1后,允许接收。接收器以所选波特率的16倍速率采样RXD

    端电平,当检测到一个负跳变时,启动接收器,同时把1FFH写入输入移位寄存器(9位)。由于接、发双方时钟频率有少许误差,为此接收控制器把一位传送时间16等分采样RXD,以其中7、8、9三次采样中至少2次相同的值为接收值。接收位从移位寄存器右边进入,1左移出,当最左边是起始位0时,说明已接收8位数据,再作最后一次移位,接收停止位。将接收到的9位数据前8位装入SBUF,第九位进入RB8并置RI=1,向CPU请求中断

    2.2.2、波特率计算

    在串行通信中,收发双方对发送或接受数据的速率要有约定。通过软件可对单片机串行口编程为四种方式。

    方式0和2波特率固定,

    方式1和3波特率可变,由定时器的溢出率来决定。

    各种方式的波特率计算公式;

    1)方式0的波特率=fosc/12

    2)方式2的波特率=2^smod*fosc/64

    3)方式1、3的波特率=2^smod*fosc/32

    由T1或T2的溢出率和SMOD位确定

    定时器的溢出率由定时器中的TH1计数值决定。

    T1定时器溢出率= fosc /[12*(256-TH1)]

    在单片机中,最常用的晶振频率为12MHZ和11.0592MHZ,所以选择用的波特率也相对稳定,常用的波特率以及各参数的关系表

    1)用T1:

    波特率=2^smod*T1定时器的溢出率/32,T1为方式2(这个指的是计时器工作方式,自动重装8位)//T1定时器的溢出率由TH1

    T1定时器溢出率= fosc /[12*(256-TH1)]

    例:已知fosc=6MHz,SMOD=0,设置波特率为2400,求T1的计数初值TH1。

    波特率=1/((12/fosc)*(256-X))/32=fosc/12*32(256-X)

    (256-X)=fosc/2400/384=6M/2400/384;256-X~=6.5104

    TH1~=250=FAH 只能近似计算。

    若fosc=11.0592MHz, 则256-X=11.0592M/2400/384=4068/384=12 TH1=F4H;可精确算出,对其它常用的标准波特率也是能正确算出。所以这个晶振频率是最常用的。

    如果SMOD=1,则同样的X初值得出的波特率加倍。

    2)用T2:

    在52型单片机中,串口方式1、3的波特率发生器选择由TCLK、RCLK位

    确定是T1还是T2。若TCLK=1,则发送器波特率来自T2,否则来自T1。若RCLK=1,则接收器波特率来自T2,否则来自T1。

    由T2产生的波特率与SMOD无关。T2定时的最小单元=2/fosc。T2的溢出脉冲16分频后作为串口的发送或接收脉冲。

    波特率=(1/((2/fosc)(65536-X)))/16=fosc/(32(65536-X))

    例:已知fosc=11.0592MHz,求波特率=2400时的X

    2400=11059200/(32(65536-X)) 65536-X=144 X=65392=FF70H

    2.2.3、串口使用之前的初始化

    主要设置产生波特率的定时器1串行口控制中断控制。具体步骤如下:

    1、确定T1的工作方式(编程TMOD的寄存器)

    2、计算T1 的初值,装TH1.TL1

    3、启动T1(编程中TCON中的TR1位)

    4、确定串行口控制(编程SCON寄存器,这个寄存器可以位寻址即:0x??,也可以直接操作如:SM1=?,SM0=?

    5、串行口在中断方式工作时,要进行中断设置编程IE.IP寄存器

    展开全文
  • 单片机—串行口

    2020-12-28 10:58:35
    目录前言一、串行口结构与相关寄存器1、串行口结构2、相关SFR二、串行口的工作方式三、串行口初始化 前言 串行口知识简单整理 一、串行口结构与相关寄存器 1、串行口结构 (1)8051系列单片机片上有UART(通用...


    前言

    串行口知识简单整理


    一、串行口结构与相关寄存器

    1、串行口结构

    在这里插入图片描述

    (1)8051系列单片机片上有UART(通用异步收发器)用于串行通信,发送时数据由TXD端发出,接收时数据由RXD端输入。
    (2)有两个缓冲器SBUF,一个作为发送缓冲器,一个作为接收缓冲器
    (3)USART是可编程的全双工串行口。

    2、相关SFR

    (1)串行口控制寄存器SCON
    在这里插入图片描述
    1)TI,发送中断标志位。在方式0时,当串行发送第8位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使TI置1,向CPU发中断申请。在中断服务程序中,必须用软件将其清0,取消此中断申请。
    2)RI,接收中断标志位。在方式0时,当串行接收第8位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使RI置1,向CPU发中断申请。也必须在中断服务程序中,用软件将其清0,取消此中断申请。
    3)工作方式控制位SM0、SM1
    在这里插入图片描述

    (2)电源控制寄存器PCON
    在这里插入图片描述
    SMOD:串行口波特率加倍位。
    1) 方式1,3波特率=定时器1溢出率/16;
    方式2波特率=fosc/32。
    2)方式1,3波特率=定时器1溢出率/32;
    方式2波特率=fosc/64。

    二、串行口的工作方式

    1、方式1—10位异步通信方式
    (1)10位=1位起始位(0)+8位数据位+1位停止位(1),其中起始位和停止位在发送时是自动插入的。
    (2)前提:SCON中的REN=1
    (3)任何一条以SBUF为目的的寄存器指令都启动一次发送,发送的条件是T1=0,发送完置T1=1
    (4)波特率可变:2^SMOD*(定时器1的溢出率)/32,溢出率为定时时间的倒数
    (5)满足下列两个条件,本次接收有效,将其装入SBUF和RB8位
    1)RI=0
    2)SM2=0或者接收到的停止位为1
    2、方式0—移位寄存器输入/输出方式
    (1)收发数据8位
    (2)波特率固定为fosc/12
    (3)接收条件:REN=1和RI=0,接收的数据装入SBUF中,结束后RI被置位
    3、方式2和方式3—11位异步接收/发送方式
    (1)条件与上述一致
    (2)方式2波特率=2^SMOD*(fosc/64)
    (3)方式3同方式1(定时器1作为波特率发生器)

    三、串行口的初始化

    1、串行口波特率
    使用单片机串口时,选用的晶振比较固定6MHz,12MHz,11.0592MHz。常用于和计算机的通信;选用的波特率也相对固定。
    2、初始化步骤
    (1)确定定时器1的工作方式,编程TMOD寄存器;
    (2)计算定时器1的初值,装载TH1和TL1;
    (3)启动定时器1,编程TCON中的TR1位;
    (4)确定串行口的控制,编程SCON和PCON;
    (5)开CPU和串行口中断,编程IE中的EA和ES位。

    展开全文
  • VB 提供了MSComm 串行端口控件来为应用程序提供串行通讯,该控件屏蔽了通信过程中的底层操作,程序员应用时只需设置、监视 MSComm 控件的属性和事件即可完成对串行口初始化和数据的输入输出工作,...

    本次毕业设计主要研究基于串行通信的分布式测控系统中PC机与单片机之间串行通信的上位机部分, PC 机通信程序利用VB 提供的MSComm 串行通信控件来完成, 单片机的程序用C语言来编写。VB 提供了MSComm 串行端口控件来为应用程序提供串行通讯,该控件屏蔽了通信过程中的底层操作,程序员应用时只需设置、监视 MSComm 控件的属性和事件即可完成对串行口的初始化和数据的输入输出工作,利用MSComm控件及硬件设施进行串口通信, 可以很好地实现PC 机与单片机之间的实时数据传送。本文主要论述了如何实现这种串行通信,通信协议的制订以及上位机相关界面和程序的设计。

    关键词:串行通信 PC机 单片机 VB

    Abstract

    The article is mainly about study the PC part in serial communication between PC and SCM ,which is a core of distributed measurement and control system which bases on the serial communication Distributed, PC-communication procedures use MsComm provided by VB to complete serial communication, while single-chip microcomputers use C language to write. VB provides a serial port control procedures called Mscomm for the using of serial communication, the control of the communication process shielding the bottom of operation, application programmers can complete initialization of the serial port and the input and output of data owing to set up and monitor Mscomm control attributes and events. real-time data transfer between PC and single-chip microcomputer can be acheieved by the serial communication making use of mscomm and the procedures and hardware facilities. This paper discusses how to achieve this serial communication, and complete the communication protocol and the procedures and interface related to the design in the VB.

    Key words: Serial Communication PC SCM VB

    目 录

    摘要………………………………………………………………………………………………………I

    Abstract……………………………………………………………………………………………… II

    1 绪论…………………………………………………………………………………………………1

    1.1 前言………………………………………………………………………. ……………………1

    1.2本文的内容和结构………………………………………………………. …………………….2

    2 串行通信的种类及比较…………………………………………………………………………3

    2.1 串行通信的种类………………………………………………………………………………3

    2.1.1 RS-232通信……………………………………………………………………………5

    2.1.2 RS-485通信……………………………. ……………………………………………..6

    2.1.3 USB通信……………………………. ………………………………………………...7

    3 系统架构和上位机控件…………………………………………………………………………8

    3.1 系统构架和RS-232设置……………………………………………………………………..8

    3.1.1 RS-232的电气特性和字符传送……………………………………………………..9

    3.1.2 RS-232的脚位定义和功能…………………………………………………………11

    3.1.3 通信的工作模式…………………………………………………………………….12

    3.1.4 速度及流量控制…………………………………………………………………….13

    3.1.5 通信端口的初始化………………………………………………………………….15

    3.2 上位机控制软件VB和MSComm控件……………………………………………………16

    3.2.1 上位机VB软件简要介绍……………………………………………………………16

    3.2.2 MSComm 控件的主要属性及事件………………………………………………..18

    3.2.3 用MSComm控件进行串口通信一般步骤…………………………………………19

    4 通信原理与程序设计 …………………………………………………………………………21

    4.1 PC机和单片机串行通信的简要介绍……………………………………………………….21

    4.2 通信原理的分析………………………………………………………………. ……………22

    4.2.1 MSComm控件通信方式的选择……………………………………………………….22

    4.2.2 PC机串行口中断通信管理程序框图………………………………………………23

    4.3 通信协议和波特率的的设定……………………………………………………………….25

    4.3.1 通信协议…………………. ………………………………………………………..26

    4.3.2 波特率的设定……………………………………………………………………….27

    5 总结………………………………………………………………………………………………28

    致谢……………………………………………………………………………………………………29

    163a30b6f7c715a89efd048180337e02.png

    展开全文
  • 串行口通信(一)

    2021-01-06 13:59:07
    串行口通信就被发明出来,下面来了解串行口通信(uart)。 几个概念 为了能更好理解串行口通信,在介绍它之前,先来看看几个概念,补充知识,方便深入明白uart工作原理。 通信方式 通信方式 通信方式有两种,...
  • uart串行口通信(一)

    千次阅读 2019-02-21 11:06:11
    串行口通信就被发明出来,下面来了解串行口通信(uart)。 几个概念 为了能更好理解串行口通信,在介绍它之前,先来看看几个概念,补充知识,方便深入明白uart工作原理。 通信方式 通信方式有两...
  • 串行口扩展并行输出口 一、实验目的 二、实验内容 三、实验步骤 四、C代码如下 五、实验结果 六、实验体会 一、实验目的 掌握AT89C52串行口方式0的工作方式和编程 掌握利用串行口和移位寄存器扩展并行...
  • 串行口 一 串口基础知识 串口概念 串行接口(Serial port)"同步/异步串行接收/发送器。"又称“串口”USART,也称串行通信接口(通常指COM接口),是采用串行通信方式的扩展接口。 2、USART的用处 基于ARM ...
  • 微机接口技术实验三测试微机系统串行口
  • 目录 1.背景 2.调试环境 2.1 软件: 2.2 硬件: 3.面临的问题 ...3.1如何实现交换机上电后自动初始化系统和端口?...4.2 实现光口初始化和部分光口极性翻转 5.参考: 1.背景  98DX3236为Marvell的AlleyCat...
  • 在Linux串口编程中,串口的驱动一般是不用我们自己去写的,对应的硬件原厂或者原生态Linux内核已经带有串口驱动了,我们直接用就可以,既然是用,抓住两个重点就行:如何初始化串口、如何读写。 1 串口编程的流程 ...
  • 串口初始化

    2020-02-17 13:34:19
    串口初始化: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <malloc.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> ...
  • 串行通信有单工通信、半双工通信和全双工通信3种方式。 单工通信:数据只能单方向地从一端向另一端传送。例如,目前的有线电视节目,只能单方向传送。 半双工通信:数据可以双向传送,但任一时刻只能向一个方向...
  • 随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能愈来愈显得重要。计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。通信有并行通信和串行通信两种方式。...一 串行...
  • STM32串口初始化

    千次阅读 2018-08-19 16:53:19
    串口初始化的一般步骤: 1.GPIO时钟使能RCC_AHB 2.USART时钟使能RCC_APB 3.USART端口配置(调用GPIO_Init) 4.USART对应引脚复用映射GPIO_PinAFConfig 以PA9、PA10复用USART1为例,具体过程见代码: //关于...
  • 实验名称: 测试微机系统串行口(实验教程P109 实验6.10,可参考课本341页例9.3) 实验环境:PC系列机,汇编语言开发工具TASM5.0或 未来汇编 实验目的: 学习汇编语言程序设计的方法;掌握8250异步串行接口芯片的...
  •        声明:本篇文章只是个人知识盲区、...一、并行与串行基本通信方式:       随着单片机系统的广泛应用和计算机网络技术的普及,单片机...
  • Stm32 iic初始化介绍

    千次阅读 2018-05-27 12:40:22
    2018/5/271.iic介绍:iic (Inter_Integrated Circuit)集成...:iic的初始化按照对GPIO的设置来配置iic相关的端口(这里以Stm32F103rc为例)注:可以使用定义的方法先定义相应端口//IO方向设置 #define SDA_IN() {G...
  • 并行与串行基本通信方式 1.并行通信方式  通常是将数据字节的各位用多条数据线同时进行传送。  并行通信控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。 2....
  • 怎样控制一个串行口和调制解调器

    千次阅读 2006-09-17 09:20:00
    3.6. 怎样控制一个串行口和调制解调器?Unix系统下对于串行口的控制很大程度上受串行终端传统的使用影响。以往, 需要不同ioctls函数调用的组合和其它黑客行为才能控制一个串行设备的正确操 作,不过值得庆幸
  • linux系统初始化过程全解

    千次阅读 2017-02-27 17:19:59
     系统的引导和初始化是操作系统实现控制的第一步,也是集中体现系统优劣的重要部分。Linux作为一个免费的准UNIX操作系统,在众多业余爱好者以及小型商业处理市场表现不俗,成为继WINDOWS系列后的另一个主流。了解...
  • STM32串口初始化与使用详解串口简介串口初始化具体步骤串口收发理论代码执行 串口简介 USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步串行接收发送器 即串口。是一个高度灵活的收发...
  • 串口初始化及读写

    2019-10-12 09:27:05
    kernel-4.4\drivers\misc\mediatek\uart\uart.c module_init(mtk_uart_init); module_exit(mtk_uart_exit); ...mtk_uart_init [UART0] mtk_uart_probe err = clk_prepare(uart_setting->clk_uart_main...
  • 51单片机串口通信初始化

    千次阅读 2020-10-23 20:15:35
    主机的P3,1(TXD)连接到从机的P3,0(RXD),利用开关对主机的P1赋值,将P1的数据存到主机SBUF,在通过串口传动到从机的SBUF,从机将接收到的数据从机的P1体现。 说明:主机和从机代码分开。 //主机程序 (汇编) ...
  • 关于初始化W5500与LPC1768之间的通信

    千次阅读 2016-07-13 21:27:22
    初始化W5500的相关引脚,在这里要注意看原理图,看看W5500和主控制芯片是怎么连接的。  2.W5500 与外设主机的通讯受 SPI 数据帧控制,W5500 的帧分为 3 段:地址段,控制段,数据段。所以要对SPI进行相应的初始化...
  • (arm wince) ep93xx启动初始化

    千次阅读 2007-05-29 19:02:00
    EP9301的BootROM(1)2.1 BootROM概述 为方便用户调试和进行系统开发,EP93XX的ARM微处理器内部都设计了ROM,存放了...由于受ROM容量的限制,这部分程序一般都比较小,仅能完成一些基本的功能,如初始化一个串行口
  • 俩个PC机通过串行口互联,实现件的无差错传输。程序必须用中断方式来完成任务
  • 51单片机串口初始化

    千次阅读 2012-04-10 10:13:00
    2019独角兽企业重金招聘Python工程师标准>>> ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,874
精华内容 2,349
关键字:

串行口初始化的步骤