小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

單片機內(nèi)部結(jié)構(gòu)詳解

 哥只是個傳說 2013-08-30

3、單片機內(nèi)部結(jié)構(gòu)詳解(以MCS-51為例)

MCS-51單片機結(jié)構(gòu)

MCS-51系列單片機產(chǎn)品有8051,8031,8751,80C51,80C31等型號(前三種為CMOS芯片,后兩種為CHMOS芯片)。它們的結(jié)構(gòu)基本相同,其主要差別反映在存儲器的配置上。8051內(nèi)部設(shè)有4K字節(jié)的掩模ROM程序存儲器,8031片內(nèi)沒有程序存儲器,而8751是將8051片內(nèi)的ROM換成EPROM。由ATMEL公司生產(chǎn)的89C51將EPROM改成了4K的閃速存儲器,他們的結(jié)構(gòu)大同小異,本章將對8051單片機的結(jié)構(gòu)作一介紹。
2.1  MCS-51單片機內(nèi)部結(jié)構(gòu)
2.1.1、 MCS-51單片機組成

MCS-51單片機是在一塊芯片中集成了CPU,RAM,ROM、定時器/計數(shù)器和多種功能的I/O線等一臺計算機所需要的基本功能部件。MCS-51單片機內(nèi)包含下列幾個部件:
◆ 一個8位CPU;
◆ 一個片內(nèi)振蕩器及時鐘電路;
◆ 4K字節(jié)ROM程序存儲器;
◆ 128字節(jié)RAM數(shù)據(jù)存儲器;
◆ 兩個16位定時器/計數(shù)器;
◆ 可尋址64K外部數(shù)據(jù)存儲器和64K外部程序存儲器空間的控制電路;
◆ 32條可編程的I/O線(四個8位并行I/O端口);
◆ 一個可編程全雙工串行口;
◆ 具有五個中斷源、兩個優(yōu)先級嵌套中斷結(jié)構(gòu)。

8051單片機框圖如圖2-1所示。各功能部件由內(nèi)部總線聯(lián)接在一起。
圖中4K(4096)字節(jié)的ROM存儲器部分用EPROM替換就成為8751;圖中去掉ROM部分就成為8031的結(jié)構(gòu)圖。
1、 CPU
CPU是單片機的核心部件。它由運算器和控制器等部件組成。
⑴ 運算器
運算器的功能是進行算術(shù)運算和邏輯運算??梢詫Π胱止?jié)(4位)、單字節(jié)等數(shù)據(jù)進行操作。例如能完成加、

減、乘、除、加1、減1、BCD碼十進制調(diào)整、比較等算術(shù)運算和與、或、異或、求補、循環(huán)等邏輯操作,操作

結(jié)果的狀態(tài)信息送至狀態(tài)寄存器。
8051運算器還包含有一個布爾處理器,用來處理位操作。它是以進位標志位C為累加器的,可執(zhí)行置位、復(fù)位

、取反、等于1轉(zhuǎn)移、等于0轉(zhuǎn)移、等于1轉(zhuǎn)移且清0以及進位標志位與其他可尋址的位之間進行數(shù)據(jù)傳送等位操

作。也能使進位標志位與其他可位尋址的位之間進行邏輯與、或操作。

  1. 程序計數(shù)器PC

程序計數(shù)器PC用來存放即將要執(zhí)行的指令地址,共16位,可對64K程序存儲器直接尋址。執(zhí)行指令時,PC內(nèi)容的

低8位經(jīng)P0口輸出,高8位經(jīng)P2口輸出。

  1. 令寄存器

指令寄存器中存放指令代碼。CPU執(zhí)行指令時,由程序存儲器中讀取的指令代碼送入指令寄存器,經(jīng)譯碼后由定時與控制電路發(fā)出相應(yīng)的控制信號,完成指令功能。

  1. 定時與控制部件

①時鐘電路
8051片內(nèi)設(shè)有一個由反向放大器所構(gòu)成的振蕩電路,XTAL1和 XTAL2分別為振蕩電路的輸入和輸出端,時鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式時鐘電路如圖2-2所示。在XTAL1和 XTAL2引腳上外接定時元件,內(nèi)部振蕩電路就產(chǎn)生自激振蕩。定時元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶振可以在1.2MHz到12MHz之間選擇,電容值在5-30PF之間選擇,電容的大小可起頻率微調(diào)作用。

外部方式的時鐘很少用,若要用時,只要將XTAL1接地,XTAL2接外部振蕩器就行。對外部振蕩信號無特殊要求,只要保證脈沖寬度,一般采用頻率低于12MHz的方波信號。
時鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個兩相時鐘信號P1和P2供單片機使用。P1在每一個狀態(tài)S的前半部分有效,P2在每個狀態(tài)的后半部分有效。
②  時序
MCS-51典型的指令周期(執(zhí)行一條指令的時間稱為指令周期)為一個機器周期,一個機器周期由六個狀態(tài)(十二振蕩周期)組成。每個狀態(tài)又被分成兩個時相P1和P2。所以,一個機器周期可以依次表示為S1P1,S1P2……,S6P1,S6P2。通常算術(shù)邏輯操作在P1時相進行,而內(nèi)部寄存器傳送在P2時相進行。
圖2-3給出了8051單片機的取指和執(zhí)行指令的定時關(guān)系。這些內(nèi)部時鐘信號不能從外部觀察到,所用XTAL2振蕩信號作參考。在圖中可看到,低8位地址的鎖存信號ALE在每個機器周期中兩次有效:一次在S1P2與S2P1期間,另一次在S4P2與S5P1期間。

對于單周期指令,當(dāng)操作碼被送入指令寄存器時,便從S1P2開始執(zhí)行指令。如果是雙字節(jié)單機器周期指令,則在同一機器周期的S4期間讀入第二個字節(jié),若是單字節(jié)單機器周期指令,則在S4期間仍進行讀,但所讀的這個字節(jié)操作碼被忽略,程序計數(shù)器也不加1,在S6P2結(jié)束時完成指令操作。圖2-3的(a)和(b)給出了單字節(jié)單機器周期和雙字節(jié)單機器周期指令的時序。8051指令大部分在一個機器周期完成。乘(MUL)和除(DIV)指令是僅有的需要兩個以上機器周期的指令,占用4個機器周期。對于雙字節(jié)單機器周期指令,通常是在一個機器周期內(nèi)從程序存儲器中讀入兩個字節(jié),唯有MOVX指令例外。MOVX是訪問外部數(shù)據(jù)存儲器的單字節(jié)雙機器周期指令。在執(zhí)行MOVX指令期間,外部數(shù)據(jù)存儲器被訪問且被選通時跳過兩次取指操作。圖2-3中(c)給出了一般單字節(jié)雙機器周期指令的時序。

2、存儲器
MCS-51單片機的程序存儲器和數(shù)據(jù)存儲器空間是互相獨立的,物理結(jié)構(gòu)也不同。程序存儲器為只讀存儲器(ROM)。數(shù)據(jù)存儲器為隨機存取存儲器(RAM)。單片機的存儲器編址方式采用與工作寄存器、I/O口鎖存器統(tǒng)一編址的方式。有關(guān)存儲器的內(nèi)容將在下一節(jié)中詳述。
3、I/O端口
I/O端口又稱為I/O接口,也叫做I/O通道或I/O通路,I/O端口是MCS-51單片機對外部實現(xiàn)控制和信息交換的必經(jīng)之路,I/O端口有串行和并行之分,串行I/O端口一次只能傳送一位二進制信息,并行I/O端口一次能傳送一組二進制信息。
⑴、并行I/O端口
MCS-51單片機設(shè)有四個8位雙向I/O端口(P0、P1、P2、P3),每一條I/O線都能獨立地用作輸入或輸出。P0口為三態(tài)雙向口,能帶8個LSTTL電路。P1、P2、P3口為準雙向口(在用作輸入線時,口鎖存器必須先寫入“1”,故稱為準雙向口),負載能力為4個LSTTL電路。
1)、P0端口功能(P0.0~P0.7、32~39腳)

圖2-4 是 P0口位結(jié)構(gòu),包括1個輸出鎖存器,2個三態(tài)緩沖器,1個輸出驅(qū)動電路和1個輸出控制端。輸出驅(qū)動電路由一對場效應(yīng)管組成,其工作狀態(tài)受輸出端的控制,輸出控制端由1個與門、1個反相器和1個轉(zhuǎn)換開關(guān)MUX組成。對8051/8751來講P0口既可作為輸入輸出口,又可作為地址/數(shù)據(jù)總線使用,
① P0口作地址/數(shù)據(jù)復(fù)用總線使用
若從P0口輸出地址或數(shù)據(jù)信息,此時控制端應(yīng)為高電平,轉(zhuǎn)換開關(guān)MUX將反相器輸出端與輸出級場效應(yīng)管V2接通,同時與門開鎖,內(nèi)部總線上的地址或數(shù)據(jù)信號通過與門去驅(qū)動V1管,又通過反相器去驅(qū)動V2管,這時內(nèi)部總線上的地址或數(shù)據(jù)信號就傳送到P0口的引腳上。工作時低8位地址與數(shù)據(jù)線分時使用P0口。低8位地址由ALE信號的負跳變使它鎖存到外部地址鎖存器中,而高8位地址由P2口輸出(P0口和P2口的地址/數(shù)據(jù)總線功能,請閱第八章MCS-51擴展技術(shù))。
② P0口作通用I/O端口使用
對于有內(nèi)部ROM的單片機,PO口也可以作通用I/O,此時控制端為低電平,轉(zhuǎn)換開關(guān)把輸出級與鎖存器的Q端接通,同時因與門輸出為低電平,輸出級V1管處于截止狀態(tài),輸出級為漏極開路電路,在驅(qū)動NMOS電路時應(yīng)外接上拉電阻;作輸入口用時,應(yīng)先將鎖存器寫“1”,這時輸出級兩個場效應(yīng)管均截止,可作高阻抗輸入,通過三態(tài)輸入緩沖器讀取引腳信號,從而完成輸入操作。
③ PO口線上的“讀一修改一寫”功能
圖2-4上面一個三態(tài)緩沖器是為了讀取鎖存器Q端的數(shù)據(jù)。Q端與引腳的數(shù)據(jù)是一致的。結(jié)構(gòu)上這樣安排是為了滿足:“讀一修改一寫”指令的需要,這類指令的特點時:先讀口鎖存器,隨之可能對讀入的數(shù)據(jù)進行修改再寫入到端口上。例如:ANL PO,A;ORL PO,A;XRL PO,A;…。
這類指令同樣適合與P1~P3口,其操作是:先將口字節(jié)的全部8位數(shù)讀入,再通過指令修改某些位,然后將新的數(shù)據(jù)寫回到口鎖器中。
2)P1口(P1.0~P1.7、1~8腳)準雙向口
① P1口作通用I/O端口使用
P1口是一個有內(nèi)部上拉電阻的準雙向口,位結(jié)構(gòu)入圖2-5所示,P1口的每一位口線能獨立用作輸入線或輸出線。作輸出時,如將“0”寫入鎖存器,場效應(yīng)管導(dǎo)通,輸出線為低電平,即輸出為“0”。因此在作輸入時,必須先將“1”寫入口鎖存器,使場效應(yīng)管截止。該口線由內(nèi)部上拉電阻提拉成高電平,同時也能被外部輸入源拉成低電平,即當(dāng)外部輸入“1”時該口線為高電平,而輸入“0”時,該口線為低電平。P1口作輸入時,可被任何TTL電路和MOS電路驅(qū)動,由于具有內(nèi)部上拉電阻,也可以直接被集電極度開路和漏極開路電路驅(qū)動,不必外加上拉電阻。P1口可驅(qū)動4個LSTTL門電路。

② P1口其他功能
P1口在EPROM編程和驗證程序時,它輸入低8位地址;在8032/8052系列中P1.0
和P1.1是多功能的,P1.0可作定時器/計數(shù)器2的外部計數(shù)觸發(fā)輸入端T2,P1.1可作定時器/計數(shù)器2的外部控制輸入端T2EX。
3) P2口(P2.0~P2.7,21~28腳)準雙向口
P2口的位結(jié)構(gòu)如圖2-6所示,引腳上拉電阻同P1口。在結(jié)構(gòu)上,P2口比P1口多一個輸出控制部分。

① P2口作通用I/O端口使用
當(dāng)P2口作通用I/O端口使用時,是一個準雙向口,此時轉(zhuǎn)換開關(guān)MUX倒向左邊,輸出級與鎖存器接通,引腳可接I/O設(shè)備,其輸入輸出操作與P1口完全相同。
② P2口作地址總線口使用
當(dāng)系統(tǒng)中接有外部存儲器時,P2口用于輸出高8位地址A15~A8。這時在CPU的控制下,轉(zhuǎn)換開關(guān)MUX倒向右邊,接通內(nèi)部地址總線。P2口的口線狀態(tài)取決于片內(nèi)輸出的地址信息,這些地址信息來源于PCH、DPH等。在外接程序存儲器的系統(tǒng)中,由于訪問外部存儲器的操作連續(xù)不斷,P2口不斷送出地址高8位。例如,在8031構(gòu)成的系統(tǒng)中,P2口一般只作地址總線口使用,不再作I/O端口直接連外部設(shè)備。
在不接外部程序存儲器而接有外部數(shù)據(jù)存儲器的系統(tǒng)中,情況有所不同。若外接數(shù)據(jù)
存儲器容量為256B,則可使用MOVX  A,@Ri類指令由PO口送出8位地址,P2口上引腳的信號在整個訪問外部數(shù)據(jù)存儲器期間也不會改變,故P2口仍可作通用I/O端口使用。若外接存儲器容量較大,則需用MOVX A,@DPTR類指令,由PO口和P2口送出16位地址。在讀寫周期內(nèi),P2口引腳上將保持地址信息,但從結(jié)構(gòu)可知,輸出地址時,并不要求P2口鎖存器鎖存“1”,鎖存器內(nèi)容也不會在送地址信息時改變。故訪問外部數(shù)據(jù)存儲器周期結(jié)束后,P2口鎖存器的內(nèi)容又會重新出現(xiàn)在引腳上。這樣,根據(jù)訪問外部數(shù)據(jù)存儲器的頻繁程度,P2口仍可在一定限度內(nèi)作一般I/O端口使用。P2口可驅(qū)動4個LSTTL門電路。
4) P3口(P3.0~P3.7、10~17腳)雙功能口
P3口是一個多用途的端口,也是一個準雙向口,作為第一功能使用時,其功能同P1口。P3口的位結(jié)構(gòu)如圖 2-7。

當(dāng)作第二功能使用時,每一位功能定義如表2-1所示。P3口的第二功能實際上就是系統(tǒng)具有控制功能的控制線。此時相應(yīng)的口線鎖存器必須為“1”狀態(tài),與非門的輸出由第二功能輸出線的狀態(tài)確定,從而P3口線的狀態(tài)取決于第二功能輸出線的電平。在P3口的引腳信號輸入通道中有兩個三態(tài)緩沖器,第二功能的輸入信號取自第一個緩沖器的輸出端,第二個緩沖器仍是第一功能的讀引腳信號緩沖器。P3口可驅(qū)動4個LSTTL門電路。

 表 2-1  P3口的第二功能


端  口  功  能

第  二  功  能

P3.0

RXD---串行輸入(數(shù)據(jù)接收)口

P3.1

TXD---串行輸出(數(shù)據(jù)發(fā)送)口

P3.2

---外部中斷0輸入線

P3.3

---外部中斷1輸入線

P3.4

T0  ---定時器0外部輸入

P3.5

T1  ---定時器1外部輸入

P3.6

---外部數(shù)據(jù)存儲器寫選通信號輸出

P3.7

---外部數(shù)據(jù)存儲器讀選通信號輸入

每個I/O端口內(nèi)部都有一個八位數(shù)據(jù)輸出鎖存器和一個八位數(shù)據(jù)輸入緩沖器,四個數(shù)據(jù)輸出鎖存器與端口號P0、P1、P2和P3同名,皆為特殊功能寄存器。因此,CPU數(shù)據(jù)從并行I/O端口輸出時可以得到鎖存,數(shù)據(jù)輸入時可以得到緩沖。
四個并行I/O端口作為通用I/O口使用時,共有寫端口、讀端口和讀引腳三種操作方式。寫端口實際上就是輸出數(shù)據(jù),是將累加器A或其它寄存器中數(shù)據(jù)傳送到端口鎖存器中,然后由端口自動從端口引腳線上輸出。讀端口不是真正的從外部輸入數(shù)據(jù),而是將端口鎖存器中輸出數(shù)據(jù)讀到CPU的累加器。讀引腳才是真正的輸入外部數(shù)據(jù)的操作,是從端口引腳線上讀入外部的輸入數(shù)據(jù)。端口的上述三種操作實際上是通過指令或程序來實現(xiàn)的,這些將在以后章節(jié)中詳細介紹。
⑵、串行I/O端口
8051有一個全雙工的可編程串行I/O端口。這個串行I/O端口既可以在程序控制下將CPU的八位并行數(shù)據(jù)變成串行數(shù)據(jù)一位一位地從發(fā)送數(shù)據(jù)線TXD發(fā)送出去,也可以把串行接收到的數(shù)據(jù)變成八位并行數(shù)據(jù)送給CPU,而且這種串行發(fā)送和串行接收可以單獨進行,也可以同時進行。
8051串行發(fā)送和串行接收利用了P3口的第二功能,即利用P3.1 引腳作為串行數(shù)據(jù)的發(fā)送線TXD和P3.0引腳作為串行數(shù)據(jù)的接收線RXD,如表2-1所示。串行I/O口的電路結(jié)構(gòu)還包括串行口控制器SCON、電源及波特率選擇寄存器PCON和串行數(shù)據(jù)緩沖器SBUF等,它們都屬于特殊功能寄存器SFR。其中PCON和SCON用于設(shè)置串行口工作方式和確定數(shù)據(jù)的發(fā)送和接收波特率,SBUF實際上由兩個八位寄存器組成,一個用于存放欲發(fā)送的數(shù)據(jù),另一個用于存放接收到的數(shù)據(jù),起著數(shù)據(jù)的緩沖作用,這些將在第七章中詳細加以介紹。
4、總線
MCS-51單片機屬總線型結(jié)構(gòu),通過地址/數(shù)據(jù)總線可以與存儲器(RAM、EPROM)、并行I/O接口芯片相連接。
在訪問外部存儲器時,P2口輸出高8位地址,P0口輸出低8位地址,由ALE(地址鎖存允許)信號將P0口(地址/數(shù)據(jù)總線)上的低8位鎖存到外部地址鎖存器中,從而為P0口接受數(shù)據(jù)作準備。
在訪問外部程序存儲器(即執(zhí)行MOVX)指令時,PSEN(外部程序存儲器選通)信號有效,在訪問外部數(shù)據(jù)存儲器(即執(zhí)行MOVX)指令時,由P3口自動產(chǎn)生讀/寫(/)信號,通過P0口對外部數(shù)據(jù)存儲器單元進行讀/寫操作。
MCS-51單片機所產(chǎn)生的地址、數(shù)據(jù)和控制信號與外部存儲器、并行I/O接口芯片連接簡單、方便。有關(guān)這部分內(nèi)容將在第8章敘述。

Next Page>>

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多