深入解析AT89C51:一款經典8位微控制器
在嵌入式控制領域,AT89C51這款8位微控制器可謂是經典之作。盡管它已不推薦用于新設計(建議使用AT89S51),但它的技術特點和工作原理仍值得我們深入探究。
文件下載:AT89C51-24AC.pdf
一、產品概述
AT89C51是一款低功耗、高性能的CMOS 8位微計算機,擁有4K字節的Flash可編程和可擦除只讀存儲器(PEROM)。它采用Atmel的高密度非易失性存儲器技術制造,與行業標準的MCS - 51指令集和引腳兼容。通過將通用的8位CPU與Flash集成在一個單芯片上,AT89C51為許多嵌入式控制應用提供了高度靈活且經濟高效的解決方案。
二、主要特性
2.1 存儲器特性
- Flash存儲器:具備4K字節的系統內可重編程Flash存儲器,寫入/擦除周期可達1000次,能滿足一定次數的程序修改和更新需求。
- 內部RAM:擁有128 x 8位的內部RAM,可用于存儲程序運行過程中的臨時數據。
2.2 運行特性
- 靜態操作:支持全靜態操作,工作頻率范圍從0 Hz到24 MHz,能適應不同的應用場景對時鐘頻率的要求。
- 低功耗模式:具備低功耗空閑和掉電模式。空閑模式下,CPU停止工作,但RAM、定時器/計數器、串口和中斷系統仍可繼續運行;掉電模式能保存RAM內容,同時停止振蕩器,所有其他芯片功能被凍結,直到下一次硬件復位。
2.3 外設特性
- I/O端口:32條可編程I/O線,可用于連接各種外部設備,實現數據的輸入和輸出。
- 定時器/計數器:兩個16位定時器/計數器,可用于定時、計數等功能,在工業控制、自動化等領域有廣泛應用。
- 中斷系統:六個中斷源,提供了靈活的事件處理機制,能及時響應外部設備的請求。
- 串行通道:可編程串行通道,支持全雙工串口通信,方便與其他設備進行數據傳輸。
2.4 程序存儲器保護
具有三級程序存儲器鎖,可防止程序被非法讀取或修改,增強了系統的安全性。
三、引腳配置
AT89C51提供了多種封裝形式,如PDIP、PQFP/TQFP、PLCC等,不同封裝的引腳配置有所不同,但功能基本一致。以下是一些主要引腳的功能:
- VCC和GND:分別為電源電壓和接地引腳,為芯片提供穩定的電源。
- Port 0 - Port 3:四個8位雙向I/O端口,可用于數據輸入輸出,部分引腳還具有復用功能。例如,Port 0還可作為低8位地址/數據總線,Port 3的部分引腳可作為串口、外部中斷、定時器輸入等。
- RST:復位輸入引腳,在振蕩器運行時,該引腳保持兩個機器周期的高電平可使芯片復位。
- ALE/PROG:地址鎖存使能輸出脈沖,用于鎖存訪問外部存儲器時的低字節地址;在Flash編程時,該引腳作為程序脈沖輸入。
- PSEN:程序存儲使能引腳,用于讀取外部程序存儲器。
- EA/VPP:外部訪問使能引腳,當該引腳接地時,芯片從外部程序存儲器讀取代碼;在Flash編程時,該引腳接收12V編程使能電壓。
- XTAL1和XTAL2:晶體振蕩器的輸入和輸出引腳,可外接石英晶體或陶瓷諧振器,為芯片提供時鐘信號。
四、工作模式
4.1 空閑模式
空閑模式由軟件調用,在此模式下,CPU進入睡眠狀態,而片上外設保持工作。片上RAM和所有特殊功能寄存器的內容保持不變。該模式可以通過任何使能的中斷或硬件復位來終止。需要注意的是,當通過硬件復位終止空閑模式時,設備通常會從內部復位算法接管前最多兩個機器周期的位置恢復程序執行,此時片上硬件會禁止訪問內部RAM,但對端口引腳的訪問不受影響。為避免復位終止空閑模式時意外向端口引腳寫入數據,調用空閑模式的指令之后不應是向端口引腳或外部存儲器寫入數據的指令。
4.2 掉電模式
掉電模式下,振蕩器停止工作,調用掉電模式的指令是最后執行的指令。片上RAM和特殊功能寄存器的值會一直保留,直到掉電模式終止。掉電模式只能通過硬件復位退出,復位會重新定義特殊功能寄存器,但不會改變片上RAM的內容。復位操作應在VCC恢復到正常工作水平后進行,并且要保持足夠長的時間,以使振蕩器重新啟動并穩定。
五、程序存儲器鎖定位
| 芯片上有三個鎖定位,可選擇不編程(U)或編程(P),以獲得不同的保護特性: | 程序鎖定位 | LB1 | LB2 | LB3 | 保護類型 |
|---|---|---|---|---|---|
| 1 | U | U | U | 無程序鎖功能 | |
| 2 | P | U | U | 禁止從外部程序存儲器執行的MOVC指令從內部存儲器獲取代碼字節,復位時采樣并鎖存EA引腳的邏輯電平,禁止進一步對Flash進行編程 | |
| 3 | P | P | U | 與模式2相同,同時禁止驗證 | |
| 4 | P | P | P | 與模式3相同,同時禁止外部執行 |
六、編程與驗證
6.1 編程接口
AT89C51的編程接口支持高壓(12V)或低壓(VCC)編程使能信號。低壓編程模式方便在用戶系統內對芯片進行編程,而高壓編程模式則與傳統的第三方Flash或EPROM編程器兼容。
6.2 編程算法
編程時,需按照Flash編程模式表和相關波形圖設置地址、數據和控制信號。具體步驟如下:
- 在地址線上輸入所需的存儲位置。
- 在數據線上輸入相應的數據字節。
- 激活正確的控制信號組合。
- 對于高壓編程模式,將EA/VPP引腳升高到12V。
- 對ALE/PROG引腳脈沖一次,以對Flash陣列或鎖定位進行字節編程。字節寫入周期是自定時的,通常不超過1.5 ms。重復上述步驟,直到完成整個陣列的編程或到達目標文件的末尾。
6.3 數據檢測與狀態指示
- 數據輪詢:AT89C51支持數據輪詢功能,用于指示寫入周期的結束。在寫入周期內,嘗試讀取最后寫入的字節時,PO.7引腳會輸出該字節的反碼。寫入周期完成后,所有輸出引腳的數據有效,可開始下一個周期。
- 就緒/忙信號:通過RDY/BSY輸出信號(P3.4)可監控字節編程的進度。編程時,ALE引腳變高后P3.4引腳拉低,表示忙狀態;編程完成后,P3.4引腳拉高,表示就緒狀態。
6.4 程序驗證與芯片擦除
- 程序驗證:如果鎖定位LB1和LB2未被編程,可通過地址和數據線讀取已編程的代碼數據進行驗證。鎖定位不能直接驗證,需通過觀察其保護特性是否啟用進行驗證。
- 芯片擦除:使用適當的控制信號組合,并將ALE/PROG引腳拉低10 ms,可對整個Flash陣列進行電擦除,擦除后代碼陣列的所有位都被寫為“1”。在重新編程代碼存儲器之前,必須執行芯片擦除操作。
6.5 讀取簽名字節
通過與正常驗證位置030H、031H和032H相同的過程讀取簽名字節,但需將P3.6和P3.7引腳拉低到邏輯低電平。返回的值可用于識別芯片的制造商、型號和編程電壓:
- (030H) = 1EH 表示由Atmel制造
- (031H) = 51H 表示為89C51
- (032H) = FFH 表示12V編程
- (032H) = 05H 表示5V編程
七、電氣特性
7.1 絕對最大額定值
- 工作溫度范圍:-55°C至+125°C
- 存儲溫度范圍:-65°C至+150°C
- 任何引腳相對于地的電壓:-1.0V至+7.0V
- 最大工作電壓:6.6V
- 直流輸出電流:15.0 mA
7.2 直流特性
包括輸入低電壓、輸入高電壓、輸出低電壓、輸出高電壓、輸入電流、引腳電容、電源電流等參數,這些參數在不同的工作條件下有相應的取值范圍。例如,在TA = -40°C至85°C、VCC = 5.0V ± 20%的條件下,不同端口和引腳的輸入輸出電壓和電流有具體的規格要求。
7.3 交流特性
在工作條件下,不同引腳的負載電容有規定值,如Port 0、ALE/PROG和PSEN的負載電容為100 pF,其他輸出引腳的負載電容為80 pF。同時,還給出了外部程序和數據存儲器在不同振蕩器頻率下的各種時序參數,如ALE脈沖寬度、地址有效到ALE低電平的時間、PSEN低電平到有效指令輸入的時間等。
八、訂購與封裝信息
8.1 訂購信息
AT89C51有不同的速度選項(12 MHz、16 MHz、20 MHz、24 MHz)和工作溫度范圍(商業級:0°C至70°C;工業級:-40°C至85°C)可供選擇,用戶可根據實際需求選擇合適的訂購代碼。
8.2 封裝信息
提供了多種封裝形式,如44A(44引腳薄塑料鷗翼四方扁平封裝TQFP)、44J(44引腳塑料J形引腳芯片載體PLCC)、40P6(40引腳0.600英寸寬塑料雙列直插封裝PDIP)、44Q(44引腳塑料鷗翼四方扁平封裝PQFP),并給出了各種封裝的詳細尺寸信息。
AT89C51以其豐富的功能和穩定的性能,在嵌入式控制領域曾經發揮了重要作用。盡管有新的替代產品出現,但它的技術原理和設計思路對于電子工程師來說仍然具有重要的參考價值。在實際應用中,我們可以根據具體需求選擇合適的微控制器,并深入理解其特性和工作原理,以實現高效、可靠的嵌入式系統設計。大家在使用AT89C51或其他類似微控制器時,遇到過哪些有趣的問題或挑戰呢?歡迎在評論區交流分享。
-
AT89C51
+關注
關注
27文章
544瀏覽量
83242 -
嵌入式控制
+關注
關注
0文章
59瀏覽量
14762 -
8位微控制器
+關注
關注
0文章
37瀏覽量
1334
發布評論請先 登錄
深入解析AT89C51:一款經典8位微控制器
評論