單片機:基礎知識

單片機內部結構

單片機是一種集成電路芯片,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調製電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的微型計算機系統

分類:

  • 1、通用型
    按單片機(Microcontrollers)適用範圍來區分。例如,80C51式通用型單片機,它不是爲某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如爲了滿足電子體溫計的要求,在片內集成ADC接口等功能的溫度測量控制電路。
  • 2、總線型
    按單片機(Microcontrollers)是否提供並行總線來區分的。總線型單片機普遍設置有並行地址總線、 數據總線、控制總線,這些引腳用以擴展並行外圍器件都可通過串行口與單片機連接,另外,許多單片機已把所需要的外圍器件及外設接口集成一片內,因此在許多情況下可以不要並行擴展總線,大大減省封裝成本和芯片體積,這類單片機稱爲非總線型單片機。
  • 3、控制型
    按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型尋址範圍大,運算能力強;用於家電的單片機多爲專用型,通常是小封裝、低價格,外圍器件和外設接口集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是總線型,還可以作工控用。

51單片機的結構與功能

基本功能:
1.8位數據總線,16位地址總線的CPU;
2.具有布爾處理能力和位處理能力;
3.採用哈佛結構,程序存儲器與數據存儲器地址空間各自獨立,便於程序設計;
4.相同地址的64KB程序存儲器和64KB數據存儲器;
5.0-8KB片內程序存儲器(8031無,8051有4KB,8052有8KB,89C55有20KB);
6.128字節片內數據存儲器(8051有256字節);
7.32根雙向並可以按位尋址的I/O線;
8.兩個16位定時/計數器(8052有3個);
9.一個全雙工的串行I/O接口;
10.多箇中斷源的中斷結構,具有兩個中斷優先級;
11.片內時鐘振盪器 。

特點:
1.以微處理器(CPU)爲核心;
2.CPU與其他部件間通過三總線連接。
總線: 指能爲多個部件服務的信息傳送線 。

內部結構
在這裏插入圖片描述
在這裏插入圖片描述

單片機外部結構

在這裏插入圖片描述

一共40根外部引腳如圖:

在這裏插入圖片描述
引腳功能介紹

引腳號 引腳名稱 說明
1~8 P1.0~P1.7 端口P1
9 RST 復位信號輸入端
10~17 P3.0~P3.7 端口P3,該端口具備第二功能
18 XTAL2 時鐘震盪器輸出端,內部震盪器輸出段
19 XTAL1 時鐘震盪器輸入端,內部震盪器輸入段
20 GND 電源地
21~28 P2.0~P2.7 端口P2
29 PSEN(低) 外部程序存儲器從程序存儲器中取指令或讀取數據時,該信號有效
30 ALE/PROG(低) 地址鎖存信號訪問外部存儲器時,該信號鎖存低8位地址;無RAM時,此引腳輸出晶振的6分頻信號
31 EA(低)/VPP 程序存儲器有效地址,EA=1時從內部開始執行程序;EA=0時從外部開始執行程序
32~39 P0.7~P0.0 端口P0
40 VCC 電源正

1、P0口的結構

P0口字節地址爲80H,位地址80H~87H。
如圖,一個端口由鎖存器、輸入緩衝器、多路開關、一個非門、一個與門及場效應管驅動電路構成。

P0位結構:
在這裏插入圖片描述

  • 輸入緩衝器
    在P0口中,有兩個三態的緩衝器,三態門有3個狀態,即在其輸出端可以是高電平、低電平,同時還有一種高阻狀態(或稱爲禁止狀態),要讀取D鎖存器輸出端Q的數據,需要使讀鎖存器中這個緩衝器的三態控制端有效,下面一個是讀引腳的緩衝器,要讀取P0.X引腳上的數據,也要使標號爲“讀引腳”的三態緩衝器的控制端有效,引腳上的數據纔會傳輸到單片機的內部數據總線上。
  • D鎖存器
    構成一個鎖存器,通常要用一個時序電路,一個觸發器可以保存一位二進制數(即具有保持功能),在51單片機的32根I/O口線中,都是用一個D觸發器來構成鎖存器的。圖1-4中的D鎖存器,D端是數據輸入端,CP是控制端(即時序控制信號輸入端),Q是輸出端,Q非是反向輸出端。
    對於D鎖存器來講,當D輸入端有一個輸入信號,如果這時控制端CP沒有信號(即時序脈衝沒有到來),這時輸入端D的數據是無法傳輸到輸出端Q及反向輸出端的。如果時序控制端CP的時序脈衝到達,這時D端輸入的數據就會傳輸到Q及Q非端。數據傳送過來後,當CP時序控制端的時序信號消失時,輸出端還會保持着上次輸入端D的數據(即把上次的數據鎖存起來)。如果下一個時序控制脈衝信號到來,這時D端的數據纔再次傳送到Q端,從而改變Q端的狀態。
  • 多路開關
    在51單片機中,當內部的存儲器夠用時(即不需要外擴展存儲器時,這裏講的存儲器包括數據存儲器及程序存儲器),P0口可以作爲通用的輸入/輸出端口(即I/O)使用,對於8031(內部沒有ROM)的單片機,或者編寫的程序超過了單片機內部的存儲器容量需要外擴存儲器時,P0口就作爲地址/數據總線使用。那麼這個多路選擇開關就是用於選擇是作爲普通I/O口使用還是作爲地址/數據總線使用的選擇開關了。從圖1-4可知,當多路開關與下端接通時,P0口作爲普通的I/O口使用;當多路開關是與上端接通時,P0口作爲地址/數據總線使用。

利用P0口進行擴展外部存儲器和I/O時,P0口將作爲地址和數據分時複用,CPU發控制信號,打開與門,使MUX打向上邊,形成推拉式結構,數據信號可直接讀入或輸出到內部總線。利用P0作爲通用I/O時,此時P0口是一個準雙向口,CPU發控制信號,封鎖與門,使上拉管截止,MUX打向下邊,與D觸發器Q連接。

2、P1口的結構

P1口字節地址爲90H,位地址爲90H~97H。

P1位結構:
在這裏插入圖片描述

與P0不同,P1口只能作爲I/O口使用,無MUX,但其內部有一個上拉電阻,所以連接外圍負載時不需要外接上拉電阻,這一點P1、P2、P3都一樣。

3、P2口的結構

P2口字節地址爲A0H,位地址爲A0H~A7H

P2位結構:
在這裏插入圖片描述

P2口作爲I/O口線時用法與P0口一樣,當內部開關撥向另一個方向,即作地址輸出時,可以輸出程序存儲器或外部數據存儲器的高8位地址,並與P0口輸出的低地址一起構成16位的地址線。

4、P3口的結構

P3口字節地址爲B0H,位地址爲B0H~B7H。

在這裏插入圖片描述

P3口作爲I/O口線用時同其他的端口相同,也是準雙向口,不同的是,P3口的每一位都有另一種功能,也叫第二功能,具體作用在用到時將詳細解釋。當P3口作爲通用I/O口時,準雙向口第二功能端保持高電平。

當P3口作爲第二功能時,鎖存器輸出Q=1,如圖爲P3口第二功能列表:
在這裏插入圖片描述

5、注意

  • (1)在無片外擴展存儲器的系統中,這4個端口的每一位都可以作爲準雙向通用I/O端口使用。在具有片外擴展存儲器的系統中,P2口作爲高8位地址線,P0口作爲雙向總線,分時作爲低8位地址和數據的輸入/輸出線。
  • (2)P0口作爲通用雙向I/O口使用時,必須外接上拉電阻。
  • (3)P3口除了作通用I/O口使用外,各位還具有第二功能。當P3口某一位用於第二功能作輸出時,則不能再作通用I/O口使用。
  • (4)當P0~P4端口用作輸入時,爲了避免誤讀,都必須先向對應的輸出鎖存器寫入1,使FET截止,然後再讀端口引腳,例如以下程序:
    MOV P1, #0FFH
    MOV A, P1

51的程序存儲器和數據存儲器是獨立分開的,數據寄存器除內部數據寄存器外,還可以擴展數據寄存器,並存但訪問指令不同

程序寄存器

當EA引腳接高電平,CPU將使用內部程序寄存器,若程序超過內部程序存儲器空間時,則CPU會自動從外部程序存儲器重讀取超過部分的程序代碼

數據寄存器

0000H ~ 007FH
1、寄存器組區
0000H~001FH共有32個地址位寄存器組區
每組寄存器組都包括R0、R1、R2、R3、R4、R5、R6、R7等8個寄存器,任何一個時間,都只能使用其中一個寄存器組。
寄存器組的切換,可由程序狀態字(PSW)中的RS1、RS0來決定
RS0 RS1 寄存器組 位址
0 0 RB0 0000H~0007H
0 1 RB1 0008H~000FH
1 0 RB2 0010H~0017H
1 1 RB3 0018H~001FH

2、可位尋址區
0020H~002FH 共16字節的存儲區爲可位尋址區
設置20H存儲器地址的位5設置爲1:SETB 20H.5
設置20H存儲器地址的位5設置爲0:CLR 20H.5

3、一般數據與堆棧區
0030H~007FH的80字節爲一般數據訪問及堆棧區
0080H~00FFH之間的128B位特殊功能寄存器(SFR)
特殊功能寄存器
P0、P1、P2、P3
它們是51的4個輸入/輸出端口,其地址分別爲80H、90H、A0H及B0H。
P0口:該8位都爲漏級開路輸出,每個引腳可以驅動8個LS型TTL負載;且內部沒有上拉電阻,執行輸出功能時,外部必須接上拉電阻(10千歐即可);若要執行輸入功能,必須先輸出高電平,方能讀取該端口所連接的外部數據;若系統連接外部存儲器,則P0可作爲地址總線(A0A7)及數據總線(D0D7)的多功能引腳。
P1口:內部有30千歐上拉電阻,執行輸出功能時,不必連接外部上拉電阻;該8位都爲漏級開路輸出,每個引腳可以驅動4個LS型TTL負載;若要執行輸入功能,必須先輸出高電平,方能讀取該端口所連接的外部數據;
P2口:內部有30千歐上拉電阻,執行輸出功能時,不必連接外部上拉電阻;該8位都爲漏級開路輸出,每個引腳可以驅動4個LS型TTL負載;若要執行輸入功能,必須先輸出高電平,方能讀取該端口所連接的外部數據;若系統連接外部存儲器,而外部存儲器的地址線超過8條時,則P0口可作爲地址總線(A8~A15)引腳。
P3口:內部有30千歐上拉電阻,執行輸出功能時,不必連接外部上拉電阻;該8位都爲漏級開路輸出,每個引腳可以驅動4個LS型TTL負載;若要執行輸入功能,必須先輸出高電平,方能讀取該端口所連接的外部數據;
P3口其他功能:
P3 其它功能 說明
P3.0 RXD 串行口的接收引腳
P3.1 RTD 串行口的傳送引腳
P3.2 INT0 INT0中斷輸入
P3.3 INT1 INT1中斷輸入
P3.4 T0 timer 0輸入
P3.5 T1 Timer 1輸入
P3.6 WR 寫入外部存儲器控制引腳
P3.7 RD 讀取外部存儲器控制引腳

SP
SP爲堆棧指針寄存器,其地址爲81H。

DPL、DPH
DPL與DPH均爲8位的數據指針寄存器,其地址分別爲82H、83H。若以DPL爲低8位、DPH爲高8位,即可組成一個16位的數據指針寄存器,簡稱DPTR,如此將可尋址到64KB的數據地址。

PCON
PCON作爲電源控制寄存器,其地址位87H,其功能是設定CPU的電源方式。
它是一個不可位尋址的寄存器。如圖所示:
SMOD ― ― ― GF1 GF0 PD IDL
Bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
其中各位說明如下:
SMOD位爲比特率倍增位。當串行端口工作於模式1、模式2、模式3,且使用定時器1爲其比特率產生器時,若其爲1,這比特率加倍,若爲0,這比特率正常。
GF1、GF0位爲一般用途標誌位,用戶可自行設定或清除這兩個標誌。通常使用這個兩個標誌作爲有中斷喚醒閒置模式中的8051系統。
PD位爲功率下降模式位。爲1時,進入功率下降模式;爲0時,結束功率下降模式。
IDL位爲閒置模式位。爲1時,進入閒置模式;爲0時,結束閒置模式。

TCON
TCON爲定時器/計數器控制寄存器,其地址爲88H

TMOD
TMOD爲計數器/計數方式控制寄存器,其地址爲89H,其功能是設置它的方式

TL0、TL1、TH0、TH1
TL0、TH0爲第一組定時器、計數器的計量寄存器,其地址爲8AH、8CH,將TL0與TH0組合即可進行16位的定時/計數。TL1、TH1爲第二組定時器、計數器的計量寄存器,其地址爲8BH、8DH,將TL1與TH1組合即可進行16位的定時/計數。

SCON
SCON爲串行端口控制寄存器,其地址爲98H,其功能是設定串行端口工作方式與標誌。

SBUF
SBUF爲串行端口緩衝器,其地址爲99H, 這是由使用同一個地址的兩個寄存器所構成,其中一個寄存器作爲傳送數據用的緩衝器,另一個寄存器作爲接收數據用的緩衝器。至於如何分辨同一個地址的兩個寄 存器,則視指令而定,若是數據傳送指令,則自動定位到傳送數據用的緩衝器;若是接受數據指令,則自動定位到接收數據用的緩衝器。詳細以後再講咯。IE
IE爲中斷使能寄存器,其地址爲A8H。

IP
IP爲中斷優先級寄存器。

T2CON
T2CON爲Timer 2的定時器/計數器控制寄存器,其地址爲C8H,其功能死設定Timer 2的啓動、記錄定時/計數溢出,以及外部中斷觸發方式等。

RCAP、RCAP2H
RCAP、RCAP2H爲捕捉寄存器,其地址爲CAH、CBH。當Timer 2在捕捉方式時,若T2EX(P1.1)引腳上的輸入信號有高電平轉爲低電平時,TL2與TH2的內容將被載入RCAP與RCAP2H,就像是把Timer 2的內容捉進RCAP寄存器一樣。

TL2、TH2
TL2、TH2爲第三組定時器、計數器的計量寄存器,其地址爲CCH、CDH,將TL2與TH2組合即可進行16位的定時/計數。

PSW
PSW爲CPU的程序狀態字寄存器,其地址爲D0H,其內容如下:
7 6 5 4 3 2 1 0
PSW CY AC F0 RS1 RS0 OV P
PSW.7:本位爲進位位(CY),加減法時產生進位或錯位,將自行設定爲1,否則爲0。
PSW.6:本位爲輔助進位位(AC),進行加減法運算產生進位或錯位,將自行設定爲1,否則爲0。
PSW.5:本位爲用戶標誌位,用戶自行設定。
PSW.4與PSW.3:這兩個位爲寄存器組選擇位(RS1、RS0),其功能如下表所示。
RS1 RS0 寄存器組
0 0 RB0
0 1 RB1
1 0 RB2
1 1 RB3
PSW.2:本位爲溢出標誌位(OV),運行時,若發生溢出,爲1,否則爲0。
PSW.1:本位爲保留位,沒有提供服務。
PSW.0:本位位奇偶位(P),8051採用偶同位,若ACC中奇數個1,則爲1,偶數個1,則爲0。

ACC
ACC累加器又稱爲A寄存器,其地址爲E0H。
B
B寄存器的地址爲F0H,主要功能是配合A寄存器進行乘法或除法運算。進行乘法運算時,乘數放在B寄存器,而運算結果,高8位放在B寄存器;進行除法運算時,除數放在B寄存器,而運算的結果,餘數放在B寄存器。若不進行乘/除法運算,B寄存器也可當成一般寄存器使用。

門電路

  • 與門
  • 或門
  • 非門
  • 同或門
  • 異或門
  • 門間的組合電路

在這裏插入圖片描述

門電路的實現TTL和MOS集成門電路

寄存器和鎖存器

  • 觸發器分類:
    1、基本R-S觸發器
    2、同步RS觸發器、同步D觸發器
    3、主從R-S觸發器、主從JK觸發器
    4、邊沿觸發器:
    上升沿觸發器(D觸發器、JK觸發器)
    下降沿觸發器(D觸發器、JK觸發器)

  • 觸發器邏輯功能表示方法:
    特性表、卡洛圖、特性方程、狀態圖、時序圖

  • 各種觸發器介紹
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章