STC单片机内部常见寄存器及其作用

STC单片机内部常见寄存器及其作用

STC单片机是基于8051架构的增强型单片机,广泛应用于嵌入式系统中。其内部有多个特殊功能寄存器(SFR, Special Function Register),用于控制硬件模块(如定时器、串口、中断等)。以下是STC单片机中常见的寄存器及其作用的详细介绍。


1. 端口寄存器

P0, P1, P2, P3
  • 作用:控制I/O端口的状态。

  • 地址:

    • P0:0x80
    • P1:0x90
    • P2:0xA0
    • P3:0xB0
  • 示例:

    c 复制代码
    P1 = 0xFF; // 将P1端口的所有引脚置高电平

2. 定时器寄存器

TMOD(Timer Mode Register)
  • 作用:设置定时器0和定时器1的工作模式。

  • 地址 :0x89

  • 参数:

    • 低4位用于定时器0,高4位用于定时器1。
    • 模式:
      • 0x00:模式0(13位定时器)。
      • 0x01:模式1(16位定时器)。
      • 0x02:模式2(8位自动重装定时器)。
      • 0x03:模式3(定时器0分为两个8位定时器)。
  • 示例:

    c 复制代码
    TMOD = 0x01; // 定时器0,模式1
TH0, TL0(Timer 0 High/Low Byte)
  • 作用:存储定时器0的计数值。

  • 地址:

    • TH0:0x8C
    • TL0:0x8A
  • 示例:

    c 复制代码
    TH0 = 0xFC; // 定时初值高字节
    TL0 = 0x18; // 定时初值低字节
TH1, TL1(Timer 1 High/Low Byte)
  • 作用:存储定时器1的计数值。

  • 地址:

    • TH1:0x8D
    • TL1:0x8B
  • 示例:

    c 复制代码
    TH1 = 0xFE; // 定时初值高字节
    TL1 = 0x0C; // 定时初值低字节
TCON(Timer Control Register)
  • 作用:控制定时器的启动、停止和中断标志。

  • 地址 :0x88

  • 参数:

    • TR0:定时器0运行控制位(第4位)。
    • TR1:定时器1运行控制位(第6位)。
    • TF0:定时器0溢出标志位(第5位)。
    • TF1:定时器1溢出标志位(第7位)。
  • 示例:

    c 复制代码
    TR0 = 1; // 启动定时器0

3. 中断寄存器

IE(Interrupt Enable Register)
  • 作用:使能或禁用中断。

  • 地址 :0xA8

  • 参数:

    • EA:总中断使能位(第7位)。
    • ET0:定时器0中断使能位(第1位)。
    • ET1:定时器1中断使能位(第3位)。
    • EX0:外部中断0使能位(第0位)。
    • EX1:外部中断1使能位(第2位)。
  • 示例:

    c 复制代码
    EA = 1;  // 使能总中断
    ET0 = 1; // 使能定时器0中断
IP(Interrupt Priority Register)
  • 作用:设置中断优先级。

  • 地址 :0xB8

  • 参数:

    • PT0:定时器0中断优先级(第1位)。
    • PT1:定时器1中断优先级(第3位)。
    • PX0:外部中断0优先级(第0位)。
    • PX1:外部中断1优先级(第2位)。
  • 示例:

    c 复制代码
    PT0 = 1; // 设置定时器0中断为高优先级

4. 串口寄存器

SCON(Serial Control Register)
  • 作用:控制串口的工作模式。

  • 地址 :0x98

  • 参数:

    • SM0, SM1:串口模式选择位(第6、7位)。
      • 00:模式0(同步移位寄存器)。
      • 01:模式1(8位UART,波特率可变)。
      • 10:模式2(9位UART,波特率固定)。
      • 11:模式3(9位UART,波特率可变)。
    • REN:接收使能位(第4位)。
    • TI:发送中断标志位(第1位)。
    • RI:接收中断标志位(第0位)。
  • 示例:

    c 复制代码
    SCON = 0x50; // 串口模式1,接收使能
SBUF(Serial Buffer Register)
  • 作用:存储串口发送或接收的数据。

  • 地址 :0x99

  • 示例:

    c 复制代码
    SBUF = 'A'; // 发送字符'A'

5. 电源控制寄存器

PCON(Power Control Register)
  • 作用:控制单片机的电源模式。

  • 地址 :0x87

  • 参数:

    • SMOD:波特率加倍位(第7位)。
    • PD:掉电模式位(第1位)。
    • IDL:空闲模式位(第0位)。
  • 示例:

    c 复制代码
    PCON |= 0x01; // 进入空闲模式

6. 总结

寄存器 作用 地址 常用参数
P0 控制P0端口 0x80 P0 = 0xFF;
TMOD 设置定时器模式 0x89 TMOD = 0x01;
TH0 定时器0高字节 0x8C TH0 = 0xFC;
TL0 定时器0低字节 0x8A TL0 = 0x18;
TCON 控制定时器运行 0x88 TR0 = 1;
IE 使能中断 0xA8 EA = 1; ET0 = 1;
SCON 控制串口模式 0x98 SCON = 0x50;
SBUF 存储串口数据 0x99 SBUF = 'A';
PCON 控制电源模式 0x87 `PCON

这些寄存器是STC单片机编程的基础,掌握它们的用法可以更好地控制硬件模块。

相关推荐
2501_9226395818 小时前
率能半导体 SS6285L直流双向马达驱动芯片:18V/5A,覆盖电子锁、按摩仪、电动玩具、机器人四大应用场景
单片机·嵌入式硬件·硬件工程
专一的咸鱼哥18 小时前
预训练 ONNX 模型转换为 .eim
嵌入式硬件·机器人
SuperByteMaster18 小时前
三极管 做开关电路 要尽快跳过放大区
嵌入式硬件
铅笔小新z18 小时前
【stm32】输入捕获-超声波测距
stm32·单片机·嵌入式硬件
菩提树下的凡夫19 小时前
机器视觉LED光源控制器
单片机·嵌入式硬件
铅笔小新z19 小时前
【stm32】全彩led灯(PWM)
stm32·单片机·嵌入式硬件
小鸡脚来咯19 小时前
【无标题】
单片机·嵌入式硬件
澄纸气19 小时前
STM32 外部中断实战:对射式计数器和编码器计数器,两个实验跑通 EXTI
stm32·单片机·嵌入式硬件
2501_9226395820 小时前
率能半导体 SS6286L直流双向马达驱动芯片:18V/7A,覆盖电子锁、玩具、无线充电、机器人四大应用场景
stm32·单片机·嵌入式硬件·硬件工程
搁浅小泽20 小时前
IGBT 与散热片间未加绝缘垫片导致桥臂直通原理分析
单片机·嵌入式硬件·设计规范