單片機最小系統(tǒng)_第1頁
單片機最小系統(tǒng)_第2頁
單片機最小系統(tǒng)_第3頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機是一門實踐性較強的技術(shù),很多初學(xué)者在學(xué)習(xí)單片機技術(shù)開發(fā)的時候往往一頭霧水,不知何從下 手。為此,筆者結(jié)合自己使用單片機多年的經(jīng)驗,特意設(shè)計了單片機開發(fā)所需的Study-c整機和硬件套件,并結(jié)合套件精心編寫了單片機從入門到精通系列教程。通過講述單片機原理、電路設(shè)計、應(yīng)用開發(fā)軟 件工具、編寫實驗實例讓讀者全面接觸單片機技術(shù)。教程編排上由淺入深,循序漸進,內(nèi)容力求完整、實 用、趣味并存,使讀者在輕松愉快的學(xué)習(xí)過程中逐步提高單片機軟硬件綜合設(shè)計水平。一、內(nèi)容提要本講主要向大家介紹51系列單片機的最小系統(tǒng)的實現(xiàn)并通過編寫程序來實現(xiàn)對單片機10 口的輸岀控制。以點亮外部連接的 LED發(fā)光二極管)為例

2、,簡要的介紹單片機的原理、最小系統(tǒng)的組成,并通過 簡單的C51程序設(shè)計來講述編譯軟件 Keil的使用并下載Hex文件燒寫單片機。二、原理簡介在了解原理之前,首先讓我們思考一個問題,什么是單片機,單片機有什么用?這是一個有意思的問題,因為任何人都不能給出一個被大家都認(rèn)可的概念,那到底什么是單片機呢?普遍來說,單片機又稱單片微控制器,是在一塊芯片中集成了 CPU中央處理器)、RAM數(shù)據(jù)存儲器)、R0M程序存 儲器)、定時器/計數(shù)器和多種功能的l/O輸入/輸岀)接口等一臺計算機所需要的基本功能部件,從 而可以完成復(fù)雜的運算、邏輯控制、通信等功能。在這里,我們沒必要去找到明確的概念來解讀什么是單 片機

3、,特別在使用 C語言編寫程序的時,不用太多的去了解單片機的內(nèi)部結(jié)構(gòu)以及運行原理等。從應(yīng)用 的角度來說,通過從簡單的程序入手,慢慢的熟悉然后逐步深入精通單片機。在簡單了解了什么是單片機之后,然后我們來構(gòu)建單片機的最小系統(tǒng),單片機的最小系統(tǒng)就是讓單片 機能正常工作并發(fā)揮其功能時所必須的組成部分,也可理解為是用最少的元件組成的單片機可以工作的系 統(tǒng)。對51系列單片機來說,最小系統(tǒng)一般應(yīng)該包括:單片機、時鐘電路、復(fù)位電路、輸入 /輸岀設(shè)備等 見圖1 )。圖1單片機最小系統(tǒng)框圖三、電路詳解依據(jù)上文的內(nèi)容,設(shè)計51系列單片機最小系統(tǒng)見圖2。vcc+ ClR9J10KGNDC2JMO59?M30pFWpF2

4、3467E910111213-1斗-151617191920P1.0verPl 1Pi?PO.tXADO)PL3PO.l(ADl)Fl 4PD.2(AO2Pl.5鞏UAD3)Pl.6P0.4(AD*)Pl. 7PO.5(AD5)P0.6(AD6)RSIP0.?(AD7)P3 0(RKD)EAAPPP3 l(TKD)F3 MINTOALBPROGP? 3(TNT1)PSENPl-KTO)P3.5(T1)P2.7(A15)P3.6(WR)P2.6A14P3.7(RD)P25(A13)P2AA12)XIAL2P2.3(A1I)X1AL1P2 2(A1O)P21(A9)GNDP2.0(AB)40U1

5、STC AWX5X37托35343332262524號2221VCCSODlRJ IK圖2 51系列單片機最小系統(tǒng)下面就圖2所示的單片機最小系統(tǒng)各部分電路進行詳細(xì)說明。1. 時鐘電路在設(shè)計時鐘電路之前,讓我們先了解下51單片機上的時鐘管腳:XTALK19 腳):芯片內(nèi)部振蕩電路輸入端。XTAL2V18 腳):芯片內(nèi)部振蕩電路輸出端。XTAL1和XTAL2是獨立的輸入和輸出反相放大器,它們可以被配置為使用石英晶振的片內(nèi)振蕩 器,或者是器件直接由外部時鐘驅(qū)動。圖2中采用的是內(nèi)時鐘模式,即采用利用芯片內(nèi)部的振蕩電路,在XTAL1、XTAL2的引腳上外接定時元件 一個石英晶體和兩個電容),內(nèi)部振蕩器便

6、能產(chǎn)生自激振 蕩。一般來說晶振可以在 1.212MHz之間任選,甚至可以達到 24MHz或者更高,但是頻率越高功 耗也就越大。在本實驗套件中采用的11.0592M的石英晶振。和晶振并聯(lián)的兩個電容的大小對振蕩頻率2040pF 之間選擇 本實驗套3050pF之間。通常選取PCB )時,晶體和電容應(yīng)盡可能有微小影響,可以起到頻率微調(diào)作用。當(dāng)采用石英晶振時,電容可以在 件使用30pF );當(dāng)采用陶瓷諧振器件時,電容要適當(dāng)?shù)卦龃笠恍?,?33pF的陶瓷電容就可以了。另外值得一提的是如果讀者自己在設(shè)計單片機系統(tǒng)的印刷電路板 與單片機芯片靠近,以減少引線的寄生電容,保證振蕩器可靠工作。檢測晶振是否起振的方法

7、可以用示波器可以觀察到XTAL2輸岀的十分漂亮的正弦波,也可以使用萬用表測量 把擋位打到直流擋,這個時候2V左右一點的電壓。運行不正常)或死機 停止運行)時,就需出現(xiàn)2個機器周期以上的高電平時,單片機就執(zhí)測得的是有效值)XTAL2和地之間的電壓時,可以看到2. 復(fù)位電路在單片機系統(tǒng)中,復(fù)位電路是非常關(guān)鍵的,當(dāng)程序跑飛 要進行復(fù)位。MCS-5I系列單片機的復(fù)位引腳 RST第9管腳)行復(fù)位操作。如果 RST持續(xù)為高電平,單片機就處于循環(huán)復(fù)位狀態(tài)。復(fù)位操作通常有兩種基本形式:上電自動復(fù)位和開關(guān)復(fù)位。圖2中所示的復(fù)位電路就包括了這兩種復(fù)位方式。上電瞬間,電容兩端電壓不能突變,此時電容的負(fù)極和RESET

8、相連,電壓全部加在了電阻 上,RESET的輸入為高,芯片被復(fù)位。隨之 +5V電源給電容充電,電阻上的電壓逐漸減小,最后約等于0,芯片正常工作。并聯(lián)在電容的兩端為復(fù)位按鍵,當(dāng)復(fù)位按鍵沒有被按下的時候電路實現(xiàn)上電復(fù)位,在 芯片正常工作后,通過按下按鍵使RST管腳岀現(xiàn)高電平達到手動復(fù)位的效果。一般來說,只要RST管腳上保持10ms以上的高電平,就能使單片機有效的復(fù)位。圖中所示的復(fù)位電阻和電容為經(jīng)典值,實際制 作是可以用同一數(shù)量級的電阻和電容代替,讀者也可自行計算RC充電時間或在工作環(huán)境實際測量,以確保單片機的復(fù)位電路可靠。3. EA/VPPV31 腳)的功能和接法51單片機的EA/VPPV31 腳)

9、是內(nèi)部和外部程序存儲器的選擇管腳。當(dāng)EA保持高電平時,單片機訪問內(nèi)部程序存儲器;當(dāng)EA保持低電平時,則不管是否有內(nèi)部程序存儲器,只訪問外部存儲器。對于現(xiàn)今的絕大部分單片機來說,其內(nèi)部的程序存儲器 一般為flash )容量都很大,因此基本上不需要外接程序存儲器,而是直接使用內(nèi)部的存儲器。在本實驗套件中,EA管腳接到了 VCC上,只使用內(nèi)部的程序存儲器。這一點一定要注意,很多初 學(xué)者常常將EA管腳懸空,從而導(dǎo)致程序執(zhí)行不正常。4. P0 口外接上拉電阻51單片機的P0端口為開漏輸出,內(nèi)部無上拉電阻 見圖3 )。所以在當(dāng)做普通I/O輸出數(shù)據(jù)時,因為V2截止,輸岀級是漏極開路電路,要使“1信號 即高電

10、平)正常輸岀,必須外接上拉電阻。另外,避免輸入時讀取數(shù)據(jù)岀錯,也需外接上拉電阻。在這里簡要的說下其原因:在輸入狀態(tài)下,從鎖存器和從引腳上讀來的信號一般是一致的,但也有例外。例如,當(dāng)從內(nèi)部總線輸岀低電平后,鎖存器Q=0,Q = 1,場效應(yīng)管V1開通,端口線呈低電平狀態(tài)。此時無論端口線上外接的信號是低電平還是 高電平,從引腳讀入單片機的信號都是低電平,因而不能正確地讀入端口引腳上的信號。又如,當(dāng)從內(nèi)部 總線輸岀高電平后,鎖存器 Q = 1, Q = 0,場效應(yīng)管V1截止。如外接引腳信號為低電平,從引腳上讀入的信號就與從鎖存器讀入的信號不同。所以當(dāng)P0 口作為通用I/O接口輸入使用時,在輸入數(shù)據(jù)前,

11、應(yīng)先向P0 口寫“1”此時鎖存器的Q端為“0”使輸出級的兩個場效應(yīng)管 V1、V2均截止,引腳處于懸浮 狀態(tài),才可作高阻輸入。總結(jié)來說:為了能使 P0 口在輸出時能驅(qū)動 NMOS電路和避免輸入時讀取數(shù)據(jù)出錯,需外接上拉電 阻。在本實驗套件中采用的是外加一個10K排阻。此外,51單片機在對端口 P0 P3的輸入操作上,為避免讀錯,應(yīng)先向電路中的鎖存器寫入“1”,使場效應(yīng)管截止,以避免鎖存器為“0”狀態(tài)時對引腳讀入的干擾。5. LED 驅(qū)動電路細(xì)心的讀者可能已經(jīng)發(fā)現(xiàn),在最小系統(tǒng)中,發(fā)光二極管LED )的接法是采取了電源接到二極管正極再經(jīng)過1K電阻接到單片機I/O 口上的 見圖4中的接法1 )。為什么

12、這么接呢?首先我們要知道LED的發(fā)光工作條件,不同的 LED其額定電壓和額定電流不同,一般而言,紅或綠顏色的LED的工作電壓為1.7V2.4V ,藍(lán)或白顏色的 LED工作電壓為2.74.2V ,直徑為3mm LED 的工作電流2mA10mA 。在這里采用紅色的 3mm 的LED。其次,51單片機 如本實驗板中所使用的STC89C52 單片機)的I/O 口作為輸出口時,拉電流 向外輸出電流)的能力是 卩A級別,是不足以點 亮一個發(fā)光二極管的。而灌電流 往內(nèi)輸入電流)的方式可高達 20mA,故采用灌電流的方式驅(qū)動發(fā)光二極管。當(dāng)然,現(xiàn)今的一些增強型單片機,是采用拉電流輸岀接法2)的,只要單片機的輸岀

13、電流能力足夠強即可。另外,圖4中的電阻為1K阻值,是為了限制電流,讓發(fā)光二極管的工作電流限定在2mA10mA接法2四、程序設(shè)計在單片機編程語言上,有 C語言和匯編兩種選擇。本系列教程米用C語言編寫程序,在此對C語言和匯編語言在進行單片機開發(fā)時進行下簡單比較,匯編語言面向硬件,要求對硬件的特性如寄存器之類的 比較熟悉,執(zhí)行效率高,但可讀性和移植性差,不同的單片機之間的程序不能通用,例如學(xué)會了51單片機的匯編指令,卻沒法用到AVR單片機上。C語言面向過程,可讀性和移植性很好,效率要比匯編低一些。對于剛接觸單片機的人來說,學(xué)習(xí)這兩種語言是一樣的,但在以后的開發(fā)效率上,C語言的優(yōu)勢就體現(xiàn)出來了,其可以

14、幾乎完全不改動的情況下移植,大大提高了開發(fā)速度。控制發(fā)光二極管D1閃爍的C語言源程序:1. 程序詳細(xì)說明1 )頭文件包含。程序接下來調(diào)用的P0_0就是該頭文件中定義好的一個寄存器地址。在對單片機內(nèi)部的寄存器操作之前,應(yīng)申明其來處,有興趣的讀者可以看看AT89X52.h 文件中的內(nèi)容。2 )宏定義led,便于直觀理解也便于程序修改,將P0_0 口命名為led,這樣在程序中就可以用led代替P0_0 口進行操作。3 )延時函數(shù)聲明。函數(shù)在調(diào)用之前必須進行聲明,因為函數(shù)定義放在主函數(shù)之后,所以在主函數(shù) 之前對延時函數(shù)進行了聲明。4 )主函數(shù)入口。主函數(shù)不傳遞參數(shù)也不返回值。5 )死循環(huán)。6 )輸出高

15、電平,led不亮。7 )延時一段時間,以便人眼能夠直觀看到。8 )輸出低電平,led點亮。9 )延時一段時間。10 )延時函數(shù)定義。11 ) for語句循環(huán)延時。2. 程序流程圖與實驗現(xiàn)象程序流程如圖5所示。經(jīng)編譯軟件keil )編譯,生成單片機燒寫文件,然后就可下載到單片機內(nèi)部 運行了,硬件電路板如圖 6所示,本實驗板上用的是 STC89C52RC ,可以用通過板載 USB轉(zhuǎn)串口燒寫 程序。故將USB線 本實驗套件中有)連接電腦和實驗板。供電電源可以從USB取,也可以從外部電源取電。冷啟動,即先點擊下載,然后再上電。下載程序到單片機內(nèi)運行后,可以看到實驗板上P0_0 口外接的LED燈D1)一

16、亮一滅的閃爍。圖5程序流程圖圖6硬件電路板圖五、總結(jié)本講主要介紹了 51單片機最小系統(tǒng)的設(shè)計以及編寫第一個簡單的程序。從過該實驗,可以掌握單片 機的開發(fā)流程,從而快速入門。在該講中應(yīng)該注意幾個問題:1. 本講座中采用C語言編寫程序,因為 C語言的可讀性和可移植性強。若讀者沒有學(xué)過C語言, 則應(yīng)去了解和掌握相應(yīng)的 C語言知識。C語言易學(xué)易用,相信很快就能熟練。2. 程序編譯軟件采用的是 Keil。限于篇幅的原因,在這里就不對其進行講述,如果讀者有對其不明白的地方,可以到本刊論壇的單片機版面,作者制作了一個詳細(xì)的Keil入門教程。我們通過 Keil編譯程序,最終生成燒寫單片機的Hex代碼文件。Ke

17、il軟件界面如圖7所示,中間空白區(qū)域為代碼區(qū),左側(cè)為項目列表,最下面為消息窗口。圖7 Keil軟件開發(fā)界面3. 本實驗板上所用的STC單片機通過串口下載程序。其上位機軟件界面如圖8所示 F: u vnMMt* n; |c3刪皿給弼 vmoaaMmmaon mca wmirtHg啊右卞科附0丁啊電dirtii* if 1M|l 廠 n/fl-EK iE/|Ug|K盹 (HT WwiEU m piv * Ml runH fl TI m.st 可輯罰TFMllflLITS - n浮堂密上&下 t*J皿ZT町.:_:廠 wiffttricuh iswaw?1iTSihii. lAmi/Itf limn

18、 nim as ma m ar arolu k:lfaD -vd如訥洌舸個即財個鴉即卿如如轉(zhuǎn)駒厲 mU3 ( 如 W (N CN 血 W (M (M 00 伽 W 即(N 嗣I 加(nmcfl w 帥 oaoocn Di m m( w do -J dn-M 側(cè)他n聞(H IM如 M曲腳側(cè)血(K3CO(IM00COWINIW倔加D)(nncm()0ooncdwijn(wmw如“MINmOJ電IM|J30Q如!JJIBD?i%noMi 加oamcnw帥oaoacnu imm(w妣聞 側(cè)他 M歯(H IM如 M妙側(cè)時d M厘I的| wXfl切置iffijoda)聞個(BogajM如鴉圍OHOO Hl聞OS 即側(cè)側(cè)如園M皴血如即IM嗣 imiN 耐 備 側(cè)m i帥閒如 的im n m m(M w! 切如4訓(xùn)國換個蟲購團歸如聞轉(zhuǎn)厲卿9Mi

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論