⑴ 單片機的原理介紹
與電腦差不多,讀入數據後,依據半導體進行邏輯運算,並把結果輸出。
單片機的基本結構
運算器:用於實現算術和邏輯運算。計算機的運算和處理都在這里進行;
控制器:是計算機的控制指揮部件,使計算機各部份能自動協調的工作;
存儲器:用於存放程序和數據;(又分為內存儲器和外存儲器,內存儲器就如我們電腦的硬碟,外存儲器就如我們的U盤)
輸入設備:用於將程序和數據輸入到計算機(例如我們電腦的鍵盤、掃描儀);
輸出設備:輸出設備用於把計算機數據計算或加工的結果以用戶需要的形式顯示或保存(例如我們的列印機)。
註:1、通常把運算器和控制器合在一起稱為中央處理器(Central Processing Unit),簡稱CPU。
2、通常把外存儲器、輸入設備和輸出設備合在一起稱之為計算機的外部設備。
1 中央處理器(CPU):
剛跟大家講過,需要提醒的是MCS-51的CPU能處理8位二進制數或代碼;
2 內部數據存儲器(RAM):
8051晶元共有256個RAM單元,其中後128單元被專用寄存器佔用(稍後我們詳解),能作為寄存器供用戶使用的只是前128單元,用於存放可讀寫的數據。因此通常所說的內部數據存儲器就是指前128單元,簡稱內部RAM。地址范圍為00H~FFH(256B)。是一個多用多功能數據存儲器,有數據存儲、通用工作寄存器、堆棧、位地址等空間。
3 內部程序存儲器(ROM):
在前面也已講過,8051內部有4KB的ROM,用於存放程序、原始數據或表格。因此稱之為程序存儲器,簡稱內部RAM。地址范圍為0000H~FFFFH(64KB)。
4 定時器/計數器
8051共有2個16位的定時器/計數器,以實現定時或計數功能,並以其定時或計數結果對計算機進行控制。定時時靠內部分頻時鍾頻率計數實現,做計數器時,對P3.4(T0)或P3.5(T1)埠的低電平脈沖計數。
5 並行I/O口
MCS-51共有4個8位的I/O口(P0、P1、P2、P3)以實現數據的輸入輸出。具體功能在後面章節中將會詳細論述。
6 串列口
MCS-51有一個全雙工的串列口,以實現單片機和其它設備之間的串列數據傳送。該串列口功能較強,既可作為全雙工非同步通信收發器使用,也可作為移位器使用。RXD( P3.0)腳為接收埠,TXD(P3.1)腳為發送埠。
7 中斷控制系統
MCS-51單片機的中斷功能較強,以滿足不同控制應用的需要。共有5個中斷源,即外中斷2個,定時中斷2個,串列中斷1個,全部中斷分為高級和低級共二個優先順序別。
8 時鍾電路
MCS-51晶元的內部有時鍾電路,但石英晶體和微調電容需外接。時鍾電路為單片機產生時鍾脈沖序列。系統允許的晶振頻率為12MHZ
51單片機執行指令的過程
單片機執行程序的過程,實際上就是執行我們所編製程序的過程。即逐條指令的過程。計算機每執行一條指令都可分為三個階段進行。即取指令-----分析指令-----執行指令。
取指令的任務是:根據程序計數器PC中的值從程序存儲器讀出現行指令,送到指令寄存器。
分析指令階段的任務是:將指令寄存器中的指令操作碼取出後進行解碼,分析其指令性質。如指令要求操作數,則尋找操作數地址。
計算機執行程序的過程實際上就是逐條指令地重復上述操作過程,直至遇到停機指令可循環等待指令。
一般計算機進行工作時,首先要通過外部設備把程序和數據通過輸入介面電路和數據匯流排送入到存儲器,然後逐條取出執行。但單片機中的程序一般事先我們都已通過寫入器固化在片內或片外程序存儲器中。因而一開機即可執行指令。
下面我們將舉個實例來說明指令的執行過程:
開機時,程序計算器PC變為0000H。然後單片機在時序電路作用下自動進入執行程序過程。執行過程實際上就是取出指令(取
出存儲器中事先存放的指令階段)和執行指令(分析和執行指令)的循環過程。
例如執行指令:MOV A,#0E0H,其機器碼為「74H E0H」,該指令的功能是把操作數E0H送入累加器,
0000H單元中已存放74H,0001H單元中已存放E0H。當單片機開始運行時,首先是進入取指階段,其次序是:
1 程序計數器的內容(這時是0000H)送到地址寄存器;
2 程序計數器的內容自動加1(變為0001H);
3 地址寄存器的內容(0000H)通過內部地址匯流排送到存儲器,以存儲器中地址解碼電跟,使地址為0000H的單元被選中;
4 CPU使讀控制線有效;
5 在讀命令控制下被選中存儲器單元的內容(此時應為74H)送到內部數據匯流排上,因為是取指階段,所以該內容通過數據匯流排被送到指令寄存器。
至此,取指階段完成,進入解碼分析和執行指令階段。
由於本次進入指令寄存器中的內容是74H(操作碼),以解碼器解碼後單片機就會知道該指令是要將一個數送到A累加器,而該數是在這個代碼的下一個存儲單元。所以,執行該指令還必須把數據(E0H)從存儲器中取出送到CPU,即還要在存儲器中取第二個位元組。其過程與取指階段很相似,只是此時PC已為0001H。指令解碼器結合時序部件,產生74H操作碼的微操作系列,使數字E0H從0001H單元取出。因為指令是要求把取得的數送到A累加器,所以取出的數字經內部數據匯流排進入A累加器,而不是進入指令寄存器。至此,一條指令的執行完畢。單片機中PC=0002H,PC在CPU每次向存儲器取指或取數時自動加1,單片機又進入下一取指階段。這一過程一直重復下去,直至收到暫停指令或循環等待指令暫停。CPU就是這樣一條一條地執行指令,完成所有規定的功能。
⑵ 單片機原理的基本結構
1.運算器
運算器由運算部件——算術邏輯單元(Arithmetic & Logical Unit,簡稱ALU)、累加器和寄存器等幾部分組成。ALU的作用是把傳來的數據進行算術或邏輯運算,輸入來源為兩個8位數據,分別來自累加器和數據寄存器。ALU能完成對這兩個數據進行加、減、與、或、比較大小等操作,最後將結果存入累加器。例如,兩個數6和7相加,在相加之前,操作數6放在累加器中,7放在數據寄存器中,當執行加法指令時,ALU即把兩個數相加並把結果13存入累加器,取代累加器原來的內容6。
運算器有兩個功能:
(1) 執行各種算術運算。
(2) 執行各種邏輯運算,並進行邏輯測試,如零值測試或兩個值的比較。
運算器所執行全部操作都是由控制器發出的控制信號來指揮的,並且,一個算術操作產生一個運算結果,一個邏輯操作產生一個判決。
2.控制器
控制器由程序計數器、指令寄存器、指令解碼器、時序發生器和操作控制器等組成,是發布命令的「決策機構」,即協調和指揮整個微機系統的操作。其主要功能有:
(1) 從內存中取出一條指令,並指出下一條指令在內存中的位置。
(2) 對指令進行解碼和測試,並產生相應的操作控制信號,以便於執行規定的動作。
(3) 指揮並控制CPU、內存和輸入輸出設備之間數據流動的方向。
微處理器內通過內部匯流排把ALU、計數器、寄存器和控制部分互聯,並通過外部匯流排與外部的存儲器、輸入輸出介面電路聯接。外部匯流排又稱為系統匯流排,分為數據匯流排DB、地址匯流排AB和控制匯流排CB。通過輸入輸出介面電路,實現與各種外圍設備連接。
3.主要寄存器
(1)累加器A
圖1-2 單片機組成框圖
累加器A是微處理器中使用最頻繁的寄存器。在算術和邏輯運算時它有雙功能:運算前,用於保存一個操作數;運算後,用於保存所得的和、差或邏輯運算結果。
(2)數據寄存器DR
數據寄存器通過數據匯流排向存儲器和輸入/輸出設備送(寫)或取(讀)數據的暫存單元。它可以保存一條正在解碼的指令,也可以保存正在送往存儲器中存儲的一個數據位元組等等。
(3)指令寄存器IR和指令解碼器ID
指令包括操作碼和操作數。
指令寄存器是用來保存當前正在執行的一條指令。當執行一條指令時,先把它從內存中取到數據寄存器中,然後再傳送到指令寄存器。當系統執行給定的指令時,必須對操作碼進行解碼,以確定所要求的操作,指令解碼器就是負責這項工作的。其中,指令寄存器中操作碼欄位的輸出就是指令解碼器的輸入。
(4)程序計數器PC
PC用於確定下一條指令的地址,以保證程序能夠連續地執行下去,因此通常又被稱為指令地址計數器。在程序開始執行前必須將程序的第一條指令的內存單元地址(即程序的首地址)送入PC,使它總是指向下一條要執行指令的地址。
(5)地址寄存器AR
地址寄存器用於保存當前CPU所要訪問的內存單元或I/O設備的地址。由於內存與CPU之間存在著速度上的差異,所以必須使用地址寄存器來保持地址信息,直到內存讀/寫操作完成為止。
顯然,當CPU向存儲器存數據、CPU從內存取數據和CPU從內存讀出指令時,都要用到地址寄存器和數據寄存器。同樣,如果把外圍設備的地址作為內存地址單元來看的話,那麼當CPU和外圍設備交換信息時,也需要用到地址寄存器和數據寄存器。
⑶ 單片機的主要工作原理什麼
單片機原理是指一種在線式實時控制計算機的原理方式。在線式就是現場控制,需要的是有較強的抗干擾能力,較低的成本,這也是和離線式計算機(比如家用PC)的主要區別。
單片機就是一個微型電腦,它是靠程序工作的,並且可以修改。通過不同的程序實現不同的功能。
單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。相當於一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。
(3)單片機寄存器與快閃記憶體工作原理擴展閱讀:
單片機正常工作的三大條件:
1、單片機供電電源正常
供電電源是單片機工作的首要條件,如果電源都不正常,那單片機肯定不能正常工作,所以我們在測試任何產品之前首要的工作就是測量晶元及產品的供電電源。
出現電源不正常的情況,主要查找以下幾點:電源供電是否正常、晶元是否存在短路現象、晶元的電源管腳是否虛焊或者漏焊、晶元的電源管腳是否有開路現象。
2、單片機復位管教不能出現復位信號
單片機一直處於復位狀態,那麼單片機的程序肯定運行不正常,所以在遇到單片機不能正常工作且電源正常的情況下,就需要測量一下單片機的復位管腳是否有復位信號出現,不同的單片機的復位信號是不同的。
3、晶振是否起振
引起晶振起振的原因很多,包括晶振頻率選擇、電容的選擇,如果晶振不起振主要查找以下幾點:晶振是否與單片機的典型應用電路上使用的晶振頻率不一致。
參考資料來源:網路-單片機
⑷ 簡述51單片機的工作原理
單片機的工作原理與計算機CPU的工作原理是一樣的,主要是利用片內的半導體存儲器存放用戶的程序和數據,單片機的核心中央微處理器CPU中有指令寄存器、指令解碼器,程序計數器等部件,由程序計數器尋找下一條要執行的指令,找到後,將指令送給指令寄存器,再由指令解碼器翻譯執行該指令,完成對指令功能的操作。 一句話:單片機的工作就是不斷地取指令、分析指令、執行指令的循環過程。按預先編寫的程序執行,以達到用戶期待的結果。 單片機主要用途是做生產設備的控制器,做智能儀表的核心部件,由於單片機體積微小,可以植入任何一個設備和儀表當中,因此它也是嵌入式技術的核心部件。
它一般由嵌入式微處理器、外圍硬體設備、嵌入式操作系統以及用戶的應用程序等四個部分組成.嵌入式系統是以應用為中心,以計算機技術為基礎,並且軟硬體可裁剪,適用於應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。它一般由嵌入式微處理器、外圍硬體設備、嵌入式操作系統以及用戶的應用程序等四個部分組成,用於實現對其他設備的控制、監視或管理等功能。嵌入式系統一般指非PC系統,它包括硬體和軟體兩部分。硬體包括處理器/微處理器、存儲器及外設器件和I/O埠、圖形控制器等。軟體部分包括操作系統軟體(OS)(要求實時和多任務操作)和應用程序編程
⑸ 單片機原理及應用
單片機原理是單片機主要由運算器、控制器和寄存器三大部分構成。其中,運算器由算術邏輯單元(ALU)、累加器、寄存器等構成。
首先累加器和寄存器向ALU輸入兩個8位源數據,其次ALU完成源數據的邏輯運算,最後將運算結果存入寄存器中;控制器由程序計數器、指令寄存器、指令解碼器、時序發生器和操作控制器等構成,是一個下達命令的「組織」,用於協調整個系統各部分之間的運作。
寄存器主要有累加器A、數據寄存器DR、指令寄存器IR、指令解碼器ID、程序計數器PC、地址寄存器AR等。
單片機具體在各個領域的應用如下:
1,在儀器儀表領域,一旦採用單片機對其進行控制,便使得儀器儀表變得數字化、智能化、微型化,且其功能更加強大。
2,在家用電器領域,已廣泛實現了家用電器的單片機控制,如電飯煲、電冰箱、空調、彩電、音響等等。
3,在網路通信領域,手機、小型程式控制交換機、樓宇自動通信呼叫系統等等都已實現了單片機控制,且單片機普遍具備通信介面,使得通信設備可以方便地與計算機之間進行數據通信。
4,在工業控制領域,可以使用單片機構成多種多樣的控制系統,如工廠流水線的智能化管理、電梯智能化控制、各種報警系統、與計算機聯網構成二級控制系統等。
5,在醫療設備領域,單片機也極大的實現了它的價值,已廣泛應用於各種分析儀、監護儀、病床呼叫系統、醫用呼吸機等醫療設備中。
⑹ 什麼是單片機的寄存器
寄存器是內存階層中的最頂端,也是系統獲得操作資料的最快速途徑。寄存器通常都是以他們可以保存的位元數量來估量,舉例來說,一個 「8 位元寄存器」或 「32 位元寄存器」。寄存器現在都以寄存器檔案的方式來實作,但是他們也可能使用單獨的正反器、高速的核心內存、薄膜內存以及在數種機器上的其他方式來實作出來。 寄存器通常都用來意指由一個指令之輸出或輸入可以直接索引到的暫存器群組。更適當的是稱他們為 「架構寄存器」。 例如,x86 指令集定義八個 32 位元寄存器的集合,但一個實作 x86 指令集的 CPU 可以包含比八個更多的寄存器。 寄存器是CPU內部的元件,寄存器擁有非常高的讀寫速度,所以在寄存器之間的數據傳送非常快。 http://ke..com/view/6159.htm
⑺ 單片機寄存器是什麼
寄存器是中央處理器內的其中組成部份。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數據和位址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計數器(PC)。在中央處理器的算術及邏輯部件中,包含的寄存器有累加器(ACC)。
寄存器(Register)
寄存器是內存階層 中的最頂端,也是系統操作資料的最快速途徑。寄存器通常都是以他們可以保存的 位元 數量來估量,舉例來說,一個 "8 位元寄存器" 或 "32 位元 寄存器"。寄存器現在都以寄存器檔案 的方式來實作,但是他們也可能使用單獨的正反器、高速的核心內存、薄膜內存 以及在數種機器上的其他方式來實作出來。
寄存器通常都用來意指由一個指令之輸出或輸入可以直接索引到的暫存器群組。更適當的是稱他們為 "架構寄存器"。
例如,x86 指令及定義八個 32 位元寄存器的集合,但一個實作 x86 指令集的 CPU 可以包含比八個更多的寄存器。
寄存器是CPU內部的元件,寄存器擁有非常高的讀寫速度,所以在寄存器之間的數據傳送非常快。
寄存器的用途:
1.可將寄存器內的數據執行算術及邏輯運算。
2.存於寄存器內的地址可用來指向內存的某個位置,即定址。
3.可以用來讀寫數據到電腦的周邊設備。
⑻ 單片機 的工作原理
吼…好龐大的問題。。形象點兒:想像一間大屋子,裡面有N多開關,每個開關對應一個接線柱,一部分接線柱露在大屋子的外面可以讓別人使用,另一部分還在你屋子裡誰都不能用,是你這些開關之間的相互制約,你在屋子裡負責這些開關的狀態,但是不能隨便亂動,有人會給你的門衛一個操作指令,門衛把指令放到你的信箱里,你按照指令去打開或者關閉對應的開關,這時開關對應接線柱的狀態跟著改變,這就是單片機的工作原理。開關就是寄存器,接線柱就是寄存器的輸出,露在外面的就是IO口,給門衛命令的就是用戶,操作指令就是燒寫進單片機的二進制文件,你的信箱就是數據鎖存器,你,就是那CPU,你們大家組成了單片機~
⑼ 單片機中的寄存器到底有什麼作用,它們是像RAM一樣呢還是有什麼其它的作用
寄存器是用來暫時存放單片機在工作中的工作狀態,所用到的數據和所需尋找的地址,比如程序狀態寄存器用於表示當前指令執行後的信息狀態,而寄存器B則主要用於乘除運算後的一部分數據,也可用作通用寄存器,寄存器在單片機掉電以後全部恢復到空的狀態。
特殊功能寄存器是在內部RAM中的,簡稱SFR,他們只是地址重疊,不同空間,可以根據定址方式進行相應的操作!
⑽ 單片機RAM的工作寄存器是怎麼工作的
這個問題不必太糾結,你應該下載一份89C52單片機數據手冊看看單片機的內部結構和框架,ROM 、RAM是做什麼的,這些手冊裡面都講解的很清楚,你學習一款單片機你必須先看手冊,有不懂的地方在提問。
對於89C51單片機片內數據存儲器很限256個存儲單元,地址00H-7FH 的128個存儲單元共用戶使用,是真正通用型RAM區,地址80H-FFH的128個存儲單元是專門為特殊功能寄存器SFR保留的,把單片機RAM區從0-31總共32位元組分成四組,每組8byte的寄存器.特殊功能寄存器存在於單片機RAM地址的128-255之間, 與實際RAM操作時,訪問方式不周,如果間接訪問就是訪問RAM,直接訪問就是對功能寄存器操作.,如果你是學匯編語言的,那你的程序都是直接操作底層寄存器的,如果用C的話編譯器會地址分配。R0-R7是用來存放單片機執行過程中的隨機數據,變數在單片機執行過程中的數據變化都會存放到R0寄存器內。