51單片機(jī)頭文件reg51h詳解_第1頁
51單片機(jī)頭文件reg51h詳解_第2頁
51單片機(jī)頭文件reg51h詳解_第3頁
51單片機(jī)頭文件reg51h詳解_第4頁
51單片機(jī)頭文件reg51h詳解_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、word我們?cè)谟胏語言編程時(shí)往往第一行就是頭文件,51單片機(jī)為reg51.h或reg52.h,51單片機(jī)相對(duì)來說比擬簡(jiǎn)單,頭文件里面內(nèi)容不多,像飛思卡爾、ARM系列的單片機(jī)頭文件往往內(nèi)容就非常多,盡管如此,對(duì)一些初次接觸單片機(jī)的朋友來說,51的頭文件還是搞不太清楚,今天具體來說明一下。       1“文件包含處理概念 所謂“文件包含是指在一個(gè)文件內(nèi)將另外一個(gè)文件的內(nèi)容全部包含進(jìn)來。因?yàn)楸话奈募械囊恍┒x和命令使用的頻率很高,幾乎每個(gè)程序中都可能要用到,為了提高編程效率,減少編程人員的重得勞動(dòng),將這些定義和命令單獨(dú)組成

2、一個(gè)文件,如reg51.h,然后用#include<reg51.h>包含進(jìn)來就可以了,這個(gè)就相當(dāng)于工業(yè)上的標(biāo)準(zhǔn)零件,拿來直接用就可以了。     2存放器地址及位地址聲明的原因     reg51.h里面主要是一些特殊功能存放器的地址聲明,對(duì)可以位尋址的,還包括一些位地址的聲明,如果如sfr P1=0x80; sfr IE=0xA8;sbit EA=0xAF等。sfr P1 = 0x90這句話表示:P1口所對(duì)應(yīng)的特殊功能存放器P1在內(nèi)存中的地址為0x80,sbit EA=0xAF這句

3、話表示EA這一位的地址為0xAF。        注意這里出現(xiàn)了一個(gè)使用很頻繁的sfr和sbit。sfr 表示特殊功能存放器的意思,它并非標(biāo)準(zhǔn)C 語言的關(guān)鍵字,而是Keil 為能直接訪問80C51中的SFR 而提供了一個(gè)新的關(guān)鍵詞,其用法是:sfr  特殊功能存放器名=地址值(注意對(duì)于頭文件里“特殊功能存放器名,用戶實(shí)際上也可以修改的,如=x80,也可改為=x80,但sfr  和地址值那么不能更改,否者會(huì)編譯出錯(cuò)。)  

4、60;sbit 表示位的意思,它也是非標(biāo)準(zhǔn)C 語言的關(guān)鍵字,編寫程序時(shí)如需操作存放器的某一位可位尋址的存放器才能用時(shí),需定義一個(gè)位變量,此時(shí)就要要到sbit,如sbit deng=P10,sbit EA   = 0xAF;需要注意的是,位定義時(shí)有些特殊, 用法有三種:第一種方法: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語言對(duì)變量名的定義規(guī)那么。除些外其它的那么必須按照上面的格式寫,如“名稱變量位地址值中“,它是由keil軟件的規(guī)定的 ,不能寫成其它的,只能這樣能才編譯通過。    以上是對(duì)存放器地址和位地址的定義和聲明作了

6、解釋,大家需要牢牢記?。褐挥袑?duì)存放器及相關(guān)位進(jìn)行聲明地址后,我們才能對(duì)其進(jìn)行賦相關(guān)的值,keil軟件才能編譯通過。至于說為什么,這可能一句話兩句話也說不清楚。      3內(nèi)存、SFR、位、地址等的通俗解釋 前面講到了存放器地址和位地址前提能位尋址聲明的目的是為告訴C編譯器相應(yīng)存放器及其位在內(nèi)存中的地址,這樣我們對(duì)存放器及一些位賦的變量和數(shù)值才能正確保存,然后才能供CPU正確的調(diào)用,完成相應(yīng)的功能。    上段文字出現(xiàn)了存放器SFR、位,地址、內(nèi)存等,單片機(jī)學(xué)習(xí)過程中還會(huì)出現(xiàn)ROM、RAM等名詞

7、,可能大家覺得不是很好理解,這里可以通俗的解釋一下,如下面三個(gè)圖所示。    我們把內(nèi)存比作賓館,ROM、RAM、SFR相當(dāng)于賓館里具體的有三種不同功能樓層具體這個(gè)賓館多少層即多少ROM、RAM、SFR,視各個(gè)賓館或者每種單片機(jī)而不同,每層8個(gè)房間相當(dāng)于8位,每個(gè)房間要么住男人要么住女人相當(dāng)于每位要么放入數(shù)字1要么放入數(shù)字0,keil編譯器就相當(dāng)于賓館的工作人員,旅客去住旅館相當(dāng)寫程序的過程,住賓館的人必須事先要給工作人員說你是哪一層哪一個(gè)房間即聲明存放器地址和位地址,賓館工作人員才能把你帶到你的房間里去這里假設(shè)這個(gè)賓館可以由旅客自己決定住哪個(gè)房間。即:

8、只有對(duì)存放器及相關(guān)位進(jìn)行聲明地址后,我們才能對(duì)其進(jìn)行賦相關(guān)的值,keil軟件才能編譯通過。     4REG51.H頭文件原文及解釋   翻開reg51.h 可以看到這樣的一些內(nèi)容此文件一般在C:KEILC51INC下 ,INC文件夾根目錄里有不少頭文件,并且里面還有很多以公司分類的文件夾,里面也都是相關(guān)產(chǎn)品的頭文件。如果我們要使用自己寫的頭文件,使用的時(shí)候只需把對(duì)應(yīng)頭文件拷貝到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;   /三態(tài)雙向     IO口      P0口此句話的意思是:特殊功能存放器地址為x80 ,可位尋址,下同                    

11、60;     /低8位地址總線/數(shù)據(jù)總線一般不用而只作普通/口,注意作/口用時(shí),硬件上需接上接電阻sfr P1   = 0x90;   /準(zhǔn)雙向       IO口      P1口 sfr P2   = 0xA0;   /準(zhǔn)雙向  IO口  &#

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

13、#160;                /1.準(zhǔn)雙向      IO口      P3口                   &

14、#160;  /2.  P30              RXD串行數(shù)據(jù)接受                     /    P31   

15、           TXD串行數(shù)據(jù)發(fā)送                         /     P32       

16、;       外部中斷0     信號(hào)申請(qǐng)                        /     P33      

17、0;       外部中斷1     信號(hào)申請(qǐng)                            /     P34  

18、60;           定時(shí)/計(jì)數(shù)器T0     外部計(jì)數(shù)脈沖輸入                            /  

19、0;  P35              定時(shí)/計(jì)數(shù)器T1     外部計(jì)數(shù)脈沖輸入                         

20、60;  /     P36              WR  片外RAM寫脈沖信號(hào)輸入                       

21、60;    /     P37         RD  片外ram讀脈沖信號(hào)輸入sfr PSW  = 0xD0; / 可以位尋址語言編程時(shí)可不考慮此存放器                  

22、;          /程序狀態(tài)存放器Program Status WORD  程序狀態(tài)信息                            /psw.7(CY)  

23、0; 進(jìn)位標(biāo)志                            /psw.6(AC)輔助進(jìn)位標(biāo)志位低四位向高四位進(jìn)位或借位時(shí)   AC=1           &#

24、160;                /主要用于十進(jìn)制調(diào)整                            /psw.5(F0)用戶可自定義的程序標(biāo)志位

25、                           /psw.4(RS1)                     &

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

27、;                /任一時(shí)刻只有一組存放器在工作                            /0 0  0區(qū)&#

28、160;    00H07H                            /0 1   1區(qū)     08H0fH      &#

29、160;                     /1 0   2區(qū)     10H17H                  &#

30、160;         /1 1   3區(qū)     18H1FH                            /psw.2(OV)

31、0;   溢出標(biāo)志位                            /psw.1(   )      保存為 ,不可使用     &

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

33、器A     特殊功能存放器    可位尋址sfr B    = 0xF0;        /存放器B      主要用于乘除運(yùn)算sfr SP   = 0x81;       /堆棧指針存放器SP   

34、; 存放站定棧頂?shù)刂?、sfr DPL  = 0x82;      /sfr DPH  = 0x83;     /數(shù)據(jù)指針存放器DPTR、/對(duì)片外RAM及擴(kuò)展IO進(jìn)行存取用的地址指針 sfr PCON = 0x87; /電源控制存放器  、不能位尋址            

35、0;                           /管理單片機(jī)的電源局部包括上電復(fù)位、掉電模式、空閑模式等                  

36、         /單片機(jī)復(fù)位時(shí)PCON被全部清0,編程時(shí)一般是用到位,其它的一般不用                          /D7 SMOD該位與串口通信波特率有關(guān)     &

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

38、0;      /SMOD=1     串口方式1 2 3 波特率加倍                 sfr TCON = 0x88;  /定時(shí)器/計(jì)數(shù)器    控制存放器   可以位尋址  

39、60;                                                 

40、60;       /D7 TF1        定時(shí)器1溢出標(biāo)志位                            /D6  

41、60;    TR1      定時(shí)器1運(yùn)行控制位                            /D5       TF0 

42、60;      定時(shí)器0溢出標(biāo)志位                            /D4     TR0        

43、定時(shí)器0運(yùn)行控制位                            /D3       IE1         外部中斷1請(qǐng)求標(biāo)志  

44、                          /D2       IT1         外部中斷1 觸發(fā)方式選擇位    

45、                        /D1       IE0       外部中斷0請(qǐng)求標(biāo)志         

46、60;                  /D0     IT0         外部中斷0 觸發(fā)方式選擇位  sfr TMOD = 0x89; /定時(shí)器/計(jì)數(shù)器    工作方式存放器 &#

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

48、;                                                  

49、;           /D7 GATE     門控制位                            /GATE=0;定時(shí)器/計(jì)數(shù)器由TR

50、Xx=0,1來控制                            /GATE=1;定時(shí)器/計(jì)數(shù)器由TRXx=0,1                

51、60;           /和外部中斷引腳init0,1來共同控制                            /D6  C/T    &

52、#160; 定時(shí)器、計(jì)數(shù)器選擇位                            /     0    選擇定時(shí)器模式        

53、                    /     1     選擇計(jì)數(shù)器模式                  

54、60;         /D5       M1                                

55、0;   /D4       M0                            /M1       M0   

56、      工作方式                            /0   0            

57、;方式0     13位定時(shí)器/計(jì)數(shù)器                            /0   1          方式1

58、0;    16位定時(shí)器/計(jì)數(shù)器                            /1   0          方式2  

59、   8位自動(dòng)重裝定時(shí)器/計(jì)數(shù)器                            /1   1          方式3   

60、;  僅適用T0      分成兩個(gè)8位計(jì)數(shù)器,T1停止計(jì)數(shù)                            /D3 GATE     門控制位  

61、60;                         /GATE=0;定時(shí)器/計(jì)數(shù)器由TRXx=0,1來控制                    

62、        /GATE=1;定時(shí)器/計(jì)數(shù)器由TRXx=0,1                            /和外部中斷引腳init0,1來共同控制      

63、0;                     /D2  C/T             定時(shí)器、計(jì)數(shù)器選擇位           

64、                 /0  選擇定時(shí)器模式                            /1 &

65、#160; 選擇計(jì)數(shù)器模式                            /D1       M1           &

66、#160;                        /D0       M0                 &#

67、160;          /     M1 M0         工作方式                       

68、;     /     0     0     方式0     13位定時(shí)器/計(jì)數(shù)器                      &

69、#160;     /     0     1     方式1   16位定時(shí)器/計(jì)數(shù)器                       

70、60;    /     1     0     方式2   8位自動(dòng)重裝定時(shí)器/計(jì)數(shù)器                        &#

71、160;   /     1     1     方式3   僅適用T0      分成兩個(gè)8位計(jì)數(shù)器,T1停止計(jì)數(shù) sfr TL0  = 0x8A;    /定時(shí)器/計(jì)數(shù)器0高8位     容器 &

72、#160;加1 計(jì)數(shù)器sfr TL1  = 0x8B;    /定時(shí)器/計(jì)數(shù)器1高8位     容器sfr TH0  = 0x8C;    /定時(shí)器/計(jì)數(shù)器0低8位     容器sfr TH1  = 0x8D;    /定時(shí)器/計(jì)數(shù)器1低8位     容器&#

73、160;  sfr IE   = 0xA8;                 /中斷允許存放器          可以位尋址             

74、                             /D7 EA         全局中斷允許位         

75、                                 /D6       NULL         

76、;                                 /D5       ET2        定時(shí)器/計(jì)

77、數(shù)器2中斷允許位     interrupt 5                                          

78、; /D4 ES          串行口中斷允許位        interrupt 4                          

79、;                 /D3 ET1        定時(shí)器/計(jì)數(shù)器1中斷允許位     interrupt 3              

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

81、160;                                          /D1 ET0     &#

82、160;  定時(shí)器/計(jì)數(shù)器0中斷允許位  interrupt 1                                         &#

83、160;  /D0 EX0        外部中斷0中斷允許位     interrupt 0  sfr IP   = 0xB8;  /中斷優(yōu)先級(jí)存放器   可進(jìn)行位尋址              &

84、#160;       /D7 NULL                          /D6 NULL            

85、;              /D5       NULL                           

86、0;                     /D4       PS          串行口中斷定義優(yōu)先級(jí)控制位        

87、0;                                        /         

88、60;  1            串行口中斷定義為高優(yōu)先級(jí)中斷                                 

89、                /            0            串行口中斷定義為低優(yōu)先級(jí)中斷       &#

90、160;                                         /        &

91、#160;                                                 /

92、D3       PT1                                          &

93、#160;             /            1     定時(shí)器/計(jì)數(shù)器1中斷定義為高優(yōu)先級(jí)中斷               

94、0;                                 /            0    &#

95、160;定時(shí)器/計(jì)數(shù)器1中斷定義為低優(yōu)先級(jí)中斷                                              &

96、#160;  /D2 PX1                                             &

97、#160;   /            1            外部中斷1定義為高優(yōu)先級(jí)中斷                   

98、60;                             /            0        &

99、#160; 外部中斷1定義為低優(yōu)先級(jí)中斷                                              

100、;   /D1       PT0                                       

101、;                 /            1     定時(shí)器/計(jì)數(shù)器0中斷定義為高優(yōu)先級(jí)中斷            &#

102、160;                                    /            0 

103、    定時(shí)器/計(jì)數(shù)器0中斷定義為低優(yōu)先級(jí)中斷                                           

104、;      /D0 PX0                                          

105、;       /            1            外部中斷0定義為高優(yōu)先級(jí)中斷                &

106、#160;                                /            0     

107、;     外部中斷0定義為低優(yōu)先級(jí)中斷   sfr SCON = 0x98;   /串行口控制存放器     可以進(jìn)行位尋址                          &

108、#160;             /D7 SM0                                  &

109、#160;         /D6       SM1                               / 

110、    SM0      SM1              串行口工作方式                        

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

112、;                /     0         1            10位異步收發(fā)8位數(shù)據(jù),波特率可變定時(shí)器1溢出率控制   

113、                            /   1         0         

114、60;  11位異步收發(fā)9位數(shù)據(jù),波特率固定                               /     1        &#

115、160;1            11異步收發(fā)9位數(shù)據(jù)  ,波特率可變定時(shí)器1溢出率控制                               /D5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論