《单片机应用技术》———<reg52.h>头文件介绍
《单片机应用技术》———<reg52.h>头文件介绍

《单片机应用技术》———<reg52.h>头文件介绍

我们第一次编写51单片机的程序代码时候,往往第一句永远是“#include <reg52.h>”。

对于一些中职学生来讲,有些没有接触过C语言的学习,那么这篇文章就是讲一下reg52.h文件里的内容

点击<reg52.h>,右键选择Open document<reg52.h>

这样就进入到我们的头文件的里了

1、文件说明

这部分是文件头部注释,说明该头文件是为80C52和80C32微控制器设计的,版权归Keil公司所有。

2、防止重复包含

这是一个头文件防护机制,防止 reg52.h 文件被多次包含。通过使用 #ifndef#define 预处理器指令,可以确保文件内容只会被编译一次。

3、BYTE寄存器的定义

这些是80C52/80C32中的字节寄存器定义。”sfr“是“特殊功能寄存器(special function register)”的缩写,用于定义51单片机的特殊功能寄存器。每个寄存器都通过其地址定义。以下是其中一些寄存器的作用:

  • P0, P1, P2, P3是51单片机的4个并行I/O口寄存器,用于控制输入输出操作。
  • PSW程序状态字寄存器,保存运算状态信息,如进位标志和溢出标志。
  • ACC累加器寄存器,主要用于算术运算。
  • B乘除法寄存器,用于乘法和除法运算。
  • SP堆栈指针寄存器,指向当前堆栈顶的位置。
  • DPL DPH数据指针低位和高位,用于数据传输中的地址指针。
  • TCON定时器控制寄存器,用于控制定时器和外部中断。
  • TMOD定时器模式寄存器,用于设置定时器的工作模式。
  • TL0, TL1, TH0, TH1定时器0和定时器1的低位和高位寄存器。
  • IE中断使能寄存器,用于控制各种中断的使能状态。
  • IP中断优先级寄存器,用于设置中断的优先级。
  • SCON:串行口控制寄存器,用于控制串行通信的操作模式。
  • SBUF:串行口数据寄存器,用于发送和接收数据。

4、8052扩展寄存器

这些是8052单片机的扩展寄存器,它们在标准的8051系列中不可用,主要用于定时器2。

  • T2CON:定时器2的控制寄存器。
  • RCAP2L 和 RCAP2H:定时器2的重载寄存器,低位和高位。
  • TL2 和 TH2:定时器2的低位和高位寄存器。

5、位寄存器定义及PSW(程序状态字寄存器)的位定义

第一行表达的是位寄存器用于直接访问寄存器中的某个位,方便控制特定位的功能。

第二行代表表达的是PSW(程序状态字寄存器)的位定义:

  • CY:进位标志位,用于算术运算的进位。
  • AC:辅助进位标志位,用于BCD运算。
  • OV:溢出标志位,表示运算溢出。
  • RS0 RS1:寄存器组选择位。
  • P:奇偶校验位(仅在8052中使用)。

5.1、TCON(定时器控制寄存器)的位定义

  • TF1, TF0:定时器1和定时器0的溢出标志。
  • TR1, TR0:定时器1和定时器0的启动位。
  • IE1, IE0:外部中断1和外部中断0的标志位。
  • IT1, IT0:外部中断1和外部中断0的触发模式选择。

5.2 IE(中断使能寄存器)的位定义

  • EA:全局中断使能位,启用或禁用所有中断。
  • ET2, ET1, ET0:定时器2、定时器1和定时器0的中断使能位。
  • ES:串行中断使能位。
  • EX1, EX0:外部中断1和外部中断0的使能位。

5.3 IP(中断优先级寄存器)的位定义

  • PT2, PT1, PT0:定时器2、定时器1和定时器0的中断优先级设置位。
  • PS:串行中断优先级设置位。
  • PX1, PX0:外部中断1和外部中断0的优先级设置位。

5.4 P3(P3口)的位定义

这些位定义了P3口的每个位,常用于外部接口和特殊功能:

  • RD, WR:外部数据存储器的读/写控制。
  • T1, T0:定时器1和定时器0的输入引脚。
  • INT1, INT0:外部中断1和外部中断0。
  • TXD, RXD:串行通信的发送和接收引脚。

5.5 SCON(串行控制寄存器)的位定义

些位控制串行通信的操作:

  • SM0, SM1:串行通信模式选择位。
  • SM2:多机通信控制位。
  • REN:接收使能位。
  • TB8, RB8:第9位数据发送/接收标志。
  • TI:发送中断标志位。
  • RI:接收中断标志位。

6、P1口的位定义(仅适用于8052)

T2 (P1^0):定时器2的输入引脚,当定时器2配置为计数器模式时,T2用于计数外部脉冲。
T2EX (P1^1):定时器2的扩展控制输入引脚,用于定时器2的捕捉或重载功能。如果开启了外部使能,T2EX可以用于控制定时器的启动和停止。

注意:这两个引脚仅在8052单片机中有效,8051单片机没有定时器2,因此没有这两个位。

7、T2CON(定时器2控制寄存器)的位定义

T2CON寄存器控制定时器2的工作模式和状态。每个位的功能如下:

  • TF2 (T2CON^7):定时器2溢出标志位。该位在定时器2计数溢出时置1,当CPU处理定时器2的中断时会清零。
  • EXF2 (T2CON^6):定时器2的外部中断标志位。若定时器2启用了外部控制(通过T2EX引脚),当T2EX引脚触发时该位会被置1。EXF2常用于捕捉和重载操作。
  • RCLK (T2CON^5):串行端口接收时钟控制位。若该位置1,串行端口的接收时钟将由定时器2提供,而不是定时器1。
  • TCLK (T2CON^4):串行端口发送时钟控制位。若该位置1,串行端口的发送时钟将由定时器2提供,而不是定时器1。
  • EXEN2 (T2CON^3):定时器2的外部使能位。若该位置1,则定时器2可以通过T2EX引脚控制是否启动或停止。通常用于捕捉功能。
  • TR2 (T2CON^2):定时器2启动位。该位置1时,定时器2开始工作;置0时,定时器2停止。
  • C_T2 (T2CON^1):定时器/计数器选择位。该位用于选择定时器2的工作模式:
    • 置1时,定时器2作为计数器使用,计数外部脉冲(从T2引脚输入)。
    • 置0时,定时器2作为定时器使用,基于系统时钟进行计数。
  • CP_RL2 (T2CON^0):捕捉/重载选择位。该位控制定时器2的工作模式:
    • 置1时,定时器2工作在捕捉模式。
    • 置0时,定时器2工作在自动重载模式。

8、文件结束

这行标志着文件的结束,它对应于文件开头的 #ifndef 指令,防止文件重复包含。

以上就是<reg52.h>里的内容了,头文件为我们提供了51单片机常用的特殊功能寄存器、I/O口和控制位的定义。通过这些定义,我们就可以轻松地使用这些硬件资源,而不需要直接操作底层的寄存器地址,大大简化了单片机程序的开发和调试过程。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注