头文件在C51的编程中是不可缺少的部分。本文将对keil C中常用头文件予以说明,并就如何编写头文件进行初步介绍。
一、C51常见本征函数库
一些常见的头文件都是keil C自带的,在安装目录下的C51文件夹的INC中可以找到keilC中所有的芯片所对应的头文件。51系列单片机在编程中常用的头文件有:AT89X51.H、INTRINS.H、ABSACC.H、MATH.H。
1、AT89X51.H——本征函数库
头文件AT89X51.H是编程中必需要用到的专用寄存器文件。它与INC中的头文件REG51.H所定义的内容是一样的。主要用来定义特殊功能寄存器的位地址、程序状态寄存器的位地址、定时器/计数器控制寄存器的位地址、中断使能控制器位地址、单片机P3引脚特殊功能位地址、中断优先权控制寄存器位地址、串行口控制寄存器位地址。
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
P0口锁存器的地址
sfr P1 = 0x90
P1口锁存器的地址
sfr P2 = 0xA0
P2口锁存器的地址
sfr P3 = 0xB0
P3口锁存器的地址
sfr PSW = 0xD0
程序状态字
sfr ACC = 0xE0
累加器
sfr B = 0xF0
B寄存器
sfr SP = 0x81
堆栈指针
sfr DPL = 0x82
数据指针低位
sfr DPH = 0x83
数据指针高位
sfr PCON = 0x87
电源控制寄存器
sfr TCON = 0x88
定时器/计数器控制寄存器
sfr TMOD = 0x89
定时器/计数器方式控制寄存器
sfr TL0 = 0x8A
定时器/计数器0(低字节)
sfr TL1 = 0x8B
定时器/计数器1(低字节)
sfr TH0 = 0x8C
定时器/计数器0(高字节)
sfr TH1 = 0x8D
定时器/计数器1(高字节)
sfr IE = 0xA8
中断允许控制寄存器
sfr IP = 0xB8
中断优先级控制寄存器
sfr SCON = 0x98
串行控制寄存器
sfr SBUF = 0x99
串行缓冲器
BIT Register
程序状态寄存器的地址
sbit CY = 0xD7
进位标志
sbit AC = 0xD6
辅助进位标志
sbit F0 = 0xD5
标志位(可自行定义)