目前,單片機(jī)型號種類繁多,以其優(yōu)越的控制性能在自動化控制領(lǐng)域占有重要地位。如今單片機(jī)無處不在,像我們的電冰箱、空調(diào)、洗衣機(jī)都是單片機(jī)在內(nèi)部控制,當(dāng)然,他們所用的單片機(jī)是定制的,并不是我們學(xué)習(xí)時使用的單片機(jī)。除此不同品牌的單片機(jī)芯片采用的內(nèi)核也會不同,比如INTEL公司的MCS-51內(nèi)核(代表芯片:AT89系列、國產(chǎn)STC系列等),ARM公司的高性能”Cortex-M3”內(nèi)核(代表芯片:STM32系列)等。因?yàn)閮?nèi)核的差異,使得他們在使用中也會有所不同。
對于初學(xué)者來說,51單片機(jī)中的STC89C52是很不錯的選擇,因?yàn)樗阋耍▎纹瑑r格在8RMB左右),而且相對容易學(xué)習(xí)。接下來將以這款芯片為例介紹51單片機(jī)。

首先簡單介紹這款芯片:
1.STC89C52是STC公司(中國深圳宏晶科技公司)生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有8K字節(jié)系統(tǒng)可編程Flash存儲器(8K對單片機(jī)來說不小了,當(dāng)然不能跟我們的手機(jī)比),使用MCS-51內(nèi)核,指令代碼完全兼容傳統(tǒng)8051。
2.工作電壓范圍很廣(這里只介紹5V版本),在3.3V~5.5V之間都能工作,但是電壓越高,工作電流也會更大,通俗的說,如果用單片機(jī)點(diǎn)亮一顆LED燈,使用5.5V供電,燈的亮度要比3.3V供電時亮,耗電也會更多。
3.通用I/O 口(4x8=32個),復(fù)位后為:P1/P2/P3 是準(zhǔn)雙向口/弱上拉, P0 口是漏極開路輸出,作為 I/O 口用時,需加上拉電阻。(除非某I/0口置零,否則它就輸出高電平)
4.工作頻率范圍:0~40MHz,相當(dāng)于普通8051 的0~80MHz,實(shí)際工作 頻率可達(dá)48MHz,其工作頻率取決于晶振頻率,我們常用的是12MHz、11.0592MHz。
5.ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程 序。在學(xué)習(xí)過程中,我們只要使用ISP即可,也就是制作好電路板之后,只要把RxD/P3.0,TxD/P3.1通過排針引出來,我們就可以通過USB-TTL把程序燒錄到單片機(jī),不需要再把單片機(jī)芯片從系統(tǒng)板上取出來。
6.共3 個16 位定時器/計(jì)數(shù)器。即定時器T0、T1、T2
其他參數(shù)就不詳細(xì)介紹,其資料可自行在網(wǎng)上查閱。
首先需要了解這款芯片的引腳圖,才能根據(jù)引腳連接各種元件。(暫時只標(biāo)注常用的的功能)
接下來詳細(xì)探討各模塊:
** 1,I/O口**
I/O口即輸入輸出口,是單片機(jī)用來輸出或者輸入信號的端口。STC89C52共有四組(P0、P1、P2、P3),每組8個(每組I/O口能同時輸出8位二進(jìn)制數(shù)。其CPU計(jì)算時的數(shù)據(jù)寬度正好也是八位,所以該芯片為8位控制器),共32個I/O口。
單片機(jī)所有I/O口默認(rèn)狀態(tài)都是高點(diǎn)平,除非在程序里將其置0,這樣的設(shè)定可以讓單片機(jī)運(yùn)行更穩(wěn)定。
通常,I/O口都會連接上拉電阻,其目的一是使單片機(jī)運(yùn)行穩(wěn)定,二是提高單片機(jī)驅(qū)動能力,即讓單片機(jī)能控制更大的負(fù)載。上拉電阻我們常用阻值為10K的9P排阻即可(其大小在1~10K都可,電阻小可提高驅(qū)動能力,電阻大可以降低功耗)。它有9個引腳,一個為公共端,另外八個引腳與I/O口相連。其結(jié)構(gòu)及接線圖如下圖所示。注意,除了上拉電阻,還有下拉電阻,上拉電阻的公共端是接VCC,下拉電阻的公共端是接GND。
2.時鐘電路
這里的時鐘并不是我們所說的鐘表,而是指一種信號(理想的時鐘信號就是矩形波,或者說脈沖波)。從數(shù)字電子技術(shù)中學(xué)習(xí)知道,在邏輯電路中,必須依靠時鐘信號才能工作(例如觸發(fā)器,每收到一個時鐘信號,就動作一次),單片機(jī)其實(shí)就可以看成就是一個集成化的邏輯電路。所以我們需要外接時鐘電路,來讓單片機(jī)工作。
時鐘電路的核心是晶振,它是一種可以產(chǎn)生穩(wěn)定震蕩頻率的電子元件。它的基本參數(shù)是震蕩頻率,單位為MHz,其參數(shù)決定了單片機(jī)的工作頻率。其數(shù)值一般刻在晶振元件上面。常用的單片機(jī)晶振主要有12.000MHz和11.0592MHz,當(dāng)程序中使用了定時器,使用11.0592MHz晶振可以定時更準(zhǔn)確。
時鐘電路除了晶振還有兩個瓷片電容(30pF),這兩個電阻可以起到微調(diào)頻率的作用。
晶振電路有兩個端口XT1和XT2,將這兩個端口分別與單片機(jī)的18腳(XTAL2)、19腳(XTAL1)相連即可為單片機(jī)提供時鐘信號(這兩個端口沒有順序,可以隨意連接)。
3.復(fù)位電路
復(fù)位電路說白了就是用來重啟單片機(jī),使單片機(jī)初始化,重新開始執(zhí)行程序。當(dāng)單片機(jī)因程序問題出現(xiàn)故障(比如程序中出現(xiàn)不可控的死循環(huán)),可通過復(fù)位電路向單片機(jī)第9腳RET發(fā)送一個復(fù)位信號,單片機(jī)就可自行復(fù)位。這個復(fù)位信號是一個連續(xù)2個機(jī)器周期(24個時鐘周期)的高電平。也就是單片機(jī)的RES腳如果連續(xù)兩個機(jī)器周期都是被置于高電平,單片機(jī)就會自動復(fù)位。
所以最簡單的復(fù)位電路就是上圖所示。按下開關(guān)K,VCC接入單片機(jī)RST,兩個機(jī)器周期后,單片機(jī)復(fù)位。(實(shí)際使用中,你按下按鈕立刻松開,這段時間已經(jīng)遠(yuǎn)超過兩個機(jī)器周期,所以按下復(fù)位鍵不需要停頓再松開)如果一直按著復(fù)位鍵,單片機(jī)則不會進(jìn)入工作狀態(tài),只有松開復(fù)位鍵單片機(jī)才開始工作。
一般來說,單片機(jī)上電以后自動從程序開頭執(zhí)行,所有寄存器也是初始值,上電之后立即執(zhí)行程序本是沒有問題的。但是在一些復(fù)雜的電路中,單片機(jī)的外接電路很多,有時候會有電容電感之類的,他們上電之后并不能立即進(jìn)入工作狀態(tài),他們有個“充電”過程,雖然時間短,但是單片機(jī)執(zhí)行一條指令是微秒級的,很容易讓單片機(jī)誤判,出現(xiàn)意想不到的錯誤。如何避免這種現(xiàn)象?
請?jiān)O(shè)想:如果單片機(jī)上電之后,不立即進(jìn)入工作狀態(tài),而是停頓“一會兒”,等其他元件充電完畢,再進(jìn)入工作狀態(tài),那就可以躲開上電初期的不穩(wěn)定因素,從而避免誤判。
那如何實(shí)現(xiàn)這個停頓呢?這就依賴于復(fù)位電路的上電自動復(fù)位了。
上面是單片機(jī)常用的復(fù)位電路。
其原理涉及到電路原理中的KCL定律和一階電路的零狀態(tài)響應(yīng),不感興趣可略過。
上電后,電解電容C1充電,其電壓變化為 [式1],
而RET處的電位即對地電壓,可以看到,電阻R9的電壓在數(shù)值上正好等于RET的電位,
根據(jù)基爾霍夫電壓定律,R9的電壓=電源電壓-電容C1電壓,即,
式中的τ為時間常數(shù),其值為τ=RC=1000X22/1000000=22ms,其電壓變化曲線如圖(簡略繪制,僅供參考):
可以看到在很長一段時間里(其實(shí)不到20ms),Ur都保持在較高的電位,也就是RET為高電平(3.7V以上電壓單片機(jī)都認(rèn)為是高電平),在這段時間,足夠單片機(jī)躲過上電初期的不穩(wěn)定。當(dāng)Ur的電壓減小到不足以讓單片機(jī)判定為高點(diǎn)平,復(fù)位失效,單片機(jī)工作。
可以看到這種復(fù)位電路也能手動復(fù)位,按下開關(guān)S1,電容C1通過R10放電,松開S1,電容C1又開始充電,其情形與上電復(fù)位相同,RET接收到高電平,單片機(jī)復(fù)位。
所以復(fù)位電路的作用一是開機(jī)自動復(fù)位,躲過上電時的不穩(wěn)定;二是手動復(fù)位,在單片機(jī)運(yùn)行出錯時使用。
4.其他引腳
并行串口:第10、11腳是單片機(jī)的并行串口,作用就是燒錄程序。注意這兩腳是P3.0、P3.1復(fù)用了。燒錄程序需要用到燒錄工具USB-TTL。
實(shí)際的USB-TTL有很多型號,有的型號有10個引腳,但燒錄程序只需用到四個(VCC、GND、RXD、TXD)。所以我們需要四根杜邦線,首先,將轉(zhuǎn)換工具上的VCC、GND與單片機(jī)系統(tǒng)板的VCC、GND連接,然后把燒錄工具的RXD與單片機(jī)的TXD連接,燒錄工具的TXD與單片機(jī)的RXD連接。因?yàn)閮蓚€引腳一個是發(fā)送數(shù)據(jù),一個是接收數(shù)據(jù),轉(zhuǎn)換工具發(fā)送數(shù)據(jù)(TXD),單片機(jī)自然是接收數(shù)據(jù)(RXD),反之同理。另外,燒錄程序還需用到軟件STC-ISP,這是專門用于STC系列單片機(jī)的燒錄軟件。
存儲器選通:單片機(jī)的31腳是存儲器選通EA,單片機(jī)內(nèi)部存儲空間很小,如果需要擴(kuò)展空間,就需要用到這個功能。當(dāng)EA置于高電平,單片機(jī)從內(nèi)部存儲器開始執(zhí)行程序;當(dāng)EA置于低電平,單片機(jī)則從外部存儲器開始執(zhí)行程序。對初學(xué)者來說,我們使用內(nèi)部存儲器就足夠了,所以可以直接將EA接VCC。
同樣,第30腳ALE為地址鎖存信號,也是在有外部存儲器是使用,不用時將其懸空即可;29腳PSEN為外部存儲器讀選通信號,同樣將其懸空。另外的40腳、20腳分別接電源正極、負(fù)極(地)不用多說了。
-
微控制器
+關(guān)注
關(guān)注
48文章
7904瀏覽量
153687 -
存儲器
+關(guān)注
關(guān)注
38文章
7633瀏覽量
166390 -
STC89C52
+關(guān)注
關(guān)注
41文章
330瀏覽量
82840 -
51單片機(jī)
+關(guān)注
關(guān)注
277文章
5709瀏覽量
126539
發(fā)布評論請先 登錄
STC89C52單片機(jī)
以STC89C52為例來介紹51單片機(jī)
基于STC89C52單片機(jī)的控制系統(tǒng)設(shè)計(jì)

STC89C52單片機(jī)串口的復(fù)用資料說明

使用51單片機(jī)STC89C52進(jìn)行串口接收的程序免費(fèi)下載

單片機(jī)STC89C52

STC89C52單片機(jī)

評論