本章的標(biāo)題是點亮LED,雖然任務(wù)很簡單,但是需要了解的單片機基礎(chǔ)知識卻很多,特別是對于初學(xué)者,剛開始要在頭腦中建立一個單片機的概念,然后通過點亮一個LED小燈來增加初學(xué)者對單片機的興趣和自信。
1.1單片機的內(nèi)部資源
在這里所講到的單片機內(nèi)部資源,和傳統(tǒng)單片機書籍中講單片機內(nèi)部結(jié)構(gòu)不同,這里講到的內(nèi)部資源,是指作為單片機用戶,單片機提供給用戶可使用的東西??偨Y(jié)起來,主要是三大資源:
(1)Flash——程序存儲空間,早期單片機是OTPROM。
(2)RAM——數(shù)據(jù)存儲空間。
(3)SFR——特殊功能寄存器。
早期的單片機中,主要是用OTPROM(One Time Programmable Read-Only Memory,即一次可編程只讀存儲器)來存儲單片機的程序,程序只能寫入一次,如果發(fā)現(xiàn)錯了,沒辦法,只能換一片重新寫入。隨著技術(shù)的發(fā)展,F(xiàn)lash以其可重復(fù)擦寫且容量大、成本低的優(yōu)點成為現(xiàn)在絕大多數(shù)單片機的程序存儲器。對于單片機來說Flash最大的意義是斷電后數(shù)據(jù)不丟失,這個概念類似于計算機的硬盤,保存了電影、文檔、音樂等文件,把電源關(guān)掉后,下次重新開計算機,所有的文件都還照樣存在。
RAM是單片機的數(shù)據(jù)存儲空間,用來存儲程序運行過程中產(chǎn)生的和需要的數(shù)據(jù),跟計算機的內(nèi)存是相似的概念,其實最典型的比喻是計算器。用計算器計算加減法,一些中間的數(shù)據(jù)都會保存在RAM里邊,斷電后數(shù)據(jù)丟失,所以每次打開計算器都是從歸零開始計算。但是它的優(yōu)點是讀寫速度非???,理論上是可無限次寫入的,即壽命無限,不管程序怎么運行怎么讀寫,它都不會壞。
第三個資源是SFR,特殊功能寄存器。這個概念可能剛開始理解不了,但需要記住。單片機有很多很多特殊功能,每個功能都會對應(yīng)一個或多個SFR,用戶就是通過對SFR的讀寫來實現(xiàn)單片機的多種多樣的功能的。
講到這里,首先來了解一下51單片機。通常一說到51單片機,指的都是兼容Intel MCS-51體系架構(gòu)的一系列單片機,而51是它的一個通俗的簡稱。全球有眾多的半導(dǎo)體廠商推出了無數(shù)款這一系列的單片機,比如Atmel的AT89C52,NXP(Philips)的P89V51,宏晶科技的STC89C52……具體型號千差萬別,但它們的基本原理和操作都是一樣的,程序開發(fā)環(huán)境也是一樣的。這里要分清楚51這個統(tǒng)稱和具體的單片機型號之間的關(guān)系。
單片機內(nèi)部資源的三個主要部分清楚了,那么就選擇STC89C52RC這款單片機來進行學(xué)習(xí)。STC89C52RC是宏晶科技出品的一款51內(nèi)核的單片機,具有標(biāo)準的51體系結(jié)構(gòu),全部的51標(biāo)準功能,程序下載方式簡單,方便學(xué)習(xí)。它的資源情況:Flash程序空間是8K字節(jié)(1K=1024,1字節(jié)= 8位),RAM數(shù)據(jù)空間是512字節(jié),SFR后邊會逐一提到并且應(yīng)用。
1.2單片機最小系統(tǒng)
什么是單片機最小系統(tǒng)呢?單片機最小系統(tǒng)是指用最少的原件組成單片機可以工作的系統(tǒng)。單片機最小系統(tǒng)的三要素就是電源、晶振、復(fù)位電路,如圖2-1所示。

圖2-1 單片機最小系統(tǒng)電路
這張最小系統(tǒng)的電路圖節(jié)選自Kingst51開發(fā)板原理圖,下面就照這張電路圖來具體分析最小系統(tǒng)的三要素。
1.2.1電源
這個很好理解,電子設(shè)備都需要供電。目前主流單片機的電源分為5V和3.3V這兩個標(biāo)準,當(dāng)然現(xiàn)在還有對電壓要求更低的單片機系統(tǒng),一般多用在一些特定場合,在學(xué)習(xí)中不做過多的關(guān)注。
STC89C52需要5V的供電系統(tǒng),Kingst51開發(fā)板是使用USB口輸出的5V直流電直接供電的。從圖2-1可以看到,供電電路在38腳和16腳的位置上,38腳接的是+5V,通常也稱為VCC或VDD,代表的是電源正極,16腳接的是GND,也可稱為VSS,代表的是電源的負極。+5V和GND之間還有個電容,作用下節(jié)課介紹。
此處普及一個看電路原理圖的知識。電路原理圖是為了表達這個電路的工作原理而存在的,很多器件在繪制的時候更多考慮的是方便原理分析,而不是表達各個器件實際位置。比如原理圖中的單片機引腳圖,引腳的位置是可以隨意放的,但是每個引腳上有一個數(shù)字標(biāo)號,這個數(shù)字標(biāo)號代表的才是單片機真正的引腳位置。
單片機通常有不同的封裝形式,所謂的不同封裝可以理解為,同樣是加了水的面,但是捏成不同的形狀的饅頭,只是表現(xiàn)形式不同,實現(xiàn)的功能完全一致。在2014年《手把手教你學(xué)51單片機--C語言版》(第1版)時所設(shè)計的Kingst51開發(fā)板采用了DIP40封裝,是一種雙列直插式的封裝形式。目前編寫第3版的時候,決定采用QFP-44的封裝形式,是一種方形扁平式,如圖2-2所示。
除部分單片機開發(fā)板還采用DIP40封裝外,當(dāng)前現(xiàn)實中的產(chǎn)品幾乎見不到這種封裝的身影了。一方面QFP封裝體積更小,密度更高,集成度更高,占據(jù)空間更少;另外一方面產(chǎn)品設(shè)計要考慮成本,QFP封裝采用SMT表面貼技術(shù)焊接,而DIP封裝采用波峰焊或者手工焊接,后者單個引腳的焊接費用接近前者的10倍。這樣一片DIP40封裝的單片機的焊接費可能都會超過一片單片機的價格,因此在實際產(chǎn)品開發(fā)當(dāng)中除特殊需求外(比如散熱性能考慮),很少采用DIP封裝形式的芯片了。無限接近實際項目,從單片機封裝選擇開始。
圖2-2可以看出,DIP封裝的1腳在其最左上角,逆時針旋轉(zhuǎn)引腳號依次增加,一直到右上角是最大引腳號40腳。QFP封裝中,有一個小圓圈的位置為1腳,逆時針旋轉(zhuǎn)引腳號依次增加,一直旋轉(zhuǎn)一圈到最大引腳號44腳。圖2-2的封裝圖就是單片機實際引腳的位置。


圖2-2 單片機封裝圖
1.2.2晶振
晶振,又叫晶體振蕩器,從這個名字就可以看出來,它注定一生都要不停振蕩的。它起到的作用是為單片機系統(tǒng)提供基準時鐘信號,類似于部隊訓(xùn)練時喊口令的人,單片機內(nèi)部所有的工作都是以這個時鐘信號為步調(diào)基準來進行工作的。STC89C52RC單片機的14腳和15腳是晶振引腳,接了一個11.0592M的晶振(它每秒鐘振蕩11059200次),外加兩個20pF的電容,電容的作用是幫助晶振起振,并維持振蕩信號的穩(wěn)定。
1.2.3復(fù)位電路
在圖2-1左側(cè)是一個復(fù)位電路,接到了單片機的4腳RST(Reset)復(fù)位引腳上,這個復(fù)位電路如何起作用后邊再講,現(xiàn)在著重講一下復(fù)位對單片機的作用。單片機復(fù)位一般分為三種情況:上電復(fù)位、手動復(fù)位、程序自動復(fù)位。
假如單片機程序有100行,當(dāng)某一次運行到第50行的時候,突然停電了,這個時候單片機內(nèi)部有的區(qū)域數(shù)據(jù)會丟失,有的區(qū)域數(shù)據(jù)可能還沒丟失。那么下次打開設(shè)備的時候,用戶希望單片機能正常運行,所以上電后,單片機要進行一個內(nèi)部的初始化過程,這個過程就可以理解為上電復(fù)位,上電復(fù)位保證單片機每次都從一個固定的相同的狀態(tài)開始工作。這個過程跟打開計算機電源開機的過程是一致的。
當(dāng)單片機的程序運行時,如果遭受到意外干擾而導(dǎo)致程序死機,或者程序跑飛的時候,就可以按下一個復(fù)位按鍵,讓程序重新初始化重新運行,這個過程就叫做手動復(fù)位,最典型的就是計算機的重啟按鈕(目前大多數(shù)電腦都沒有重啟按鈕了,而是通過長按開機鍵關(guān)閉電源的方式)。
當(dāng)程序死機或者跑飛的時候,單片機往往有一套自動復(fù)位機制,比如看門狗,具體應(yīng)用以后再了解。在這種情況下,如果程序長時間失去響應(yīng),單片機看門狗模塊會自動復(fù)位重啟單片機。還有一些情況是程序故意重啟復(fù)位單片機。
電源、晶振、復(fù)位構(gòu)成了單片機最小系統(tǒng)的三要素,也就是說,一個單片機具備了這三個條件,就可以運行下載的程序了,其他的比如LED小燈、數(shù)碼管、蜂鳴器等設(shè)備都是屬于單片機的外部設(shè)備,即外設(shè)。最終完成用戶想要的功能就是通過對單片機編程來控制各種各樣的外設(shè)實現(xiàn)的。
審核編輯 黃宇
-
led
+關(guān)注
關(guān)注
244文章
24710瀏覽量
692417
發(fā)布評論請先 登錄
天馬微電子全新12英寸Micro-LED高亮車載顯示屏成功點亮
第7章 變量進階與點陣LED(7.3 7.4)
【迅為工業(yè)RK3568穩(wěn)定可靠】itop-3568開發(fā)板驅(qū)動開發(fā)第4章驅(qū)動模塊傳參實驗
【RA4E2開發(fā)板評測】之開發(fā)環(huán)境配置和LED點亮驗證
第3章 硬件基礎(chǔ)知識學(xué)習(xí)(3.5)
第2章 點亮你的LED(2.3 2.4)
【RA4E2開發(fā)板評測】2、串口點亮LED
【RA4E2開發(fā)板評測】1、從開箱到點亮 LED
【RA4E2開發(fā)板評測】點亮LED燈
【創(chuàng)龍TLT113-MiniEVM開發(fā)板試用體驗】點亮LED
【VisionFive 2單板計算機試用體驗】GPIO口點亮LED燈
RK3568驅(qū)動指南|第十二篇 GPIO子系統(tǒng)-第130章 GPIO的調(diào)試方法
RK3568驅(qū)動指南|第十二篇 GPIO子系統(tǒng)-第135章 GPIO子系統(tǒng)與pinctrl子系統(tǒng)相結(jié)合實驗
第2章 點亮你的LED
評論