51单片机的头文件注释:
/*--------------------------------------------------------------------------
REG51.H
Header file for generic 80C51 and 80C31 microcontroller.
Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/
#ifndef __REG51_H__
#define __REG51_H__
/* BYTE Register */
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
sfr PSW = 0xD0; //程序状态字寄存器
sfr ACC = 0xE0; //累加器
sfr B = 0xF0; //寄存器B
sfr SP = 0x81; //堆栈指针(8位寄存器)
sfr DPL = 0x82;
sfr DPH = 0x83; //DPH DPL 分别是DPTR数据指针(16位寄存器)高八位和低八位
sfr PCON = 0x87; // SMOD0 SMOD1 BOF POF GF0 GF1 PD IDL SMOD0是波特率倍增控制位
sfr TCON = 0x88; //
sfr TMOD = 0x89;
sfr TL0 = 0x8A;
sfr TL1 = 0x8B;
sfr TH0 = 0x8C;
sfr TH1 = 0x8D;
sfr IE = 0xA8;
sfr IP = 0xB8;
sfr SCON = 0x98;
sfr SBUF = 0x99;
/* BIT Register */
/* PSW */
sbit CY = 0xD7; //进位、借位标志
sbit AC = 0xD6; //辅助进位、借位标志
sbit F0 = 0xD5; //用户标志位
sbit RS1 = 0xD4; //当前工作寄存器组选择位
sbit RS0 = 0xD3; //当前工作寄存器组选择位 00 01 10 11对应0、1、2、3组
sbit OV = 0xD2; //溢出标志位
sbit P = 0xD0; //奇偶标志位
/* TCON */
sbit TF1 = 0x8F; //T1溢出中断请求标志位
sbit TR1 = 0x8E; //T1运行控制位
sbit TF0 = 0x8D; //T0溢出中断请求标志位
sbit TR0 = 0x8C; //T0运行控制位
sbit IE1 = 0x8B; //外部中断1的中断请求标志位
sbit IT1 = 0x8A; //触发方式设置
sbit IE0 = 0x89; //外部中断0的中断请求标志位
sbit IT0 = 0x88; //触发方式设置
/* IE */ //中断允许寄存器 A8H
sbit EA = 0xAF; //CPU中断允许总控制位
sbit ES = 0xAC; //串口中断允许位
sbit ET1 = 0xAB; //T1中断允许位
sbit EX1 = 0xAA; //外部中断1允许位
sbit ET0 = 0xA9; //T0中断允许位
sbit EX0 = 0xA8; //外部中断0允许位
/* IP */
sbit PS = 0xBC;
sbit PT1 = 0xBB;
sbit PX1 = 0xBA;
sbit PT0 = 0xB9;
sbit PX0 = 0xB8;
/* P3 */
sbit RD = 0xB7;
sbit WR = 0xB6;
sbit T1 = 0xB5;
sbit T0 = 0xB4;
sbit INT1 = 0xB3;
sbit INT0 = 0xB2;
sbit TXD = 0xB1;
sbit RXD = 0xB0;
/* SCON */
sbit SM0 = 0x9F;
sbit SM1 = 0x9E; //串行口工作方式选择
sbit SM2 = 0x9D; //SM2=1时接收机处于地址帧筛选状态
sbit REN = 0x9C; //串行接受使能位
sbit TB8 = 0x9B;
sbit RB8 = 0x9A;
sbit TI = 0x99; //发送中断标志位
sbit RI = 0x98; //接受中断标志位
#endif