reg51.h头文件详解
时间:2025-04-20
时间:2025-04-20
“reg51.h”头文件详解
北方蓝芯科技()
我们在学习单片机时,在程序的开始都会包含一个头文件“reg51.h”,初学者一般都对该文件存在一些疑惑。例如在我们实验教程第一个实验“点亮 一个发光二极管”中,程序如下:
#include "reg51.h" //包含头文件
sbit led=P1^0; //表示用led等效于P1^0,
//P1^0就是指头文件里定义的P1寄存器的第 0 BIT void main() //主函数 {
led=0; //低电平驱动发光二极管
while(1) //进入while死循环 { } }
我们可以看到,程序的第一行便是一个“文件包含”处理。所谓“文件包含”是指一个文件将另外一个文件的内容全部包含进来,这个程序中包含REG51.h头文件的目的是为了要使用P1 这个符号,即通知C 编译器,程序中所写的P1 是指80C51 单片机的P1 端口而不是其它变量。这是为什么呢?我们可以将鼠标放到包含头文件这行,点击鼠标右键打开REG51.h文件,我们可以看到以下内容。
/* BYTE Register */ //特殊功能寄存器定义(字节) sfr P0 = 0x80; //P0口地址定义 sfr P1 = 0x90; //P1口地址定义 sfr P2 = 0xA0; //P2口地址定义 sfr P3 = 0xB0; //P3口地址定义
sfr PSW = 0xD0; //程序状态字,具体位意义见位定义 sfr ACC = 0xE0; //累加器,程序员最常用的 sfr B = 0xF0; //寄存器,主要用于乘除 sfr SP = 0x81; //堆栈指针,初始化为07;先加1后压栈,先出栈再减1, sfr DPL = 0x82; // DPTR寄存器的低八位 sfr DPH = 0x83; // DPTR寄存器的高八位
sfr PCON = 0x87; //电源控制寄存器,最高位为SMOD位 sfr TCON = 0x88; //Timer/Counter控制寄存器
sfr TMOD = 0x89; //Timer/Counter方式控制寄存器 sfr TL0 = 0x8A; //定时器0低8位 sfr TL1 = 0x8B; //定时器1低8位 sfr TH0 = 0x8C; //定时器0高8位 sfr TH1 = 0x8D; //定时器1高8位 sfr IE = 0xA8; //中断控制寄存器
sfr IP = 0xB8; //中断优先级控制寄存器
ww w.wwhrw.bnhrbcbn.cbcom.c/bombs
上一篇:轻叩诗歌的大门知识竞赛(实用)
下一篇:水利部预算项目储备管理暂行办法