STC89C51 UART功能:寄存器解析与实例演示

STC89C51 UART功能:寄存器解析与实例演示

引言

本文将解析STC89C51 UART功能,包括各个寄存器的含义、使用方法、以及一段C语言的实例代码,演示如何通过UART在9600波特率下进行打印输出。

寄存器解析

在STC89C51中,UART功能主要涉及到以下几个寄存器:

  1. SCON - 串口控制寄存器

    Bit 7  6  5  4  3  2  1  0
        |  |  |  |  |  |  |  |
        |  |  |  |  |  |  |  └── SM0: 串口工作方式选择
        |  |  |  |  |  |  └──── SM1: 串口工作方式选择
        |  |  |  |  |  └────── SM2: 多机通信时,波特率可变
        |  |  |  |  └──────── REN: 串口接收使能
        |  |  |  └────────── TB8: 发送数据的第9位
        |  |  └──────────── RB8: 接收数据的第9位
        |  └─────────────── TI: 发送中断标志位
        └────────────────── RI: 接收中断标志位
    
  2. TMOD - 定时器/计数器模式寄存器

    Bit 7  6  5  4  3  2  1  0
        |  |  |  |  |  |  |  |
        |  |  |  |  |  |  |  └── GATE: 外部中断0和1的触发方式
        |  |  |  |  |  |  └────── C/T: 计数器/定时器选择
        |  |  |  |  |  └──────── M1: 工作方式1
        |  |  |  |  └────────── M0: 工作方式0
        |  |  |  └──────────── GATE: 外部中断1触发方式
        |  |  └────────────── C/T: 计数器/定时器选择
        |  └──────────────── M1: 工作方式1
        └────────────────── M0: 工作方式0
    
  3. TL1、TH1 - 定时器1低字节、高字节寄存器

    这两个寄存器用于存储定时器1的计数值。

  4. TCON - 定时器/计数器控制寄存器

    Bit 7  6  5  4  3  2  1  0
        |  |  |  |  |  |  |  |
        |  |  |  |  |  |  |  └── TF1: 定时器1溢出标志位
        |  |  |  |  |  |  └────── TR1: 定时器1运行控制
        |  |  |  |  |  └──────── TF0: 定时器0溢出标志位
        |  |  |  |  └────────── TR0: 定时器0运行控制
        |  |  |  └──────────── IE1: 外部中断1触发标志位
        |  |  └────────────── IE0: 外部中断0触发标志位
        |  └──────────────── IT1: 外部中断1触发方式
        └────────────────── IT0: 外部中断0触发方式
    

使用方法

初始化UART

首先,我们需要初始化UART的相关寄存器,设置波特率为9600,数据位8位,无校验位。

void initUART() {
   
    TMOD &=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值