- 單片機應用技術(第4版)
- 倪志蓮
- 2386字
- 2021-08-20 17:13:03
2.1 微型計算機的基本結構及工作原理
計算機是由運算器、控制器、存儲器、輸入及輸出設備5大部件組成的,如圖2-2所示。其中,運算器用來完成算術運算和邏輯運算;控制器主要用于解釋輸入計算機的命令并發出相應的控制信號;存儲器用來存放程序、數據及運算結果等信息;輸入及輸出設備用于輸入外部命令及數據,輸出運算結果等。微型計算機將控制器和運算器集成在一塊芯片上,稱為微處理器(CPU)。下面分別介紹微型計算機的基本結構及工作原理。

圖2-2 計算機的基本組成結構
2.1.1 微型計算機的基本結構
微型計算機(Microcomputer)是以微處理器(CPU)為核心,加上內存儲器 ROM 和RAM、I/O接口電路以及系統總線組成,如圖2-3所示。

圖2-3 微型計算機的基本結構框圖
1.微處理器
微處理器是微型計算機的“核心”,是系統的運算中心和控制中心。不同型號的微型計算機之間性能上的差別首先表現在微處理器的不同,每種處理器有其特有的指令系統。但所有的處理器的結構基本一致,主要包括運算器、控制器、寄存器組幾個部分。
運算器主要用于算術和邏輯運算。
控制器由指令寄存器、指令譯碼器和微操作控制電路組成。它將指令從存儲器調入指令寄存器中,通過指令譯碼器譯碼后,由微操作控制電路按照譯碼后的控制命令發出一系列的控制信息,使微型計算機的各個部件協調動作,完成程序指定的工作。
CPU內部的寄存器主要用來暫存參與運算的操作數、中間結果和運算結果,同時記錄程序運行中的某些狀態等。因此,寄存器可以分為兩大類:專用寄存器和通用寄存器。專用寄存器有累加器ACC、標志寄存器PSW、程序計數器PC等,其中累加器ACC用于參與程序的各種運算;標志寄存器PSW標識程序運行過程中的各種狀態,如是否產生進位,是否超出了運算范圍等;程序計數器PC用于控制程序執行的順序。
2.三總線
總線是微處理器、內存儲器和I/O接口電路之間相互交換信息的公共通道。微型計算機的總線由數據總線(Data Bus)、地址總線(Address Bus)和控制總線(Control Bus)三總線構成。數據總線(DB)的功能是完成微處理器與內存、I/O接口電路之間的數據傳送,通過數據總線可以實現數據的雙向傳送;地址總線(AB)是微處理器向內存和I/O接口電路傳送地址信息的通路,是單向傳送方式;控制總線(CB)是微處理器向內存和I/O接口電路發出的命令信息或由外界向微處理器傳送的狀態信息的通路。
3.存儲器
微型計算機內部的存儲器都是半導體存儲器,其中只讀存儲器可以是 ROM、PROM、EPROM、E2PROM、Flash ROM (閃存)等類型,主要用于存放各種程序,如匯編程序、編譯程序、標準子程序以及各種常用數據表格;讀/寫存儲器包括各種形式的RAM,用于存放用戶程序、數據及部分系統信息。
讀/寫存儲器的結構如圖2-4所示。其中存儲單元矩陣是存儲器的主體,用來存儲信息。存儲單元矩陣由許多存儲單元組成,每個存儲單元在存儲單元矩陣中的位置用“地址”表示。存儲單元的總數決定了該存儲器的容量。存儲器中地址譯碼器的作用是對地址進行譯碼,以選擇所指定的存儲單元。地址線的多少與存儲容量的關系滿足:存儲容量=2n(n為地址線的數量)。利用地址譯碼器就可以用較少的地址線選擇更多的存儲單元。
存儲器要進行讀寫操作,首先必須由CPU發出地址信號,由地址總線(AB)傳送至地址寄存器暫存,通過地址譯碼器選擇指定的存儲單元,再由CPU通過控制總線(CB)發出讀/寫控制信號,決定存儲器中數據傳送的方向,如果要進行讀操作,則將存儲器中的數據送入數據寄存器,然后通過數據總線(DB)送至CPU,如果進行寫操作,則將CPU通過數據總線(DB)傳送到數據寄存器中的數據存入存儲單元中。

圖2-4 存儲器基本結構框圖
按存儲器地址空間分配形式的不同,可將微型計算機的存儲器分為兩類:普林斯頓結構和哈佛結構。普林斯頓結構的特點是計算機只有一個地址空間,CPU訪問ROM和RAM用相同的訪問指令,8086、奔騰等微型計算機就采用這種結構。哈佛結構將ROM和RAM分別安排在相互獨立的兩個地址空間,ROM和RAM可以有相同的地址,但用不同的指令訪問,單片機就是采用這種結構。
4.I/O接口電路
微型計算機與I/O設備之間不能直接交換信息,必須通過I/O接口電路作為它們之間聯系的橋梁。I/O接口電路通過各種符合標準的總線傳遞外圍設備與CPU之間的信息,并對信息做一些必要的處理。
5.外圍設備
常見的外圍設備包括打印機、顯示器、鍵盤、鼠標、繪圖儀、外存儲器(如磁盤、光盤、磁帶等)以及一些互聯網裝置等。
2.1.2 微型計算機的工作原理

動畫:單片機工作原理

微課:單片機工作原理
微型計算機在工作時,先將程序存放在存儲器中,由CPU嚴格地按時序不斷地從存儲器中取出指令、對指令進行譯碼、執行指令規定的操作,即按指令的要求發出地址信號和控制信號,將數據或命令通過總線在CPU、存儲器及I/O接口之間進行交流,完成指定的功能。下面以51系列單片機執行“3+2”的操作為例,說明計算機的工作過程。
首先由編程人員寫出匯編語言源程序,通過匯編程序將其編譯成機器語言程序,其代碼如下:
機器碼 匯編語言源程序 注釋 7403H MOV A,#03H ; (A)=3 2402H ADD A,#02H ; (A)=3+2 80FEH SJMP $ ; 暫停
將機器語言程序(即機器碼)依次存放在存儲器中,程序計數器PC裝入初值0000H,以便程序從第一條指令處執行,如圖2-5所示。
當計算機開始工作時,微操作控制器將程序計數器PC中的初值0000H送入地址寄存器AR中,發出“讀” ()命令,同時使PC中的內容自動加1,為取下一字節數據做準備。存儲器在讀命令控制下,將0000H單元的內容“74H”送入數據寄存器DR中,由微操作控制器將其經指令寄存器IR及指令譯碼器ID翻譯后產生新的控制命令,該命令要求將存儲器第二個地址單元0001H中的數據送入累加器中,同時PC又自動加1。存儲器在新的控制命令作用下,將0001H中的內容“03H”送入數據寄存器DR中,并通過內部數據總線送入累加器。這樣,第一條指令就執行完了。

圖2-5 計算機工作過程示意圖
DR—數據寄存器; PC—程序計數器; AR—地址寄存器; PSW—程序狀態字;ALU—算術邏輯運算單元; RS—工作寄存器; IR—指令寄存器; ID—指令譯碼器
下面兩條指令的執行過程與第一條指令類似。