微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机C语言头文件及其使用

51单片机C语言头文件及其使用

时间:11-26 来源:互联网 点击:
很多初学单片机者往往对C51的头文件感到很神秘,而为什么要那样写,甚至有的初学者喜欢问,P1口的P为什么要大写,不大写行不行呢?其实这样的问题,看过本文后,就会明白。其实这个是在头文件中用sfr定义的,现在定义好了的是这样的sfr P1= 0x90;,也就是说,到底大写,还是小写,就是在这里面决定的。这就说明,如果你要用小写,就得在头文件中改为小写。其实它都是为了编程序方便才这样写的,在程序编译时,就会变成相应的地址(如P1就变成了0x90)。

还有一点就是,现在有很多改进型的单片机,它们有很多新增的特殊功能寄存器在标准的reg51.h或reg52.h中没有定义,这就需要自己加进头文件(相关厂家已经把它们定义好了),当然也可以直接在程序中定义。下面是一个标准的C51头文件:

sfr P0= 0x80;
sfr P1= 0x90;
sfr P2= 0xA0;
sfr P3= 0xB0;
sfr PSW= 0xD0;
sfr ACC= 0xE0;
sfr B= 0xF0;
sfr SP= 0x81;
sfr DPL= 0x82;
sfr DPH= 0x83;
sfr PCON= 0x87;
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;

sfr T2CON= 0xC8;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2= 0xCC;
sfr TH2= 0xCD;


sbit CY= PSW^7;
sbit AC= PSW^6;
sbit F0= PSW^5;
sbit RS1= PSW^4;
sbit RS0= PSW^3;
sbit OV= PSW^2;
sbit P= PSW^0; //8052 only

sbit TF1= TCON^7;
sbit TR1= TCON^6;
sbit TF0= TCON^5;
sbit TR0= TCON^4;
sbit IE1= TCON^3;
sbit IT1= TCON^2;
sbit IE0= TCON^1;
sbit IT0= TCON^0;

sbit EA= IE^7;
sbit ET2= IE^5; //8052 only
sbit ES= IE^4;
sbit ET1= IE^3;
sbit EX1= IE^2;
sbit ET0= IE^1;
sbit EX0= IE^0;

sbit PT2= IP^5;
sbit PS= IP^4;
sbit PT1= IP^3;
sbit PX1= IP^2;
sbit PT0= IP^1;
sbit PX0= IP^0;

sbit RD= P3^7;
sbit WR= P3^6;
sbit T1= P3^5;
sbit T0= P3^4;
sbit INT1= P3^3;
sbit INT0= P3^2;
sbit TXD= P3^1;
sbit RXD= P3^0;

sbit SM0= SCON^7;
sbit SM1= SCON^6;
sbit SM2= SCON^5;
sbit REN= SCON^4;
sbit TB8= SCON^3;
sbit RB8= SCON^2;
sbit TI= SCON^1;
sbit RI= SCON^0;

sbit T2EX= P1^1; // 8052 only
sbit T2= P1^0; // 8052 only


sbit TF2= T2CON^7;
sbit EXF2= T2CON^6;
sbit RCLK= T2CON^5;
sbit TCLK= T2CON^4;
sbit EXEN2= T2CON^3;
sbit TR2= T2CON^2;
sbit C_T2= T2CON^1;
sbit CP_RL2 = T2CON^0;

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top