單片機 第二章.ppt_第1頁
單片機 第二章.ppt_第2頁
單片機 第二章.ppt_第3頁
單片機 第二章.ppt_第4頁
單片機 第二章.ppt_第5頁
已閱讀5頁,還剩91頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、了解單片機內(nèi)部基本結(jié)構(gòu) 掌握單片機存儲器分布和使用 掌握常用的特殊功能寄存器SFR的使用 了解單片機的工作方式 掌握單片機的引腳及引腳功能,教學(xué)目的 :,學(xué)習(xí)重點和難點,單片機的存儲器結(jié)構(gòu) 單片機的引腳及引腳功能,第二章 MCS-51單片機的基本結(jié)構(gòu)及工作原理,MCS-51系列單片機配置一覽表,一、MCS-51內(nèi)部結(jié)構(gòu),圖21 8051的功能部件圖,圖2.2 MCS-51單片機內(nèi)部結(jié)構(gòu),二 CPU,主要功能:產(chǎn)生各種控制信號,去控制存儲器、輸入輸出端口的數(shù)據(jù)傳送、數(shù)據(jù)的算術(shù)運算、邏輯運算以及位操作處理等。,(一)運算器 組成:運算器由算邏運算部件ALU、累加器Acc、暫存器、程序狀態(tài)字寄存器P

2、SW、BCD碼運算調(diào)整電路等組成 。實現(xiàn)+、算術(shù)運算,與、或、非、異或 邏輯運算、循環(huán)移位、位處理。,(二)控制器 組成:由程序計數(shù)器PC、指令寄存器、指令譯碼器、數(shù)據(jù)指針DPTR、定時控制與條件轉(zhuǎn)移邏輯電路等組成。 功能:對來自存儲器中的指令進行譯碼,通過定時控制電路,在規(guī)定的時刻發(fā)出各種操作所需的全部內(nèi)部和外部控制信號,協(xié)調(diào)各功能元件的工作,完成指令所規(guī)定的功能。,特點: 它是16位的按機器周期自動增1計數(shù)器,一切分支/跳轉(zhuǎn)/調(diào)用/中斷/復(fù)位 等操作的本質(zhì)就是:改變 PC 值,總指向下一條指令所在首地址(當(dāng)前PC值),1程序計數(shù)器PC(Program Counter) 一個16位的專用寄存

3、器,用來存放下一條(當(dāng)前)指令的地址。它具有自動加1的功能。,CPU執(zhí)行程序的簡要過程: 1) PC給出當(dāng)前指令的存儲地址。,2) CPU到存儲器取指令, PC自動加1,3) 指令譯碼器對指令譯碼, CPU執(zhí)行指令。,4)CPU到存儲器取指令,PC=PC+1。,5)CPU執(zhí)行下一條指令,,PC=,PC=,PC=,2指令寄存器 一個8位的寄存器,用于暫存待執(zhí)行的指令,等待譯碼。 3指令譯碼器 對指令寄存器中的指令進行譯碼,分析它的功能,并根據(jù)功能產(chǎn)生相應(yīng)的電信號。 4數(shù)據(jù)指針DPTR 是一個16位的專用地址指針寄存器。它主要用來存放16位地址。DPTR也可以拆成兩個獨立8位寄存器,即DPH(高8

4、位字節(jié))和DPL(低8位字節(jié)),分別占據(jù)83H和82H兩個地址。,數(shù)據(jù)指針可以用來訪問外部數(shù)據(jù)存儲器中的任一單元,作間址寄存器使用,也可以作為通用寄存器來用,是 8051單片機中唯一一個用戶可使用的16位寄存器。,5.定時控制部件與時序,功能:在規(guī)定的時刻發(fā)出各種操作所需的全部內(nèi)部和外部的控制信號,協(xié)調(diào)各功能元件工作,完成指令所規(guī)定的功能。 主要任務(wù):產(chǎn)生一個工作時序,其工作需要時鐘電路提供一個工作頻率。,單片機的引腳定義,從一片集成電路的角度去認(rèn)識單片機,認(rèn)識單片機的引腳,MCS-51單片機40腳 Vcc, GND 2 XTAL1, XTAL2 2 RST 1 EA/Vpp 1 ALE/PR

5、OG 1 PSEN 1,P0.0P0.7 8 P1.0P1.7 8 P2.0P2.7 8 P3.0P3.7 8,40個引腳雙排直插DIP封裝,大致可分為4類:電源、時鐘、控制和I/O引腳。,單片機的引腳(電源端),Vcc (引腳40): 正電源端(+5V/3.3V/2.7V) 不同的單片機可以允許不同的工作電壓,不同的單片機表現(xiàn)出的功耗也不同。 GND (引腳20): 接地端,單片機的引腳(晶振端),Vcc, GND:正電源端與接地端 (+5V/3.3V/2.7V), XTAL1, XTAL2(引腳19和18): 片內(nèi)振蕩電路輸入/輸出端,時序:CPU在執(zhí)行指令時所需控制信號的時間順序稱為時序

6、。,CPU總是按照一定的時鐘節(jié)拍與時序工作:,時序部件:時鐘和內(nèi)部分頻電路。時鐘信 號經(jīng)過分頻,與指令譯碼信號組合,形成 一定節(jié)拍的時序信號,控制各邏輯部件協(xié) 調(diào)工作。,單片機的引腳(晶振端),Vcc, GND:正電源端與接地端 XTAL1, XTAL2: 片內(nèi)振蕩電路輸入、輸出端,時鐘電路設(shè)計,單片機內(nèi)有一高增益反相放大器,但需在XTAL1和XTAL2腳外接石英晶體或陶瓷諧振器(頻率為1.212MHz)和振蕩電容,如圖示,即可構(gòu)成自激振蕩電路,振蕩頻率取決于晶體振蕩器的振蕩頻率。,1.內(nèi)部時鐘方式,外接一個晶振兩個電容(1030pF),單片機的引腳(晶振端),Vcc, GND:正電源端與接地

7、端 XTAL1, XTAL2: 片內(nèi)振蕩電路輸入、輸出端,時鐘電路設(shè)計,2.外部時鐘方式:外部振蕩器輸入時鐘信號。,單片機的引腳(晶振端),Vcc, GND:正電源端與接地端(+5V/3.3V/2.7V) XTAL1, XTAL2: 片內(nèi)振蕩電路輸入、輸出端,CPU總是按照一定的時鐘節(jié)拍與時序工作:,時序:CPU在執(zhí)行指令時所需控制信號的時間順序稱為時序。 時序是用定時單位來描述的,MCS-51的時序單位有四個,分別是時鐘周期(節(jié)拍)、狀態(tài)、機器周期和指令周期。,1. 時鐘周期:又稱為振蕩周期、節(jié)拍(用P表示),定義為單片機提供時鐘信號的振蕩源(OSC)的周期。它是時序中的最小單位。大小為晶振

8、頻率fosc(或外加頻率)的倒數(shù). 2. 狀態(tài)(用S表示):單片機振蕩脈沖經(jīng)過二分頻后即得到整個單片機工作系統(tǒng)的狀態(tài)。一個狀態(tài)有兩個節(jié)拍,前半周期對應(yīng)的節(jié)拍定義為P1,后半周期對應(yīng)的節(jié)拍定義為P2。 3. 機器周期:完成一個基本操作所需的時間。一個機器周期含有6個狀態(tài),分別表示為S1S6。每個狀態(tài)周期有兩拍,分別為S1P1、S1P2、S2P1、S2P2,S6P1、S6P2,時序,4. 指令周期:執(zhí)行一條指令所需要的時間稱為指令周期。它 是時序中的最大單位。以機器周期為單位,指令可分為單周 期、雙周期和四周期指令。,牢牢記?。?振蕩周期(時鐘周期) = 晶振頻率fosc的倒數(shù);,1個機器周期=6

9、個狀態(tài)周期 = 12個振蕩周期;,1個指令周期 = 1、2、4個機器周期,時序,思考題:設(shè)應(yīng)用單片機晶振頻率為12MHz,問機器周期為多少?指令周期分別為多少?若晶振為6MHz,分別又為多少?,MCS-51指令的取指/執(zhí)行時序,指令的集合稱為程序,執(zhí)行程序的過程就是執(zhí)行指令的過程。單片機執(zhí)行任何一條指令時都可以分為取指階段和執(zhí)行階段。在取指階段,CPU從程序存儲器中取出指令操作碼,送指令寄存器,再經(jīng)指令譯碼器譯碼,產(chǎn)生一系列控制信號,完成本指令規(guī)定的操作。 單周期和雙周期指令的取指時序圖如下頁圖所示。,ALE信號是用于鎖存低8位地址的選通信號,每出現(xiàn)一次該信號,單片機即進行一次讀指令操作。當(dāng)指

10、令為多字節(jié)或多周期指令時,只有第一個ALE信號進行讀指令操作,其余的ALE信號為無效操作(或讀操作數(shù)操作)。,復(fù)位使單片機進入某種確定的初始狀態(tài): PC值歸零(0000H); 各個SFR被賦予初始值(見P.32): P0P3 = 0FFH,Acc = 0,B = 0,TH0=0,TL0=0,TH1=0,TL1=0,SP=7,PSW=0 退出處于節(jié)電工作方式的停頓狀態(tài)、退出一切程序進程、退出程序的死循環(huán),從頭開始。,單片機的引腳(復(fù)位端),Vcc, GND: 電源端 (+5V/3.3V/2.7V) XTAL1, XTAL2: 片內(nèi)振蕩電路輸入、輸出端 RESET: 復(fù)位端(正脈沖有效,持續(xù)兩個機

11、器周期高電平),PC與SFR復(fù)位狀態(tài)表,單片機的引腳(復(fù)位端),Vcc, GND: 電源端 (+5V/3.3V/2.7V) XTAL1, XTAL2: 片內(nèi)振蕩電路輸入、輸出端 RESET: 復(fù)位端(持續(xù)兩個機器周期高電平),RC構(gòu)成微分電路,在上電瞬間,產(chǎn)生一個微分脈沖,其寬度若大于2個機器周期,將使系統(tǒng)復(fù)位。,單片機的引腳(EA端),Vcc, GND: 電源端 (+5V/3.3V/2.7V) XTAL1, XTAL2: 片內(nèi)振蕩電路輸入、輸出端 RESET: 復(fù)位端 (正脈沖有效,寬度8 mS) EA/Vpp: 尋址外部ROM控制端/編程電源輸入端。 低電平有效,片內(nèi)無ROM時必須接地;

12、片內(nèi)有ROM時可以接高電平, 也可以接低電平; 對片內(nèi)ROM編程時編程正電源加到此端。,單片機的引腳(ALE端),Vcc, GND: 電源端 (+5V/3.3V/2.7V) XTAL1, XTAL2: 片內(nèi)振蕩電路輸入、輸出端 RESET: 復(fù)位端 (正脈沖有效,寬度8 mS) EA/Vpp: 尋址外部ROM控制端/編程電源輸入端。 ALE/PROG: 地址鎖存允許/編程脈沖輸入端。 P0口尋址外部低8位地址時接外部鎖存器G端; ALE端平時會輸出周期正脈沖:f fosc/6 ; 對片內(nèi)ROM編程時編程脈沖由此端加入。,單片機的引腳(PSEN端),PSEN: 片外ROM選通線。 在執(zhí)行訪問片外

13、ROM的指令MOVC時,8051自動在該引腳產(chǎn)生一個負(fù)脈沖,用于對片外ROM的選通。其他情況下,該引腳均為高電平封鎖狀態(tài)。,Vcc, GND: 電源端 (+5V/3.3V/2.7V) XTAL1, XTAL2: 片內(nèi)振蕩電路輸入、輸出端 RESET: 復(fù)位端 (正脈沖有效,寬度8 mS) EA/Vpp: 尋址外部ROM控制端/編程電源輸入端。 ALE/PROG: 地址鎖存允許/編程脈沖輸入端。,單片機的引腳(PSEN端),PSEN:尋址外部程序存儲器時選通外部EPROM的 讀控制端(OE)低有效。,單片機的I/O引腳結(jié)構(gòu),眾多功能各異的I/O引腳源于它結(jié)構(gòu)的不同,并行口I/O結(jié)構(gòu)與操作,51系

14、列單片機有4個I/O端口,每個端口都是8位準(zhǔn)雙向口,共占32根引腳。每個端口都包括一個鎖存器(即專用寄存器P0P3)、一個輸出驅(qū)動器和輸入緩沖器。通常把4個端口籠統(tǒng)地表示為P0P3。,在無片外擴展存儲器的系統(tǒng)中,這4個端口的每一位都可以作為準(zhǔn)雙向通用I/O端口使用。在具有片外擴展存儲器的系統(tǒng)中,P2口作為高8位地址線,P0口分時作為低8位地址線和雙向數(shù)據(jù)總線。,特點: 4個并行I/O口:P0,P1,P2,P3 均可作為雙向I/O口使用; P0口:訪問片外擴展存儲器時,復(fù)用為低8位地址線和數(shù)據(jù)線; P2口:高8位地址線; P1口:雙向I/O口; P3口:第二功能口。,單片機的引腳(P0口),P0

15、.0P0.7: 準(zhǔn)雙向I/O (內(nèi)置場效應(yīng)管上拉) 由一個輸出鎖存器、兩個三態(tài)輸入緩沖器和輸出驅(qū)動電路及控制電路組成。尋址外部存儲器時分時作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;不接存儲器時可作為8位準(zhǔn)雙向I/O口使用。,單片機的引腳(P0口),P0.0P0.7: 準(zhǔn)雙向I/O (內(nèi)置場效應(yīng)管上拉),P0用作通用I/O時,控制=0 : (1)此腳作輸入口(事先必須對它寫“1”),2,1,D,Q,CK,/Q,讀引腳 =1,讀鎖存器,寫鎖存器,內(nèi)部總線,地址/數(shù)據(jù),控制,引腳P0.X,3,4,控制=0 時,此腳作輸入口,0,0,1,0,0,截止,截止,=0,Vcc,VT1,VT2,2,1,D,Q

16、,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,地址/數(shù)據(jù),控制,引腳P0.X,3,4,0,0,1,0,0,截止,截止,=0,Vcc,P0用作通用I/O時,控制=0 : (2)此腳作輸出口時,當(dāng)P0口用作輸出口時,因輸出級處于開漏狀態(tài),必須外接上拉電阻。,V2,V1,單片機的引腳(P0口),P0.0P0.7: 準(zhǔn)雙向I/O (內(nèi)置場效應(yīng)管上拉),控制=0 時,此腳作輸出口,輸出1,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,地址/數(shù)據(jù),控制,引腳P0.X,3,4,0,0,0,1,1,截止,導(dǎo)通,=0,Vcc,P0用作通用I/O時,控制=0 : (2)此腳作輸出口時,當(dāng)

17、P0口用作輸出口時,因輸出級處于開漏狀態(tài),必須外接上拉電阻。,V2,V1,單片機的引腳(P0口),P0.0P0.7: 準(zhǔn)雙向I/O (內(nèi)置場效應(yīng)管上拉),控制=0 時,此腳作輸出口,輸出0,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,地址/數(shù)據(jù),控制=1,引腳P0.X,3,4,控制=1時,此腳作地址/數(shù)據(jù)復(fù)用口輸出地址/數(shù)據(jù) =0 時,1,0,1,1,=0,導(dǎo)通,截止,=0,Vcc,單片機的引腳(P0口),P0.0P0.7: 準(zhǔn)雙向I/O (內(nèi)置場效應(yīng)管上拉),P0口用作地址/數(shù)據(jù)復(fù)用口,控制=1 (1)作地址/數(shù)據(jù)輸出:輸出地址/數(shù)據(jù) =0 時,2,1,D,Q,CK,/

18、Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,地址/數(shù)據(jù),控制=1,引腳P0.X,3,4,控制=1時,此腳作地址/數(shù)據(jù)復(fù)用口:輸出地址/數(shù)據(jù) =1 時,1,1,0,0,=1,截止,導(dǎo)通,=1,Vcc,單片機的引腳(P0口),P0.0P0.7: 雙向I/O (內(nèi)置場效應(yīng)管上拉),P0口用作地址/數(shù)據(jù)復(fù)用口,控制=1 (2)作地址/數(shù)據(jù)輸出:輸出地址/數(shù)據(jù) =1 時,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,地址/數(shù)據(jù),控制=1,引腳P0.X,3,4,控制=1時,此腳作地址/數(shù)據(jù)復(fù)用口: 輸入數(shù)據(jù)時,輸入指令將使引腳與內(nèi)部總線直通,Vcc,單片機的引腳(P0口),P0.0P0.

19、7: 準(zhǔn)雙向I/O (內(nèi)置場效應(yīng)管上拉),P0口用作地址/數(shù)據(jù)復(fù)用口 (3)作地址/數(shù)據(jù)輸入: 從引腳上輸入的外部數(shù)據(jù)經(jīng)緩沖器U1進入內(nèi)部數(shù)據(jù)總線。,單片機的引腳(P1口),P1.0P1.7: 準(zhǔn)雙向I/O口(內(nèi)置了上拉電阻) 輸出時一切照常,僅在作輸入口用時要先對其 寫“1”。,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,Vcc,引腳P1.X,內(nèi)部上拉電阻,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,Vcc,引腳P1.X,內(nèi)部上拉電阻,輸出數(shù)據(jù) = 1 時,1,1,0,截止,=1,單片機的引腳(P1口),P1.0P1.7: 準(zhǔn)雙向I/O口(內(nèi)置了上

20、拉電阻) 輸出時一切照常,僅在作輸入口用時要先對其 寫“1”。,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,Vcc,引腳P1.X,內(nèi)部上拉電阻,輸出數(shù)據(jù) = 0 時,0,0,1,=0,導(dǎo)通,單片機的引腳(P1口),P1.0P1.7: 準(zhǔn)雙向I/O口(內(nèi)置了上拉電阻) 輸出時一切照常,僅在作輸入口用時要先對其 寫“1”。,2,1,D,Q,CK,/Q,讀引腳 =1,讀鎖存器,寫鎖存器,內(nèi)部總線,Vcc,引腳P1.X,內(nèi)部上拉電阻,輸入數(shù)據(jù)時,要先對其寫“1”,1,1,0,截止,單片機的引腳(P1口),P1.0P1.7: 準(zhǔn)雙向I/O口(內(nèi)置了上拉電阻) 輸出時一切照常,僅在作

21、輸入口用時要先對其 寫“1”。,簡單測控實例原理圖,P1.3作輸入端口,光路通暢,R亮2K 光路阻斷,R暗 400K ,JOB3: CLR P1.1 ;亮綠燈 REDO: SETB P1.3 ;P1.3作輸入口必先置1 CHECK:JNB P1.3,CHECK ;檢測通道是否被阻斷? LOOP: ;有入侵者,報警! AJMP REDO ;再跳回去檢測,紅外防盜報警,P1.3口用于輸入狀態(tài)檢測的語句:,紅外線光路通暢時,P1.3端低電平“0” 紅外線光路阻斷時,P1.3端高電平“1”,單片機的引腳(P2口),2,1,D,Q,CK,/Q,讀鎖存器,寫鎖存器,內(nèi)部總線,地址高8位,控制,引腳 P2.

22、X,3,內(nèi)部上拉電阻,Vcc,輸入數(shù)據(jù)時,要先對其寫“1”,讀引腳,1,0,1,截止,=0,1,作輸入口用時要先對其寫“1”。,P2.0P2.7: 準(zhǔn)雙向I/O (內(nèi)置了上拉電阻) 尋址外部存儲器時輸出高8位地址;不接外部存儲器時可作為8位準(zhǔn)雙向I/O口使用。,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,地址高8位,控制,引腳P2.X,控制=0時,此腳作通用輸出口: 輸出=1時,1,1,0,截止,3,內(nèi)部上拉電阻,1,1,Vcc,=1,=0,單片機的引腳(P2口),P2.0P2.7: 準(zhǔn)雙向I/O (內(nèi)置了上拉電阻) 尋址外部存儲器時輸出高8位地址;不接外部存儲器時可作為

23、8位準(zhǔn)雙向I/O口使用。,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,地址高8位,控制,引腳P2.X,控制=0時,此腳作通用輸出口:輸出=0時,0,0,1,導(dǎo)通,3,內(nèi)部上拉電阻,0,0,Vcc,=0,=0,單片機的引腳(P2口),P2.0P2.7: 準(zhǔn)雙向I/O (內(nèi)置了上拉電阻) 尋址外部存儲器時輸出高8位地址;不接外部存儲器時可作為8位準(zhǔn)雙向I/O口使用。,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,地址高8位,控制=1,引腳P2.X,控制=1 時,此腳作高8位地址A8A15輸出口:當(dāng)輸出 =1 時,1,0,截止,3,內(nèi)部上拉電阻,1,=1,V

24、cc,=1,單片機的引腳(P2口),P2.0P2.7: 準(zhǔn)雙向I/O (內(nèi)置了上拉電阻) 尋址外部存儲器時輸出高8位地址;不接外部存儲器時可作為8位準(zhǔn)雙向I/O口使用。,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,地址高8位,控制=1,引腳P2.X,0,1,導(dǎo)通,3,內(nèi)部上拉電阻,0,=0,Vcc,=0,控制=1 時,此腳作高8位地址A8A15輸出口:當(dāng)輸出 =0 時,單片機的引腳(P2口),P2.0P2.7: 準(zhǔn)雙向I/O (內(nèi)置了上拉電阻) 尋址外部存儲器時輸出高8位地址;不接外部存儲器時可作為8位準(zhǔn)雙向I/O口使用。,單片機的引腳(P3口),P3.0P3.7: 雙功

25、能口(內(nèi)置了上拉電阻) 它具有特定的第二功能。在不使用它的第二功能時它就是普通的通用準(zhǔn)雙向I/O口。,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,第二功能輸出,引腳 P3.X,3,內(nèi)部上拉電阻,Vcc,第二功能輸入,4,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,第二功能輸出 (WR,RD,TxD),引腳 P3.X,3,內(nèi)部上拉電阻,Vcc,4,第二功能輸出時,內(nèi)部自動 D=1,1,1,1,反相器,單片機的引腳(P3口),P3.0P3.7: 雙功能口(內(nèi)置了上拉電阻) 它具有特定的第二功能。在不使用它的第二功能時它就是普通的通用準(zhǔn)雙向I/O口。,2,

26、1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,此端自動1,引腳 P3.X,3,內(nèi)部上拉電阻,Vcc,第二功能輸入(RxD,T0,T1,INT0,INT1),4,第二功能輸入時,信號經(jīng)緩沖器4 直接進入內(nèi)總線,1,1,1,0,截止,單片機的引腳(P3口),P3.0P3.7: 雙功能口(內(nèi)置了上拉電阻) 它具有特定的第二功能。在不使用它的第二功能時它就是普通的通用準(zhǔn)雙向I/O口。,P3口第二功能表(P.27 表21),當(dāng)P0作為I/O口使用時,特別是作為輸出時,輸出級屬于開漏電路,必須外接上拉電阻才會有高電平輸出;如果作為輸入,必須先向相應(yīng)的鎖存器寫“1”,才不會影響輸入電平。 當(dāng)

27、CPU內(nèi)部控制信號為“1”時,P0口作為地址/數(shù)據(jù)總線使用,這時,P0口就無法再作為I/O口使用了。,I/O口使用總結(jié):,P1、P2 和P3 口為準(zhǔn)雙向口, 在內(nèi)部差別不大, 但使用功能有所不同。 P1口是用戶專用 8 位準(zhǔn)雙向I/O口, 具有通用輸入/輸出功能, 每一位都能獨立地設(shè)定為輸入或輸出。當(dāng)有輸出方式變?yōu)檩斎敕绞綍r, 該位的鎖存器必須寫入“1”, 然后才能進入輸入操作。 P2口是 8 位準(zhǔn)雙向I/O口。外接I/O設(shè)備時, 可作為擴展系統(tǒng)的地址總線, 輸出高8位地址, 與P0 口一起組成 16 位地址總線。 對于 8031 而言, P2 口一般只作為地址總線使用, 而不作為I/O線直接

28、與外部設(shè)備相連。,51單片機的8個特殊引腳,Vcc, GND: 電源端 XTAL1, XTAL2: 片內(nèi)振蕩電路輸入、輸出端 RESET: 復(fù)位端 正脈沖有效(寬度8 mS) EA/Vpp: 尋址外部ROM控制端。低有效 片內(nèi)有ROM時應(yīng)當(dāng)接高電平。 ALE/PROG: 地址鎖存允許控制端。 PSEN:選通外部ROM的讀(OE)控制端。 低有效,小結(jié),51單片機的4個8位的I/O口,P0.0P0.7:8位數(shù)據(jù)口和輸出低8位地址復(fù)用口 (復(fù)用時是雙向口;不復(fù)用時也是準(zhǔn)雙向口) P1.0P1.7: 通用I/O口(準(zhǔn)雙向口),P2.0P2.7: 輸出高8位地址 (用于尋址時是輸出口;不尋址時是準(zhǔn)雙向

29、口) P3.0P3.7: 具有特定的第二功能(準(zhǔn)雙向口),注意:在不外擴ROM/RAM時,P0P3均可作通用I/O口使用,而且都是準(zhǔn)雙向I/O口!,小結(jié),存儲器,數(shù)據(jù)存儲器RAM(Random Access Memory) 程序存儲器ROM(Read Only Memory) 閃速存儲器Flash Memory EPROMErazible Programmable ROM EEPROM/E2PROMElectrical Erasable Programmable ROM 按字節(jié)尋址:每個字節(jié)(8個位)占一個地址 按位尋址:有的存儲器每一個位就有一個地址,單片機的存儲器幾個有關(guān)的概念:,MCS-

30、51單片機的存儲器結(jié)構(gòu),MCS-51單片機的存儲器空間分布,特點: 在MCS-51單片機的內(nèi)部集成了4K的程序存儲器和256B的數(shù)據(jù)存儲器,同時還可以使用片外的程序存儲器和數(shù)據(jù)存儲器,其擴展能力都是64K。 從物理結(jié)構(gòu)的角度講,51單片機的存儲系統(tǒng)可以分為四個存儲空間:即片內(nèi)ROM,RAM和片外ROM、RAM。 從邏輯上講(即用戶編程的角度講)51單片機的存儲系統(tǒng)又可分為三個存儲空間。即片內(nèi)RAM,片外RAM和片內(nèi)、外的程序存儲器ROM。,FFFFH,0000H,可尋址片外ROM,64K字節(jié),0FFFH,0000H,片內(nèi) ROM,4K 字節(jié),程序存儲器,MCS-51單片機的內(nèi)存結(jié)構(gòu),物理上分為

31、:4個空間,即片內(nèi)ROM、片外ROM 片內(nèi)RAM、片外RAM 邏輯上分為: 3個空間, 即程序內(nèi)存(片內(nèi)、外)統(tǒng)一編址 MOVC 數(shù)據(jù)存儲器(片內(nèi)) MOV 數(shù)據(jù)存儲器(片外) MOVX,MCS-51單片機的內(nèi)存結(jié)構(gòu),尋址范圍:0000H FFFFH 64KB (16位).,,尋址內(nèi)部ROM;,,尋址外部ROM。,當(dāng)PC值超過片內(nèi)ROM容量時會自動轉(zhuǎn)向 外部存儲器空間。,8031單片機,接低電平。,作用: 存放程序及程序運行時所需的常數(shù)。,低段4KB: 0000H0FFFH 80C51和87C51在片內(nèi),80C31在片外。,高段60KB:1000HFFFFH。在片外。,存儲器配置(ROM),0

32、000H 系統(tǒng)復(fù)位,PC指向此處 0003H 外部中斷0入口 000BH T0溢出中斷入口 0013H 外中斷1入口 001BH T1溢出中斷入口 0023H 串口中斷入口 002BH T2溢出中斷入口,注意: 7個單元被保留用于特定的程序入口地址(中斷服務(wù)程序入口地址)。編程者是不能隨便使用的。,存儲器配置(ROM),由于系統(tǒng)復(fù)位后的PC內(nèi)容為0000H,故系統(tǒng)從0000H單元開始取指令,執(zhí)行程序。它是系統(tǒng)的啟動地址。從0000H到0003H只有3B,根本不可能安排一個完整的系統(tǒng)程序,一般在該單元設(shè)置轉(zhuǎn)移指令,使之轉(zhuǎn)向用戶主程序處。因此,0000H0002H單元被保留用于初始化。,存儲器配置

33、(ROM),org0000h jmpmain;跳過中斷入口地址區(qū) org0100h main: movp1,#55h mov r0,#3fh ,地址范圍:0000HFFFFH 共64KB。,讀寫外RAM用MOVX指令, 控制信號是P3口中的RD和WR。,一般情況下,只有在內(nèi)RAM不能滿足應(yīng)用要求時,才外接RAM。,51單片機存儲器配置(片外RAM),51單片機存儲器配置(片內(nèi)RAM),片內(nèi)RAM 128字節(jié)(00H7FH); 片內(nèi)RAM前32個單元是工作寄存器區(qū)(00H1FH) 片內(nèi)RAM有128個可按位尋址的位,占16個單元。 位地址編號為:00H7FH,分布在20H2FH單元 片內(nèi)21個特

34、殊功能寄存器(SFR)中:地址號能被8整除的 SFR中的各位也可按位尋址(P.29-30),存儲器配置(片內(nèi)RAM),片內(nèi)RAM 128字節(jié)(00H7FH),00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),SFR分布在80H-FFH 其中92個位可位尋址,80H,FFH,所有的RAM區(qū)(包括位尋址區(qū)、工作寄存器區(qū))都可以用于存放數(shù)據(jù),故也稱為數(shù)據(jù)緩存寄存器,片內(nèi)RAM前32個單元是工作寄存器區(qū) (00H1FH),00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),存儲器配置(片內(nèi)RAM),有

35、專用于工作寄存器操作的指令,讀寫速度比一般內(nèi)RAM要快,指令字節(jié)比一般直接尋址指令要短,還具有間址功能,能給編程和應(yīng)用帶來方便。,作用:,00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),R0,R2,R1,R3,R4,R5,R6,R7,07H,02H,01H,00H,06H,04H,05H,03H,08H,1FH,工作寄存器區(qū)3,工作寄存器區(qū)2,工作寄存器區(qū)1,工作寄存器區(qū)0,0FH,10H,17H,18H,片內(nèi)RAM前32個單元是工作寄存器區(qū) (00H1FH),存儲器配置(片內(nèi)RAM),工作寄存器區(qū)分為4個區(qū):0區(qū)、1區(qū)、2區(qū)、3區(qū)。每區(qū)有

36、8個寄存器:R0R7,寄存器名稱相同。但是,當(dāng)前工作的寄存器區(qū)只能有一個,由PSW中的D4、D3位決定。,00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),片內(nèi)RAM中有128個可按位尋址的位。 位地址:00H7FH 分布在:20H2FH單元,存儲器配置(片內(nèi)RAM),用于存放各種標(biāo)志位信息和位數(shù)據(jù)。每一位均有一個位地址,可位尋址、位操作。即按位地址對該位進行置1、清0、求反或判轉(zhuǎn).,注意事項: 位地址與字節(jié)地址編址相同,容易混淆。 區(qū)分方法:位操作指令中的地址是位地址; 字節(jié)操作指令中的地址是字節(jié)地址。,00H,20H,2FH,7FH,1F

37、H,30H,80H,FFH,普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),27H,22H,21H,20H,26H,24H,25H,23H,28H,2FH,單元地址,07 06 05 04 03 02 01 00,0F 0E 0D 0C 0B 0A 09 08,17 16 15 14 13 12 11 10,1F 1E 1D 1C 1B 1A 19 18,27 26 25 24 23 22 21 20,2F 2E 2D 2C 2B 2A 29 28,37 36 35 34 33 32 31 30,3F 3E 3D 3C 3B 3A 39 38,47 46 45 44 43 42 41 40,7F 7E

38、7D 7C 7B 7A 79 78,位地址,總共128個可按位尋址的位,片內(nèi)RAM中有128個可按位尋址的位。 位地址:00H7FH 分布在:20H2FH單元,存儲器配置(片內(nèi)RAM),00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),數(shù)據(jù)緩沖區(qū):30H7FH單元,存儲器配置(片內(nèi)RAM),用于用于存放各種數(shù)據(jù)和中間結(jié)果,起到數(shù)據(jù)緩沖的作用。,特殊功能寄存器(SFR),特殊功能寄存器SFR(專用寄存器) 特殊用途寄存器的集合。專用于控制、選擇、管理、存放單片機內(nèi)部各部分的工作方式、條件、狀態(tài)、結(jié)果的寄存器。,不同的SFR管理不同的硬件模塊,負(fù)

39、責(zé)不同的功能各司其職 換言之:要讓單片機實現(xiàn)預(yù)訂的功能,必須有相應(yīng)的硬件和軟件,而軟件中最重要的一項工作就是對SFR寫命令(要求)。,特殊功能寄存器不能作為普通的RAM存儲單元來使用。只有在編程中根據(jù)需要,進行一些特定功能的設(shè)定,或者是從中查尋相關(guān)部件的狀態(tài)時,才能進行讀、寫操作。如中斷方式的設(shè)定、定時器工作模式的設(shè)定,查詢串行口發(fā)送或接收是否結(jié)束等等。,有21個SFR 已知的P0、P1、P2、P3等四個8位I/O口分別由名為P0、P1、P2、P3四個SFR代表。,堆棧指針寄存器 SP(Stack Pointer): 總是指向棧頂,壓棧時先 (SP)+1 然后數(shù)據(jù)進棧;彈棧時數(shù)據(jù)先出棧 然后(

40、SP)-1。,累加器 ACC:一個用得最頻繁的特殊功能寄存器(如:運算、數(shù)據(jù)傳輸)。,副累加器 B:一個經(jīng)常與 ACC 配合在一起使用的特殊功能寄存器(如:乘法、除法),此外,它也經(jīng)常當(dāng)作普通寄存器使用。,特殊功能寄存器(P0P3,SP,A,B),堆棧: 在片內(nèi)RAM中,常常要指定一個專門的區(qū)域來存放某些特別的數(shù)據(jù),它遵循順序存取和后進先出(LIFO/FILO)的原則,這個RAM區(qū)叫堆棧。,功用: 1)子程序調(diào)用和中斷服務(wù) 2)保護現(xiàn)場/恢復(fù)現(xiàn)場 3)數(shù)據(jù)傳輸,堆棧操作分自動方式和指令方式。自動方式是在調(diào)用子程序或發(fā)生中斷時CPU自動將斷口地址存人或者取出;指令方式是使用進出棧指令進行操作。,

41、00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),SP棧頂,下一個進棧的數(shù)據(jù)將存在此,數(shù)據(jù)進棧,已經(jīng)進棧的數(shù)據(jù)存放在此,初始 SP,復(fù)位后 SP=07H,數(shù)據(jù)進棧時:首先SP+1指向08H單元,第一個放進堆棧的數(shù)據(jù)將放進08H單元,然后SP再自動增 1,仍指著棧頂,堆棧區(qū)由特殊功能寄存器堆棧指針SP管理 堆棧區(qū)可以安排在 RAM區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的RAM區(qū),通常放在RAM區(qū)的靠后的位置。,SFR,從堆棧取出數(shù)據(jù)時:取出的數(shù)據(jù)是最近放進去的一個數(shù)據(jù),也就是當(dāng)前棧頂?shù)臄?shù)據(jù)。然后SP再自動減1,仍指著棧頂,00H,20

42、H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),SP棧頂,當(dāng)前要出棧的數(shù)據(jù),數(shù)據(jù)出棧,SP-1指向下一個將要出棧的數(shù)據(jù),初始 SP,堆棧區(qū)由特殊功能寄存器堆棧指針SP管理 堆棧區(qū)可以安排在 RAM區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的RAM區(qū),通常放在RAM區(qū)的靠后的位置。,從堆棧取出數(shù)據(jù)時:取出的數(shù)據(jù)是最近放進去的一個數(shù)據(jù),也就是當(dāng)前棧頂?shù)臄?shù)據(jù)。然后SP再自動減1,仍指著棧頂,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),SP-

43、1 指向新的棧頂,也就是下一個將要出棧的數(shù)據(jù),數(shù)據(jù)出棧,初始 SP,堆棧區(qū)由特殊功能寄存器堆棧指針SP管理 堆棧區(qū)可以安排在 RAM區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的RAM區(qū),通常放在RAM區(qū)的靠后的位置。,push a push b push PSW . pop a pop b pop PSW 這樣的指令順序?qū)Σ粚Γ?程序狀態(tài)字寄存器 PSW:也稱為標(biāo)志寄存器,存放各有關(guān)標(biāo)志。,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,CY(PSW.7)進位/借位標(biāo)志位。若在加減運算過程中如果操作結(jié)果最高位有進位或借位,則CY=1;否則=0。它也是布爾處理器的位累加

44、器,可用于布爾操作。,AC(PSW.6)半進位/借位標(biāo)志位。若在加減運算過程中,D3位向D4位發(fā)生了進位或借位,則AC=1,否則=0。機器在執(zhí)行“DA A”指令時自動要判斷這一位,我們可以暫時不關(guān)心它。,PSW.6,PSW.5,特殊功能寄存器(PSW),F0 (PSW.5)可由用戶定義的標(biāo)志位。,程序狀態(tài)字寄存器 PSW(續(xù)):,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,RS1(PSW.4)、RS0(PSW.3)工作寄存器組選擇位。,PSW.4 PSW.3,RS1、RS0 = 00 0區(qū)(00H07H) RS1、RS0 = 01 1區(qū)(08H0FH) RS1、RS0

45、= 10 2區(qū)(10H17H) RS1、RS0 = 11 3區(qū)(18H1FH),片內(nèi)RAM前32個單元(00H1FH)是工作寄存器區(qū) (由PSW中的RS1,RS0決定),00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),R0,R2,R1,R3,R4,R5,R6,R7,07H,02H,01H,00H,06H,04H,05H,03H,08H,1FH,工作寄存器區(qū)3,工作寄存器區(qū)2,工作寄存器區(qū)1,工作寄存器區(qū)0,程序狀態(tài)字寄存器 PSW(續(xù)):,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,OV (PSW.2)溢出標(biāo)志位。

46、OV(PSW.2) 溢出標(biāo)志位: 判斷符號數(shù)加減法運算時是否有溢出. OV的結(jié)果可以用一個算法來表示: OV=C6異或C7 其中: C7為D7的進借位, C6 為D6的進借位,OV=1表明有溢出。,PSW.1 未定義。,PSW.2,PSW.1,程序狀態(tài)字寄存器 PSW(續(xù)):,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,P (PSW.0)奇偶標(biāo)志位。 P=1表示累加器中“1”的個數(shù)為奇數(shù) P=0表示累加器中“1”的個數(shù)為偶數(shù) CPU隨時監(jiān)視著ACC中的“1”的個數(shù),并反映在PSW中,PSW.2,PSW.1,例:某運算結(jié)果是78H(01111000),P=0。 它常用在校驗串行通信中的數(shù)據(jù)是否出錯。,【舉例】:有兩個數(shù)0FH和F8H,試將兩數(shù)相加 MOV A,#0FH ;將立即數(shù)0f h 送累加器A ADD A,#0F 8H ;A的內(nèi)容與立即數(shù)0f8h相加,結(jié)果送A 0000 1111 運算結(jié)果:A=07H,CY=1, + 1111 1000 OV=0(因為C7 =1, C6 =1) Cy1 0000 0111 AC=1,P=1 如何根據(jù)PSW來分析運算結(jié)果是否正確?是否有溢出? 1、若數(shù)據(jù)為無符號數(shù)。即15+248=263=107H 既CY=1,A=07H。 2、若數(shù)據(jù)為有符號數(shù)。即+15 +(-8)=+7=07H,OV=0表明無溢出,單片機存儲器配置,

溫馨提示

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

最新文檔

評論

0/150

提交評論