資料介紹
本連載講解作為嵌入式系統開發技術人員所必需具備的基礎知識。這些基礎知識是硬件和軟件技術人員都應該掌握的共通技術知識。
有了電子電路和數字電路的基礎知識,就可以開始學習嵌入式系統的核心元件-單片機。從本期開始我們將為大家介紹單片機的基礎知識。
在單片機入門系列講座中,首先學習單片機的基本構成和工作原理、以及外圍功能電路,然后,挑戰一個實際單片機的運行。
單片機是控制電子產品的大腦
現如今,我們生活中的許多電器都使用了單片機。例如:手機、電視機、冰箱、洗衣機、以及按下開關,LED就閃爍的兒童玩具。那么,單片機在這些電器中究竟做了些什么呢?
單片機是這些電器動作的關鍵,是指揮硬件運行的。例如:接收按鈕或按鍵的輸入信號,按照事先編好的程序,指揮馬達和LCD的外圍功能電路動作。
那么,單片機是如何構成的呢?(圖1)
單片機是由CPU、內存、外圍功能等部分組成的。如果將單片機比作人,那么CPU是負責思考的,內存是負責記憶的,外圍功能相當于視覺的感官系統及控制手腳動作的神經系統。
圖1:單片機的構成要素
盡管我們說CPU相當于人的大腦,但是它卻不能像人的大腦一樣,能有意識的、自發的思考。CPU只能依次讀取并執行事先存儲在內存中的指令組合(程序)。當然CPU執行的指令并不是“走路”、“講話”等高難度命令,而是一些非常簡單的指令,象從內存的某個地方“讀取數據”或把某個數據“寫入”內存的某個地方,或做加法、乘法和邏輯運算等等。然而這些簡單指令的組合,卻能實現許多復雜的功能。
會思考的CPU
讓我們從CPU的構成來了解它的作用吧。(圖2)
程序計數器
CPU讀取指令時需要知道要執行的指令保存在內存的什么位置,這個位置信息稱為地址(相當于家庭住址)。程序計數器(PC)就是存儲地址的寄存器。通常,PC是按1遞增設計的,也就是說,當CPU執行了0000地址中的指令后,PC會自動加1,變成0001地址。每執行一條指令PC都會自動加1,指向下一條指令的地址。可以說,PC決定了程序執行的順序。
指令解碼電路
指令解碼電路是解讀從內存中讀取的指令的含義。運算電路是根據解碼結果操作的。確切地講,指令解碼電路就是我們在“數字電路入門(2)”中學過的解碼電路,只不過電路結構稍微復雜些,所以,指令解碼電路的工作原理就是從被符號化(被加密)的指令中,還原指令。
圖2:CPU的作用
運算電路
運算電路也稱為ALU(Arithmetic and Logic Unit),是完成運算的電路。能進行加法、乘法等算術運算、也能進行AND、OR 、BIT-SHIFT等邏輯運算。運算是在指令解碼電路的控制下進行的。通常運算電路的構成都比較復雜。
CPU內部寄存器
CPU內部寄存器是存儲臨時信息的場所。有存儲運算值和運算結果的通用寄存器,也有一些特殊寄存器,比如存儲運算標志的標志寄存器等。也就是說,運算電路進行運算時,并不是在內存中直接運算的,而是將內存中的數據復制到通用寄存器,在通用寄存器中進行運算的。
CPU的工作原理
讓我們通過一個具體運算3 4,來說明CPU的操作過程吧。
假設保存在內存中的程序和數據如下。
◇步驟1:當程序被執行時,CPU就讀取當前PC指向的地址0000中的指令(該操作稱為指令讀取)。經過解碼電路解讀后,這條指令的意思是“讀取0100地址中的內容,然后,保存到寄存器1”。于是CPU就執行指令,從0100地址中讀取數據,存入寄存器1。
● 寄存器1: 0→3(由0變為3)
● 由于執行了1條指令,因此,PC的值變為0001
◇步驟2:由于PC的值為0001,因此CPU就讀取0001地址中的指令,經解碼電路解碼后,CPU執行該指令。然后PC再加1。
● 寄存器2:0→4(由0變為4)
● PC:0001→0002
◇步驟3:由于PC的值為0002,因此CPU從0002地址中讀取指令,送給指令解碼電路。解碼結果是:將寄存器1和寄存器2相加,然后將結果存于寄存器1。
● 寄存器1:3→7
● PC:2→3
于是3 4的結果7被存于寄存器1,加法運算結束。CPU就是這樣,依次處理每一條簡單的指令。
能記憶的內存
內存是單片機的記憶裝置,主要記憶程序和數據,大體上分為ROM和RAM兩大類。
ROM
ROM(Read Only Memory)是只讀內存的簡稱。保存在ROM中的數據不能刪除,也不會因斷電而丟失。ROM主要用于保存用戶程序和在程序執行中保持不變的常數。
大多數瑞薩 (Renesas)的單片機都用閃存作為ROM。這是因為閃存不僅可以象ROM一樣,即使關機也不會丟失數據,而且還允許修改數據。
RAM
RAM(Random Access Memory)是可隨機讀/寫內存的簡稱。可以隨時讀寫數據,但關機后,保存在RAM中的數據也隨之消失。主要用于存儲程序中的變量。
在單芯片單片機中(*1),常常用SRAM作為內部RAM。SRAM允許高速訪問,但是,內部結構太復雜,很難實現高密度集成,不適合用作大容量內存。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 單片機基礎及應用:單片機并行存儲器擴展資料下載
- 8位、16位、32位單片機各有啥區別?主要是CPU?資料下載
- 單片機對外圍功能電路的控制知識資料下載
- 單片機里的通信協議怎么理解?這樣看其實挺簡單資料下載
- 51單片機串行通信的原理解析資料下載
- 小白學單片機(15) 單片機程序下載失敗總結資料下載
- 解析單片機與CPU的區別資料下載
- 單片機音樂程序的設計原理解析資料下載
- 單片機的外圍功能電路控制資料下載
- 單片機工作所必須的外圍功能電路有哪些?資料下載
- 51單片機一般如何進行內存優化?實例+要點資料下載
- 單片機CPU與外部設備交換信息的幾種方式資料下載
- 單片機僅靠CPU和內存是無法運行的!資料下載
- 51單片機如何使用動態內存
- 單片機外圍電路設計中經見10大疑問匯總資料下載 63次下載
- 單片機的低功耗設計技術及注意問題 1387次閱讀
- 單片機的內存映射圖解析 1274次閱讀
- 單片機的內存映射圖解析 1799次閱讀
- 單片機里的程序是如何運行? 4548次閱讀
- 80C51單片機定時計數器的功能詳解 7685次閱讀
- 單片機中的堆棧詳細資料說明 4838次閱讀
- 單片機應用系統的結構及工作原理 9346次閱讀
- PIC單片機抗靜電處理解決方案 2218次閱讀
- 單片機堆棧的小故事讓你更容易理解堆棧的概念 4494次閱讀
- 解讀單片機和CPU的區別及意義 3w次閱讀
- 詳談單片機的由來(組成,歷史,種類,作用) 5904次閱讀
- 單片機究竟是如何構成的呢? 6342次閱讀
- 單片機必須了解的外設功能——GPIO/串行通信 1.8w次閱讀
- 單片機外圍功能電路控制的基礎知識 9916次閱讀
- 嵌入式編程之單片機的外圍功能電路 5343次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論