51单片机特殊功能寄存器的用法

294 阅读1分钟

1. special function register 特殊功能寄存器

寄存器具有读写速度快,暂存数据,指令的功能。而单片机的很多模块与功能需要一个或者多个寄存器.

2. 声明一个寄存器 sfr  P0 = 0x80

作用基本等同与keli里面的头文件 #include<reg52.h>

每个寄存器里都有8个控制开关,我们需要对其进行定义

3. 开关定义 sbit  LED = P0^0

作用相当于将p0^0赋值给了LED,这之后可以用LED来代替p0^0口。

以下是STC89C52关于寄存器的数据手册 image.png p0,P1,P2,P3分别有8个口,因此总共32个io口

4. 应用 点亮led

#include <reg52.h>  //包含特殊功能寄存器定义的头文件
sbit LED = P0^0;  //位地址声明,注意:sbit 必须小写、P 大写!
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;

void main(){
    ENLED = 0;
    ADDR3 = 1;
    ADDR2 = 1;//通过使能使得三极管正常运行
    ADDR1 = 1;
    ADDR0 = 0;
    LED = 0;  //点亮小灯
    while (1);  //程序停止在这里
}
```
```