51单片机头文件reg51h详解_第1页
51单片机头文件reg51h详解_第2页
51单片机头文件reg51h详解_第3页
51单片机头文件reg51h详解_第4页
51单片机头文件reg51h详解_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、word我们在用c语言编程时往往第一行就是头文件,51单片机为reg51.h或reg52.h,51单片机相对来说比拟简单,头文件里面内容不多,像飞思卡尔、ARM系列的单片机头文件往往内容就非常多,尽管如此,对一些初次接触单片机的朋友来说,51的头文件还是搞不太清楚,今天具体来说明一下。       1“文件包含处理概念 所谓“文件包含是指在一个文件内将另外一个文件的内容全部包含进来。因为被包含的文件中的一些定义和命令使用的频率很高,几乎每个程序中都可能要用到,为了提高编程效率,减少编程人员的重得劳动,将这些定义和命令单独组成

2、一个文件,如reg51.h,然后用#include<reg51.h>包含进来就可以了,这个就相当于工业上的标准零件,拿来直接用就可以了。     2存放器地址及位地址声明的原因     reg51.h里面主要是一些特殊功能存放器的地址声明,对可以位寻址的,还包括一些位地址的声明,如果如sfr P1=0x80; sfr IE=0xA8;sbit EA=0xAF等。sfr P1 = 0x90这句话表示:P1口所对应的特殊功能存放器P1在内存中的地址为0x80,sbit EA=0xAF这句

3、话表示EA这一位的地址为0xAF。        注意这里出现了一个使用很频繁的sfr和sbit。sfr 表示特殊功能存放器的意思,它并非标准C 语言的关键字,而是Keil 为能直接访问80C51中的SFR 而提供了一个新的关键词,其用法是:sfr  特殊功能存放器名=地址值(注意对于头文件里“特殊功能存放器名,用户实际上也可以修改的,如=x80,也可改为=x80,但sfr  和地址值那么不能更改,否者会编译出错。)  

4、60;sbit 表示位的意思,它也是非标准C 语言的关键字,编写程序时如需操作存放器的某一位可位寻址的存放器才能用时,需定义一个位变量,此时就要要到sbit,如sbit deng=P10,sbit EA   = 0xAF;需要注意的是,位定义时有些特殊, 用法有三种:第一种方法:sbit 位变量名存放器位地址值第二种方法:sbit 位变量名SFR 名称存放器位值第三种方法:sbit 位变量名SFR 地址值存放器位值如:sbit IT0=0x88 1说明:0x88是IT0

5、60;的位地址值sbit  deng=P12 2说明:其中P1 必须先用sfr 定义好sbit EA=0xA87 3说明:0xA8 就是IE存放器的地址值    以上三种定义方法需注意的是 IT0 deng EA可由用户随便定义,但必须满足C语言对变量名的定义规那么。除些外其它的那么必须按照上面的格式写,如“名称变量位地址值中“,它是由keil软件的规定的 ,不能写成其它的,只能这样能才编译通过。    以上是对存放器地址和位地址的定义和声明作了

6、解释,大家需要牢牢记住:只有对存放器及相关位进行声明地址后,我们才能对其进行赋相关的值,keil软件才能编译通过。至于说为什么,这可能一句话两句话也说不清楚。      3内存、SFR、位、地址等的通俗解释 前面讲到了存放器地址和位地址前提能位寻址声明的目的是为告诉C编译器相应存放器及其位在内存中的地址,这样我们对存放器及一些位赋的变量和数值才能正确保存,然后才能供CPU正确的调用,完成相应的功能。    上段文字出现了存放器SFR、位,地址、内存等,单片机学习过程中还会出现ROM、RAM等名词

7、,可能大家觉得不是很好理解,这里可以通俗的解释一下,如下面三个图所示。    我们把内存比作宾馆,ROM、RAM、SFR相当于宾馆里具体的有三种不同功能楼层具体这个宾馆多少层即多少ROM、RAM、SFR,视各个宾馆或者每种单片机而不同,每层8个房间相当于8位,每个房间要么住男人要么住女人相当于每位要么放入数字1要么放入数字0,keil编译器就相当于宾馆的工作人员,旅客去住旅馆相当写程序的过程,住宾馆的人必须事先要给工作人员说你是哪一层哪一个房间即声明存放器地址和位地址,宾馆工作人员才能把你带到你的房间里去这里假设这个宾馆可以由旅客自己决定住哪个房间。即:

8、只有对存放器及相关位进行声明地址后,我们才能对其进行赋相关的值,keil软件才能编译通过。     4REG51.H头文件原文及解释   翻开reg51.h 可以看到这样的一些内容此文件一般在C:KEILC51INC下 ,INC文件夹根目录里有不少头文件,并且里面还有很多以公司分类的文件夹,里面也都是相关产品的头文件。如果我们要使用自己写的头文件,使用的时候只需把对应头文件拷贝到INC文件夹里就可以了。    下面附出头文件的原文,并把注释文件一并附后。&

9、#160;/*- 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  */     

10、60;   sfr P0   = 0x80;   /三态双向     IO口      P0口此句话的意思是:特殊功能存放器地址为x80 ,可位寻址,下同                    

11、60;     /低8位地址总线/数据总线一般不用而只作普通/口,注意作/口用时,硬件上需接上接电阻sfr P1   = 0x90;   /准双向       IO口      P1口 sfr P2   = 0xA0;   /准双向  IO口  &#

12、160;   P2口                          /高8位地址总线,一般也作普通/用sfr P3   = 0xB0;   /双功能        &

13、#160;                /1.准双向      IO口      P3口                   &

14、#160;  /2.  P30              RXD串行数据接受                     /    P31   

15、           TXD串行数据发送                         /     P32       

16、;       外部中断0     信号申请                        /     P33      

17、0;       外部中断1     信号申请                            /     P34  

18、60;           定时/计数器T0     外部计数脉冲输入                            /  

19、0;  P35              定时/计数器T1     外部计数脉冲输入                         

20、60;  /     P36              WR  片外RAM写脉冲信号输入                       

21、60;    /     P37         RD  片外ram读脉冲信号输入sfr PSW  = 0xD0; / 可以位寻址语言编程时可不考虑此存放器                  

22、;          /程序状态存放器Program Status WORD  程序状态信息                            /psw.7(CY)  

23、0; 进位标志                            /psw.6(AC)辅助进位标志位低四位向高四位进位或借位时   AC=1           &#

24、160;                /主要用于十进制调整                            /psw.5(F0)用户可自定义的程序标志位

25、                           /psw.4(RS1)                     &

26、#160;      /psw.3(RS0)                            /工作存放器选择位            

27、;                /任一时刻只有一组存放器在工作                            /0 0  0区&#

28、160;    00H07H                            /0 1   1区     08H0fH      &#

29、160;                     /1 0   2区     10H17H                  &#

30、160;         /1 1   3区     18H1FH                            /psw.2(OV)

31、0;   溢出标志位                            /psw.1(   )      保存为 ,不可使用     &

32、#160;                      /psw.0(P)              奇偶校验位 sfr ACC  = 0xE0;     /累加

33、器A     特殊功能存放器    可位寻址sfr B    = 0xF0;        /存放器B      主要用于乘除运算sfr SP   = 0x81;       /堆栈指针存放器SP   

34、; 存放站定栈顶地址、sfr DPL  = 0x82;      /sfr DPH  = 0x83;     /数据指针存放器DPTR、/对片外RAM及扩展IO进行存取用的地址指针 sfr PCON = 0x87; /电源控制存放器  、不能位寻址            

35、0;                           /管理单片机的电源局部包括上电复位、掉电模式、空闲模式等                  

36、         /单片机复位时PCON被全部清0,编程时一般是用到位,其它的一般不用                          /D7 SMOD该位与串口通信波特率有关     &

37、#160;                    /SMOD=0     串口方式1 2 3 波特率正常                   

38、0;      /SMOD=1     串口方式1 2 3 波特率加倍                 sfr TCON = 0x88;  /定时器/计数器    控制存放器   可以位寻址  

39、60;                                                 

40、60;       /D7 TF1        定时器1溢出标志位                            /D6  

41、60;    TR1      定时器1运行控制位                            /D5       TF0 

42、60;      定时器0溢出标志位                            /D4     TR0        

43、定时器0运行控制位                            /D3       IE1         外部中断1请求标志  

44、                          /D2       IT1         外部中断1 触发方式选择位    

45、                        /D1       IE0       外部中断0请求标志         

46、60;                  /D0     IT0         外部中断0 触发方式选择位  sfr TMOD = 0x89; /定时器/计数器    工作方式存放器 &#

47、160;  不能位寻址                            /确定工作方式和功能                 

48、;                                                  

49、;           /D7 GATE     门控制位                            /GATE=0;定时器/计数器由TR

50、Xx=0,1来控制                            /GATE=1;定时器/计数器由TRXx=0,1                

51、60;           /和外部中断引脚init0,1来共同控制                            /D6  C/T    &

52、#160; 定时器、计数器选择位                            /     0    选择定时器模式        

53、                    /     1     选择计数器模式                  

54、60;         /D5       M1                                

55、0;   /D4       M0                            /M1       M0   

56、      工作方式                            /0   0            

57、;方式0     13位定时器/计数器                            /0   1          方式1

58、0;    16位定时器/计数器                            /1   0          方式2  

59、   8位自动重装定时器/计数器                            /1   1          方式3   

60、;  仅适用T0      分成两个8位计数器,T1停止计数                            /D3 GATE     门控制位  

61、60;                         /GATE=0;定时器/计数器由TRXx=0,1来控制                    

62、        /GATE=1;定时器/计数器由TRXx=0,1                            /和外部中断引脚init0,1来共同控制      

63、0;                     /D2  C/T             定时器、计数器选择位           

64、                 /0  选择定时器模式                            /1 &

65、#160; 选择计数器模式                            /D1       M1           &

66、#160;                        /D0       M0                 &#

67、160;          /     M1 M0         工作方式                       

68、;     /     0     0     方式0     13位定时器/计数器                      &

69、#160;     /     0     1     方式1   16位定时器/计数器                       

70、60;    /     1     0     方式2   8位自动重装定时器/计数器                        &#

71、160;   /     1     1     方式3   仅适用T0      分成两个8位计数器,T1停止计数 sfr TL0  = 0x8A;    /定时器/计数器0高8位     容器 &

72、#160;加1 计数器sfr TL1  = 0x8B;    /定时器/计数器1高8位     容器sfr TH0  = 0x8C;    /定时器/计数器0低8位     容器sfr TH1  = 0x8D;    /定时器/计数器1低8位     容器&#

73、160;  sfr IE   = 0xA8;                 /中断允许存放器          可以位寻址             

74、                             /D7 EA         全局中断允许位         

75、                                 /D6       NULL         

76、;                                 /D5       ET2        定时器/计

77、数器2中断允许位     interrupt 5                                          

78、; /D4 ES          串行口中断允许位        interrupt 4                          

79、;                 /D3 ET1        定时器/计数器1中断允许位     interrupt 3              

80、;                             /D2 EX1        外部中断1中断允许位      interrupt 2 &#

81、160;                                          /D1 ET0     &#

82、160;  定时器/计数器0中断允许位  interrupt 1                                         &#

83、160;  /D0 EX0        外部中断0中断允许位     interrupt 0  sfr IP   = 0xB8;  /中断优先级存放器   可进行位寻址              &

84、#160;       /D7 NULL                          /D6 NULL            

85、;              /D5       NULL                           

86、0;                     /D4       PS          串行口中断定义优先级控制位        

87、0;                                        /         

88、60;  1            串行口中断定义为高优先级中断                                 

89、                /            0            串行口中断定义为低优先级中断       &#

90、160;                                         /        &

91、#160;                                                 /

92、D3       PT1                                          &

93、#160;             /            1     定时器/计数器1中断定义为高优先级中断               

94、0;                                 /            0    &#

95、160;定时器/计数器1中断定义为低优先级中断                                              &

96、#160;  /D2 PX1                                             &

97、#160;   /            1            外部中断1定义为高优先级中断                   

98、60;                             /            0        &

99、#160; 外部中断1定义为低优先级中断                                              

100、;   /D1       PT0                                       

101、;                 /            1     定时器/计数器0中断定义为高优先级中断            &#

102、160;                                    /            0 

103、    定时器/计数器0中断定义为低优先级中断                                           

104、;      /D0 PX0                                          

105、;       /            1            外部中断0定义为高优先级中断                &

106、#160;                                /            0     

107、;     外部中断0定义为低优先级中断   sfr SCON = 0x98;   /串行口控制存放器     可以进行位寻址                          &

108、#160;             /D7 SM0                                  &

109、#160;         /D6       SM1                               / 

110、    SM0      SM1              串行口工作方式                        

111、;       /     0           0            同步移位存放器方式             

112、;                /     0         1            10位异步收发8位数据,波特率可变定时器1溢出率控制   

113、                            /   1         0         

114、60;  11位异步收发9位数据,波特率固定                               /     1        &#

115、160;1            11异步收发9位数据  ,波特率可变定时器1溢出率控制                               /D5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论