干貨|必看的單片機知識
前言
1946年2月15日,第一臺電子數字計算機 ENIAC
問世,這標志著計算機時代的到來。
ENIAC
是電子管計算機,時鐘頻率雖然僅有 100 kHz,但能在1s
的時間內完成 5000 次加法運算。與現代的計算機相比,ENIAC
有許多不足,但它的問世開創了計算機科學技術的新紀元,對人類的生產和生活方式產生了巨大的影響。
在研制 ENIAC
的過程中,匈牙利籍數學家馮·諾依曼擔任研制小組的顧問,并在方案的設計上做出了重要的貢獻。
1946年6月,馮·諾依曼又提出了 “程序存儲”和“二進制運算”的思想,進一步構建了計算機由運算器、控制器、存儲器、輸入設備和輸出設備組成這一計算機的經典結構。
電子計算機技術的發展,相繼經歷了電子管計算機、晶體管計算機、集成電路計算機、大規模集成電路計算機和超大規模集成電路計算機五個時代,但是計算機的結構仍然沒有突破馮·諾依曼提出的計算機的經典結構框架。
微型計算機的組成及其應用形態
1. 微型計算機的組成
1971 年 1 月,Intel 公司的特德·霍夫在與日本商業通信公司合作研制臺式計算器時,將原始方案的十幾個芯片壓縮成三個集成電路芯片。
其中的兩個芯片分別用于存儲程序和數據,另一芯片集成了運算器和控制器及一些寄存器, 稱為微處理器(即 Intel 4004)。微處理器、存儲器加上 I/O 接口電路組成微型計算機。各部分通過地址總線(AB)、數據總線(DB)和控制總線(CB)相連。
2. 微型計算機的應用形態
從應用形態上,微型計算機可以分成三種:多板機(系統機)、單板機和單片機。
多板機(系統機)
多板機是將微處理器、存儲器、I/O
接口電路和總線接口等組裝在一塊主機板(即微機主板)上,再通過系統總線和其它多塊外設適配板卡連接鍵盤、顯示器、打印機、軟/硬盤驅動器及光驅等設備。各種適配板卡插在主機板的擴展槽上,并與電源、軟/硬盤驅動器及光驅等裝在同一機箱內,再配上系統軟件,就構成了一臺完整的微型計算機系統,簡稱系統機。
目前人們廣泛使用的個人計算機(PC
機)就是典型的多板微型計算機。由于其人機界面好,功能強,軟件資源豐富,通常作為辦公或家庭的事務處理及科學計算,屬于通用計算機,現在已經成為社會各領域中最為通用的工具。
另外,將系統機的機箱進行加固處理,底板設計成無 CPU
的小底板結構,利用底板的擴展槽插入主機板及各種測控板,就構成了一臺工業 PC
機。由于其具有人機界面友好和軟件資源豐富的優勢,工業 PC 機常作為工業測控系統的主機。
單板機
將 CPU
芯片、存儲器芯片、I/O
接口芯片和簡單的 I/O
設備(小鍵盤、LED 顯示器)等裝配在一塊印制線路板上,再配上監控程序(固化在 ROM 中),就構成了一臺單板微型計算機,簡稱單板機。典型的產品如 TP801
。
單板機的 I/O 設備簡單,軟件資源少,使用不方便。早期主要用于微型計算機原理的教學及簡單的測控系統,現在已很少使用。
在一片集成電路芯片上集成微處理器、存儲器、I/O 接口電路,從而構成了單芯片微型計算機,即單片機。
計算機原始的設計目的是為了提高計算數據的速度和完成海量數據的計算。人們將完成這種任務的計算機稱為通用計算機。
隨著計算機技術的發展,人們發現了計算機在邏輯處理及工業控制等方面也具有非凡的能力。在控制領域中,人們更多地關心計算機的低成本、小體積、運行的可靠性和控制的靈活性。
特別是智能儀表、智能傳感器、智能家電、智能辦公設備、汽車及軍事電子設備等應用系統要求將計算機嵌入到這些設備中。嵌入到控制系統(或設備)中,實現嵌入式應用的計算機稱為嵌入式計算機, 也稱為專用計算機。
嵌入式應用的計算機可分為嵌入式微處理器(如 386EX)、嵌入式 DSP 處理器(如 TMS320 系列)、嵌入式微控制器(即單片機,如 80C51 系列)及嵌入式片上系統 SOC。
單片機體積小、價格低、可靠性高,其非凡的嵌入式應用形態對于滿足嵌入式應用需求具有獨特的優勢。
目前,單片機應用技術已經成為電子應用系統設計最為常用的技術手段,學習和掌握單片機應用技術具有極其重要的現實意義。
綜上所述,微型計算機技術的發展正趨于兩個方向,一是以系統機為代表的通用計算機,致力于提高計算機的運算速度,在實現海量高速數據處理的同時兼顧控制功能;二是以單片機為代表的嵌入式專用計算機,致力于計算機控制功能的片內集成,在滿足嵌入式對象的測控需求的同時兼顧數據處理。
單片機的發展過程及產品近況
1. 單片機的發展過程
單片機技術發展十分迅速,產品種類已琳瑯滿目??v觀整個單片機技術發展過程,可以分為以下三個主要階段:
單芯片微機形成階段
1976 年,Intel公司推出了MCS-48系列單片機。該系列單片機早期產品在芯片內集成有:8 位CPU、1K 字節程序存儲器(ROM)、64字節數據存儲器(RAM)、27 根 I/O 線和1個8 位定時/計數器。
此階段的主要特點是:在單個芯片內完成了 CPU、存儲器、I/O 接口、定時/計數器、中斷系統、時鐘等部件的集成,但存儲器容量較小,尋址范圍小(不大于 4K),無串行接口,指令系統功能不強。
性能完善提高階段
1980 年,Intel 公司推出 MCS-51 系列單片機。該系列單片機在芯片內集成有:8 位 CPU、4K 字節程序存儲器(ROM)、128 字節數據存儲器(RAM)、4個 8 位并行接口、1 個全雙工串行接口和 2 個 16 位定時/計數器。尋址范圍為64 K,并集成有控制功能較強的布爾處理器完成位處理功能。此階段的主要特點是:結構體系完善,性能已大大提高,面向控制的特點進一步突出?,F在,MCS-51 已成為公認的單片機經典機種。
微控制器化階段
1982 年,Intel 公司推出 MCS-96 系列單片機。該系列單片機在芯片內集成有:16 位 CPU、8K 字節程序存儲器(ROM)、232 字節數據存儲器(RAM)、 5 個 8 位并行接口、1 個全雙工串行接口和 2 個 16 位定時/計數器。尋址范圍最大為 64 K。片上還有 8 路 10 位 ADC、1 路 PWM(D/A)輸出及高速 I/O 部件。
近年來,許多半導體廠商以 MCS-51 系列單片機的 8051 為內核,將許多測控系統中的接口技術、可靠性技術及先進的存儲器技術和工藝技術集成到單片機中,生產出了多種功能強大、使用靈活的新一代 80C51 系列單片機。此階段的主要特點是:片內面向測控系統的外圍電路增強,使單片機可以--方便靈活地應用于復雜的自動測控系統及設備。因此,“微控制器”的稱謂更能反應單片機的本質。
2. 單片機產品近況
隨著微電子設計技術及計算機技術的不斷發展,單片機產品和技術日新月異。單片機產品近況可以歸納為以下二方面。
· 80C51 系列單片機產品繁多,主流地位已經形成 通用微型計算機計算速度的提高主要體現在 CPU 位數的提高(16 位、32 位乃至 64 位),而單片機更注重的是產品的可靠性、經濟性和嵌入性。所以,單片機 CPU 位數的提高需求并不十分迫切。而多年來的應用實踐已經證明, 80C51 的系統結構合理,技術成熟。因此,許多單片機芯片生產廠商傾力于提高 80C51 單片機產品的綜合功能,從而形成了 80C51 的主流產品地位。近年來推出的與 80C51 兼容的主要產品有:
ATMEL 公司融入 Flash 存儲器技術推出的 AT89 系列單片機;
Philips 公司推出的 80C51、80C552 系列高性能單片機;
華邦公司推出的 W78C51、W77C51 系列高速低價單片機;
LG 公司推出的 GMS90/97 系列低壓高速單片機;
Maxim 公司推出的 DS89C420 高速(50MIPS)單片機;
Cygnal 公司推出的 C8051F 系列高速 SOC 單片機等。
由此可見,80C51 已經成為事實上的單片機主流系列,所以本書以 80C51為對象,講述單片機的原理與接口方法。
· 非 80C51 結構單片機新品不斷推出,給用戶提供了更為廣泛的選擇空間在 80C51 及其兼容產品流行的同時,一些單片機芯片生產廠商也推出了一些非 80C51 結構的產品,影響比較大的有:
Intel 公司推出的 MCS-96 系列 16 位單片機;
Microchip 公司推出的 PIC 系列 RISC 結構單片機;
TI 公司推出的 MSP430F 系列 16 位低電壓、低功耗單片機;
ATMEL 公司推出的 AVR 系列 RISC 結構單片機等。
單片機的特點及應用領域
1. 單片機的特點
控制性能和可靠性高
單片機是為滿足工業控制而設計的,所以實時控制功能特別強,其 CPU 可以對 I/O 接口直接進行操作,位操作能力更是其它計算機無法比擬的。另外, 由于 CPU、存儲器及 I/O 接口集成在同一芯片內,各部件間的連接緊湊,數據在傳送時受到的干擾較小,且不易受環境條件的影響,所以單片機的可靠性非常高。近期推出的單片機產品,內部集成有高速 I/O 接口、ADC、PWM、WDT 等部件,并在低電壓、低功耗、串行擴展總線、控制網絡總線和開發方式(如在系統編程 ISP)等方面都有了進一步的增強。
體積小、價格低、易于產品化
每片單片機芯片即是一臺完整的微型計算機,對于批量大的專用場合,一方面可以在眾多的單片機品種間進行匹配選擇,同時還可以專門進行芯片設計, 使芯片功能與應用具有良好的對應關系。在單片機產品的引腳封裝方面,有的單片機引腳已減少到 8 個或更少,從而使應用系統的印制板減小,接插件減少, 安裝簡單方便。在現代的各種電子器件中,單片機具有良好的性能價格比。這正是單片機得以廣泛應用的重要原因。
2. 單片機的應用領域
由于單片機具有良好的控制性能和靈活的嵌入品質,近年來單片機在各種領域都獲得了極為廣泛的應用。概要地分成以下幾個方面:
智能儀器儀表
單片機用于各種儀器儀表,一方面提高了儀器儀表的使用功能和精度,使儀器儀表智能化,同時還簡化了儀器儀表的硬件結構,從而可以方便地完成儀器儀表產品的升級換代。如各種智能電氣測量儀表、智能傳感器等。
機電一體化產品
機電一體化產品是集機械技術、微電子技術、自動化技術和計算機技術于一體,具有智能化特征的各種機電產品。單片機在機電一體化產品的開發中可以發揮巨大的作用。典型產品如機器人、數控機床、自動包裝機、點鈔機、醫療設備、打印機、傳真機、復印機等。
實時工業控制
單片機還可以用于各種物理量的采集與控制。電流、電壓、溫度、液位、流量等物理參數的采集和控制均可以利用單片機方便地實現。在這類系統中, 利用單片機作為系統控制器,可以根據被控對象的不同特征采用不同的智能算法,實現期望的控制指標,從而提高生產效率和產品質量。典型應用如電動機轉速控制、溫度控制、自動生產線等。
分布系統的前端模塊
在較復雜的工業系統中,經常要采用分布式測控系統完成大量的分布參數的采集。在這類系統中,采用單片機作為分布式系統的前端采集模塊。系統具有運行可靠,數據采集方便靈活,成本低廉等一系列優點。
家用電器
家用電器是單片機的又一重要應用領域,前景十分廣闊。如空調器、電冰箱、洗衣機、電飯煲、高檔洗浴設備、高檔玩具等。另外,在交通領域中,汽車、火車、飛機、航天器等均有單片機的廣泛應用。如汽車自動駕駛系統、航天測控系統、黑匣子等。
單片機應用系統開發簡介
1. 單片機應用系統的開發
設計單片機應用系統時,在完成硬件系統設計之后,必須配備相應的應用軟件。正確無誤的硬件設計和良好的軟件功能設計是一個實用的單片機應用系統的設計目標。完成這一目標的過程稱為單片機應用系統的開發。單片機作為一片集成了微型計算機基本部件的集成電路芯片,與通用微機相比,它自身沒有開發功能,必須借助開發機(一種特殊的計算機系統)來完成如下任務:排除應用系統的硬件故障和軟件錯誤;調試完的程序要固化到單片機內部或外部程序存儲器芯片中。
指令的表示形式
指令是讓單片機執行某種操作的命令。在單片機內部,指令按一定的順序以二進制碼的形式存放于程序存儲器中。二進制碼是計算機能夠直接執行的機器碼(或稱目標碼)。為了書寫、輸入和顯示方便,人們通常將機器碼寫成十六進制形式。如二進制碼 0000 0100B 可以表示為 04H。04H 所對應的指令的意義是累加器 A 的內容加 1。若寫成 INC A,則要清楚得多,這就是該指令的符號表示,稱為符號指令。
匯編或編譯
符號指令要轉換成計算機所能執行的機器碼并存入計算機的程序存儲器中,這種轉換稱為匯編。常用的匯編方法有三種:
· 手工匯編,設計人員對照單片機指令編碼表,把每一條符號指令翻譯成十六進制數表示的機器碼指令, 借助于小鍵盤送入開發機,然后進行調試,并將調試好的程序寫入程序存儲器芯片。
· 利用開發機的匯編程序進行匯編。
· 利用通用微型計算機配備的匯編程序進行交叉匯編,然后將目標碼傳送到開發機中。
另外,還可以采用高級語言(如C51)進行單片機應用程序的設計。在 PC 機中編輯好的高級語言源程序經過編譯、連接后形成目標碼文件,并傳送到開發機中。這種方法具有周期短、移植和修改方便的優點,適合于較復雜系統的開發。
2. 單片機應用系統的傳統開發方式
單片機開發系統又稱為開發機或仿真器。仿真的目的是利用開發機的資源(CPU、存儲器和I/O設備等)來模擬欲開發的單片機應用系統(即目標機) 的 CPU、存儲器和I/O操作,并跟蹤和觀察目標機的運行狀態。
仿真可以分為軟件模擬仿真和開發機在線仿真兩大類。軟件模擬仿真成本低,使用方便,但不能進行應用系統硬件的實時調試和故障診斷。下面僅介紹在線仿真方法。
利用獨立型仿真器開發
獨立型仿真器采用與單片機應用系統相同類型的單片機做成單板機形式, 板上配置 LED 顯示器和簡易鍵盤。這種開發系統在沒有普通微機系統的支持下,仍能對單片機應用系統進行在線仿真,便于在現場對應用軟件進行調試和修改。
另外,這種開發系統還配有串行接口,能與普通微機系統連接。這樣, 可以利用普通微機系統配備的組合軟件進行源程序的編輯、匯編和聯機仿真調試。然后將調試無誤的目標程序(即機器碼)傳送到仿真器,利用仿真器進行程序的固化。
利用非獨立型仿真器開發
這種仿真器采用通用微型計算機加仿真器方式構成。仿真器與通用微機間以串行通信的方式連接。這種開發方式必須有微機的支持,利用微機系統配備的組合軟件進行源程序的編輯、匯編和仿真調試。有些仿真接口上還備有EPROM 寫入插座,可以將開發調試完成的用戶應用程序寫入 EPROM 芯片。與前一種相比,此種開發方式現場參數的修改和調試不夠方便。
以上兩種開發方式均是在開發時拔掉目標系統的單片機芯片和程序存儲器芯片,插上從開發機上引出的仿真頭,即把開發機上的單片機出借給目標機。
仿真調試無誤后,拔掉仿真頭,再插回單片機芯片,把開發機中調試好的程序固化到 EPROM
芯片中并插到目標機的程序存儲器插座上,目標機就可以獨立運行了。
3. 單片機開發方式的發展
由于單片機貼片封裝形式的廣泛采用以及 Flash 存儲器技術的迅速發展, 傳統的單片機應用系統開發的理念將受到沖擊。
采用新的單片機應用系統開發技術可以將單片機先安裝到印制線路板上,然后通過 PC 機將程序下載到目標系統。
如:SST 公司推出的 SST89C54
和 SST89C58
芯片分別有 20 KB
和 30 KB
的SuperFlash
存儲器,利用這種存儲器可以進行高速讀/寫的特點,能夠實現在系統編程(ISP)和在應用編程(IAP)功能。
首先在 PC 機上完成應用程序的編輯、匯編(或編譯)和模擬運行,然后實現目標程序的串行下載。
Microchip 公司推出的RISC 結構單片機PIC16F87X
中內置在線調試器ICD
功能,該公司還配置了具有 ICSP
功能的簡單仿真器和燒寫器。由于芯片內置了偵測電路邏輯,所以可以不需要額外的硬件仿真器。
通過 PC 機串行電纜(含有完成通信功能的MPLAB-ICD
模塊及與目標板連接的 MPLAB-ICD
頭)就可以完成對目標系統的仿真調試。
評論