




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、內(nèi)容 2-1 MCS51單片機(jī)的基本結(jié)構(gòu) 2-2 MCS51的存儲(chǔ)器結(jié)構(gòu) 2-3 專用功能寄存器的SFR 2-4 單片機(jī)的工作方式與最小應(yīng)用系統(tǒng),第二章 MCS-51單片機(jī)的基本結(jié)構(gòu)及工作原理,了解單片機(jī)內(nèi)部基本結(jié)構(gòu) 掌握單片機(jī)存儲(chǔ)器分布和使用 掌握常用的特殊功能寄存器SFR的使用 了解單片機(jī)的工作方式 掌握單片機(jī)的引腳及引腳功能,教學(xué)目的,學(xué)習(xí)重點(diǎn)和難點(diǎn),單片機(jī)的存儲(chǔ)器結(jié)構(gòu) 單片機(jī)的引腳及引腳功能,第一節(jié) MCS-51單片機(jī)的基本結(jié)構(gòu),教學(xué)內(nèi)容: 一、MCS-51單片機(jī)內(nèi)部結(jié)構(gòu) 二、CPU 三、輸入輸出端口結(jié)構(gòu) 四、端口負(fù)載能力和接口要求 五、MCS-5l引腳及功能,MCS-51系列單片機(jī)配
2、置一覽表,一、MCS-51內(nèi)部結(jié)構(gòu),圖2-1 8051的功能部件圖,外部中斷,二 、 CPU,主要功能:產(chǎn)生各種控制信號(hào),去控制存儲(chǔ)器、輸入輸出端口的數(shù)據(jù)傳送、數(shù)據(jù)的算術(shù)運(yùn)算、邏輯運(yùn)算以及位操作處理等。,(一)運(yùn)算器 組成:運(yùn)算器由算術(shù)邏運(yùn)算部件ALU、累加器Acc、暫存器、程序狀態(tài)字寄存器PSW、BCD碼運(yùn)算調(diào)整電路等組成 。 對(duì)數(shù)據(jù)完成算術(shù)運(yùn)算,邏輯運(yùn)算、循環(huán)移位、位處理。,(二)控制器 組成:由程序計(jì)數(shù)器PC、指令寄存器、指令譯碼器、定時(shí)控制與條件轉(zhuǎn)移邏輯電路等組成。 功能:對(duì)來自存儲(chǔ)器中的指令進(jìn)行譯碼,通過定時(shí)控制電路,在規(guī)定的時(shí)刻發(fā)出各種操作所需的全部內(nèi)部和外部控制信號(hào),協(xié)調(diào)各功能元
3、件的工作,完成指令所規(guī)定的功能。,特點(diǎn): 它是16位的按機(jī)器周期自動(dòng)增1計(jì)數(shù)器,一切分支/跳轉(zhuǎn)/調(diào)用/中斷/復(fù)位 等操作的本質(zhì)就是:改變 PC 值,總指向下一條指令所在首地址(當(dāng)前PC值),1程序計(jì)數(shù)器PC(Program Counter) 一個(gè)16位的專用寄存器,用來存放下一條(當(dāng)前)指令的地址。它具有自動(dòng)加1的功能。,CPU執(zhí)行程序的簡要過程: 1) PC給出當(dāng)前指令的存儲(chǔ)地址。,2) CPU到存儲(chǔ)器取指令, PC自動(dòng)加1,3) 指令譯碼器對(duì)指令譯碼, CPU執(zhí)行指令。,4)CPU到存儲(chǔ)器取指令,PC=PC+1。,5)CPU執(zhí)行下一條指令,,PC=,PC=,PC=,2指令寄存器 一個(gè)8位的
4、寄存器,用于暫存待執(zhí)行的指令,等待譯碼。 3指令譯碼器 對(duì)指令寄存器中的指令進(jìn)行譯碼,分析它的功能,并根據(jù)功能產(chǎn)生相應(yīng)的電信號(hào)。 4數(shù)據(jù)指針DPTR 是一個(gè)16位的專用地址指針寄存器。它主要用來存放16位地址。DPTR也可以拆成兩個(gè)獨(dú)立8位寄存器,即DPH(高8位字節(jié))和DPL(低8位字節(jié)),分別占據(jù)83H和82H兩個(gè)地址。,數(shù)據(jù)指針可以用來訪問外部數(shù)據(jù)存儲(chǔ)器中的任一單元,作間址寄存器使用,也可以作為通用寄存器來用,是 8051單片機(jī)中唯一一個(gè)用戶可使用的16位寄存器。,5.定時(shí)控制部件與時(shí)序,功能:在規(guī)定的時(shí)刻發(fā)出各種操作所需的全部內(nèi)部和外部的控制信號(hào),協(xié)調(diào)各功能元件工作,完成指令所規(guī)定的功
5、能。 主要任務(wù):產(chǎn)生一個(gè)工作時(shí)序,其工作需要時(shí)鐘電路提供一個(gè)工作頻率。,圖2.2 MCS-51單片機(jī)內(nèi)部結(jié)構(gòu),(1)時(shí)鐘電路設(shè)計(jì),XTAL1, XTAL2: 接外部晶振的兩個(gè)引腳。,MCS-51內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,此放大器的輸入和輸出端分別是引腳XTAL1和XTAL2,在XTAL1和XTAL2上外接時(shí)鐘源即可構(gòu)成時(shí)鐘電路。,(1)時(shí)鐘電路設(shè)計(jì),XTAL1, XTAL2: 接外部晶振的兩個(gè)引腳。,單片機(jī)晶振提供的時(shí)鐘頻率越高,那么單片機(jī)運(yùn)行速度就越快,單片接的一切指令的執(zhí)行都是建立在單片機(jī)晶振提供的時(shí)鐘頻率。 有內(nèi)部和外部兩種時(shí)鐘產(chǎn)生方式。 單片機(jī)的生產(chǎn)工藝不同,接法也不
6、同。,在XTALl和XTAL2兩端接晶體或陶瓷諧振器,與內(nèi)部反向器構(gòu)成穩(wěn)定的自激振蕩器。 參數(shù)選?。篊1、C2起穩(wěn)定振蕩頻率,快速起振的作用。,外接晶振時(shí):Cl和C2選擇1030pF 外接陶瓷諧振器時(shí): Cl和C2的典型值約為4010pF。 振蕩頻率范圍一般是1.2MHz12MHz,有的可達(dá)40MHz。,內(nèi)部時(shí)鐘方式,設(shè)計(jì)印刷電路板時(shí),晶體和電容應(yīng)盡可能安裝在單片機(jī)芯片附近,以減少寄生電容,保證振蕩器穩(wěn)定和可靠工作。,時(shí)序:CPU在執(zhí)行指令時(shí)所需控制信號(hào)的時(shí)間順序稱為時(shí)序。 時(shí)序是用定時(shí)單位來描述的,MCS-51的時(shí)序單位有四個(gè),分別是時(shí)鐘周期(節(jié)拍)、狀態(tài)、機(jī)器周期和指令周期。,(2)CPU
7、的時(shí)序,CPU總是按照一定的時(shí)鐘節(jié)拍與時(shí)序工作:,1. 時(shí)鐘周期:又稱為振蕩周期、節(jié)拍(用P表示),定義為單片機(jī)提供時(shí)鐘信號(hào)的振蕩源(OSC)的周期。晶振頻率fosc(或外加頻率)的倒數(shù). 2. 狀態(tài)(用S表示):振蕩脈沖經(jīng)過二分頻后得到整個(gè)單片機(jī)工作系統(tǒng)的狀態(tài)。一個(gè)狀態(tài)有兩個(gè)節(jié)拍,前半周期對(duì)應(yīng)的節(jié)拍定義為P1,后半周期對(duì)應(yīng)的節(jié)拍定義為P2。 3. 機(jī)器周期:完成一個(gè)基本操作所需的時(shí)間。一個(gè)機(jī)器周期含有6個(gè)狀態(tài),分別表示為S1S6。每個(gè)狀態(tài)周期有兩拍,分別為S1P1、S1P2、S2P1、S2P2,S6P1、S6P2,時(shí)序,4. 指令周期:執(zhí)行一條指令所需要的時(shí)間稱為指令周期。它 是時(shí)序中的最大
8、單位。以機(jī)器周期為單位,指令可分為單周 期、雙周期和四周期指令。,80C51的片內(nèi)振蕩器及時(shí)鐘發(fā)生器,振蕩信號(hào)經(jīng)一個(gè)二分頻觸發(fā)器向芯片提供了一個(gè)2節(jié)拍的狀態(tài)信號(hào)。 狀態(tài)周期是振蕩周期(時(shí)鐘周期)的2倍。 每個(gè)狀態(tài)周期有兩個(gè)節(jié)拍P1和P2。在每個(gè)狀態(tài)的前半周期,節(jié)拍P1有效,在每個(gè)狀態(tài)的后半周期,節(jié)拍P2有效。 CPU就以兩相時(shí)鐘P1和P2為基本節(jié)拍指揮51單片機(jī)各個(gè)部件協(xié)調(diào)地工作。,牢記: 振蕩周期(時(shí)鐘周期) = 晶振頻率fosc的倒數(shù);,1個(gè)機(jī)器周期=6個(gè)狀態(tài)周期 = 12個(gè)振蕩周期;,1個(gè)指令周期 = 1、2、4個(gè)機(jī)器周期,時(shí)序,思考題:設(shè)應(yīng)用單片機(jī)晶振頻率為12MHz,問機(jī)器周期為多少
9、?若晶振為6MHz,分別又為多少?,通常,每個(gè)機(jī)器周期中,ALE兩次有效,第一次出現(xiàn)在S1P2和S2P1期間,第二次出現(xiàn)在S4P2和S5P1期間。,CPU取指、執(zhí)行時(shí)序,每條指令的執(zhí)行都可以包括取指令和執(zhí)行兩個(gè)階段。 在取指階段,根據(jù)程序計(jì)數(shù)器PC的內(nèi)容, CPU從內(nèi)部或外部ROM中取出指令操作碼及操作數(shù),然后再執(zhí)行這條指令。 按指令執(zhí)行時(shí)間分類: 單周期、雙周期、四周期 按指令所占字節(jié)數(shù)分類: 單字節(jié)、雙字節(jié)、三字節(jié),各指令的微操作在時(shí)間上有嚴(yán)格的次序,這種微操作的時(shí)間次序我們稱作時(shí)序。,單字節(jié)指令 如:INC A,(1)單周期指令時(shí)序,雙字節(jié)指令 如:ADD A, #data,單字節(jié)單周期
10、指令,指令特點(diǎn):在程序存儲(chǔ)器ROM中僅占一個(gè)存儲(chǔ)單元。 在ALE第一次有效(S2P1)時(shí),從ROM中讀取指令的操作碼,送入指令寄存器IR中, PC加一,并譯碼執(zhí)行,在ALE第二次有效時(shí),封鎖PC加一,并丟棄第二次讀的操作碼。,單片機(jī)的工作過程,取指過程,例: MOV A,#09H 74H 09H ;把09H送到累加器A中,執(zhí)行過程,PC=,0000H,0 1 1 1 0 1 0 0,0 0 0 0 1 0 0 1,(PC),(PC),0001H,0002H,0000H,外部控制總線CB,取指過程,(PC),執(zhí)行過程,你知道PC的作用嗎?,五、MCS-51單片機(jī)的引腳及其功能,AT89S52 D
11、IP 40 封裝,認(rèn)識(shí)單片機(jī)的引腳,MCS-51單片機(jī)40腳 Vcc, GND 2 XTAL1, XTAL2 2 RESET 1 EA/Vpp 1 ALE/PROG 1 PSEN 1,P0.0P0.7 8 P1.0P1.7 8 P2.0P2.7 8 P3.0P3.7 8,單片機(jī)的引腳(電源端),Vcc (引腳40): 正電源端(+5V/3.3V/2.7V) 不同的單片機(jī)可以允許不同的工作電壓,不同的單片機(jī)表現(xiàn)出的功耗也不同。 GND (引腳20): 接地端,單片機(jī)的引腳(晶振端),Vcc, GND:正電源端與接地端 XTAL1, XTAL2: 片內(nèi)振蕩電路輸入、輸出端,時(shí)鐘電路設(shè)計(jì),1.內(nèi)部時(shí)
12、鐘方式,外接一個(gè)晶振兩個(gè)電容(1030pF),單片機(jī)的引腳(晶振端),Vcc, GND:正電源端與接地端 XTAL1, XTAL2: 片內(nèi)振蕩電路輸入、輸出端,時(shí)鐘電路設(shè)計(jì),2.外部時(shí)鐘方式:外部振蕩器輸入時(shí)鐘信號(hào)。,對(duì)AT89S51/S52單片機(jī),通常外接一個(gè)晶振兩個(gè)20或30pf電容,一個(gè)12M或11.0592MHz的晶振,RST/VPD:復(fù)位(正脈沖有效)/備用電源引腳 復(fù)位使單片機(jī)進(jìn)入某種確定的初始狀態(tài) 退出處于節(jié)電工作方式的停頓狀態(tài)、退出一切程序進(jìn)程、退出程序的死循環(huán),從頭開始。 Vcc掉電期間,此引腳可接備用電源,能保護(hù)片內(nèi)RAM中的內(nèi)容不丟失。,單片機(jī)的引腳(復(fù)位端),Vcc,
13、GND: 電源端 (+5V/3.3V/2.7V) XTAL1, XTAL2: 片內(nèi)振蕩電路輸入、輸出端,PC與SFR復(fù)位狀態(tài)表,無論是HMOS型還是CHMOS型的單片機(jī),在振蕩器正在運(yùn)行的情況下,復(fù)位是靠在RST引腳上施加持續(xù)2個(gè)機(jī)器周期的高電平來實(shí)現(xiàn)的。 MCS-51單片機(jī)通常采用的簡單復(fù)位電路有:上電自動(dòng)復(fù)位、外部脈沖復(fù)位、上電+按鈕電平復(fù)位、程序運(yùn)行監(jiān)視復(fù)位等方式。,簡單復(fù)位電路,+5V,10uF,10k,Vcc,RST,GND,上電復(fù)位,10uF,10k,Vcc,RST,GND,上電+按鈕復(fù)位,1k,+5V,程序運(yùn)行監(jiān)視復(fù)位 程序運(yùn)行監(jiān)視復(fù)位通常是由各種類型的程序監(jiān)視定時(shí)器WDT(Wa
14、tchdog Timer)俗稱為“看門狗”實(shí)現(xiàn)。WDT可保證程序非正常運(yùn)行(如程序“飛逸”、“死機(jī)”)時(shí),能及時(shí)進(jìn)入復(fù)位狀態(tài),恢復(fù)程序正常運(yùn)行。,“看門狗”工作原理: 在規(guī)定時(shí)間內(nèi)必須至少“喂狗”一次,即復(fù)位“看門狗”。否則“看門狗”電路將復(fù)位單片機(jī)。 實(shí)現(xiàn): 可在軟件的合適地方加一條“喂狗”指令,使看門狗的定時(shí)時(shí)間永遠(yuǎn)達(dá)不到預(yù)置。,WDT通常有幾種實(shí)現(xiàn)方法供用戶選擇: 1)單片機(jī)內(nèi)部帶有的WDT功能單元(如:S51) 2 )選擇P (microprocessor)監(jiān)視控制器件,這些器件中大多有WDT電路,如Max705芯片等。,P 監(jiān)視控制器件,MAX705/706、 DS1232等 DS1
15、232(看門狗)是DALLAS 公司生產(chǎn)的一種微機(jī)監(jiān)控電路芯片。 主要功能:產(chǎn)生上電復(fù)位和手動(dòng)復(fù)位,監(jiān)視電源電平,監(jiān)視軟件運(yùn)行狀態(tài),當(dāng)程序運(yùn)行出現(xiàn)飛車時(shí),產(chǎn)生復(fù)位信號(hào)。,看門狗定時(shí)器定時(shí)時(shí)間設(shè)置,Tol:電源檢測選擇端 Tol接地,電源電壓跌至4.75V以下產(chǎn)生復(fù)位信號(hào) Tol接VCC,電源電壓跌至4.5V以下產(chǎn)生復(fù)位信號(hào),注意:保證看門狗定時(shí)器計(jì)數(shù)溢出前復(fù)位看門狗定時(shí)器,89S51看門狗功能的使用方法,在ATMEL的89S51系列的89S51與89C51功能相同,指令兼容。 89S51比89C51增加了一個(gè)看門狗功能。,要激活A(yù)T89S51/52的看門狗功能,只需依次向WDTRST寄存器(S
16、FR地址為0A6H )單元送入#01EH和#0E1H即可,使看門狗定時(shí)計(jì)數(shù)器工作。,AJMP MAIN ;啟動(dòng)看門狗 MAIN: MOV 0A6H, #01EH ; 先送1E MOV0A6H, #0E1H ; 后送E1 ;主程序 START: . ACALL WDT ; 調(diào)用復(fù)位看門狗子程序 . AJMP START ; 主程序* ;復(fù)位看門狗子程序 WDT: MOV 0A6H, #01EH ; 先送1E MOV 0A6H, #0E1H ; 后送E1RET END,注意事項(xiàng):,1 89S51的看門狗必須由程序激活后才開始工作。所以必須保證CPU有可靠的上電復(fù)位。否則看門狗也無法工作。 2 看門
17、狗使用的是CPU的晶振。在晶振停振的時(shí)候看門狗也無效。 3 89S51只有14位計(jì)數(shù)器。在16383個(gè)機(jī)器周期內(nèi)必須至少喂狗一次。而且這個(gè)時(shí)間是固定的,無法更改。當(dāng)晶振為12M時(shí)每16個(gè)毫秒需喂狗一次。,單片機(jī)的引腳(EA端),EA/Vpp(31腳): 尋址外部ROM控制端 / 編程電源輸入端。 低電平有效,片內(nèi)無ROM時(shí)必須接地; 片內(nèi)有ROM時(shí)可以接高電平 , 也可以接低電平; 接低電平時(shí),只訪問片外ROM,接高電平時(shí),訪問片內(nèi)ROM,超范圍時(shí),訪問片外ROM 對(duì)S51/S52單片機(jī),若不擴(kuò)展ROM,/EA要接+5V 對(duì)片內(nèi)ROM編程時(shí)編程正電源加到此端。 (指并行編程模式),單片機(jī)的引腳
18、(ALE端),Vcc, GND: 電源端 (+5V/3.3V/2.7V) XTAL1, XTAL2: 片內(nèi)振蕩電路輸入、輸出端 RESET: 復(fù)位端 (正脈沖有效) EA/Vpp: 尋址外部ROM控制端/編程電源輸入端。 ALE/PROG(30腳) : 地址鎖存允許/編程脈沖輸入端。 P0口尋址外部低8位地址時(shí)接外部鎖存器74ls373的G端; ALE端平時(shí)會(huì)輸出周期正脈沖:f fosc/6 ; 對(duì)片內(nèi)ROM編程時(shí)編程脈沖由此端加入。(指并行編程模式),單片機(jī)的引腳(PSEN端),PSEN (29腳) : 片外ROM選通線。 在執(zhí)行訪問片外ROM的指令MOVC時(shí),8051自動(dòng)在該引腳產(chǎn)生一個(gè)負(fù)
19、脈沖,用于對(duì)片外ROM的選通。其他情況下,該引腳均為高電平封鎖狀態(tài)。,Vcc, GND: 電源端 (+5V/3.3V/2.7V) XTAL1, XTAL2: 片內(nèi)振蕩電路輸入、輸出端 RESET: 復(fù)位端 (正脈沖有效) EA/Vpp: 尋址外部ROM控制端/編程電源輸入端。 ALE/PROG: 地址鎖存允許/編程脈沖輸入端。,單片機(jī)的引腳(PSEN端),PSEN:尋址外部程序存儲(chǔ)器時(shí)選通外部EPROM的 讀控制端(OE)低有效。,小結(jié),1、時(shí)鐘電路設(shè)計(jì) 2、CPU的時(shí)序 振蕩周期、機(jī)器周期、指令周期 按指令編碼長短:單字節(jié)、雙字節(jié)、三字節(jié) 3、單片機(jī)的引腳 電源引腳:Vcc(40)、 GND
20、(20) XTAL1(19)、 XTAL2(18) 控制引腳: RST/VPD(9)、ALE/PROG (30) 、 EA/Vpp (31) 、PSEN (29) 輸入輸出引腳:P0、P1、P2、P3 4、常用的復(fù)位電路、控制引腳的功能,單片機(jī)的I/O引腳結(jié)構(gòu),眾多功能各異的I/O引腳源于它結(jié)構(gòu)的不同,并行口I/O結(jié)構(gòu)與操作,51系列單片機(jī)有4個(gè)I/O端口,每個(gè)端口都是8位準(zhǔn)雙向口,共占32根引腳。每個(gè)端口都包括一個(gè)鎖存器(即專用寄存器P0P3)、一個(gè)輸出驅(qū)動(dòng)器和輸入緩沖器。通常把4個(gè)端口籠統(tǒng)地表示為P0P3。,并行口I/O結(jié)構(gòu)與操作,在無片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,這4個(gè)端口的每一位都可以作為準(zhǔn)
21、雙向通用I/O端口使用。在具有片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,P2口作為高8位地址線,P0口分時(shí)作為低8位地址線和雙向數(shù)據(jù)總線。,“準(zhǔn)雙向”:當(dāng)I/O口作為輸入時(shí),應(yīng)先向此口鎖存器寫入“1”, 此時(shí)該口引腳浮空,可作高阻抗輸入。,(一)功能,P0口:可作為一般IO口用,但當(dāng)應(yīng)用系統(tǒng)采用外部總線結(jié)構(gòu)時(shí),它分時(shí)作低8位地址線和8位雙向數(shù)據(jù)總線用。 P1口:每1位均可獨(dú)立作為IO口。 P2口:可作一般IO口用,當(dāng)應(yīng)用系統(tǒng)采用外部總線結(jié)構(gòu)時(shí),它僅能作為高8位地址線。 P3口:雙功能口。第一功能使用時(shí)同P1口,每1位均可獨(dú)立作為IO口。每1位均具有第二功能,兩個(gè)功能不能同時(shí)使用。,單片機(jī)的引腳(P1口),P1.
22、0P1.7: 準(zhǔn)雙向I/O口(內(nèi)置了上拉電阻) 輸出時(shí)一切照常,僅在作輸入口用時(shí)要先對(duì)其寫“1”。,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,Vcc,引腳P1.X,內(nèi)部上拉電阻,輸出數(shù)據(jù) = 1 時(shí),1,1,0,截止,=1,單片機(jī)的引腳(P1口),2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,Vcc,引腳P1.X,內(nèi)部上拉電阻,輸出數(shù)據(jù) = 0 時(shí),0,0,1,導(dǎo)通,=0,單片機(jī)的引腳(P1口),作輸入口時(shí),數(shù)據(jù)可以讀自口的鎖存器,也可以讀自口的引腳。這要根據(jù)輸入操作采用的是“讀鎖存器”指令還是“讀引腳”指令來決定。,CPU在執(zhí)行“讀修改寫”類輸入指
23、令時(shí)(如:ANL P1,A),內(nèi)部產(chǎn)生的“讀鎖存器”操作信號(hào),使鎖存器Q端數(shù)據(jù)進(jìn)入內(nèi)部數(shù)據(jù)總線,在與累加器A進(jìn)行邏輯運(yùn)算之后,結(jié)果又送回P0的口鎖存器并出現(xiàn)在引腳。,讀口鎖存器可以避免因外部電路原因使原端口引腳的狀態(tài)發(fā)生變化造成的誤讀。,CPU在執(zhí)行“MOV”類輸入指令時(shí)(如:MOV A,P1),內(nèi)部產(chǎn)生的操作信號(hào)是“讀引腳”。 注意:在執(zhí)行該類輸入指令前要先把鎖存器寫入“1”,使場效應(yīng)管T2截止,使引腳處于懸浮狀態(tài),可作為高阻抗輸入。否則,在作為輸入方式之前曾向鎖存器輸出過“0”,則T2導(dǎo)通會(huì)使引腳箝位在“0”電平,使輸入高電平“1”無法讀入。 所以,P1口在作為通用I/O口時(shí),屬于準(zhǔn)雙向口
24、,2,1,D,Q,CK,/Q,讀鎖存器,寫鎖存器,內(nèi)部總線,Vcc,引腳P1.X,內(nèi)部上拉電阻,輸入數(shù)據(jù)時(shí),要先對(duì)其寫“1”,1,1,0,截止,單片機(jī)的引腳(P1口),讀引腳 =1,2,1,D,Q,CK,/Q,讀鎖存器,寫鎖存器,內(nèi)部總線,Vcc,引腳P1.X,內(nèi)部上拉電阻,假如需要讀引腳狀態(tài),而未對(duì)其先寫入“1”, 如果之前輸出過“0”,則不能正常讀取管腳狀態(tài)。,0,0,1,導(dǎo)通,單片機(jī)的引腳(P1口),讀引腳 =1,低電平“0”,簡單測控實(shí)例原理圖,P1.3作輸入端口,光路通暢,R亮2K 光路阻斷,R暗 400K ,R亮 250K ,JOB3: CLR P1.1 ;亮綠燈 REDO: SE
25、TB P1.3 ;P1.3作輸入口必先置1 CHECK:JNB P1.3,CHECK ;檢測通道是否被阻斷? LOOP: ;有入侵者,報(bào)警! AJMP REDO ;再跳回去檢測,任務(wù)三:紅外防盜報(bào)警,P1.3口用于輸入狀態(tài)檢測的語句:,紅外線光路通暢時(shí),P1.3端低電平 紅外線光路阻斷時(shí),P1.3端高電平,單片機(jī)的引腳(P0口),P0.0-P0.7: 準(zhǔn)雙向I/O (內(nèi)置場效應(yīng)管上拉)尋址外部存儲(chǔ)器時(shí)分時(shí)作雙向8位數(shù)據(jù)口和低8位地址復(fù)用口,工作狀態(tài)由CPU發(fā)出的控制信號(hào)決定;不接存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,地址/數(shù)據(jù)
26、,控制=0,引腳P0.X,3,4,作通用I/O端口使用時(shí),控制=0 。,0,0,1,0,0,截止,截止,Vcc,=1,此腳作輸入口,“讀引腳”時(shí),事先必須對(duì)它寫“1”。,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,地址/數(shù)據(jù),控制=0,引腳P0.X,3,4,當(dāng)“輸出1”時(shí),輸出級(jí)為漏級(jí)開路電路,引腳上必須接上拉電阻,才能輸出高電平。,0,0,1,0,0,截止,截止,Vcc,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,地址/數(shù)據(jù)=0,控制=1,引腳P0.X,3,4,P0口作地址/數(shù)據(jù)復(fù)用口時(shí),控制=1: (1)當(dāng)輸出地址/數(shù)據(jù) =0 時(shí),1,0,1,截
27、止,導(dǎo)通,Vcc,=0,1,=0,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,地址/數(shù)據(jù)=1,控制=1,引腳P0.X,3,4,P0口作地址/數(shù)據(jù)復(fù)用口時(shí),控制=1: (2)當(dāng)輸出地址/數(shù)據(jù) =1時(shí),1,1,0,導(dǎo)通,截止,Vcc,=0,0,=1,2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,地址/數(shù)據(jù),控制=0,引腳P0.X,3,4,P0口作地址/數(shù)據(jù)復(fù)用口輸入時(shí),僅從外存讀入信息,控制=0,CPU自動(dòng)向P0口輸出FFH,使下拉場效應(yīng)管截止。輸入指令將使引腳與內(nèi)部總線直通,Vcc,=1,截止,截止,1、 P0作為地址數(shù)據(jù)總線時(shí),VT1和VT2是一起工作
28、的,構(gòu)成推挽結(jié)構(gòu)。高電平時(shí), VT1打開, VT2截止;低電平時(shí), VT1截止, VT2打開。這種情況下不用外接上拉電阻。 而且,輸出高電平的時(shí)候,當(dāng)VT1打開, VT2截止,因?yàn)閮?nèi)部電源直接通過T1輸出到P0口線上,因此驅(qū)動(dòng)能力(電流)可以很大,這就是為什么教科書上說可以“驅(qū)動(dòng)8個(gè)TTL負(fù)載”的原因。,P0口特點(diǎn)小結(jié)(1),2. 做通用數(shù)據(jù)I/O端口時(shí),輸出級(jí)上端的FET處于截止?fàn)顟B(tài),為漏級(jí)開路電路,若要驅(qū)動(dòng)拉電流負(fù)載時(shí),必須接“上拉電阻”,否則不能正確的輸出高電平; 其他端口P1、P2、P3在內(nèi)部直接將VT1換成了上拉電阻,所以不用外接,但內(nèi)部上拉電阻太大,電流太小,有時(shí)因?yàn)殡娏鞑粔?,也?huì)
29、再并一個(gè)上拉電阻。 3.做通用數(shù)據(jù)I/O端口時(shí),在輸入操作前,為了保證輸入正確,必須先向端口“寫1”;,P0口特點(diǎn)小結(jié)(1),4. “讀鎖存器” 為引腳改寫操作。凡是“讀修改寫” 的操作,CPU讀的都是端口鎖存器中的數(shù)據(jù)。 5. 在總線方式時(shí),P0口不能再做通用的I/O端口。它分時(shí)輸出地址、數(shù)據(jù)總線的信息(此時(shí)引腳不用外接上拉電阻),此時(shí)為雙向口,P0口特點(diǎn)小結(jié)(2),6、在某個(gè)時(shí)刻,P0口上輸出的是作為總線的地址數(shù)據(jù)信號(hào)還是作為普通I/O口的電平信號(hào),是依靠多路開關(guān)MUX來切換的。而MUX的切換,又是根據(jù)單片機(jī)指令來區(qū)分的。 當(dāng)指令為外部存儲(chǔ)器/IO口讀/寫時(shí),比如 MOVX A,DPTR
30、;MUX是切換到地址/數(shù)據(jù)總線上; 而當(dāng)普通MOV傳送指令操作p0口時(shí),MUX是切換到內(nèi)部總線上的。,ADC0809 與單片機(jī)的連接,MOV DPTR,#0FEF0H ;ADC0口地址 MOVX DPTR,A ;啟動(dòng)A/D轉(zhuǎn)換 LCALL DELAY ;等待轉(zhuǎn)換結(jié)束 MOVX A,DPTR ;取轉(zhuǎn)換結(jié)果,ADC0809延時(shí)方式數(shù)據(jù)采集,MOV A, 3FH MOV P0, A,單片機(jī)的引腳(P2口),P2.0P2.7: 準(zhǔn)雙向I/O (內(nèi)置了上拉電阻) 尋址外部存儲(chǔ)器時(shí)輸出高8位地址;不接外部存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。,2,1,D,Q,CK,/Q,讀引腳 =0,讀鎖存器,寫鎖存器,
31、內(nèi)部總線,地址 高8位,控制,引腳 P2.X,P2作通用輸出口時(shí),控制=0。,1,1,0,截止,3,內(nèi)部上拉電阻,1,1,Vcc,=1,=0,輸出=1時(shí),,2,1,D,Q,CK,/Q,讀引腳 =0,讀鎖存器,寫鎖存器,內(nèi)部總線,地址 高8位,控制,引腳 P2.X,0,0,1,導(dǎo)通,3,內(nèi)部上拉電阻,0,0,Vcc,=0,=0,P2作通用輸出口時(shí),控制=0。,輸出=0時(shí),,2,1,D,Q,CK,/Q,讀引腳 =0,讀鎖存器,寫鎖存器,內(nèi)部總線,地址 高8位,控制,引腳 P2.X,P2作高8位地址A8-A15輸出口時(shí),控制=1 。,1,0,截止,3,內(nèi)部上拉電阻,1,Vcc,=1,=1,=1,當(dāng)輸
32、出 =1時(shí),2,1,D,Q,CK,/Q,讀引腳 =0,讀鎖存器,寫鎖存器,內(nèi)部總線,地址 高8位=0,控制,引腳 P2.X,0,1,導(dǎo)通,3,內(nèi)部上拉電阻,0,Vcc,=0,=1,P2作高8位地址A8-A15輸出口時(shí),控制=1 。,當(dāng)輸出 =0時(shí),P2口在系統(tǒng)使用外部存儲(chǔ)器時(shí),做高八位的地址總線。 P2口使用時(shí)注意: a) 當(dāng)應(yīng)用系統(tǒng)擴(kuò)展有大于256B而小于64kB的外部存儲(chǔ)器,且P2口用于輸出高8位地址時(shí),P2口不能再作通用IO口使用。使用如: MOVX A,DPTR ;訪問外部數(shù)據(jù)存儲(chǔ)器 MOVC A,A+DPTR ; 訪問外部程序存儲(chǔ)器 這里使用了16位的寄存器DPTR,P2口特點(diǎn)小結(jié)(
33、1),b) 在不接外部存儲(chǔ)器或片外存儲(chǔ)器容量小于256字節(jié)的系統(tǒng)中,可以使用“MOVX A,Ri”類指令訪問片外存儲(chǔ)器,僅由P0口輸出低8位地址,此時(shí)P2口可作通用IO口用。,P2口特點(diǎn)小結(jié)(2),單片機(jī)的引腳(P3口),P3.0P3.7: 雙功能口(內(nèi)置了上拉電阻) 它具有特定的第二功能。在不使用它的第二功能時(shí)它就是普通的通用準(zhǔn)雙向I/O口。,P3口第二功能表(P.27 表21),2,1,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線D,第二功能輸出 (WR,RD,TxD),引腳 P3.X,3,內(nèi)部上拉電阻,Vcc,4,第二功能輸出時(shí),內(nèi)部自動(dòng) D=1,=1,1,1,與非門,2,1
34、,D,Q,CK,/Q,讀引腳,讀鎖存器,寫鎖存器,內(nèi)部總線,第二輸出功能1,引腳 P3.X,3,內(nèi)部上拉電阻,Vcc,4,第二功能輸入時(shí),信號(hào)經(jīng)緩沖器4 直接進(jìn)入內(nèi)總線,1,1,與非門,1,0,截 止,第二功能輸入 (RxD,T0,T1,INT0,INT1),并行端口在使用時(shí)應(yīng)注意的幾個(gè)問題,“拉電流”還是“灌電流” 1、 “灌電流”輸出“低電平”來 驅(qū)動(dòng)負(fù)載 使用灌電流的方式與電流較大的負(fù)載直接連接時(shí), 端口可以吸收約20mA。,Px.y,Vdd,Vdd,灌電流方式,輸出”0”, 點(diǎn)亮LED,2、“拉電流方式”輸出高電平驅(qū)動(dòng)負(fù)載。 采用拉電流方式連接負(fù)載時(shí),AT89S51所能提供“拉電流”僅
35、僅為80A,如果我們采用右下圖的方式,不足以點(diǎn)亮LED(或很暗)。 當(dāng)然,不是所有的單片機(jī)都是這樣,PIC單片機(jī)就可以提供30mA的拉電流和灌電流。單對(duì)于大多數(shù)IC電路,最好還是使用“灌電流”去驅(qū)動(dòng)負(fù)載。,Px.y,Vdd,拉電流方式 輸出高電平 點(diǎn)亮LED,拉電流方式驅(qū)動(dòng)負(fù)載,要接上拉電阻。 輸出高電平,LED亮,電流從電源正上拉電阻LED地。 輸出低電平,LED滅,電流從電源正上拉電阻P口。 缺點(diǎn):功耗大。,Px.y,Vdd,拉電流方式 輸出高電平 點(diǎn)亮LED,Vdd,單片機(jī)與繼電器等大電流負(fù)載的接口,我們知道:AT89S51的端口可以吸收約20mA的電流。對(duì)于繼電器等大于20mA的負(fù)載,
36、單片機(jī)可以采用右圖的接法,用一個(gè)三極管來承擔(dān)負(fù)載所需的大電流。 對(duì)P0口要接上拉電阻,Px.y,負(fù)載,Vcc,單片機(jī)與繼電器等大電流負(fù)載的接口,若于負(fù)載電流易造成干擾單片機(jī)的環(huán)境,應(yīng)采用右下圖“光電隔離”的方式。其中: A 、 B兩處沒有 任何電的聯(lián)系。,四、端口負(fù)載能力和接口要求,1、P0口的每一位輸出可驅(qū)動(dòng)8個(gè)LSTTL負(fù)載。 當(dāng)把它作通用IO口輸出時(shí),輸出級(jí)是開漏電路,當(dāng)它驅(qū)動(dòng)NMOS或其它拉電流負(fù)載時(shí),需要外接上拉電阻才有高電平輸出。 當(dāng)作地址數(shù)據(jù)總線(總線方式)時(shí),(即MOVX ,MOVC之類的指令),這時(shí)P0口是推挽式輸出,所以這個(gè)時(shí)候不論輸1(高電平)還是輸0(低電平),驅(qū)動(dòng)都比
37、較強(qiáng)(內(nèi)阻小,輸出電流大),無需外接上拉電阻,你們沒人見過51訪問外RAM的硬件中P0口接上拉電阻的吧! 此時(shí)不能作通用IO口使用。,2P1P3口的輸出級(jí)均接有上拉電阻,他們的每一位的輸出均可以驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。當(dāng)作為輸出驅(qū)動(dòng)一般的晶體管的基極時(shí),應(yīng)在口與晶體管的基極之間串接限流電阻。,3P0P3口都是準(zhǔn)雙向IO口。由輸出轉(zhuǎn)為輸入狀態(tài)時(shí),必須先向相應(yīng)端口的鎖存器寫入“1”,使下拉場效應(yīng)管截止。 P0口作為地址/數(shù)據(jù)復(fù)用口(總線方式)時(shí),相當(dāng)于一個(gè)真正雙向口,用于和外部存儲(chǔ)器的連接,輸出低八位地址和輸出/輸入8位數(shù)據(jù); 當(dāng)系統(tǒng)復(fù)位時(shí),P0P3端口鎖存器全為“1”。,51單片機(jī)的8個(gè)特殊引腳
38、,Vcc, GND: 電源端 XTAL1, XTAL2: 片內(nèi)振蕩電路輸入、輸出端 RESET: 復(fù)位端 正脈沖有效(寬度8 mS) EA/Vpp: 尋址外部ROM控制端。低有效 片內(nèi)有ROM時(shí)應(yīng)當(dāng)接高電平。 ALE/PROG: 地址鎖存允許控制端。 PSEN:選通外部ROM的讀(OE)控制端。 低有效,小結(jié),51單片機(jī)的4個(gè)8位的I/O口,P0.0P0.7:8位數(shù)據(jù)口和輸出低8位地址復(fù)用口 (復(fù)用時(shí)是雙向口;不復(fù)用時(shí)也是準(zhǔn)雙向口) P1.0P1.7: 通用I/O口(準(zhǔn)雙向口),P2.0P2.7: 輸出高8位地址 (用于尋址時(shí)是輸出口;不尋址時(shí)是準(zhǔn)雙向口) P3.0P3.7: 具有特定的第二功
39、能(準(zhǔn)雙向口),注意:在不外擴(kuò)ROM/RAM時(shí),P0P3均可作通用I/O口使用,而且都是準(zhǔn)雙向I/O口!,小結(jié),P3口第二功能表 (P.27 表21),小結(jié),存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)器RAM(Random Access Memory) 程序存儲(chǔ)器ROM(Read Only Memory) 閃速存儲(chǔ)器Flash Memory EPROMErazible Programmable ROM EEPROM/E2PROMElectrical Erasable Programmable ROM 按字節(jié)尋址:每個(gè)字節(jié)(8個(gè)位)占一個(gè)地址 按位尋址:有的存儲(chǔ)器每一個(gè)位就有一個(gè)地址,單片機(jī)的存儲(chǔ)器幾個(gè)有關(guān)的概念:,MC
40、S-51單片機(jī)的存儲(chǔ)器結(jié)構(gòu),MCS-51單片機(jī)的存儲(chǔ)器空間分布,特點(diǎn): 在MCS-51單片機(jī)的內(nèi)部集成了4K的程序存儲(chǔ)器和256B的數(shù)據(jù)存儲(chǔ)器,同時(shí)還可以使用片外的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,其擴(kuò)展能力都是64K。 從物理結(jié)構(gòu)的角度講,51單片機(jī)的存儲(chǔ)系統(tǒng)可以分為四個(gè)存儲(chǔ)空間:即片內(nèi)ROM,RAM和片外ROM、RAM。 從邏輯上講(即用戶編程的角度講)51單片機(jī)的存儲(chǔ)系統(tǒng)又可分為三個(gè)存儲(chǔ)空間。即片內(nèi)RAM,片外RAM和片內(nèi)、外的程序存儲(chǔ)器ROM。,FFFFH,0000H,可尋址片外ROM,64K字節(jié),0FFFH,0000H,片內(nèi) ROM,4K 字節(jié),程序存儲(chǔ)器,MCS-51單片機(jī)的內(nèi)存結(jié)構(gòu),物理上
41、分為:4個(gè)空間,即片內(nèi)ROM、片外ROM 片內(nèi)RAM、片外RAM 邏輯上分為: 3個(gè)空間, 即程序內(nèi)存(片內(nèi)、外)統(tǒng)一編址 MOVC 數(shù)據(jù)存儲(chǔ)器(片內(nèi)) MOV 數(shù)據(jù)存儲(chǔ)器(片外) MOVX,MCS-51單片機(jī)的內(nèi)存結(jié)構(gòu),尋址范圍:0000H FFFFH 64KB (16位).,,尋址內(nèi)部ROM;,,尋址外部ROM。,當(dāng)PC值超過片內(nèi)ROM容量時(shí)會(huì)自動(dòng)轉(zhuǎn)向 外部存儲(chǔ)器空間。,8031單片機(jī),接低電平。,作用: 存放程序及程序運(yùn)行時(shí)所需的常數(shù)。,低段4KB: 0000H0FFFH 80C51和87C51在片內(nèi),80C31在片外。,高段60KB:1000HFFFFH。在片外。,存儲(chǔ)器配置(ROM)
42、,0000H 系統(tǒng)復(fù)位,PC指向此處 0003H 外部中斷0入口 000BH T0溢出中斷入口 0013H 外中斷1入口 001BH T1溢出中斷入口 0023H 串口中斷入口 002BH T2溢出中斷入口,注意: 7個(gè)單元被保留用于特定的程序入口地址(中斷服務(wù)程序入口地址)。編程者是不能隨便使用的。,存儲(chǔ)器配置(ROM),由于系統(tǒng)復(fù)位后的PC內(nèi)容為0000H,故系統(tǒng)從0000H單元開始取指令,執(zhí)行程序。它是系統(tǒng)的啟動(dòng)地址。從0000H到0003H只有3B,根本不可能安排一個(gè)完整的系統(tǒng)程序,一般在該單元設(shè)置轉(zhuǎn)移指令,使之轉(zhuǎn)向用戶主程序處。因此,0000H0002H單元被保留用于初始化。,存儲(chǔ)器
43、配置(ROM),org0000h jmpmain;跳過中斷入口地址區(qū) org0100h main: movp1,#55h mov r0,#3fh ,地址范圍:0000HFFFFH 共64KB。,讀寫外RAM用MOVX指令, 控制信號(hào)是P3口中的RD和WR。,一般情況下,只有在內(nèi)RAM不能滿足應(yīng)用要求時(shí),才外接RAM。,51單片機(jī)存儲(chǔ)器配置(片外RAM),51單片機(jī)存儲(chǔ)器配置(片內(nèi)RAM),片內(nèi)RAM 128字節(jié)(00H7FH); 片內(nèi)RAM前32個(gè)單元是工作寄存器區(qū)(00H1FH) 片內(nèi)RAM有128個(gè)可按位尋址的位,占16個(gè)單元。 位地址編號(hào)為:00H7FH,分布在20H2FH單元 片內(nèi)21
44、個(gè)特殊功能寄存器(SFR)中:地址號(hào)能被8整除的 SFR中的各位也可按位尋址(P.29-30),存儲(chǔ)器配置(片內(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個(gè)位可位尋址,80H,FFH,所有的RAM區(qū)(包括位尋址區(qū)、工作寄存器區(qū))都可以用于存放數(shù)據(jù),故也稱為數(shù)據(jù)緩存寄存器,片內(nèi)RAM前32個(gè)單元是工作寄存器區(qū) (00H1FH),00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),存儲(chǔ)器配置(片內(nèi)RAM)
45、,有專用于工作寄存器操作的指令,讀寫速度比一般內(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個(gè)單元是工作寄存器區(qū) (00H1FH),存儲(chǔ)器配置(片內(nèi)RAM),工作寄存器區(qū)分為4個(gè)區(qū):0區(qū)、1區(qū)、2區(qū)、3區(qū)。每
46、區(qū)有8個(gè)寄存器:R0R7,寄存器名稱相同。但是,當(dāng)前工作的寄存器區(qū)只能有一個(gè),由PSW中的D4、D3位決定。,00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),片內(nèi)RAM中有128個(gè)可按位尋址的位。 位地址:00H7FH 分布在:20H2FH單元,存儲(chǔ)器配置(片內(nèi)RAM),用于存放各種標(biāo)志位信息和位數(shù)據(jù)。每一位均有一個(gè)位地址,可位尋址、位操作。即按位地址對(duì)該位進(jìn)行置1、清0、求反或判轉(zhuǎn).,注意事項(xiàng): 位地址與字節(jié)地址編址相同,容易混淆。 區(qū)分方法:位操作指令中的地址是位地址; 字節(jié)操作指令中的地址是字節(jié)地址。,00H,20H,2FH,7FH,
47、1FH,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 7
48、E 7D 7C 7B 7A 79 78,位地址,總共128個(gè)可按位尋址的位,片內(nèi)RAM中有128個(gè)可按位尋址的位。 位地址:00H7FH 分布在:20H2FH單元,存儲(chǔ)器配置(片內(nèi)RAM),00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),數(shù)據(jù)緩沖區(qū):30H7FH單元,存儲(chǔ)器配置(片內(nèi)RAM),用于用于存放各種數(shù)據(jù)和中間結(jié)果,起到數(shù)據(jù)緩沖的作用。,特殊功能寄存器(SFR),特殊功能寄存器SFR(專用寄存器) 特殊用途寄存器的集合。專用于控制、選擇、管理、存放單片機(jī)內(nèi)部各部分的工作方式、條件、狀態(tài)、結(jié)果的寄存器。,不同的SFR管理不同的硬件模塊
49、,負(fù)責(zé)不同的功能各司其職 換言之:要讓單片機(jī)實(shí)現(xiàn)預(yù)訂的功能,必須有相應(yīng)的硬件和軟件,而軟件中最重要的一項(xiàng)工作就是對(duì)SFR寫命令(要求)。,特殊功能寄存器不能作為普通的RAM存儲(chǔ)單元來使用。只有在編程中根據(jù)需要,進(jìn)行一些特定功能的設(shè)定,或者是從中查尋相關(guān)部件的狀態(tài)時(shí),才能進(jìn)行讀、寫操作。如中斷方式的設(shè)定、定時(shí)器工作模式的設(shè)定,查詢串行口發(fā)送或接收是否結(jié)束等等。,有21個(gè)SFR 已知的P0、P1、P2、P3等四個(gè)8位I/O口分別由名為P0、P1、P2、P3四個(gè)SFR代表。,堆棧指針寄存器 SP(Stack Pointer): 總是指向棧頂,壓棧時(shí)先 (SP)+1 然后數(shù)據(jù)進(jìn)棧;彈棧時(shí)數(shù)據(jù)先出棧 然
50、后(SP)-1。,累加器 ACC:一個(gè)用得最頻繁的特殊功能寄存器(如:運(yùn)算、數(shù)據(jù)傳輸)。,副累加器 B:一個(gè)經(jīng)常與 ACC 配合在一起使用的特殊功能寄存器(如:乘法、除法),此外,它也經(jīng)常當(dāng)作普通寄存器使用。,特殊功能寄存器(P0P3,SP,A,B),堆棧: 在片內(nèi)RAM中,常常要指定一個(gè)專門的區(qū)域來存放某些特別的數(shù)據(jù),它遵循順序存取和后進(jìn)先出(LIFO/FILO)的原則,這個(gè)RAM區(qū)叫堆棧。,功用: 1)子程序調(diào)用和中斷服務(wù) 2)保護(hù)現(xiàn)場/恢復(fù)現(xiàn)場 3)數(shù)據(jù)傳輸,堆棧操作分自動(dòng)方式和指令方式。自動(dòng)方式是在調(diào)用子程序或發(fā)生中斷時(shí)CPU自動(dòng)將斷口地址存人或者取出;指令方式是使用進(jìn)出棧指令進(jìn)行操作
51、。,00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),SP棧頂,下一個(gè)進(jìn)棧的數(shù)據(jù)將存在此,數(shù)據(jù)進(jìn)棧,已經(jīng)進(jìn)棧的數(shù)據(jù)存放在此,初始 SP,復(fù)位后 SP=07H,數(shù)據(jù)進(jìn)棧時(shí):首先SP+1指向08H單元,第一個(gè)放進(jìn)堆棧的數(shù)據(jù)將放進(jìn)08H單元,然后SP再自動(dòng)增 1,仍指著棧頂,堆棧區(qū)由特殊功能寄存器堆棧指針SP管理 堆棧區(qū)可以安排在 RAM區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的RAM區(qū),通常放在RAM區(qū)的靠后的位置。,SFR,從堆棧取出數(shù)據(jù)時(shí):取出的數(shù)據(jù)是最近放進(jìn)去的一個(gè)數(shù)據(jù),也就是當(dāng)前棧頂?shù)臄?shù)據(jù)。然后SP再自動(dòng)減1,仍指著棧頂,00H,
52、20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),SP棧頂,當(dāng)前要出棧的數(shù)據(jù),數(shù)據(jù)出棧,SP-1指向下一個(gè)將要出棧的數(shù)據(jù),初始 SP,堆棧區(qū)由特殊功能寄存器堆棧指針SP管理 堆棧區(qū)可以安排在 RAM區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的RAM區(qū),通常放在RAM區(qū)的靠后的位置。,從堆棧取出數(shù)據(jù)時(shí):取出的數(shù)據(jù)是最近放進(jìn)去的一個(gè)數(shù)據(jù),也就是當(dāng)前棧頂?shù)臄?shù)據(jù)。然后SP再自動(dòng)減1,仍指著棧頂,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),S
53、P-1 指向新的棧頂,也就是下一個(gè)將要出棧的數(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ū)Σ粚?duì)?,程序狀態(tài)字寄存器 PSW:也稱為標(biāo)志寄存器,存放各有關(guān)標(biāo)志。,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,CY(PSW.7)進(jìn)位/借位標(biāo)志位。若在加減運(yùn)算過程中如果操作結(jié)果最高位有進(jìn)位或借位,則CY=1;否則=0。它也是布爾處理器的位
54、累加器,可用于布爾操作。,AC(PSW.6)半進(jìn)位/借位標(biāo)志位。若在加減運(yùn)算過程中,D3位向D4位發(fā)生了進(jìn)位或借位,則AC=1,否則=0。機(jī)器在執(zhí)行“DA A”指令時(shí)自動(dòng)要判斷這一位,我們可以暫時(shí)不關(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、RS
55、0 = 10 2區(qū)(10H17H) RS1、RS0 = 11 3區(qū)(18H1FH),片內(nèi)RAM前32個(gè)單元(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)志位。 OV(PSW.2) 溢出標(biāo)志位: 判斷符號(hào)數(shù)加減法運(yùn)算時(shí)是否有溢出. OV的結(jié)果可以用一個(gè)算法來表示: OV=C6異或C7 其中: C7為D7的進(jìn)借位, C6 為D6的進(jìn)借位,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”的個(gè)數(shù)為奇數(shù) P=0表示累加器中“1”的個(gè)數(shù)為偶數(shù) CPU隨時(shí)監(jiān)視著ACC中的“1”的個(gè)數(shù),并反映在PSW中,PSW
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公樓裝飾裝修與室內(nèi)環(huán)境舒適度提升合同
- 門店店員激勵(lì)政策方案
- 園藝技巧面試題及答案
- 淘寶店考試題及答案
- 單位物業(yè)勞務(wù)外包方案
- 傳媒行業(yè)提成方案
- 采購合同績效評(píng)估與改進(jìn)培訓(xùn)協(xié)議
- 湘江小學(xué)面試題及答案
- 中醫(yī)精神病護(hù)理
- 鐵路維護(hù)工程招標(biāo)方案
- 2024年廣東血液凈化護(hù)理知識(shí)競賽考試題庫(含答案)
- 基層供電所安全課件
- 2020-2024年五年高考地理真題分類匯編專題02 宇宙中的地球-(解析版)
- 瑜伽說課課件
- 2024年上海復(fù)旦大學(xué)附中自主招生數(shù)學(xué)試卷真題(含答案詳解)
- 骨質(zhì)疏松性椎體壓縮骨折診治專家共識(shí)
- 人教部編版九年級(jí)歷史上冊(cè)第一單元測試卷三套含答案
- 會(huì)診制度培訓(xùn)課件
- 廣東省安全生產(chǎn)管理臺(tái)賬表格與說明
- 【公開課】植物體的結(jié)構(gòu)層次2024-2025學(xué)年人教版生物七年級(jí)上冊(cè)
- 重癥醫(yī)學(xué)質(zhì)量控制中心督查評(píng)價(jià)標(biāo)準(zhǔn)及評(píng)分細(xì)則
評(píng)論
0/150
提交評(píng)論