zoukankan      html  css  js  c++  java
  • 关于串口工作方式

        单片机89C51的串行端口有4种工作方式,通过编程设计,可以使其工作在任一方式,以满足不同场合的需要。其中,

          方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;

          方式1主要用于双机之间或外设电路的通信;

          方式2、3除有方式1的功能外,还可用作多机通信,以构成多微机系统,方式2、3的区别在于波特率的不同。

     

        

        单片机的串行通信的波特率可以程控设定,在不同的工作方式下,由时钟振荡频率的分频值或由定时器T1的定时溢出时间确定。

    单片机的串行端口有2个控制寄存器,用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率以及中断标志TI和RI。单片机

    的串行端口有1个数据寄存器SBUF,该寄存器为发送和接收所共有,在一定条件下,向SBUF写入数据就启动了发送过程,读SBUF就启动了接收过程。 

        波特率如标准9600 不是每秒种可以传送9600个字节,而是指每秒可以传送9600 个二进位,而一个字节8 个二进位,如用串口模式1 来传输那么加上起始位和停止位,每个数据字节就要占用10 个二进位,9600 波特率用模式1 传输时,每秒传输的字节数是9600÷10=960 字节。

    如我们要得到9600 的波特率,晶振为11.0592M ,定时器1 为模式2,SMOD 设为1,看看那所要求的TH1 为何值。代入公式:

          溢出速率=计数速率/[12*(256-TH1初值)] 

          9600=(2÷32)×((11.0592M/12)/(256-TH1)) TH1=250 

     

      

  • 相关阅读:
    script 执行顺序
    webpack 引入外部资源 webpack-require-http runtime-import
    react dnd
    require.contex 自动话引入
    git rebase
    文档在线转化
    moment 多语言 包问题
    Python 修改在使用ddt时测试报告默认显示用例名称与预期不符
    Robot Framework:随机数
    Robot Framework:变量与运算
  • 原文地址:https://www.cnblogs.com/judes/p/5714540.html
Copyright © 2011-2022 走看看