單片機簡介

單片機簡介


單片機簡介

數字電路簡介

在一個控制系統中, 單片機是電路的一部分, 單片機中的程序是針對其所在的電路編寫

的。因此,要對單片機編程並實現一定的功能,必須瞭解整個系統的電路圖。單片機編程是

針對某個特定的電路進行的單片機編程是針對某個特定的電路進行的, 這一點和普通的編程不一樣。 編程時很可能要經常參照電路圖。與單片機直接相關的電路大都是數字電路。 數字電路各部分的功能十分明確, 因此相對比較容易掌握。

簡單地說,數字電路就是隻有“0”和“1”兩種信號的電路。判別信號究竟是“0”還

是“1”是通過電壓的大小(常稱作“電平” )來判斷的。不同的數字器件的電平判斷標準是

不一樣的。常用的數字器件以高電平(超過某一閾值的電平)作為邏輯“1” ,以低電平(低

於某一閾值的電平)作為邏輯“0” 。其中高電平閾值大於低電平閾值,處於高電平閾值與低

電平閾值之間的電壓是無效的。 高電平閾值與低電平閾值的具體值與數字器件的供電電壓有

關,如 AT89S51 單片機的高電平閾值為(0.2Vcc+0.9)V,低電平閾值為(0.2Vcc-0.1)V,

其中 Vcc 為單片機的供電電壓。 早年常用的數字器件的額定供電電壓為 5V, 現在 3.3V、 1.8V

等電壓的數字器件已經大量使用了。在 Easy 51 Kit Pro 中,我們仍使用 5V 供電的單片機。

另外,還有一種 RS-232 電平標準,以-12V~-5V 作為邏輯“1” ,以 5V~12V 作為邏輯“0” 。

電腦上的串口都符合 RS-232 標準。還有一個“地”的概念。在電路中“地”並不是通常意義中的地,而是指電路中的一點,這一點的電壓被人為地規定為 0V。

MCS-51 單片機簡介


單片機簡介


目前生產單片機產品的公司非常多, 當中較有影響力的有 intel 公司推出的 MCS-51 系

列等。很多公司的產品都是與 MCS-51 架構兼容(MCS-51 compatible)的。本資料中採用的

atmel 公司的 AT89C51/52 或 AT89S51/52 單片機,就是兼容 MCS-51 架構的單片機。

Atmel 公司的 AT89C51( 以後簡稱“C51”)、AT89C52( 以後簡稱“C52”)、AT89C2051

( 以後簡稱“C2051”)以及 C51、C52 的換代產品 AT89S51( 以後簡稱“S51”)、AT89S52

( 以後簡稱“S52”)容易上手、價格低廉(不超過 10 元/片)、資料豐富,是初學者入門

時廣泛採用的單片機。

C51 擁有 4096 字節(1 字節=8 位)的片內程序存儲器、128 字節的 RAM、32 個 I/O 口、

兩個定時器、6 箇中斷源、一個串口等。C52、C2051 的資源與 C51 差別不大,其中 C52 的片

內程序存儲器為 8192 字節、RAM 為 256 節、定時器有 3 個,其它與 C51 一樣; C2051 的片

內程序存儲器為 2048 字節、I/O 口只有 15 個,另比 C51 多了一個模擬比較器,工作電壓範

圍比較寬,為 2.7V~6V(C51/52、S51/52 為 4.5~5.5V),其它與 C51 一樣。

I/O、 定時器、 中斷、 串口等資源的用法在後面有詳細介紹。 這裡只對程序存儲器與 RAM

作一下說明。單片機程序代碼經過編譯(C 程序)或彙編(彙編程序)後,要把編譯或彙編

得到的代碼文件(一般來說編譯得到 hex 格式文件、彙編得到 bin 格式文件)燒寫到單片機

內,存放這個程序的地方就是程序存儲器。顯而易見,單片機的程序存儲器越大,我們就可

以把越大、越複雜的程序放進去。如果我們編寫的程序太大,那麼單片機的程序存儲器就有

可能會放不下這個程序。這時,解決辦法就只有精簡代碼、外接程序存儲器(前提是所用的

單片機支持使用外部程序存儲器)或採用程序存儲器容量更大的單片機。RAM 是單片機程序

運行時存放變量的地方,常量也可以放在 RAM 中。C51 中的 RAM 大小為 128 字節,這就是說

單片機程序中最多隻能同時存在 128 個 unsigned char 型的變量或 64 個 unsigned int 型的

變量(在 Keil 環境中,int 型變量的長度為 16 位,這與 VC 的 32 位不一樣)或者是相應的

中國科學技術大學業餘無線電協會 各種不同類型變量的組合。 可以看出, 單片機程序所允許的規模比 Windows 或其它操作系統環境下的程序要小得多。編寫單片機程序時一定要注意不要濫用資源。

S51 與 S52 分別是 C51、C52 的換代產品。從用戶的角度看,S5x 單片機比相對應的 C5x

單片機多了看門狗與在線編程 (ISP) 功能, 另外最高運行速度有所增加 (C5x 最高支持 24MHz

的時鐘頻率, 而 S5x 最高支持 33MHz 的時鐘頻率, 但市面上比較容易買到的 S5x 單片機仍只

最高支持 24MHz 的時鐘頻率)。看門狗的使用在後面會有詳細介紹,我們來看看單片機的在線編程(ISP)功能。要把程序燒寫到 AT89C 系列單片機中, 最常用的做法是把單片機插入專用的編程器中, 通過編程器把程序燒到單片機裡。 這樣做的麻煩之處是在調試程序時, 編程者對程序作出的每次修改,都要把單片機從電路中拔出來,插到編程器,燒好後又要把單片機重新插回電路板。可以想

象,這種工作是吃力不討好的。利用 S5x 單片機的 ISP 功能,我們就無須來回插拔單片機,

只要在電路中把單片機的 ISP 編程引腳接出來, 並且這幾個引腳所接的外圍電路對 ISP 沒有

影響,就可以用 ISP 編程器對單片機進行燒寫了。另外,支持 AT89C 系列單片機的編程器成

本要比 ISP 下載線高最少幾倍。一根並口 ISP 下載線的成本僅幾元錢。

除了 S 系列、C 系列外,atmel 公司的 MCS-51 兼容產品也有其它系列,它們的主要區

別在於供作電壓範圍,在此就不作介紹了。

值得注意的是,一片單片機可以反覆擦寫的次數是有限的,atmel 的 C 系列、S 系列單

片機的聲稱可重複擦寫次數為 1000 次。

下面以 S52 為例,對其引腳功能一一作出說明。C51、C52 以及 S51 的引腳功能與 S52

大致相同,如有遇到不同的地方會用 粗斜體字 特別說明。


單片機簡介

單片機程序指令的執行是以振盪器的振盪來驅動的。在MCS-51架構中,每12個振盪器

週期組成一個指令週期(或稱機器週期)。單片機執行指令的時間是以指令週期為單位的。

不同指令的執行時間可能是不同的,一條指令的執行時間最短為一個指令週期。

在MCS-51架構中,每12個振盪器

週期組成一個指令週期(或稱機器週期)。單片機執行指令的時間是以指令週期為單位的。

不同指令的執行時間可能是不同的,一條指令的執行時間最短為一個指令週期。因此,單

片機所接的振盪器頻率越高,它執行指令的速度就越快。

型號同樣為AT89S52的芯片,在其後面還有頻率編號,有24MHz和33MHz等可選。讀者在

購買和選用時要注意了。 如AT89S52 24PC就是最高振盪頻率為24MHz,40P6封裝的普通商用芯

片。單片機芯片後綴的詳細含義可見相應單片機數據手冊的Ordering Information。

復位 RST 9


單片機簡介

復位


在振盪器運行時,有兩個機器週期(24個振盪週期)以上的高電平出現在此引腳時,將

使單片機復位,只要這個引腳保持高電平,單片機便一直處於復位狀態。復位後P0~P3口均

置1,引腳表現為高電平,程序計數器和特殊功能寄存器SFR全部清零。當復位引腳由高電平

變為低電平時,芯片從ROM的00H處開始運行程序。復位操作不會對內部RAM有所影響。常用

的復位電路如圖2.4所示。當單片機上電時,由於電容的作用,RST引腳會處於短暫的高電平

狀態,直到電容充電到一定程度時,RST引腳的電平會被8.2K的電阻拉低,單片機開始運行

程序。圖中的按鍵為手動復位按鍵,當按下復位按鍵後,RST引腳會被1K的電阻上拉至高電

平, 單片機復位, 按鍵鬆開後, RST恢復低電平, 單片機重新從程序存儲器的00H處運行程序。

手動復位按鍵在單片機的最小系統中並不是必須的,但對單片機的復位控制會方便些。


單片機簡介

常用的復位電路


輸入輸出引腳

(1)P0端口[P0.0~P0.7] P0是一個8位漏極開路型雙向I/O端口, 端口置1 (對端口寫1)

時作高阻抗輸入端端口置1 (對端口寫1)時作高阻抗輸入端。作為輸出口時能驅動8個TTL。 P0端口要外接上拉電阻。

(2)P1端口[P1.0~P1.7] P1是一個帶有內部上拉電阻的8位雙向I/0端口。 輸出時可驅

動4個TTL。 端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash程序存

儲器編程時,接收低8位地址信息。除此之外P1端口還用於一些專門功能,

3)P2端口[P2.0~P2.7] P2是一個帶有內部上拉電阻的8位雙向I/0端口。 輸出時可驅

動4個TTL。 端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash程序存

儲器編程時,接收高8位地址和控制信息。在訪問外部程序和16位外部數據存儲器時,P2口

送出高8位地址。而在訪問8位地址的外部數據存儲器時其引腳上的內容在此期間不會改變。

(4)P3端口[P3.0~P3.7] P2是一個帶有內部上拉電阻的8位雙向I/0端口。 輸出時可驅

動4個TTL。 端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash程序存

儲器編程時,接控制信息。除此之外P3端口還用於一些專門功能,

其它的控制或複用引腳

(1)ALE/-PROG 30 訪問外部存儲器時,ALE(地址鎖存允許)的輸出用於鎖存地址的

低位字節。 即使不訪問外部存儲器, ALE端仍以不變的頻率輸出脈衝信號(此頻率是振盪器頻

率的1/6)。在訪問外部數據存儲器時,出現一個ALE脈衝。對Flash存儲器編程時,這個引腳

用於輸入編程脈衝PROG。

(2)PSEN 29 該引腳是外部程序存儲器的選通信號輸出端。 當S52由外部程序存儲器取

指令或常數時,每個機器週期輸出2個脈衝即兩次有效。但訪問外部數據存儲器時,將不會

有脈衝輸出。

(3)-EA/Vpp 31 外部訪問允許端。當該引腳訪問外部程序存儲器時,應輸入低電平。

要使S52只訪問外部程序存儲器(地址為0000H-FFFFH),這時該引腳必須保持低電平。當使

用內部的程序存儲器時,此引腳應與Vcc相連。當使用內部的程序存儲器時,此引腳應與Vcc相連。對Flash存儲器編程時,用於施加Vpp編程電壓。

C2051 的引腳功能與 C51 相仿,在此不另外介紹了


分享到:


相關文章: