89C51單片機硬件結構和基本的原理_第1頁
89C51單片機硬件結構和基本的原理_第2頁
89C51單片機硬件結構和基本的原理_第3頁
89C51單片機硬件結構和基本的原理_第4頁
89C51單片機硬件結構和基本的原理_第5頁
已閱讀5頁,還剩66頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、89C51單片機硬件結構和基本的原理主要掌握基本組成(內部資源)引腳存儲器的配置I/O口的應用功能(以89C51(AT89C51、P89C51、STC89C51)為代表講解)2.1 89C51單片機的基本組成1. 89C51單片機結構框圖8位CPU256字節RAM4KB Flash ROM4個8位I/O口2個定時/計數器5個中斷源1個全雙工串行口片內振蕩器和時鐘產生電路(最高允許振蕩頻率為24MHz)節電工作方式(空閑、掉電)Flash ROM89C5189C51bus3. 89C51 CPU功能介紹由運算器和控制器構成運算器:進行算術運算、邏輯運算,由ALU、A、B、PSW、暫存器組成。控制

2、器:包括PC、IR、ID、振蕩器和時鐘電路單片機的核心ALU Arithmetic Logic Unit 算術/邏輯運算單元A 最忙碌的寄存器 累加器B 多用于乘除運算 寄存器PSW 用于指示指令執行后的狀態信息, 可供程序查詢和判別用。程序狀態字寄存器PC Program Counter,下一條指令的地址。改變PC的內容可以改變程序運行方向。 IR Instruction Register 指令寄存器ID Instruction Decoder 指令譯碼器振蕩器及時鐘電路:提供片內時鐘2.2 89C51單片機的引腳及功能MCS-51單片機信號引腳簡介 P3口線的第二功能VCCVSSXTAL2

3、XTAL1RSTALE2、振蕩電路:XTAL1、XTAL23、復位引腳:RST4、并行口:P0、P1、P2、P37、ALE:地址鎖存控制信號1、電源線:VCC(+5V)、VSS(地)EAPSEN5、EA:訪問程序存儲控制信號6、PSEN:外部ROM讀選通信號RXD/TXD/INT0/ INT1/ T0/ T1/WR/ RD/123456789101112819204039383736353433323252424222180318051 875189C512.3 89C51單片機的存儲器配置1. 存儲器結構普林斯頓結構一般微機采用的結構ROM、RAM安排在同一個地址空間相同指令訪問ROM、RA

4、M哈佛結構89C51采用此結構ROM和RAM占用不同的物理空間采用不同指令訪問2. 89C51 存儲空間物理結構ROM片內、片外RAM片內、片外邏輯結構(從用戶使用的角度看)ROM: MOVC 0000-FFFFH片內RAM :MOV 0000-00FFH片外RAM: MOVX 0000-FFFFH12345678910111213142827262524232221 201918171615EPROM276412345678910111213142827262524232221 201918171615EPROM2764123456789101112819204039383736353433

5、323252424222112345678910111213142827262524232221 201918171615RAM6264 12345678910111213142827262524232221 201918171615RAM6264 存儲器80318751805189C51片內RAM片內ROM256B(字節)4K64K64K3. 程序存儲器與ROM密切相關的兩個引腳 、 通過16位PC尋址,最大可尋址64kB地址空間當ROM容量不夠時,盡量選擇高容量存儲器空間的單片機,如89C52、89C54、89C58等,應避免外擴程序存儲器,因為會增加硬件負擔。程序存儲器程序存儲器內部外部

6、0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序執行的起始單元,在這三個單元存放一條無條件轉移指令中斷5中斷4中斷3中斷2中斷10003H000BH0013H001BH0023H002BH外部中斷0定時器0中斷外部中斷1定時器1中斷串行口中斷8位0FFFH0FFEHEA=1 EA=0程序存儲器資源分布中斷入口地址4. 數據存儲器如何區分0000-00FFH的地址空間是片內RAM還是片外RAM?片內RAM:低128B片內RAM 0000-007FH 高128B片內RAM 0080-00FFH片內、片外分開

7、編址SFR:特殊功能寄存器區0000HFFFFH(64K)內部外部數據存儲器數據存儲器00HFFH7FH80H(高128B)(低128B)RAM專用寄存器00H07H08H0FH10H17H18H1FH0區R0R7R0R7R0R7R0R71區2區3區工作寄存器區可位尋址區20H2FH7F 7807 0030H7FH數據緩沖區/堆棧區內部RAM存儲器 1 1第 3 區18H1FH 0 1第 1 區08H0FHRS1 RS0寄存器區片內RAM地址 0 0第 0 區00H07H 1 0第 2 區10H17H工作寄存器區選擇位RS0、RS1PSW位地址 CY ACF0RS1RS0OVF1PMSBMos

8、t Significant Bit (最高有效位)LSB Least Significant Bit (最低有效位)單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07 MSB 位地址 LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A

9、322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位尋址區位地址表高128個單元離散分布有21個特殊功能寄存器SFR。 11個可以進行位尋址。特別提示:對SFR只能使用直接尋址方式,書寫時可使用寄存器符號,也可用寄存器單元地址。5. 特殊功能寄存器(SFR)ACCBDPTR: Data Pointer,16位,對64kB片外RAM/ROM和外圍設備作間接尋址。 例:MOV DPTR,#2000H MOVX A,DPTR 則: DPH=20H, DPL=00H, DPTR=2000H

10、結果是:取出片外RAM地址為2000H的數據,存放于A。特殊功能寄存器PSW:Program Status Word:進位carry、輔助進位auxiliary、用戶標志flag zero、寄存器選擇register select、溢出overflow、奇偶parity。CYACF0RS1RS0OVP例:MOV A,#0FH ADD A,#0F8H 0000 1111+ 1111 1000 1 0000 0111 AC=1, CY=1, OV=CYAC=11=0,P=1,所以:1101特殊功能寄存器SP :堆棧指針 (Stack Pointer), 8位,專門存放堆棧的棧頂單元的地址。入棧時自

11、動加1,出棧時自動減1。復位后,SP07H0708090A0B35PUSH ACC,SP08H0708090A0BC135PUSH PSW,SP09H0708090A0B35POP PSW,SP08H0708090A0B0708090A0BPOP ACC,SP07H單片機工作條件單片機正常工作最基本條件是:正確的電源、時鐘和復位信號。單片機最小系統1、時鐘電路要給單片機CPU提供時鐘信號,就需要相關的硬件電路,即振蕩器和時鐘電路。51系列單片機內部有一個高增益反相放大器,這個反相放大器的作用就是構成振蕩器,但要形成時鐘,外部還需要加一些附加電路。51系列單片機本身一般不能自動進行復位的,必須配

12、合相應的外部電路才能實現。當5l系列單片機的復位引腳RST出現2個機器周期以上的高電平時,單片機就執行復位操作。如果RST持續為高電平,單片機就處于循環復位狀態。2.復位電路2.4 時鐘電路及CPU時序1. 時鐘電路 根據硬件電路的不同,單片機的時鐘連接方式可分為內部時鐘方式和外部時鐘方式,如圖所示。89C51XTAL1Vcc外部時鐘輸入TTL(a)內部時鐘電路;(b) HMOS型外部振蕩源 (C) CHMOS型外部振蕩源 外接晶振時,電容的值一般取30pF;外接陶瓷諧振器時,電容的值一般取47pF2. 基本概念振蕩器: 產生內部脈沖信號 若采用外部脈沖信號時鐘發生器:根據脈沖信號產生時鐘信號

13、振蕩周期P:脈沖信號周期時鐘周期(狀態周期)S :(機器狀態時間)S=P1+P2機器周期: 指令執行的單位=6S=12P指令周期: 指令執行的時間=N * 6S,N=1、2、3對HMOS單片機:XTAL2輸入,XTAL1接地對CHMOS單片機:XTAL1輸入,XTAL2懸空3. CPU取指、執行周期時序ALE有效時,表示可以讀取指令。一個機器周期內,ALE有效兩次提問:若采用12MHz的晶振頻率,計算機器周期?2.5 復位操作MCS-51單片機復位(RST高電平2個機器周期) 任何單片機在工作之前都要有個復位的過程,復位是什么意思呢?對單片機來說,是程序還沒有開始執行,是在做準備工作-初始狀態

14、。 如何進行復位呢?只要在單片機的RST引腳上加上高電平,就可以了。為了達到這個要求,可以用很多種方法,見圖。一、復位電路在通電瞬間,由于RC的充電過程,在 RST端出現2個機器周期以上的高電平,只要該正脈沖保持2個機器周期以上,就能使單片機自動復位。根據應用的要求,復位操作通常有兩種基本形式,即上電復位和按鍵復位805187518031RSTCRR1R25V上電復位按鍵復位上電后,由于電容充電,使 RST持續一段高電平時間。當單片 機已在運行過程中時,按下復位鍵 也能使 RST持續一段時間的高電平, 從而實現上電且開關復位的操作。 通常選擇 C=10f ,R=10K。二、復位后單片機的狀態復

15、位后各寄存器的狀態PC 0000H(程序入口) P0、P1、P2、P3 0FFH (可以直接輸入) SP 07H (棧底已經設好)PSW 00H (選擇0組寄存器)其余大部分都是0熟悉復位后各寄存器的狀態,可以減短初始化程序。2.6 89C51單片機的低功耗工作方式89C51提供兩種節電工作方式:空閑(待機)工作方式:不向CPU供電,只供中斷、串行口、定時器部分。可以通過中斷觸發方式退出待機模式。掉電工作方式:所有功能停止工作。方式的設定PCON(電源控制寄存器)8051:HMOS(高密度短溝道MOS)半導體工藝89C51:CHMOS=HMOS+CMOSSMOD - - -GF1GF0PDID

16、L2.7 輸入/輸出端口單片機I/O口的使用對單片機的控制,其實就是對I/O口的控制,無論單片機對外界進行何種控制,亦或接受外部的控制,都是通過I/O口進行的。單片機總共有P0、P1、P2、P3四個8位雙向輸入輸出端口,每個端口都有鎖存器、輸出驅動器和輸入緩沖器。4個I/O端口都能作輸入輸出口用,其中P0和P2通常用于對外部存儲器的訪問。一. I/O口的構成口鎖存器(CPU通過內部總線把數據寫入口鎖存器)輸出驅動器輸入緩沖器鎖存器的含義CTR開關Bus鎖存器其它器件0OUT=Bus1OUT保持OUT二. 89C51的 I/O口4個8位并行I/O口:P0,P1,P2,P3;均可作為雙向I/O端口

17、使用。(1)特點: P0:訪問片外擴展存儲器時, 復用為低8位地址線和數據線 P2:高8位地址線。P1:雙向I/O端口 P3:第二功能123456789101112819204039383736353433323252424222180318051 875189C51準雙向口含義: 端口每位都可以定義為輸入/輸出,但作為輸入時,必須先向該位的口鎖存器寫”1”。在讀入端口數據時,如果T導通,就會將輸入的高電平拉成低電平,產生誤讀。所以在端口進行輸入操作前,應先向端口鎖存器寫“1”,使T截止,引腳處于懸浮狀態,變為高阻抗輸入。這就是所謂的準雙向口。D QCLK QP1.n讀鎖存器內部總線寫鎖存器讀

18、引腳VCCRTP1口引腳CPU對I/O口的讀操作一是讀口鎖存器的狀態二是CPU讀口引腳上的外部輸入信息D QCLK QP1.n讀鎖存器內部總線寫鎖存器讀引腳VCCRTP1口引腳4個I/O口的用途P1口只有通用輸入/輸出端口的功能;P0,P2,P3除了可以作為通用的I/O口,還可以用于其他用途。共同點:P0、P1、P2、P3都是準雙向口;執行“讀修改寫”類指令時,讀的是鎖存器而不是引腳,如:ANL P1,AORL P1,#dataXRL P1,ACPL P1. INC P1DEC P1下圖為P0口的某位(n=07)結構圖,它由一個輸出鎖存器、兩個三態輸入緩沖器和輸出驅動電路及控制電路組成。從圖中

19、可以看出,P0口既可以作為I/O用,也可以作為地址/數據線用。D QCLK QMUXP0.n讀鎖存器內部總線寫鎖存器讀引腳地址/數據控制VCCT1T2P0口引腳1、P0口的結構(1)P0口作為普通I/O口輸出時CPU發出控制電平“0”封鎖“與”門,將輸出上拉場效應管T1截止,同時使多路開關MUX把鎖存器與輸出D QCLK QMUXP0.n讀鎖存器內部總線寫鎖存器讀引腳地址/數據控制VCCT1T2P0口引腳驅動場效應管T2柵極接通。故內部總線與P0口同相。由于輸出驅動級是漏極開路電路,若驅動NMOS或其它拉流負載時,需要外接上拉電阻。D QCLK QMUXP0.n讀鎖存器內部總線寫鎖存器讀引腳地

20、址/數據控制VCCT1T2P0口引腳如果是驅動led,那么用1K左右的就行了。如果希望亮度大一些,電阻可減小,最小不要小于200歐姆,否則電流太大;如果希望亮度小一些,電阻可增大,增加到多少呢,主要看亮度情況,以亮度合適為準,一般來說超過3K以上時,亮度就很弱了,但是對于超高亮度的LED,有時候電阻為10K時覺得亮度還能夠用。通常就用1k的。 對于驅動光耦合器,如果是高電位有效,即耦合器輸入端接端口和地之間,那么和LED的情況是一樣的;如果是低電位有效,即耦合器輸 入端接端口和VCC之間,那么除了要串接一個之間的電阻以外,同時上拉電阻的阻值就可以用的特別大,用100k500K之間的都行,當然用

21、10K的也可以,但是考慮到省電問題,沒有必要用那么小的。 對于驅動晶體管,又分為PNP和NPN管兩種情況:對于NPN,毫無疑問NPN管是高電平有效的,因此上拉電阻的阻值用2K20K之間的,具體的大小還要看晶體管的集電極接的是什么負載,對于LED類負載,由于發管電流很小,因此上拉電阻的阻值可以用20k的,但是對于管子的集電極為繼電器負載時,由于集電極電流大,因此上拉電阻的阻值最好不要大于,有時候甚至用2K的。對于PNP管,毫無疑問PNP管是低電平有效的,因此上拉電阻的阻值用100K以上的就行了,且管子的基極必須串接一個110K的電阻,阻值的大小要看管子集電極的負載是什么,對于LED類負載,由于發

22、光電流很小,因此基極串接的電阻的阻值可以用20k的,但是對于管子的集電極為繼電器負載時,由于集電極電流大,因此基極電阻的阻值最好不要大于。 對于驅動TTL集成電路,上拉電阻的阻值要用110K之間的,有時候電阻太大的話是拉不起來的,因此用的阻值較小。但是對于CMOS集成電路,上拉電阻的阻值就可以用的很大,一般不小于20K,我通常用100K的,實際上對于CMOS電路,上拉電阻的阻值用1M的也是可以的,但是要注意上拉電阻的阻值太大的時候,容易產生干擾,尤其是線路板的線條很長的時候,這種干擾更嚴重,這種情況下上拉電阻不宜過大,一般要小于100K,有時候甚至小于10K。( 輸入時-分讀引腳或讀鎖存器讀引

23、腳:由傳送指令(MOV)實現; 下面一個緩沖器用于讀端口引腳數據,當執行一條由端口輸入的指令時,讀脈沖把該三態緩沖器打開,這樣端口引腳上的數據經過緩沖器讀入到內部總線。D QCLK QMUXP0.n讀鎖存器內部總線寫鎖存器讀引腳地址/數據控制VCCT1T2P0口引腳(2)P0作為地址/數據總線 在系統擴展時,P0端口作為地址/數據總線使用時,分為: P0引腳輸出地址/數據信息。 D QCLK QMUXP0.n讀鎖存器內部總線寫鎖存器讀引腳地址/數據控制VCCT1T2P0口引腳 CPU發出控制電平“1”,打開“與”門,又使多路開關MUX把CPU的地址/數據總線與T2柵極反相接通,輸出地址或數據。

24、由圖上可以看出,上下兩個FET處于反相,構成了推拉式的輸出電路,其負載能力大大增強。P0的輸出級可驅動8個LSTTL負載。D QCLK QMUXP0.n讀鎖存器內部總線寫鎖存器讀引腳地址/數據控制VCCT1T2P0口引腳(2) P0作為地址/數據總線 P0引腳作輸入口 輸入信號是從引腳通過輸入緩沖器進入內部總線。(2) P0作為地址/數據總線D QCLK QMUXP0.n讀鎖存器內部總線寫鎖存器讀引腳地址/數據控制VCCT1T2P0口引腳2、P2的內部結構(1)P2口作為普通I/O口D QCLK QMUXP2.n讀鎖存器內部總線寫鎖存器讀引腳地址控制VCCRTP2口引腳CPU發出控制電平“0”

25、 ,使多路開關MUX倒向鎖存器輸出Q端,構成一個準雙向口。其功能與P1相同。 (2) P2口作為地址總線 在系統擴展片外程序存儲器擴展數據存儲器且容量超過256B (用MOVX DPTR指令)時,CPU發出控制電平“1”,使多路開關MUX倒內部地址線。此時,P2輸出高8位地址。D QCLK QMUXP2.n讀鎖存器內部總線寫鎖存器讀引腳地址控制VCCRTP2口引腳3、 P1口、P3口的內部結構 (1)P1口的一位的結構 它由一個輸出鎖存器、兩個三態輸入緩沖器和輸出驅動電路組成-準雙向口。D QCLK QP1.n讀鎖存器內部總線寫鎖存器讀引腳VCCRTP1口引腳(2)P3的內部結構D QCLK

26、Q讀鎖存器內部總線寫鎖存器讀引腳VCCRTP3口引腳第二輸入功能第二輸出功能作為通用I/O口與P1口類似-準雙向口(W=1)W(2)P3的內部結構D QCLK Q讀鎖存器內部總線寫鎖存器讀引腳VCCRTP3口引腳第二輸入功能第二輸出功能 P3第二功能(Q=1)此時引腳部分輸入(Q=1、W=1) ,部分輸出(Q=1、W輸出) 。WP3第二功能各引腳功能定義:P3.0:RXD串行口輸入P3.1:TXD串行口輸出P3.2:INT0外部中斷0輸入P3.3:INT1外部中斷1輸入P3.4:T0定時器0外部輸入P3.5:T1定時器1外部輸入P3.6:WR外部寫控制P3.7:RD外部讀控制端口的負載能力和接

27、口要求 1、P0口的負載能力和接口要求負載能力:可驅動8個LS(低功耗、甚高速)型TTLP0接口要求:作為一般I/O口輸出時,若驅動的是NMOS電路或OC門電路,其引腳要接上拉電阻,否則高電平電位不確定; 2、P1P3口的負載能力和接口要求負載能力:可驅動4個LS型TTL接口要求:作為一般I/O口輸出時,驅動任何電路都不需要要接上拉電阻(因為內部有上拉電阻);作為一般I/O口為準雙向口。指令寄存器譯碼地址譯碼程序計數器地址寄存器累加器A運算器存儲器內部數據總線外部地址總線AB數據緩沖器外部數據總線DB寄存器區外部控制總線CB內部控制信號時鐘及清零總結:單片機的工作過程取指過程例: MOV A,

28、#09H 74H 09H ;把09H送到累加器A中執行過程PC=0000H0001H0000H0002H0 1 1 1 0 1 0 00 0 0 0 1 0 0 1(PC)(PC)0001H0002H0000H外部控制總線CB取指過程(PC)執行過程你知道PC的作用嗎?1、CPU主要的組成部部分為( )。B加法器,寄存器 C運算器,寄存器 D運算器,指令譯碼器A運算器,控制器 課堂練習2、8031有四個工作寄存器區,由PSW狀態字中的RS1、RS0兩位的狀態來決定,單片機復位后,若執行 SETB RS1 指令,此時只能使用( )區的工作寄存器。A0區B1區C2區D3區課堂練習3. 09H位所在的單元地址是( )A 02HC 08HB 21HD20H課堂練習4.單片機在進行取指令操作時,指令的地址是由( )的內容決定。A SPC DPTRD PSEN和ALE BPC課堂練習5. P0,P1口作輸入用途之前必須( )。A外接高電平 B外接上拉電阻C相應端口先置0 D相應端口先置1 課堂練習6.程序計數器PC用來( )。A存放指令 B存放上一條的指令地址D存放正在執行的指令地址 C存放下一條的指令地址 課堂練習1. 8031單片機內部RAM包括( ) 。 A.程序存儲區 B堆棧區

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論