您的位置 首页 方案

51单片机C言语学习笔记6:51单片机C言语头文件及其运用

很多初学单片机者往往对C51的头文件感到很神秘,而为什么要那样写,甚至有的初学者喜欢问,P1口的P为什么要大写,不大写行不行呢?其实这个是

许多初学单片机者往往对C51的头文件感到很奥秘,而为什么要那样写,乃至有的初学者喜爱问,P1口的P为什么要大写,不大写行不行呢?其实这个是在头文件顶用sfr界说的,现在界说好了的是这样的

sfr P1 = 0x90;

也便是说,究竟大写,仍是小写,便是在这里边决议的。这就阐明,假如你要用小写,就得在头文件中改为小写。其实它都是为了编程序便利才这样写的,在程序编译时,就会变成相应的地址(如P1就变成了0x90)。

下面是一个规范的C51头文件REG52.H:

(此文件一般在C:KEILC51INC下 ,INC文件夹根目录里有不少头文件,而且里边还有许多以公司分类的文件夹,里边也都是相关产品的头文件。假如咱们要运用自己写的头文件,运用的时分只需把对应头文件拷贝到INC文件夹里就能够了。)

/* BYTE Registers */
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;

/* 8052 Extensions */
sfr T2CON = 0xC8;
sfr RCAP2L= 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2 = 0xCC;
sfr TH2 = 0xCD;

/* BIT Registers */
/* PSW */
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

/* TCON */
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;

/* IE */
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;

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

/* P3 */
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;

/* SCON */
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;

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

/* T2CON */
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;

还有一点便是,现在有许多改进型的单片机,它们有许多新增的特别功用寄存器在规范的reg51.h或reg52.h中没有界说,这就需求自己加进头文件(相关厂家现已把它们界说好了),当然也能够直接在程序中界说。

如STC传统51单片机,要运用新增的特别功用寄存器要include头文件,详细界说如下:

http://space.ednchina.com/Upload/2009/4/8/aef22653-a6aa-42ed-9019-8ffe4f074c6e.rar

sfr AUXR = 0x8e;

sfr AUXR1 = 0xa2;

sfr P4 = 0xe8;

sfr XICON = 0xc0;

sfr IPH = 0xb7;

sfr WDT_CONTR = 0xe1;

sfr ISP_DATA = 0xe2;

sfr ISP_ADDRH = 0xe3;

sfr ISP_ADDRL = 0xe4;

sfr ISP_CMD = 0xe5;

sfr ISP_TRIG = 0xe6;

sfr ISP_CONTR = 0xe7;

sbit PX3 = XICON^7;

sbit EX3 = XICON^6;

sbit IE3 = XICON^5;

sbit IT3 = XICON^4;

sbit PX2 = XICON^3;

sbit EX2 = XICON^2;

sbit IE2 = XICON^1;

sbit IT2 = X%&&&&&%ON^0;

头文件STC12C5A60S2系列双串口1T 8051单片机

头文件STC12C5A60AD系列高速1T 8051单片机

头文件STC12C5201AD系列高速1T 8051单片机

头文件STC11F60XE高速总线系列1T 8051单片机

头文件STC10F08XE高速总线系列1T 8051单片机

参考资料:

1)51单片机C言语头文件及其运用——徐学军单片机工作室

http://hi.baidu.com/xxjmcu/blog/item/6f77308dc53bf013b31bbaa7.html/cmtid/6aaaf78f561073e7f01f36a7

2)单片机顶用c编程时头文件reg51.h及reg52.h解析
http://blog.csdn.net/benben85/archive/2009/03/03/3951522.aspx

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/260964.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部