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