接我上次总结的51单片机硬件部分,本文总结51单片机的简单知识。
一、80C51的常用头文件
80C51常用头文件:reg51.h、math.h、ctype.h、stdio.h、stdlib.h、absacc.h、intrins.h。
(1)reg51.h
定义51系列单片机特殊功能寄存器和特殊位。
(2)absacc.h
访问绝对地址头文件。当用绝对地址访问内部RAM(data)、外部RAM的一页(pdata)、整个外部RAM(xdata)和ROM(code)时,需要包含此文件。
(3)math.h
数学运算函数,如求绝对值、平方根、指数、正弦等。
(4)ctype.h
包含两类函数:字符测试函数和字符大小转换函数。如判断一个整形变量是数字、字母、换行符、控制符等。
(5)stdio.h
标准输入输出函数头文件,用于从标准设备读取字符、数字,或者向标准输出设备输出字符、字符串等。
(6)stdlib.h
标准库头文件。说明了用于数值转换、内存分配以及具有其他相似任务的函数,如求绝对值、字符转换为整形、长整形等。
(7)intrins.h
字符型、整形和长整形数字的左、右循环移位。
如_cror_、crol、iror、_irol_分别表示字符型整数右循环、字符型整数左循环和整形数字的右循环、左循环。
例:cror(a,2);//对变量a循环右移2位。
此处的循环移位和按位操作的左移(<<)和右移(>>)实现的功能是不同的。
二、80C51数据类型的扩充定义
sfr:特殊功能寄存器声明
sfr 变量名=地址值;
*特殊功能寄存器在reg51.H这个头文件里面都帮我们定义好了,所以平时我们就不要自己去定义寄存器的名字。
sbit:特殊功能位声明
sbit 变量名=地址值;
*在给某个引脚取名的时候经常会用到。
bit:位变量声明
*用来定义位数据变量
例:sfr SCON = 0X98;
sbit LED = P0^2;
三、80C51中常用的预编译命令
#define
#define A P0(注意后面不用加分号)
#typedef
typedef unsigned char uint;(后面要加分号)
重新定义一些常用的关键词,可以增强程序的可移植
性,因为在不同的编译软件上面,C语言的数据类型
的关键词的位宽是不一样的。
#ifndef…#endif
条件编译,常用于头文件的定义还有一些程序条件编译