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

下載本文檔

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

文檔簡介

1、我們在用c語言編程時(shí)往往第一行就是頭文件,51單片機(jī)為reg51.h或 reg52.h,51單片機(jī)相對來說比擬簡單,頭文件里面內(nèi)容不多,像飛思卡爾、 ARM 系列的單片機(jī)頭文件往往內(nèi)容就非常多,盡管如此,對一些初次接觸單片機(jī)的朋 友來說,51的頭文件還是搞不太活楚,今天具體來說明一下.1文件包含處理概念所謂文件包含是指在一個(gè)文件內(nèi)將另外一個(gè)文件的內(nèi)容全部包含進(jìn)來.因 為被包含的文件中的一些定義和命令使用的頻率很高,幾乎每個(gè)程序中都可能要用到,為了提升編程效率,減少編程人員的重得勞動,將這些定義和命令單獨(dú)組成一個(gè)文件,如reg51.h,然后用#include包含進(jìn)來就可以了,這個(gè)就相當(dāng)丁工業(yè)上的

2、標(biāo)準(zhǔn)零件,拿來直接用就可以了.2存放器地址及位地址聲明的原因reg51.h里面主要是一些特殊功能存放器的地址聲明,對可以位尋址的,還包括一 些位地址的聲明,如果如 sfr P1=0x80; sfr IE=0xA8;sbit EA=0xAF 等.sfr P1 = 0x90這句話表示:P1 口所對應(yīng)的特殊功能存放器 P1在內(nèi)存中的地址為0x80, sbit EA=0xAF 這句話表示 EA這一位的地址為 0xAF.注意這里出現(xiàn)了一個(gè)使用很頻繁的 sfr和sbit.sfr表小特殊功能存放器的意思,它并非標(biāo)準(zhǔn)C語舌的關(guān)鍵字,而是Keil為能直接訪問80C51中的SFR而提供了一個(gè)新的關(guān)鍵詞,其用法是:

3、sfr特殊功 能存放器名=地址值注意對于頭文件里“特殊功能存放器名,用戶實(shí)際上也可以修改 的,如p 1 =0x80,也可改為A 1 =o x80,但sfr和地址值那么不能更改,否者會編譯出 錯(cuò).sbit表小位的意思,它也是非標(biāo)準(zhǔn)C語舌的關(guān)鍵字,編寫程序時(shí)如需操作 存放器的某一位可位尋址的存放器才能用時(shí),需定義一個(gè)位變量,此時(shí)就要 要到sbit,如sbit deng=P1A0,sbit EA = 0xAF;需要注意的是,位定義時(shí)有些特殊,用法有三種:第一種方法:sbit位變量名=存放器位地址值第二種方法:sbit位變量名=SFR名稱a存放器位值0 7 第三種方法:sbit位變量名=SFR地址值a

4、存放器位值如:sbit IT0=0x88 1說明:0x88是IT0的位地址值sbit deng=P1A2 2說明:其中P1必須先用sfr定義好sbit EA=0xA8A7 3說明:0xA8就是IE存放器的地址值以上三種定義方法需注意的是IT0 deng EA可由用戶隨便定義,但必須滿足C語言對變量名的定義規(guī)那么.除些外其它的那么必須根據(jù)上面的格式寫,如“名稱a變量位地址值,中“以,它是由keii軟件的規(guī)定的,不能寫成其它的,只能這樣能才編譯通過.以上是對存放器地址和位地址的定義和聲明作了解釋,大家需要牢牢記?。褐挥袑Υ娣牌骷跋嚓P(guān)位進(jìn)行聲明地址后,我們才能對其進(jìn)行賦相關(guān)的值,keil軟件才能編譯

5、通過.至于說為什么,這可能一句話兩句話也說不清楚.3內(nèi)存、SFR、位、地址等的通俗解釋前面講到了存放器 地址和位地址前提能位尋址聲明的目的是為告訴C編譯器相應(yīng)存放器及其位在內(nèi)存中的地址,這樣我們對存放器及一些位賦的變量和數(shù)值才能正保證存,然后才能供CPU正確的調(diào)用,完成相應(yīng)的功能.上段文字出現(xiàn)了存放器SFR、位,地址、內(nèi)存等,單片機(jī)學(xué)習(xí)過程中還會出現(xiàn) ROM RA附名詞,可能大家覺得不是很好理解,這里可以通俗的解釋一下,如下面三個(gè)圖 所示.我們把內(nèi)存比作賓館,ROM RAM SFR相當(dāng)于賓館里具體的有三種不同功能 樓層具 體這個(gè)賓館多少層即多少 ROM RAM SFR視各個(gè)賓館或者每種 單片機(jī)

6、而不同,每層8個(gè) 房間相當(dāng)于8位,每個(gè)房間要么住男人要么住女人 相當(dāng)于每位 要么放入數(shù)字1要么放入數(shù)字 0, keil編譯器就相當(dāng)于 賓館的工作人員,旅客去住旅館相當(dāng)寫程序的過程,住賓館的人必須事先要給工作人員說你是哪一層哪一個(gè)房間即聲明存放器地址和位地址,賓館工作人員才能把你帶到你的房間里去 這里假設(shè)這個(gè)賓館可以由旅客自己決定住哪個(gè)房間.BP:只有對存放器及相關(guān)位進(jìn)行聲明地址后, 我們才能對其進(jìn)行賦相關(guān)的值,keil軟件才能編譯通過.賓館五層四層三層二層一層SFR男人女人男人女人男人男人女人女人男人女人男人女人男人男人女人女人男人女人男人女人男人男人女人女人男人女人男人女人男人男人女人女人男

7、人女人男人女人男人男人女人女人房間1房間2房間3房間4房間5房間6房間7房間8內(nèi)存1010110010101100101011001010110010101100位0位1位2位3位4位5位6位7存一賓館一般房間和特殊房間就存儲尊ram 此層為賓館工作人員房間哦儲廖ROh 此層為住客人房間此層為特殊工作人員房間層8個(gè)房間每層樓需要個(gè)地址,每個(gè)房間也有地址4 REG51.K文件原文及解釋翻開reg51.h可以看到這樣的一些內(nèi)容此文件一般在 C:KEILC51INC 下,INC文件夾根目錄里有不少頭文件,并且里面還有很多以公司分類的文件夾, 里面也都是相關(guān)產(chǎn)品的頭文件.如果我們要使用自己寫的頭文件,

8、使用的時(shí)候 只需把對應(yīng)頭文件拷貝到INC文件夾里就可以了.下面附出頭文件的原文,并把注釋文件一并附后./*REG51.HHeader generic 80C51 and 80C31 microcontroller.Copyright c 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.All rights reserved.*/#ifndef _REG51_H_#define REG51H/* BYTE Register */sfr P0=0x80; /二態(tài)雙 |可IO 口P0 口此句話的意思是:特殊功能存放器P 0 地址為0x80

9、,可位尋址,下同低8位地址總線/數(shù)據(jù)總線(一般不用而只作普通I/ O 口,注意作I / O 口用時(shí),硬件上需接上接電阻)sfr P1 = 0x90; 準(zhǔn)雙向IO 口 P1 口sfr P2 = 0xA0; /準(zhǔn)雙向 IO 口 P2 口/高8位地址總線,一般也作普通I/O用sfr P3 = 0xB0; /雙功能/1.準(zhǔn)雙向IO 口 P3 口/2. P30RXD串行數(shù)據(jù)接受/ P31TXD串行數(shù)據(jù)發(fā)送/ P32夕卜部中斷0 信號申請/ P33夕卜部中斷1 信號申請/ P34定時(shí)/計(jì)數(shù)器T0 外部計(jì)數(shù)脈沖輸入/ P35定時(shí)/計(jì)數(shù)器T1外部計(jì)數(shù)脈沖輸入/ P36WR 片外RAM 寫脈沖信號輸入/ P37

10、RD片外ram讀脈沖信號輸入sfr PSW = 0xD0; /可以位尋址(C語言 編程時(shí)可不考慮此存放器)程序狀態(tài)存放器 Program Status WORD (程序狀態(tài)信息)/psw.7(CY)進(jìn)位標(biāo)志/psw.6(AC)輔助進(jìn)位標(biāo)志位低四位向高四位進(jìn)位或借位時(shí)AC=1主要用于十進(jìn)制調(diào)整/psw.5(F0)用戶可自定義的程序標(biāo)志位/psw.4(RS1)/psw.3(RS0)工作存放器選擇位/任一時(shí)刻只有一組存放器在工作/0 0 0 區(qū) 00H07H/0 11區(qū)08H0fH/1 02區(qū)10H17H/1 13區(qū)18H1FH/psw.2(OV)溢出標(biāo)志位/psw.1()保存為,木可使用/psw.

11、0(P)奇偶校驗(yàn)位sfr ACC=0xE0;/累加器A特殊功能存放器可位尋址sfr B =0xF0;/布器B 主要用于乘除運(yùn)算sfr SP :=0x81;堆棧指針存放器SP存放站定棧頂?shù)刂贰fr DPL=0x82;/sfr DPH = 0x83; /數(shù)據(jù)指針存放器 DPTR、/對片外RAM及擴(kuò)展IO進(jìn)行存取用的地址指 針sfr PCON = 0x87; /電源限制存放器 、不能位尋址/治理單片機(jī)的電源局部包括上電復(fù)位、掉電模式、空閑模式等/單片機(jī)復(fù)位時(shí)PCON被全部清0,編程時(shí)一般是用到SMOD位,其它的 一般不用/D7 SMOD該位與串口通信波特率有關(guān)/SMOD=0 串口方式1 2 3波特

12、率正常/SMOD=1 串口方式1 2 3波特率加倍sfr TCON = 0x88; 定時(shí)器/計(jì)數(shù)器 限制存放器 可以位尋址/D7 TF1 定時(shí)器1溢出標(biāo)志位/D6TR1定時(shí)器1運(yùn)行限制位/D5TF0定時(shí)器0溢出標(biāo)志位/D4TR0定時(shí)器0運(yùn)行限制位/D3IE1外部中斷1請求標(biāo)志/D2IT1外部中斷1觸發(fā)方式選擇位/D1IE0外部中斷0請求標(biāo)志/D0IT0外部中斷0觸發(fā)方式選擇位sfr TMOD = 0x89; 定時(shí)器/計(jì)數(shù)器 工作方式存放器不能位尋址確定工作方式和功能/D7 GATE 門限制位/GATE=0 ;定時(shí)器/計(jì)數(shù)器由TRX (x=0 , 1)來限制/GATE=1 ;定時(shí)器/計(jì)數(shù)器由TR

13、X (x=0 , 1)和外部中斷引腳(init0 , 1)來共同限制/D6 C/T 定時(shí)器、計(jì)數(shù)器選擇位/ 0選擇定時(shí)器模式/ 1選擇計(jì)數(shù)器模式/D5 M1/D4 M0/M1 M0工作方式/0 0/0 1方式013位定時(shí)器/計(jì)數(shù)器方式116位定時(shí)器/計(jì)數(shù)器/10方式28位自動重裝定時(shí)器/計(jì)數(shù)器/11方式3僅適用T0分成兩個(gè)8位計(jì)數(shù)器,T1停止計(jì)數(shù)/D3 GATE 門限制位/GATE=0 ;定時(shí)器/計(jì)數(shù)器由TRX (x=0 , 1)來限制/GATE=1 ;定時(shí)器/計(jì)數(shù)器由TRX (x=0 , 1)和外部中斷引腳(init0 , 1)來共同限制/D2 C/T定時(shí)器、計(jì)數(shù)器選擇位/0選擇定時(shí)器模式/

14、1選擇計(jì)數(shù)器模式/D1 M1/D0 M0/M1M0工作方式/00方式013位定時(shí)器/計(jì)數(shù)器/01方式116位定時(shí)器/計(jì)數(shù)器/10方式28位自動重裝定時(shí)器/計(jì)數(shù)器/11方式3僅適用T0分成兩個(gè)8位計(jì)數(shù)器,T1停止計(jì)數(shù)sfr TL0 = 0x8A;定時(shí)器/計(jì)數(shù)器0高8位容器加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位容器sfr IE = 0xA8;中斷允許存放器可以位尋址/D7 EA全局中斷允許位/D6 NULL/D5 ET2定時(shí)器/計(jì)數(shù)器2中斷允許位 interr

15、upt 5/D4ES串行口中斷允許位interrupt 4/D3ET1定時(shí)器/計(jì)數(shù)器1中斷允許位 interrupt 3/D2EX1外部中斷1中斷允許位interrupt 2/D1ET0定時(shí)器/計(jì)數(shù)器0中斷允許位interrupt 1/D0EX0外部中斷0中斷允許位interrupt 0sfr IP = 0xB8;/中斷優(yōu)先級存放器可進(jìn)行位尋址/D7 NULL/D6 NULL/D5 NULL/D4PS串行口中斷定義優(yōu)先級限制位/1串行口中斷定義為高優(yōu)先級中斷/0串行口中斷定義為低優(yōu)先級中斷/D3PT1/1 定時(shí)器/計(jì)數(shù)器1中斷定義為高優(yōu)先級中斷/0定時(shí)器/計(jì)數(shù)器1中斷定義為低優(yōu)先級中斷/10外

16、部中斷1定義為高優(yōu)先級中斷 夕卜部中斷1定義為低優(yōu)先級中斷/D1PT0/1定時(shí)器/計(jì)數(shù)器0中斷定義為高優(yōu)先級中斷/0定時(shí)器/計(jì)數(shù)器0中斷定義為低優(yōu)先級中斷/D0 PX0/1外部中斷0定義為高優(yōu)先級中斷/D2 PX1外部中斷0定義為低優(yōu)先級中斷/0sfr SCON = 0x98; /串行口限制存放器可以進(jìn)行位尋址/D7 SM0/D6 SM1/ SM0 SM1串行口工作方式/ 00問步移位存放器方式/ 0110位冊收發(fā)8位數(shù)據(jù),波特率可變定時(shí)器1溢出率限制/ 1011位冊收發(fā)9位數(shù)據(jù),波特率固定/1111 冊收發(fā)9位數(shù)據(jù),波特率可變定時(shí)器1溢出率限制/D5SM2多機(jī)通信限制位主要用于方式2和方式3

17、/D4REN允許串行接收位/D3TB8方式2,3中發(fā)送數(shù)據(jù)的第9位/D2RB8方式2,3中接受數(shù)據(jù)的第9位/D1TI 發(fā)送中斷標(biāo)志位/D0RI接受中斷標(biāo)志位sfr SBUF = 0x99; 串行數(shù)據(jù)緩沖區(qū) /*卜面是位尋址區(qū)上面做過解釋的就不在下面解釋了*/*/* BIT Register */* PSW */sbit CY=0xD7;sbit AC=0xD6;sbit F0 =0xD5;sbit RS1=0xD4;sbit RS0=0xD3;sbit OV=0xD2;sbit P =0xD0;/* TCON */sbit TF1 = 0x8F;sbit TR1 = 0x8E;sbit TF0 = 0x8D;sbit TR0 = 0x8C;sbit IE1 = 0x8B;sbit IT1 = 0x8A;sbit IE0 = 0x89;sbit IT0 = 0x88;/* IE */sbit EA = 0xAF;sbit ES = 0xAC;sbit ET1 = 0xAB;sbit EX1 = 0xAA;sbit ET0 = 0xA9;sbit EX0 = 0xA8;/* IP */sbit PS = 0xBC;sbit PT1 = 0xBB;sbit PX1 = 0xBA;sbit PT0 = 0xB9;sbit PX0 =

溫馨提示

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

評論

0/150

提交評論