版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第4章 碳水化合物的營養(yǎng)課件
- 會(huì)計(jì)數(shù)據(jù)分析 Solutions-Manual hapter-7-EOC-SM
- 山東省淄博市桓臺(tái)縣(五四制)2023-2024學(xué)年八年級(jí)上學(xué)期期中考試數(shù)學(xué)試卷(含答案)
- 四十個(gè)腦筋急轉(zhuǎn)彎及答案
- 5年中考3年模擬試卷初中道德與法治八年級(jí)下冊(cè)03第二單元素養(yǎng)綜合檢測(cè)
- 燈光秀的課件好處
- 色板的認(rèn)識(shí)課件
- 人教版音樂三年級(jí)下冊(cè)全冊(cè)教案
- 3c數(shù)碼電池項(xiàng)目可行性研究報(bào)告寫作模板-備案審批
- 2024-2025學(xué)年專題14.1 熱機(jī)-九年級(jí)物理人教版含答案
- 客房部技能大賽中式鋪床比賽評(píng)分表
- 全國國防教育示范學(xué)校形象標(biāo)識(shí)、金屬牌匾樣式
- 德國WMF壓力鍋使用手冊(cè)
- 圍棋教學(xué)計(jì)劃
- 處方調(diào)劑流程
- 國有企業(yè)共青團(tuán)創(chuàng)新工作方法研究
- 建筑行業(yè)(建筑工程)建設(shè)項(xiàng)目設(shè)計(jì)方案規(guī)模劃分表.doc
- 集裝箱設(shè)計(jì)PPT課件
- 實(shí)習(xí)實(shí)訓(xùn)報(bào)告-墊片復(fù)合沖壓模具的設(shè)計(jì)
- 35kv變電所電氣部分設(shè)計(jì)(有設(shè)計(jì)源圖)
- 全面預(yù)算實(shí)施方案(共8篇)
評(píng)論
0/150
提交評(píng)論