MCS-51單片機(jī)最小系統(tǒng)的組成部分及電路圖介紹
MCS-51單片機(jī)概述
MCS-51單片機(jī)是一種集成的電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的計算機(jī)系統(tǒng)。
51系列單片機(jī)的特點
-8位cpu
-片內(nèi)帶振蕩器,頻率范圍為1.2MHz~12MHz
-片內(nèi)帶128B的數(shù)據(jù)存儲器
-片內(nèi)帶4KB的程序存儲器
-程序存儲器的尋址空間為64KB
-片外數(shù)據(jù)存儲器的尋址空間為64KB
-128個用戶位尋址空間
-21個字節(jié)特殊功能寄存器
-4個8位的I/O并行接口:P0、P1、P2、P3
-兩個16位定時、計數(shù)器
-兩個優(yōu)先級別的五個中斷源
-一個全雙工的串行I/O接口,可多機(jī)通信
-111條指令,包含乘法指令和除法指令
-片內(nèi)采用單總線結(jié)構(gòu)
-有較強(qiáng)的位處理能力
-采用單一+5V電源
單片機(jī)的應(yīng)用分類
通用型
這是按單片機(jī)(Microcontrollers)適用范圍來區(qū)分的。例如,80C51式通用型單片機(jī),它不是為某種專門用途設(shè)計的;專用型單片機(jī)是針對一類產(chǎn)品甚至某一個產(chǎn)品設(shè)計生產(chǎn)的,例如為了滿足電子體溫計的要求,在片內(nèi)集成ADC接口等功能的溫度測量控制電路。
總線型
這是按單片機(jī)(Microcontrollers)是否提供并行總線來區(qū)分的。總線型單片機(jī)普遍設(shè)置有并行地址總線、 數(shù)據(jù)總線、控制總線,這些引腳用以擴(kuò)展并行外圍器件都可通過串行口與單片機(jī)連接,另外,許多單片機(jī)已把所需要的外圍器件及外設(shè)接口集成一片內(nèi),因此在許多情況下可以不要并行擴(kuò)展總線,大大減省封裝成本和芯片體積,這類單片機(jī)稱為非總線型單片機(jī)。
控制型
這是按照單片機(jī)(Microcontrollers)大致應(yīng)用的領(lǐng)域進(jìn)行區(qū)分的。一般而言,工控型尋址范圍大,運算能力強(qiáng);用于家電的單片機(jī)多為專用型,通常是小封裝、低價格,外圍器件和外設(shè)接口集成度高。 顯然,上述分類并不是惟一的和嚴(yán)格的。例如,80C51類單片機(jī)既是通用型又是總線型,還可以作工控用。
MCS-51單片機(jī)最小系統(tǒng)的組成部分及電路圖
圖2 51系列單片機(jī)最小系統(tǒng)見
下面就圖2所示的單片機(jī)最小系統(tǒng)各部分電路進(jìn)行詳細(xì)說明。
1、時鐘電路
在設(shè)計時鐘電路之前,讓我們先了解下51單片機(jī)上的時鐘管腳:
XTAL1(19腳):芯片內(nèi)部振蕩電路輸入端。
XTAL2(18腳):芯片內(nèi)部振蕩電路輸出端。
XTAL1和XTAL2是獨立的輸入和輸出反相放大器,它們可以被配置為使用石英晶振的片內(nèi)振蕩器,或者是器件直接由外部時鐘驅(qū)動。圖2中采用的是內(nèi)時鐘模式,即采用利用芯片內(nèi)部的振蕩電路,在XTAL1、XTAL2的引腳上外接定時元件(一個石英晶體和兩個電容),內(nèi)部振蕩器便能產(chǎn)生自激振蕩。一般來說晶振可以在1.2~12MHz之間任選,甚至可以達(dá)到24MHz或者更高,但是頻率越高功耗也就越大。在本實驗套件中采用的11.0592M的石英晶振。和晶振并聯(lián)的兩個電容的大小對振蕩頻率有微小影響,可以起到頻率微調(diào)作用。當(dāng)采用石英晶振時,電容可以在20~40pF之間選擇(本實驗套件使用30pF);當(dāng)采用陶瓷諧振器件時,電容要適當(dāng)?shù)卦龃笠恍?,?0~50pF之間。通常選取33pF的陶瓷電容就可以了。
另外值得一提的是如果讀者自己在設(shè)計單片機(jī)系統(tǒng)的印刷電路板(PCB)時,晶體和電容應(yīng)盡可能與單片機(jī)芯片靠近,以減少引線的寄生電容,保證振蕩器可靠工作。檢測晶振是否起振的方法可以用示波器可以觀察到XTAL2輸出的十分漂亮的正弦波,也可以使用萬用表測量(把擋位打到直流擋,這個時候測得的是有效值)XTAL2和地之間的電壓時,可以看到2V左右一點的電壓。
2、復(fù)位電路
在單片機(jī)系統(tǒng)中,復(fù)位電路是非常關(guān)鍵的,當(dāng)程序跑飛(運行不正常)或死機(jī)(停止運行)時,就需要進(jìn)行復(fù)位。
MCS-5l系列單片機(jī)的復(fù)位引腳RST(第9管腳)出現(xiàn)2個機(jī)器周期以上的高電平時,單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。
復(fù)位操作通常有兩種基本形式:上電自動復(fù)位和開關(guān)復(fù)位。圖2中所示的復(fù)位電路就包括了這兩種復(fù)位方式。上電瞬間,電容兩端電壓不能突變,此時電容的負(fù)極和RESET相連,電壓全部加在了電阻上,RESET的輸入為高,芯片被復(fù)位。隨之+5V電源給電容充電,電阻上的電壓逐漸減小,最后約等于0,芯片正常工作。并聯(lián)在電容的兩端為復(fù)位按鍵,當(dāng)復(fù)位按鍵沒有被按下的時候電路實現(xiàn)上電復(fù)位,在芯片正常工作后,通過按下按鍵使RST管腳出現(xiàn)高電平達(dá)到手動復(fù)位的效果。一般來說,只要RST管腳上保持10ms以上的高電平,就能使單片機(jī)有效的復(fù)位。圖中所示的復(fù)位電阻和電容為經(jīng)典值,實際制作是可以用同一數(shù)量級的電阻和電容代替,讀者也可自行計算RC充電時間或在工作環(huán)境實際測量,以確保單片機(jī)的復(fù)位電路可靠。
3、EA/VPP(31腳)的功能和接法
51單片機(jī)的EA/VPP(31腳)是內(nèi)部和外部程序存儲器的選擇管腳。當(dāng)EA保持高電平時,單片機(jī)訪問內(nèi)部程序存儲器;當(dāng)EA保持低電平時,則不管是否有內(nèi)部程序存儲器,只訪問外部存儲器。
對于現(xiàn)今的絕大部分單片機(jī)來說,其內(nèi)部的程序存儲器(一般為flash)容量都很大,因此基本上不需要外接程序存儲器,而是直接使用內(nèi)部的存儲器。
在本實驗套件中,EA管腳接到了VCC上,只使用內(nèi)部的程序存儲器。這一點一定要注意,很多初學(xué)者常常將EA管腳懸空,從而導(dǎo)致程序執(zhí)行不正常。
4、P0口外接上拉電阻
51單片機(jī)的P0端口為開漏輸出,內(nèi)部無上拉電阻(見圖3)。所以在當(dāng)做普通I/O輸出數(shù)據(jù)時,由于V2截止,輸出級是漏極開路電路,要使“1”信號(即高電平)正常輸出,必須外接上拉電阻。
圖3P0端口的1位結(jié)構(gòu)
另外,避免輸入時讀取數(shù)據(jù)出錯,也需外接上拉電阻。在這里簡要的說下其原因:在輸入狀態(tài)下,從鎖存器和從引腳上讀來的信號一般是一致的,但也有例外。例如,當(dāng)從內(nèi)部總線輸出低電平后,鎖存器Q=0,Q=1,場效應(yīng)管V1開通,端口線呈低電平狀態(tài)。此時無論端口線上外接的信號是低電平還是高電平,從引腳讀入單片機(jī)的信號都是低電平,因而不能正確地讀入端口引腳上的信號。又如,當(dāng)從內(nèi)部總線輸出高電平后,鎖存器Q=1,Q=0,場效應(yīng)管V1截止。如外接引腳信號為低電平,從引腳上讀入的信號就與從鎖存器讀入的信號不同。所以當(dāng)P0口作為通用I/O接口輸入使用時,在輸入數(shù)據(jù)前,應(yīng)先向P0口寫“1”,此時鎖存器的Q端為“0”,使輸出級的兩個場效應(yīng)管V1、V2均截止,引腳處于懸浮狀態(tài),才可作高阻輸入。
總結(jié)來說:為了能使P0口在輸出時能驅(qū)動NMOS電路和避免輸入時讀取數(shù)據(jù)出錯,需外接上拉電阻。在本實驗套件中采用的是外加一個10K排阻。此外,51單片機(jī)在對端口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 電阻接到單片機(jī)I/O 口上的(見圖4中的接法1)。為什么這么接呢?首先我們要知道LED 的發(fā)光工作條件,不同的LED 其額定電壓和額定電流不同,一般而言,紅或綠顏色的LED 的工作電壓為1.7V~2.4V,藍(lán)或白顏色的LED 工作電壓為2.7~4.2V, 直徑為3mm LED 的工作電流2mA~10mA。在這里采用紅色的3mm 的LED。其次,51 單片機(jī)(如本實驗板中所使用的STC89C52單片機(jī))的I/O 口作為輸出口時,拉電流(向外輸出電流)的能力是μA 級別,是不足以點亮一個發(fā)光二極管的。而灌電流(往內(nèi)輸入電流)的方式可高達(dá)20mA,故采用灌電流的方式驅(qū)動發(fā)光二極管。當(dāng)然,現(xiàn)今的一些增強(qiáng)型單片機(jī),是采用拉電流輸出(接法2)的,只要單片機(jī)的輸出電流能力足夠強(qiáng)即可。另外,圖4 中的電阻為1K 阻值,是為了限制電流,讓發(fā)光二極管的工作電流限定在2mA~10mA。