基本結構
51 單片機最初是由Intel 公司開發設計的,但後來Intel 公司把51 核的設計方案賣給了幾家大的電子設計生產商,譬如 SST、Philip、Atmel 等大公司。如是市面上出現了各式各樣的但均以51 為核心的單片機,倒是Intel 公司自己的單片機卻顯得遜色了。這些各大電子生產商推出的單片機都兼容51 指令、並在51 的基礎上擴展一些功能而內部結構是與51 一致的。
結構框架
PC 機的CPU 是基於馮諾伊曼的體系結構,然而MCU(單片機)、Dsp(數位訊號處理器)都是基於哈佛結構的體系結構。哈佛結構與馮諾伊曼結構有很大的不同,在馮諾伊曼體系結構下只有一個地址空間,ROM 和RAM 可以隨意安排在這一地址範圍內的不同空間,即ROM 和RAM 地址統一分配。CPU 訪問存儲器時,一個地址對應唯一的存儲單元,可能是ROM,也可能是RAM。而哈佛結構下ROM 和RAM 是分開編址,即程式和數據分開保存,訪問時用不同的指令加以區分,並可同時訪問,在這樣的體系結構下有利於提高指令的執行速度。在後面的章節我們將詳細介紹單片機的存儲器配置。
(1) 一個8 位的微處理器(CPU)。
(2) 片內數據存儲器RAM(128B/256B),用以存放可以讀/寫的數據,如運算的中間結果、最終結果以及欲顯示的數據等,SST89 系列單片機最多提供1K 的RAM。
(3) 片內程式存儲器ROM/EPROM(4KB/8KB),用以存放程式、一些原始數據和表格。但也有一些單片機內部不帶ROM/EPROM,如8031,8032,80C31 等。目前單片機的發展趨勢是將RAM 和ROM 都集成在單片機裡面,這樣既方便了用戶進行設計又提高了系統的抗干擾性。SST 公司推出的89 系列單片機分別集成了16K、32K、64K Flash 存儲器,可供用戶根據需要選用,讀者可查看書的後面部分。
(4) 四個8 位並行I/O 接口P0~P3,每個口既可以用作輸入,也可以用作輸出。
(5) 兩個定時器/計數器,每個定時器/計數器都可以設定成計數方式,用以對外部事件進行計數,也可以設定成定時方式,並可以根據計數或定時的結果實現計算機控制。為方便設計串列通信,目前的52 系列單片機都會提供3 個16 位定時器/計數器。
(6) 五個中斷源的中斷控制系統。現在新推出的單片機都不只5 箇中斷源,例如SST89E58RD 就有9 箇中斷源。
(7) 一個全雙工UART(通用異步接收傳送器)的串列I/O 口,用於實現單片機之間或單機與微機之間的串列通信。
(8) 片內振盪器和時鐘產生電路,但石英晶體和微調電容需要外接。最高允許振盪頻率為12MHz。SST89V58RD 最高允許振盪頻率達40MHz,因而大大的提高了指令的執行速度。
以上各個部分通過內部數據匯流排相互連線。
8051 單片機內部結構如圖2-2 所示。一個完整的計算機應該由運算器、控制器、存儲器(ROM 及RAM)、數據匯流排和I/O 接口組成。一般微處理器(如8086)就只包括運算器和控制器兩部分。和一般微處理器相比,8051 增加了四個8 位I/O 口、一個串列口、4KB ROM、128BRAM、很多工作暫存器及特殊功能暫存器(SFR),所以單片機具有比微處理器更強大的控制功能,單片機是專為進行控制設計的,而常見的微處理器是用於運算功能的,下圖各部分的功能描述。