資料介紹
??本文以經典的80C51單片機為例,利用工作狀態及其狀態遷移的新概念、新觀點和新方法,揭示一些單片機運作的內在規律,對于單片機學習者和應用開發者具有一定的啟迪作用和實際意義。
?
??1 單片機的工作狀態及其狀態遷移
?
??80C51單片機的各種活動,可以描述成多個不同的工作狀態或工作模式。這里利用筆者構思的一個單片機工作狀態遷移圖(如圖1所示)來說明。不過,這里重點關注的是復位狀態。
?
??
??圖1 單片機工作狀態遷移圖
?
??經過仔細分析之后,從圖1中可以看出:
??① 把單片機經歷的所有生存狀態歸納和描繪成5個狀態——1個非工作狀態(即無電狀態)和4個工作狀態。
??② 只有復位狀態是一個暫態,其他均為穩態;并且每次單片機進入正常運行狀態時,都要經歷一次復位狀態。
??③ 只有在正常運行狀態(這里記作NORMAL)下,單片機才按照程序存儲器中固化的用戶程序按部就班地一步一步執行,從而完成開發者設計的各項任務。
??④ 停機狀態(或PD模式)和待機狀態(或IDL模式),主要是為節能降耗而規劃的節電狀態(或稱“睡眠狀態”)。
??⑤ 從無電狀態離開的唯一條件就是上電,并且唯一能夠到達的是一個暫態——復位狀態。
??⑥ 復位狀態以外的4個狀態都有遷移到復位狀態的途徑,只是導致遷移的條件不盡相同。
??⑦ 無電狀態之外的4個工作狀態,都可能因為隨時斷電而導致單片機進入“無電狀態”。
??⑧ 從另外3個工作狀態遷移到復位狀態,基本都是依靠外部引腳RST上的復位信號。原始復位源比較單一,這是因為傳統80C51的復位邏輯相對簡單。如果想增加“電源欠壓復位”和“看門狗復位”等其他復位源,則需要片外擴充獨立電路來實現。
??⑨ 標準80C51沒有設計“軟件復位”功能,如果需要該功能,可以通過用戶程序自行實現。不同的是,軟件復位不會令CPU經歷一次復位狀態。
?
??2 復位源、復位操作和復位狀態
?
??像中的時序邏輯電路器件需要具備復位功能一樣,各種類型的單片機也都需要具備復位功能(RESET)。復位功能按其英文原意是重新設置的意思,也就是從頭開始執行程序,或者重新從頭執行程序(Restart)的意思。復位是單片機的一項重要操作內容,其目標是確保單片機運行過程有一個良好的開端,確保單片機運行過程中有一個良好的狀態。
??需要強調的是: 關于“復位”一詞,它既包含復位活動的意思,又包含復位狀態的意思。或者說,復位既是一個動態的概念(指復位活動、復位操作、復位處理或復位過程等),又是一個靜態的概念(指復位狀態或復位模式等)。
??2.1 常規復位源和擴充復位源
??從現今的技術高度來看,標準80C51單片機的復位功能設計得不夠完善,不僅沒有設置復位標志位寄存器,而且復位源的種類也很少。
??所謂“復位源”,就是導致或者引起單片機內部復位的源泉。對于當前市場上出現的種類比較齊全的單片機,其典型復位源大致可以歸納為以下6種: 上電復位、人工復位、電源欠壓復位、看門狗復位、非法地址復位和軟件復位。這些復位源的特點是:
??① 上電復位這一種復位源是必不可少的。因為每次給單片機加電時,其電源電壓的穩定,以及時鐘振蕩器的起振和振幅穩定,都需要一定的延遲時間。
??② 只有上電復位和人工復位這兩種復位源,是講解80C51單片機的教科書、技術文章和文獻資料中比較常見的。
??③ 對于電源欠壓復位、看門狗復位和非法地址復位3種復位源,標準80C51是不具備的,不過可以額外擴充,可由單片機用戶根據實際需要通過附加一些軟件或硬件的手段來實現。
??④ 雖然電源欠壓復位、看門狗復位、非法地址復位3種復位源可以額外擴充,但是都必須借助于復位引腳RST來實施復位操作或復位鎖定。
??⑤ 標準80C51本來不具備軟件復位功能,但是可以通過純軟件方式以及虛擬手段,來實現或者部分實現其他單片機的軟件復位。這種方法擴充的軟件復位是一種比較特殊的復位源,一是不通過RST引腳實現復位,二是復位操作的內容與眾不同。軟件復位作為一種新技術,目前有越來越多的新型單片機配備了該功能。例如 Philips公司的P87LPC700和P89LPC900系列、TIBB公司的MSC1200系列、SunPlus公司的SPMC65系列等,內部都設計了專門用于實現軟件復位的控制寄存器或者控制位。
??2.2 復位操作的具體內容
??單片機復位功能的實現過程實質上就是在單片機內部進行一系列的復位操作。在復位期間,單片機內部的復位操作究竟完成了哪些內容,是程序設計人員應該搞清的問題,因為單片機復位操作完成之后的內部狀態,就是運行用戶程序和進行軟件處理的背景、基礎和起點。
??對80C51單片機來說,只有軟件復位的具體內容和影響范圍,是可以由用戶自由定制的;而凡是直接作用于復位引腳RST上的復位源(如上電復位等),所實現的復位操作的具體內容和影響范圍都應該是一樣的。現在歸納如下:
??① 程序計數器PC返回到原始狀態0000H;
??② 所有特殊功能寄存器SFR全部還原為復位值(可以查閱技術手冊);
??③ 所有通用并行端口(P0、P1、P2和P3)的引腳全部被設置為輸入狀態;
??④ 清除各級中斷優先級的激活觸發器,以便受理各級中斷請求(在標準80C51中只設置了2個中斷優先級別,而在有些新型兼容產品中設置了4個級別)。
??2.3 復位狀態的具體表現
??單片機一旦進入復位狀態并且停留在復位狀態下(即外接引腳RST被鎖定在有效的高電平上),就會表現出如下一些具體特征:
??◇ CPU不再執行程序而保持靜止(凍結)狀態;
??◇ 各種片內外圍模塊(定時器、串行口、總線接口、中斷系統等)均停止工作;
??◇ 各個并口(P0~P3)的所有口線均對外呈現高阻狀態;
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 單片機實現24C02存儲上次使用中狀態的C語言實例 11次下載
- LABVIEW的狀態機實現資料合集 47次下載
- 車載系統的電源狀態及遷移
- 虛擬機遷移的物理主機異常狀態檢測算法 20次下載
- 單片機基礎及應用:單片機并行存儲器擴展資料下載
- 小白學單片機(15) 單片機程序下載失敗總結資料下載
- 使用單片機實現24C02存儲上次使用中狀態的C語言實例免費下載 13次下載
- 使用單片機實現74HC148編碼輸入8位按鍵狀態的仿真文件免費下載 8次下載
- 單片機的狀態機框架!
- 使用單片機實現1個獨立按鍵控制LED狀態轉換的C語言程序免費下載 26次下載
- 單片機K1到K4按鍵狀態顯示的仿真電路圖免費下載 10次下載
- 單片機按鍵的源代碼資料合集免費下載
- 使用51單片機定時器中斷進行LED的狀態反轉電路圖和程序免費下載
- 51單片機IIC總線通信原理及其簡單應用資料免費下載
- 使用單片機進行智能藥盒設計的程序和狀態表資料免費下載 14次下載
- 什么是狀態機?狀態機的種類與實現 9880次閱讀
- 嵌入式狀態機編程-QP狀態機框架基本知識介紹 3021次閱讀
- PLC基本工作狀態 5282次閱讀
- 狀態機的基本術語 傳統有限狀態機Fsm實現方法 796次閱讀
- buck電路工作狀態 1229次閱讀
- 詳解單片機復位電路的作用及設計 1w次閱讀
- 狀態機到底是什么 3811次閱讀
- 使用單片機實現多路開關狀態指示器的設計資料合集 4585次閱讀
- AVR單片機的復位操作方法解析 5710次閱讀
- 狀態機概述 如何理解狀態機 1w次閱讀
- 關于STC單片機IO口的狀態和配置IO口的工作類型等資料概述 1.2w次閱讀
- 淺談單片機上電復位后端口的狀態問題 1.1w次閱讀
- 基于狀態機的單片機按鍵短按長按功能的實現 1.9w次閱讀
- 單片機看門狗電路的作用,看門狗系統設計技巧及其抗干擾措施 4334次閱讀
- 使用ModelSim自動生成狀態機FSM的狀態轉換圖 1.5w次閱讀
下載排行
本周
- 1AN158 GD32VW553 Wi-Fi開發指南
- 1.51MB | 2次下載 | 免費
- 2嵌入式軟件開發符合ISO 26262 功能安全標準
- 1.61 MB | 1次下載 | 免費
- 3AN148 GD32VW553射頻硬件開發指南
- 2.07MB | 1次下載 | 免費
- 4PZT驅動開關電路
- 0.09 MB | 1次下載 | 免費
- 5模擬電路仿真實現
- 2.94MB | 1次下載 | 免費
- 6PCB繪制基礎知識
- 2.44MB | 1次下載 | 免費
- 7EE-38:ADSP-2181 IDMA端口-周期竊取時序
- 75.0KB | 次下載 | 免費
- 8EE-82:使用ADSP-2181 DSP的IO空間對另一個ADSP-2181進行IDMA引導
- 86.86KB | 次下載 | 免費
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 452次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 139次下載 | 1 積分
- 3基于STM32單片機智能手環心率計步器體溫顯示設計
- 0.10 MB | 132次下載 | 免費
- 4美的電磁爐維修手冊大全
- 1.56 MB | 24次下載 | 5 積分
- 5如何正確測試電源的紋波
- 0.36 MB | 19次下載 | 免費
- 6感應筆電路圖
- 0.06 MB | 10次下載 | 免費
- 7LZC3106G高性能諧振控制器中文手冊
- 1.29 MB | 9次下載 | 1 積分
- 8萬用表UT58A原理圖
- 0.09 MB | 9次下載 | 5 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論
查看更多