![單片機(jī)原理與接口技術(shù).ppt_第1頁](http://file1.renrendoc.com/fileroot2/2020-1/9/83abe6a5-a7b1-4e3b-89b2-10b686ece085/83abe6a5-a7b1-4e3b-89b2-10b686ece0851.gif)
![單片機(jī)原理與接口技術(shù).ppt_第2頁](http://file1.renrendoc.com/fileroot2/2020-1/9/83abe6a5-a7b1-4e3b-89b2-10b686ece085/83abe6a5-a7b1-4e3b-89b2-10b686ece0852.gif)
![單片機(jī)原理與接口技術(shù).ppt_第3頁](http://file1.renrendoc.com/fileroot2/2020-1/9/83abe6a5-a7b1-4e3b-89b2-10b686ece085/83abe6a5-a7b1-4e3b-89b2-10b686ece0853.gif)
![單片機(jī)原理與接口技術(shù).ppt_第4頁](http://file1.renrendoc.com/fileroot2/2020-1/9/83abe6a5-a7b1-4e3b-89b2-10b686ece085/83abe6a5-a7b1-4e3b-89b2-10b686ece0854.gif)
![單片機(jī)原理與接口技術(shù).ppt_第5頁](http://file1.renrendoc.com/fileroot2/2020-1/9/83abe6a5-a7b1-4e3b-89b2-10b686ece085/83abe6a5-a7b1-4e3b-89b2-10b686ece0855.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)原理與接口技術(shù),嵌入式微控制器的開發(fā)入門,參考資料,1, 單片機(jī)原理及其接口技術(shù) -胡漢才 清華大學(xué)出版社(32元) 2,MCS-51/96系列單片機(jī)原理及應(yīng)用 -孫涵芳 徐愛卿 北京航空航天大學(xué)出版社(35元) 3,MCS-51系列單片機(jī)實(shí)用接口技術(shù) - 李華北京航空航天大學(xué)出版社(40元) 4,電子世界 -中國電子學(xué)會主辦(期刊 6.00元/期),本課主要內(nèi)容及課時(shí)安排,總講課課時(shí)24學(xué)時(shí) 第一章:MCS-51系列單片機(jī)的基本硬件結(jié)構(gòu) (8課時(shí)) 介紹51單片機(jī)內(nèi)部硬件結(jié)構(gòu)(數(shù)據(jù)寄存器、程序存儲器、輸入輸出端口、定時(shí)計(jì)數(shù)器、串行口及中斷等) 第二章:MCS-51單片機(jī)的指令系統(tǒng) (4
2、課時(shí)) 51單片機(jī)的111條指令的分類、尋址方式、偽指令及使用中的注意事項(xiàng) 第三章:MCS-51單片機(jī)的系統(tǒng)擴(kuò)展及應(yīng)用 (12課時(shí)) 程序與數(shù)據(jù)存儲器的擴(kuò)展、定時(shí)/計(jì)數(shù)器的應(yīng)用、串行口的應(yīng)用及A/D、D/A轉(zhuǎn)換器與單片機(jī)的接口和鍵盤掃描/動態(tài)顯示接口電路。,如何學(xué)習(xí)本門課程,第一章是基礎(chǔ),只有熟知單片機(jī)的硬件結(jié)構(gòu)和特點(diǎn)才能正確的使用單片機(jī)進(jìn)行各種編程、應(yīng)用和開發(fā)。 第二章的關(guān)鍵是要正確的理解和掌握指令的尋址方式。MCS-51單片機(jī)的111條指令,要正確理解和運(yùn)用。 第三章要求要運(yùn)用許多基礎(chǔ)知識,將各種外圍電路與單片機(jī)之間實(shí)現(xiàn)接口,因此要掌握外圍電路的原理、特性和使用方法。這是進(jìn)行系統(tǒng)設(shè)計(jì)的基礎(chǔ)
3、。 參加實(shí)驗(yàn)前認(rèn)真做好預(yù)習(xí)。實(shí)驗(yàn)中獨(dú)立地進(jìn)行編程、調(diào)試。完整的掌握單片機(jī)的編程、調(diào)試過程是每一個(gè)從事單片機(jī)開發(fā)的工程師所必須跨出的第一步。 好的參考書。無論是初學(xué)入門,還是將來開發(fā),它都是很好的“工具”和“鑰匙”。,硬件基本概念:,微型計(jì)算機(jī),單片機(jī),嵌入式微控制器,嵌入式計(jì)算機(jī)系統(tǒng),繼續(xù),微型計(jì)算機(jī):,由CPU、存儲器、定時(shí)/計(jì)數(shù)器、并行輸入/輸出接口電路、中斷控制器等大規(guī)模IC芯片安置在一個(gè)電路板上,加上鍵盤、顯示器等構(gòu)成了微型計(jì)算機(jī)的硬體部分。,返回,單片機(jī),將微型計(jì)算機(jī)系統(tǒng)所用的大多數(shù)IC芯片集成到一個(gè)芯片中??梢哉J(rèn)為,單片機(jī)就是將微型計(jì)算機(jī)的CPU、存儲器、I/O端口、中斷控制器等全
4、部做在一個(gè)芯片中去。 美國INTEL公司生產(chǎn)的MCS-51單片機(jī)就是一種典型的、按照微型計(jì)算機(jī)的框架,采用大規(guī)模IC工藝制造的單片機(jī),也是目前世界上使用量最大的一種較典型的產(chǎn)品。,返回,嵌入式微控制器,是單片機(jī)發(fā)展的一個(gè)高級形式,也是單片機(jī)發(fā)展的必然趨勢。它的設(shè)計(jì)理念不再停留在模仿微型計(jì)算機(jī)的結(jié)構(gòu),而是面向應(yīng)用、加大功能、減少功耗、精簡指令系統(tǒng)提高運(yùn)行速度為出發(fā)點(diǎn)來設(shè)計(jì)單片機(jī)的框架。這種處理器的最大特征是不僅包含了一般單片機(jī)的所有硬件電路,還集成了放大器、比較器、A/D轉(zhuǎn)換器和PWM電路等等。用它來設(shè)計(jì)一個(gè)智能化的產(chǎn)品,可以進(jìn)一步簡化外圍電路,降低開發(fā)成本,甚至完成一般的單片機(jī)所不能完成的任務(wù)
5、。 美國Microchip公司生產(chǎn)的PIC單片機(jī)等產(chǎn)品就是這類產(chǎn)品的代表,實(shí)際上PIC單片機(jī)也稱為“嵌入式微控制器”,如PIC16F877等。,返回,嵌入式計(jì)算機(jī)系統(tǒng),人們在工業(yè)控制、家電產(chǎn)品、智能儀表、汽車電子等領(lǐng)域進(jìn)行智能化設(shè)計(jì)時(shí),將嵌入到被控制對象(如:家電、汽車、機(jī)床等)中的、已經(jīng)失去了原有的計(jì)算機(jī)形態(tài)及功能的專用計(jì)算機(jī)稱之為“嵌入式計(jì)算機(jī)系統(tǒng)”。 在這些被控制對象中,往往要求嵌入式計(jì)算機(jī)系統(tǒng)要有極小的體積和極低的成本,要有極小的功耗和較高的可靠性。而這些又恰恰是通用計(jì)算機(jī)無法作到的。因此以單片機(jī)為代表的嵌入式計(jì)算機(jī)系統(tǒng)(也稱嵌入式微控制器)極大的滿足了這種市場的需求。反過來,市場的需
6、要也迫使單片機(jī)去不斷完善、發(fā)展,使其分類越來越細(xì),品種越來越多。,微型計(jì)算機(jī)與單片機(jī)在硬件結(jié)構(gòu)上的比較,微型計(jì)算機(jī) 單片機(jī),數(shù)據(jù)RAM,CPU,并行I/O,程序ROM,定時(shí)/計(jì)數(shù)器,串型端口,中斷控制器,擴(kuò)展I/O端口,系統(tǒng)總線(DB、AB、CB),微型計(jì)算機(jī)的組成框圖 (由多個(gè)IC芯片組裝在一個(gè)主電路板上),MCS-51單片機(jī),所有單元都組裝 在一個(gè)IC芯片上,返回,第一章:MCS-51系列單片機(jī)的基本硬件結(jié)構(gòu),1.1 MCS-51單片機(jī)的主要性能和特點(diǎn),1.2 MCS-51單片機(jī)內(nèi)部方框圖,1.3 MCS-51單片機(jī)的引腳定義,1.4 MCS-51單片機(jī)的存儲器的配置,1.6 輸入輸出端口
7、,1.5 震蕩器、時(shí)鐘電路和CPU的時(shí)序,1.7 MCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器,1.8 MCS-51單片機(jī)的串行接口,1.9 MCS-51的中斷系統(tǒng),1.1 MCS-51單片機(jī)的主要性能和特點(diǎn),內(nèi)部程序存儲器ROM ( 以89C51為例 ):4K的存儲容量; 內(nèi)部數(shù)據(jù)存儲器RAM:256B(128B的RAM+21B的SFR) ; 寄存器區(qū):設(shè)有4個(gè)寄存器區(qū),每一個(gè)區(qū)有R0-R7八個(gè)工作寄存器; 8位并行輸入輸出端口:P0、P1、P2和P3; 定時(shí)/計(jì)數(shù)器:2個(gè)16位的定時(shí)/計(jì)數(shù)器; 串型口:全雙工的端口(RXD:接收端,TXD發(fā)送端); 中斷系統(tǒng):設(shè)有5個(gè)中斷源; 系統(tǒng)擴(kuò)展能力:可外接64
8、K的 ROM 和64K的 RAM; 堆棧:設(shè)在RAM單元中,可以浮動既通過堆棧指針SP來確定堆棧的位置 布爾處理機(jī):配合布爾運(yùn)算的指令進(jìn)行各種邏輯運(yùn)算; 指令系統(tǒng):111條指令。按功能可分為數(shù)據(jù)傳送、算術(shù)運(yùn)算、邏輯運(yùn)算、控制轉(zhuǎn)移和布爾操作5大類。,返回,1.2 : MCS-51單片機(jī)內(nèi)部方框圖,時(shí)鐘電路,4KROM 程序存儲器,256BRAM 數(shù)據(jù)存儲器,2X16位 定時(shí)/計(jì)數(shù)器,CPU 處理器,64KB總線 擴(kuò)展控制器,可編程I/O 端口P0-3,可編程 串行口,MCS-51系列芯片及制造工藝,返回,1.3:MCS-51單片機(jī)的引腳定義,MCS-51單片機(jī)有兩種封裝形式: a.40腳的雙列直
9、插DIP封裝; b.44腳的PLCC。 1,主電源引腳 :Vcc(+5V- 40腳)和Vss(GND 20腳); 2,外接晶體引腳:XTAL1(19腳)、XTAL2(18腳),只要在這兩腳之間接入一個(gè)晶體震蕩器,單片機(jī)就可以以此晶體的頻率開始工作。常用的晶體頻率有0-24M,頻率越高,單片機(jī)的工作速度就越快,但單片機(jī)的功耗就要增加。 3,控制或與電源復(fù)用引腳:RST/Vpd、ALE/PROG、/PSEN和Vdd RST/Vpd(9腳):在系統(tǒng)上電震蕩器開始工作時(shí), 在內(nèi)部加在此引腳上有一個(gè)兩個(gè)時(shí)鐘周期的高電平使單片機(jī)復(fù)位。但為了使系統(tǒng)復(fù)位可靠,建議外加 一個(gè)上電復(fù)位電路,延長復(fù)位的時(shí)間。當(dāng)單片
10、機(jī)掉點(diǎn)時(shí),此引腳可以接入備用電源向單片機(jī)內(nèi)部的RAM供電,以防止RAM中的數(shù)據(jù)丟失。,引腳圖,在復(fù)位狀態(tài)下:所有SFR的內(nèi)容全變?yōu)椤?”, 端口輸出“1”。RAM內(nèi)容不變。,MCS-51 RST,Vcc,MCS-51 RST,Vcc,1K,10,t,V,T,延長上電復(fù)位時(shí)間的電路 和RST端上電電壓曲線,具有手動復(fù)位功能 的復(fù)位電路,R,C,8 4 6 3 5 2 1,Vo,Vcc,觸發(fā),觸發(fā)信號 Vo Vc,8 4 6 3 5 2 1,VoRST,Vcc,P1.0,Vcc P1.0 Vo,V備用,使用555電路構(gòu)成的掉電保護(hù)電路,由555構(gòu)成的單穩(wěn)態(tài)電路、波形 單穩(wěn)態(tài)單路構(gòu)成的掉電保護(hù)電路、
11、波形,掉電保護(hù)原理及過程,電源監(jiān)控電路對電源VCC進(jìn)行監(jiān)控,當(dāng)VCC的電源開始下降時(shí)向單片機(jī)的/INT0或/INT1發(fā)一個(gè)中斷申請信號。 單片機(jī)收到中斷信號,立即進(jìn)入中斷程序。在電源消失前: 1,迅速將一些重要的信息送RAM保存; 2,從P1.0引腳輸出負(fù)脈沖,觸發(fā)單穩(wěn)進(jìn)行電源切換。 外部單穩(wěn)電路進(jìn)入但穩(wěn)態(tài)后,由于VCC的消失,使電路無法對單穩(wěn)電容充電,所以單穩(wěn)電路一直處于“休眠狀態(tài)”。 當(dāng)VCC電源恢復(fù)后,VCC對電容充電,經(jīng)后脫離單穩(wěn)態(tài)。,電源監(jiān)測 電路,/INT0 RST MCS-51 P1.0,Vo Vdd 555 觸發(fā)輸入,Vcc,備用 電源,ALE/PROG(30腳):以一個(gè)不變的
12、頻率(系統(tǒng)時(shí)鐘 fosc/6 )周期性輸出正脈。 當(dāng)單片機(jī)使用外部存儲器時(shí),此信號可作為低八位地址的鎖存信。 對于EPROM型的單片機(jī),此腳還是用于寫程序時(shí),輸入編程脈沖。 /PSEN(29腳):外部程序程序存儲器的選通信號。當(dāng)單片機(jī)使用外部程序存儲器時(shí),此腳在一個(gè)機(jī)器周期內(nèi)產(chǎn)生兩次負(fù)脈沖。注意,訪問外部數(shù)據(jù)存儲器時(shí),此信號無效。 /EA / Vdd (31腳):外部程序存儲器的選擇端控制端:當(dāng)此腳加入“1”電平是,單片機(jī)使用內(nèi)部的程序存儲器;當(dāng)EA加入低電平時(shí),系統(tǒng)只使用外部的程序存儲器。 但要特別注意:如果EA=1既使用單片機(jī)內(nèi)部的程序存儲器時(shí),如果程序計(jì)數(shù)器PC的值超過0FFFH時(shí),單片
13、機(jī)將自動轉(zhuǎn)向外部程序存儲器1000H開始的單元。 對于EPROM型的單片機(jī),此腳還是用于寫程序時(shí),加入21伏的編程電壓。,時(shí)序圖,引腳圖,4,并行輸入輸出端口引腳(P0-P3) P0.0 - P0.7 P0端口線(39-32腳):輸出能力最強(qiáng)的端口,可以帶動8個(gè)TTL負(fù)載。驅(qū)動一個(gè)MOS負(fù)載時(shí),應(yīng)接一個(gè)10K左右的上拉電阻。如果系統(tǒng)使用外接存儲器時(shí),該口還作為地址(低八位)總線和數(shù)據(jù)總線,注意在這種情況下,P0口就不能通用的I/O端口。 P1.0 - P1.7 P1端口線(1 8腳):負(fù)載能力為4個(gè)TTL負(fù)載。 P2.0 P2.7 P2端口線(21 28腳):通用I/O端口。 除了做通用I/O
14、端口外,當(dāng)系統(tǒng)使用外接存儲器時(shí),該口還作為地址(高八位)總線,在這種情況下,P0口就不能通用的I/O端口。負(fù)載能力為4個(gè)TTL。,引腳圖,P3.0 P3.7 P3端口線 (10 17腳): P3口除了做通用的I/O端口外,同時(shí)它還有第二功能),負(fù)載能力為4個(gè)TTL。,P3口第二功能表,引腳圖,MCS-51單片機(jī)外型圖(DIP封裝) MCS-51單片機(jī)的邏輯符號圖,VCC RST XTAL1 P0口 XTAL2 /EA /PSEN ALE P1口 P3口 RXD TXD /INT0 /INT1 P2口 T0 T1 /WR /RD GND,87C51 EPROM型,AT89C51 ATMEL FL
15、ASH型,返回,返回上一次,1.4 MCS-51單片機(jī)的存儲器的配置,1.4.0 MCS-51單片機(jī)的存儲器的配置特點(diǎn),MCS-51單片機(jī)片內(nèi)、外程序存儲器的使用示意圖,1.4.1 程序存儲器(片內(nèi)與片外),1.4.2 內(nèi)部數(shù)據(jù)存儲器RAM,MCS-51 片內(nèi) 、片外 數(shù)據(jù)存儲器示意圖,MCS-51單片機(jī)片內(nèi)存儲器低 128B 字節(jié)功能分配圖,片內(nèi) RAM(20H-2FH)中的位尋址區(qū)結(jié)構(gòu)圖,特殊功能寄存器 SFR,1.4.3 外部數(shù)據(jù)存儲器,第一章第四節(jié)內(nèi)容小結(jié),程序存儲器六個(gè)特殊的單元,返回第1章主菜單,1.4.0 MCS-51單片機(jī)的存儲器的配置特點(diǎn)(89C51),在MCS-51單片機(jī)的
16、內(nèi)部集成了4K的程序存儲器和256B的數(shù)據(jù)存儲器,同時(shí)還可以使用片外的程序存儲器和數(shù)據(jù)存儲器,其擴(kuò)展能力都是64K。 從物理結(jié)構(gòu)的角度講,51單片機(jī)的存儲系統(tǒng)可以分為四個(gè)存儲空間:既片內(nèi)ROM,RAM和片外ROM、RAM。 從邏輯上講(既用戶編程的角度講)51單片機(jī)的存儲系統(tǒng)又可分為三個(gè)存儲空間。既片內(nèi)RAM,片外RAM和片內(nèi)、外的程序存儲器ROM。,從物理結(jié)構(gòu)上單片機(jī)系統(tǒng)的存儲器結(jié)構(gòu)圖(四個(gè)部分),MCS-51 單片機(jī),片內(nèi) ROM 4K,片內(nèi) RAM 256B,片外 RAM 64K,片外 ROM 64K,返回,返回上一次,1.4.1 程序存儲器(片內(nèi)與片外),程序存儲器是用來存放編好的程序
17、、常數(shù)和表格的。 在MCS-51單片機(jī)中,當(dāng)引腳EA=1時(shí),系統(tǒng)使用片內(nèi)的4KROM來存儲程序。EA=0時(shí),系統(tǒng)使用片外的ROM。 無論是使用片內(nèi)還是使用片外的ROM(既 EA=1或EA=0),其起始地址都是從0000H單元開始。,如果EA=1(使用片內(nèi)的程序存儲器時(shí)): 程序從0000H開始執(zhí)行。 注意:在這種情況下,如果程序計(jì)數(shù)器的指針PC值超過0FFFH(4K)時(shí),單片機(jī)就要自動的轉(zhuǎn)向片外的ROM存儲器(盡管EA=1),且從片外ROM的1000H單元開始執(zhí)行程序。但單片機(jī)是無法使用片外ROM的0000H-0FFFH這4K單元。,返回,MCS-51單片機(jī)片內(nèi)、外程序存儲器的使用示意圖,0F
18、FFH 0000H,0FFFH 0000H,FFFFH 1000H,EA=1時(shí),ROM的使用,EA=0時(shí)ROM的使用,片外程序存儲器 (最大64K),單片機(jī)內(nèi)部 程序存儲器 (4K),返回,程序存儲器六個(gè)特殊的單元,在程序存儲器中,有六個(gè)單元是具有特定功能。編程者是不能隨便使用的。 0000H單元:上電時(shí),程序計(jì)數(shù)器PC所指向的單元 0003H單元:外部中斷/INT0的入口地址; 000BH單元:定時(shí)器T0的溢出中斷入口地址; 0013H單元:外部中斷/INT1的入口地址; 001BH單元:定時(shí)器T1的溢出中斷入口地址; 0023H單元:串行口接收、傳送的中斷入口地址。,返回,1.4.2 內(nèi)部
19、數(shù)據(jù)存儲器RAM,數(shù)據(jù)存儲器無論在物理上還是邏輯上都分為兩個(gè)地址空間,既一個(gè)內(nèi)部和一個(gè)外部的數(shù)據(jù)存儲空間。 訪問內(nèi)部數(shù)據(jù)存儲單元時(shí),使用 MOV 指令; 而訪問外部數(shù)據(jù)存儲器時(shí),使用 MOVX 指令。 內(nèi)部數(shù)據(jù)存儲器從功能上又將256B空間分為二個(gè)不同的塊: 1,低128B的RAM塊; 2,高128B的SFR (Special Function Register)塊。 在低128B的RAM存儲單元中又可劃分為:工作寄存器區(qū)、可位尋址區(qū)、通用存儲數(shù)據(jù)的便簽區(qū)。 高128B的專用寄存器區(qū)中僅僅使用了21寄存器(51系列),其它單元未定義不能使用。,存儲結(jié)構(gòu)圖,MCS-51 片內(nèi) 、片外 數(shù)據(jù)存儲器
20、示意圖,特殊功能 寄存器 SFR,通用數(shù)據(jù) 存儲器,80H 7FH,00H,FFH,片內(nèi)數(shù)據(jù)存儲器 片外數(shù)據(jù)存儲器 256B個(gè)字節(jié) 64KB個(gè)字節(jié),片外數(shù)據(jù) 存儲器 64KB,0000H,FFFFH,注意: 1,訪問片內(nèi)RAM20H存儲單元; MOV A,20H 2,訪問片外RAM存儲單元; MOV R0,#20h MOVX A,R0 3,盡管片內(nèi)與片外的RAM單元 的00H-FFH地址相重疊但由 于指令的不同不會發(fā)生地址 混亂。,片內(nèi)RAM低 128B 字節(jié)功能分配圖,位尋址區(qū),3區(qū),2區(qū),1區(qū),0區(qū),便箋區(qū),08H 07H 00H,7FH,30H 2FH,20H 1FH,18H 17H,1
21、0H 0FH,四個(gè)工作寄存器區(qū) 每個(gè)區(qū)中有R0-R7 八個(gè)工作寄存器,位尋址區(qū) 16個(gè)單元20H-2FH, 共有128 可尋址位個(gè)位。 位地址:00H-7FH 注意:位地址與字節(jié)地址的區(qū)別,通用的RAM區(qū) 地址:30H-7FH,繼續(xù),返回上一次,片內(nèi) RAM(20H-2FH)中的位尋址區(qū)結(jié)構(gòu)圖,2FH,20H,字節(jié)地址,位尋址區(qū)內(nèi)的地址是位地址。共有00-7FH(共128個(gè)位); 要區(qū)分字節(jié)地址和位地址這兩個(gè)不同的地址概念: 從物理的角度,每一個(gè)字節(jié)地址內(nèi)包含了8個(gè)位,既: D7,D6,D5,D4,D3,D2,D1,D0 在一般情況,我們提到的RAM地址都是字節(jié)地址。 從邏輯的角度講,字節(jié)地址
22、和位地址是靠不同類型的指令來區(qū)分的。如: MOV A, 20h ;將RAM的20單元內(nèi)容送累加器A; MOV C ,20h ;將RAM位尋址區(qū)中20H位送CY中。 在這二個(gè)例子中,第一條指令為字節(jié)傳送指令,所以20H為字節(jié)地址;第二個(gè)例子中的指令為位操作指令,所以20H為位地址。有關(guān)詳細(xì)內(nèi)容將在第二章中描述。,返回,0區(qū)工作寄存器區(qū)結(jié)構(gòu)圖,RAM地址 07H 06H 05H 04H 03H 02H 01H 00H,返回上一次,特殊功能寄存器SFR,特殊功能寄存器SFR (Special Function Register) 特殊用途寄存器的集合。用來設(shè)定單片機(jī)內(nèi)部各個(gè)部件的工作方式,存放相關(guān)部
23、件的狀態(tài),定時(shí)器初值寄存器,并行端口的鎖存器等等。 盡管特殊功能寄存器與RAM在同一個(gè)單元中,但不能作為普通的RAM存儲單元來使用。只有在編程中根據(jù)需要,進(jìn)行一些特定功能的設(shè)定,或者是從中查尋相關(guān)部件的狀態(tài)時(shí),才能進(jìn)行讀、寫操作。如中斷方式的設(shè)定、定時(shí)器工作模式的設(shè)定,查詢串行口發(fā)送或接收是否結(jié)束等等。,特殊功能寄存器 SFR(表一),SFR(表二),SFR 高128B,低128B,0FFH,80H 7FH,00H,特殊功能寄存器 SFR在片內(nèi)RAM 中的位置,注:表中黃色的單元為可按位尋址的字節(jié),特殊功能寄存器SFR說明,程序計(jì)數(shù)器PC: 用來存放下一條要執(zhí)行的指令地址,長度為16位,所以尋
24、址范圍為0-65535(64K).在物理上是獨(dú)立于SFR. 累加器A: 最常用的專用寄存器, 大多數(shù)的指令操作數(shù)都來自累加器A.所有的算術(shù)運(yùn)算指令的運(yùn)算結(jié)果都存放在A中. B寄存器:乘除法指令使用的寄存器. 數(shù)據(jù)指針DPTR: 一個(gè)16位的寄存器.由高八位DPH和低八位DPL構(gòu)成.DPTR主要用來存放片內(nèi)ROM的地址和片外RAM,ROM的地址.這樣單片機(jī)可以通過間址的方式來訪問片內(nèi)ROM或片外的RAM,ROM。 例如:片外RAM的2000H單元中有一個(gè)數(shù)x,試將其送到累加器A中. MOV DPTR,#2000h ; DPTR 2000H MOVX A,DPTR ; A x,程序狀態(tài)字PSW:
25、8位寄存器. 表征程序執(zhí)行的狀態(tài)信息。 CY (PSW.7)進(jìn)位標(biāo)志: 在加減法運(yùn)算中,累加器A的最高位A7有進(jìn)位,則CY=1,否則CY=0.同理,在減法運(yùn)算中,如果A7有借位,則CY=1.因此CY往往作為無符號數(shù)運(yùn)算是否有溢出的標(biāo)志。 AC(PSW.6):輔助進(jìn)位位: 用來判斷加減法運(yùn)算時(shí),低四位是否向高四位進(jìn)位或借位(既A3的進(jìn)位或借位).往往用來判斷壓縮的BCD碼的運(yùn)算處理. F0(PSW.5) 用戶標(biāo)志位: 完全由用戶來定義和使用。 RS1,RS0工作寄存器區(qū)選擇位:確定工作寄存器R0-R7在哪個(gè)區(qū)中. 單片機(jī)在上電或復(fù)位后RS1、RS0=00。當(dāng)需要人為的修改RS1,RS0的值來改變
26、工作寄存器區(qū)的位置。,RAM分配圖,OV(PSW.2) 溢出標(biāo)志位: 判斷符號數(shù)加減法運(yùn)算時(shí)是否有溢出. OV的結(jié)果可以用一個(gè)算法來表示: OV=CP異或CS 其中:CP為A7的進(jìn)位,CS為A6的進(jìn)位OV=1表明有溢出。 P(PSW.0)奇偶標(biāo)志位: 用來標(biāo)志累加器A中運(yùn)算后1的個(gè)數(shù)。 當(dāng)P=1時(shí),表明A中1的個(gè)數(shù)為奇數(shù)個(gè),反之為偶數(shù)個(gè)。 【舉例】:有兩個(gè)數(shù)0FH和F8H,試將兩數(shù)相加 MOV A,#0FH ;將立即數(shù)0f h 送累加器A ADD A,#0F 8H ;A的內(nèi)容與立即數(shù)0f8h相加,結(jié)果送A 0000 1111 運(yùn)算結(jié)果:A=07H,CY=1(既CP=1), + 1111 100
27、0 CS=1,OV=0(因?yàn)镃P=1,CS=1) Cy1 0000 0111 AC=1,P=1 如何根據(jù)PSW來分析運(yùn)算結(jié)果是否正確?是否有溢出? 1,若數(shù)據(jù)為無符號數(shù)。既15+248=263=107H 既CY=1,A=07H。 2,若數(shù)據(jù)為有符號數(shù)。既+15加-8=+7=07H,OV=0表明無溢出。,SP 堆棧指針:8位寄存器,用來指示堆棧的位置,可由軟件修改。在MCS-51單片機(jī)的設(shè)計(jì)中,片內(nèi)RAM區(qū)為堆棧的可用空間。上電或復(fù)位時(shí),SP被初始化為07H,既堆棧底部被確定在RAM的07H單元。 堆棧操作過程: 進(jìn)棧: PUSH ACC指令 (設(shè) SP=07H), 1,SP+1送SP,此時(shí)SP
28、=08H; 2,ACC送RAM的08H單元; 出棧: POP ACC (設(shè)SP=08H); 1,將RAM 中08H單元內(nèi)容送A; 2,SP-1送SP ,此時(shí)SP=07H。,07H,SP,08H 07H,RAM,x,累加器A,堆棧操作示意圖,并行端口P0-P3:SFR中的P0-P3實(shí)際上就是I/O端口的數(shù)據(jù)鎖存器。與RAM中的任意一個(gè)單元一樣,P0-P3都有自己的RAM地址:80H、90H、A0H、B0H。所以,在51單片機(jī)中的輸入、輸出操作實(shí)際上就是個(gè)普通的RAM單元操作一樣:如 輸出指令 MOV 80H,A ;將累加器中的數(shù)據(jù)送到P0口輸出 輸入指令 MOV A,90H ;將P1口的數(shù)據(jù)輸入
29、到累加器A中 既MCS-51的指令系統(tǒng)中沒有專用的輸入、輸出(IN、OUT)指令,而是把P0-P3作為普通的內(nèi)存單元來使用。上面的第一個(gè)例子實(shí)際上就是MCS-51的輸出指令;同理后者是MCS-51的輸入指令。,串行數(shù)據(jù)緩沖器SBUF:它是專門用來存放發(fā)送或接收的數(shù)據(jù),實(shí)際上它是兩個(gè)獨(dú)立的寄存器。盡管在SFR中的RAM地址只是99H,但根據(jù)指令“發(fā)送”或“接收”兩種不同的操作,硬件會自動的區(qū)分,將數(shù)據(jù)送如對應(yīng)的緩沖單元。 定時(shí)/計(jì)數(shù)器T0、T1:無論是定時(shí)還是計(jì)數(shù),對于MCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器來說,都是一個(gè)“計(jì)數(shù)器”在計(jì)數(shù)。這個(gè)“計(jì)數(shù)器”是由兩個(gè)8位寄存器(高位和低位)構(gòu)成的16位計(jì)數(shù)器
30、,分別是TH0、TL0(T0);TH1、TL1(T1)。TH和TL中的數(shù)據(jù)直接與“定時(shí)操作”或“計(jì)數(shù)操作”有關(guān),因此在使用定時(shí)/計(jì)數(shù)器之前,要對它進(jìn)行初始化,其中就要對TH、TL賦初值。如: MOV 8CH,#01H MOV 8AH,#20H 大家試分析上面兩條指令的作用。 有關(guān)SFR中其它寄存器的說明將相關(guān)的章節(jié)中作介紹。,TH0,TL0,返回,1.4.3 外部數(shù)據(jù)存儲器,在片內(nèi)RAM不能滿足需要時(shí),就要外接RAM。P0、P1作為外部RAM的地址和數(shù)據(jù)總線。 MCS-51對外部數(shù)據(jù)存儲器的擴(kuò)展能力為64KB。除了硬件電路外,系統(tǒng)主要是靠專門的指令來訪問外部數(shù)據(jù)存儲器。 如: MOV R0,#
31、20H ;將外部RAM單元地址20H送R0寄存器 MOVX A,R0 ;從外部RAM20H單元取數(shù)據(jù)到累加器A 這里使用了R0做間址寄存器,所以尋址范圍為256KB。 同理: MOV DPTR,#2000H ;將外部 RAM 單元的地址的2000送DPTR MOVX A ,DPTR ;從外部 RAM 2000H單元中取數(shù)據(jù)到 A 這里使用了16位的寄存器DPTR,所以尋址范圍為64KB。,返回,第一章第四節(jié)內(nèi)容小結(jié),1.4 MCS-51單片機(jī)的存儲器的配置 片內(nèi)4K的程序存儲器ROM和256B的數(shù)據(jù)存儲器RAM;片外可以擴(kuò)展64K的ROM和RAM.從用戶編程的角度可以將它們分為3個(gè)存儲空間:
32、1,片內(nèi)RAM; 2,片外RAM; 3,片內(nèi)+片外的ROM. 1.4.1 程序存儲器(片內(nèi)與片外) 當(dāng)引腳EA=1時(shí),單片機(jī)上電復(fù)位后從片內(nèi)ROM的0000H單元運(yùn)行程序; 若引腳EA=0時(shí),單片機(jī)上電復(fù)位后從片外ROM的0000H單元運(yùn)行程序. 當(dāng)引腳EA=1,且PC值大于1FFFH時(shí),單片機(jī)就自動轉(zhuǎn)到片外ROM的2000H單元繼續(xù)運(yùn)行程序. 無論是使用片內(nèi)還是片外的ROM,有六個(gè)單元是有特定意義的: 1,0000H單元:上電,復(fù)位后的啟動地址; 2,0003H單元:外部中斷INT0的入口地址; 3,000BH單元:定時(shí)器T0的中斷入口地址; 4,0013H單元:外部中斷INT1的入口地址;
33、 5,001BH單元:定時(shí)器T1的中斷入口地址; 6,0023H單元:串行口中斷的入口地址.,1.4.2 內(nèi)部數(shù)據(jù)存儲器RAM 內(nèi)部RAM的256B分為低128B和高128B. 其中低128B中有 1,工作寄存器區(qū);2,位尋址區(qū);3,便箋區(qū). 高128B中僅僅使用了小部分做特殊功能寄存器SFR用. 注意: 1,SFR不同于一般的數(shù)據(jù)RAM,它不是用于存儲數(shù)據(jù),而是用來存儲和表 征單片機(jī)內(nèi)部幾個(gè)邏輯部件的特征,狀態(tài)等重要信息. 2,在使用RAM時(shí),要注意字節(jié)地址和位地址的概念. 3,訪問內(nèi)部RAM的指令為 MOV 指令. 1.4.3 外部數(shù)據(jù)存儲器 在硬件具備的條件下,MCS-51單片機(jī)可以使用
34、64KB的外部數(shù)據(jù)存儲器.如果要訪問外部數(shù)據(jù)存儲器RAM時(shí),只能使用間址的尋址方式. 間址寄存器有R0,R1或DPTR.前者尋址范圍為256KB(00H-FFH);后者為64KB(0000H-FFFFH).使用的指令是 MOVX.,返回第1章主菜單,1.5 震蕩器、時(shí)鐘電路和CPU的時(shí)序,1.5.1 震蕩器、與時(shí)鐘電路,1.5.2 MCS-51單片機(jī)的時(shí)序,1.5.3 訪問外部程序存儲器ROM的時(shí)序,1.5.4 訪問外部數(shù)據(jù)存儲器RAM的指令時(shí)序,單字節(jié)單周期指令的時(shí)序,雙字節(jié)單周期指令時(shí)序,單字節(jié)雙周期指令的時(shí)序,繼續(xù),MCS-51內(nèi)部有一個(gè)用于構(gòu)成震蕩器的高增益反相放大器.在單片機(jī)引腳的X
35、TAL1和XTAL2分別是此放大器的輸入和輸出端.與作為反饋元件的晶體或陶瓷諧振器一起構(gòu)成了一個(gè)自激震蕩器(見右上圖). 如果使用外部震蕩器信號,其外來的信號加在XTAL1的引腳上(見右下圖).,XTAL1,XTAL2,XTAL2 XTAL1,NC,外時(shí)鐘,使用外時(shí)鐘時(shí)的電路連接,1.5.1 震蕩器、與時(shí)鐘電路:,返回,20P,20P,1.5.2 MCS-51單片機(jī)的時(shí)序,時(shí)鐘周期 ,T:時(shí)序中最小的時(shí)間單位.其值由外接晶體或外輸入時(shí)鐘來決定,其值為石英振蕩器頻率的倒數(shù)。 例如:在單片機(jī)外接1MH的晶體,則單片機(jī)的系統(tǒng)時(shí)鐘的頻率為1M, 時(shí)鐘周期為1us. 機(jī)器周期:完成特定功能所需要的時(shí)間,
36、在MCS-51單片機(jī)中機(jī)器周期由12個(gè)時(shí)鐘周期構(gòu)成,并分為6個(gè)狀態(tài)(S1-S6),每個(gè)狀態(tài)又分為P1和P2兩拍.這樣一個(gè)機(jī)器周期的12個(gè)震蕩周期可以表示為: S1P1,S1P2,S2P1,S2P2,S3P1,S3P2 S6P1,S6P2 將12個(gè)震蕩周期用6個(gè)狀態(tài)和2拍來替代。,T,S1,S1,S6,S5,S4,S3,機(jī)器周期,指令周期:這是時(shí)序圖中最大的時(shí)間單位,既執(zhí)行一條指令所需要的時(shí)間.在MCS-51系統(tǒng)中,不同的指令它所包含的機(jī)器周期數(shù)不同.它們分別是: 1,單機(jī)器周期指令; 2,雙機(jī)器周期指令; 3,四機(jī)器周期指令 我們知道:一個(gè)機(jī)器周期包含了12個(gè)震蕩周期.如果我們使用一個(gè)12M的
37、晶體震蕩器,那么: 一個(gè)機(jī)器周期為1us, 兩個(gè)機(jī)器周期為2us, 四個(gè)機(jī)器周期為4us. 可見一條指令的運(yùn)算速度與它所包含的機(jī)器周期數(shù)有關(guān).機(jī)器周期數(shù)越少,執(zhí)行的速度就越快.在MCS-51單片機(jī)的指令系統(tǒng)中,除了乘、除法指令為四個(gè)機(jī)器周期外,其余都是單周期和雙周期指令.,返回,指令的字節(jié)數(shù)與指令周期之間的關(guān)系: 在MCS-51單片機(jī)的指令系統(tǒng)中有: 單字節(jié); 雙字節(jié); 三字節(jié)指令。 在MCS-51的111條指令中,可以分為六種基本的時(shí)序: 1,單字節(jié)單周期指令; 4,雙字節(jié)單周期指令; 2,單字節(jié)雙周期指令; 5,雙字節(jié)雙周期指令; 3,單字節(jié)四周期指令; 6,三字節(jié)雙周期指令.,指令特點(diǎn):
38、在程序存儲器ROM中僅占一個(gè)存儲單元。 在ALE第一次有效(S2P1)時(shí),從ROM中讀取指令的操作碼,送入指令寄存器IR中.并譯碼執(zhí)行,在ALE第二次有效時(shí),封鎖PC加一,使第二次讀數(shù)無效.可見: 1, ALE信號對應(yīng)這從ROM中讀指令,所以在一個(gè)機(jī)器周期中CPU可以讀兩次指令; 2,對于單字節(jié)單周期的指令,CPU通過譯碼后封死PC,實(shí)際上指令的后半部不做任何工作.,單字節(jié)單周期指令的時(shí)序:,機(jī)器周期,讀操作碼一,讀操作無效,ALE,返回,S1,S2,S6,S5,S4,S3,指令特點(diǎn):一條指令長度為兩個(gè)字節(jié),并存儲在ROM相鄰的兩個(gè)單元中。要想完整的將這樣的指令執(zhí)行完,必須從ROM中讀兩次操作
39、碼. 在ALE第一次有效時(shí),CPU 從ROM的n單元中取出指令的第一個(gè)字節(jié)OP1-1,并送入IR譯碼,通過譯碼CPU知道這是一條雙字節(jié)指令,所以使PC加一,并在ALE第二次有效時(shí),從ROM的n+1單元取出指令的第二個(gè)字節(jié)OP1-2送入IR進(jìn)行譯碼,并產(chǎn)生對應(yīng)的操作.最后在S6P2時(shí)完成本條指令的運(yùn)行.,S1,S2,S6,S5,S4,S3,機(jī)器周期,讀操作碼一,讀操作碼二,OP1-2,OP1-1,n+1 n,程序ROM,PC,雙字節(jié)單周期指令時(shí)序,ALE,返回,指令特點(diǎn):單字節(jié), 需要兩個(gè)機(jī)器周期運(yùn)行.如: INC DPTR DPTR為兩個(gè)8位的寄存器,加一時(shí),必須分兩步完成.既第一步 DPL加
40、一,如果DPL加一有進(jìn)位則還要進(jìn)行第二步對DPH加一. 在指令周期的第一個(gè)ALE時(shí),將ROM中的操作碼OP取出, 經(jīng)IR譯碼后得知為單字節(jié)雙周期指令,所以一面執(zhí)行該指令, 同時(shí)封鎖后面三次ALE有效時(shí)的PC+1,在第二個(gè)機(jī)器周期的S6P2時(shí),完成操作.,S1,S2,S6,S5,S4,S3,機(jī)器周期1,讀操作碼,讀無效,S1,S2,S6,S5,S4,S3,讀無效,讀無效,機(jī)器周期2,單字節(jié)雙周期指令的時(shí)序,ALE,返回,設(shè):單片機(jī)使用片外ROM,且要執(zhí)行的是一條 : movc a,a+dptr指令.(設(shè)a+dptr=2000H),/PSEN P2口 MCS- 51 P0口 ALE,D7 D0 C
41、P,/CS A15 A8 64K ROM A7 A0 D0D7,A15-A8(PC),A7-A0,OP,A7-A0,常數(shù),/Psen,P2口,P0 口,1.5.3 訪問外部程序存儲器ROM的時(shí)序:,S1,S2,S6,S5,S4,S3,ALE,A15-A8 (DPTR+A),返回前一次,74LS373,1,在S2P1時(shí)刻,P2口輸出外部ROM的高八位地址A15-A8,P0口輸出低八位地址A7-A0, 這時(shí)地址是由程序計(jì)數(shù)器PC提供的ROM中的指令地址; 2,在ALE的下降沿,P0口的數(shù)據(jù)(低八位地址)被鎖存到74LS373中. 3,在S3P2到S4P1期間,/psen變低電平時(shí),外部程序ROM被
42、選中, 數(shù)據(jù)輸出端的三態(tài)門被打開,被選中單元中的指令movc送到P0口上,且在S4P2時(shí)指令經(jīng)P0口送至CPU的IR中. 4,CPU對指令譯碼后,在S4P2時(shí)進(jìn)行常數(shù)地址計(jì)算并由P0、P2口輸出. 5,在S5P2時(shí),ALE將常數(shù)地址的低八位鎖存 6,在S6P1時(shí),外部ROM被再次選種打開,按照單片機(jī)所提供的16位常數(shù)地址,將外部ROM中的常數(shù)經(jīng)P0口在S6P2時(shí)刻送入累加器A.,返回上一頁,返回,設(shè)外部RAM2000H單元中有一個(gè)數(shù)x,且DPTR中已存有該數(shù)地址2000H.則CPU 執(zhí)行外部ROM中的指令: MOVX A,DPTR ;將外RAM的x送A,/WR /RD P2口 MCS-51 P
43、1口 ALE,D7 D0 /CP,/WR /RD A15 A8 A7 A0 64KRAM D0D7,S1,S2,S6,S5,S4,S3,S1,S2,S6,S5,S4,S3,ALE,Psen,A15-A8(PC),A15-A8(DPH),A7-A0,指令,A7-A0,數(shù)據(jù),RD,P2口,P0口,選中外部RAM,1.5.4 讀外部數(shù)據(jù)存儲器RAM的指令時(shí)序,返回前一次,1, 在S2P2時(shí),ALE的第一個(gè)下降沿將P0口輸出的外程序ROM的低八位地址鎖存到74LS373鎖存器中; 2, 在S3P2的Psen為低電平時(shí),選中外ROM,并根據(jù)單片機(jī)P0、P2口輸出的16位地址選中movx指令(單字節(jié)),通
44、過P0口送至單片機(jī)內(nèi)部IR中譯碼.經(jīng)譯碼后產(chǎn)生下列的一系列操作; 3, CPU將DPTR中的高8位(20H)送P2口輸出,低八位(00H)經(jīng)P0口輸出,節(jié)在S5P1時(shí)ALE第二次下降沿時(shí),將P0口的低八位地址鎖存; 4, 在第二個(gè)機(jī)器周期的S1-S3中單片機(jī)輸出/RD信號(低電平),選中外部RAM,并根據(jù)單片機(jī)提供的2000H 這16位地址中取出數(shù)據(jù)x. 5, CPU在S2-S3期間,將外部RAM2000H單元送到P0口上的數(shù)據(jù)送入累加器A中.,上一頁,上述過程可以分成兩個(gè)指行的階段: 1, 根據(jù)PC所指定的程序存儲器的地址,將movx指令從片 外ROM中取出; 2, 經(jīng)譯碼后將DPTR提供的
45、外數(shù)據(jù)存儲器RAM中的數(shù)據(jù) 地址取出數(shù)據(jù),經(jīng)P0口送累加器A. 在第一階段CPU產(chǎn)生/Psen信號用來選通外部程序存儲器ROM; 在第二階段CPU輸出/RD信號(低電平),用來選通并讀取外部數(shù)據(jù)存儲器RAM的數(shù)據(jù).,返回,1.6 輸入輸出端口,在MCS-51單片機(jī)的四個(gè)端口都是具有輸出鎖存功能的雙向端口,這些鎖存器的位置都在SFR中,其地址分別為:80H、90H、A0H 、B0H.出于系統(tǒng)的考慮,在硬件設(shè)計(jì)上對每一個(gè)端口都有不同的要求,所以每一個(gè)端口又具有不同的特點(diǎn).,1.6.1 P0口,P0口的位結(jié)構(gòu)圖,P0口的工作原理,1.6.2 P1口,1.6.3 P2口,1.6.4 P3口,1.6.5
46、 并行端口在使用時(shí)應(yīng) 注意的幾個(gè)問題,單片機(jī)與繼電器等大電流負(fù)載的接口,繼續(xù),MCS-51邏輯圖,1.6.1 P0口:,特點(diǎn):“通用數(shù)據(jù)I/O端口”和“地址、數(shù)據(jù)復(fù)用總線”端口. 1,在作為通用數(shù)據(jù)I/O端口時(shí),具有較強(qiáng)的驅(qū)動能力(8個(gè)TTL負(fù)載),與MOS負(fù)載連接時(shí),需要外接一個(gè)上拉電阻。 2,作為“地址、數(shù)據(jù)復(fù)用總線”使用時(shí),P0口首先輸出外部存儲器的低八位地址,然后再變?yōu)閿?shù)據(jù)總線進(jìn)行數(shù)據(jù)的輸入或輸出.此時(shí),P0口不能再作為通用I/O口。,返回,P0口的位結(jié)構(gòu)圖,D Q 鎖存器 CL /Q,P0.x 引腳,Vcc,地址/數(shù)據(jù) 1/0,控制(=0時(shí)),讀鎖存器,讀引腳,內(nèi)部總線,寫鎖存器,M
47、UX (控制=0時(shí)),硬件組成: 1,一個(gè)輸出鎖存器(D型觸發(fā)器); 2,二個(gè)三態(tài)門(控制讀引腳或讀鎖存器); 3,與門和MUX等元件組成的輸出控制電路; 4,一對場效應(yīng)晶體管FET構(gòu)成的輸出電路.,Vcc,返回,返回前一次,1,P0口的I/O操作;,2,P0口的總線方式,1,P0口的I/O操作(通用I/O端口),在P0口作為通用I/O端口時(shí),控制電路中的“控制”為“0”電平,多路開關(guān)MUX接入下方的鎖存器的/Q端。 由于與門的一個(gè)輸入端為“0”,所以它使上端的FET截止.這就是P0口在做I/O口時(shí)輸出為“漏極開路”的結(jié)構(gòu)原因. 輸出操作:在執(zhí)行以口為目標(biāo)的指令時(shí),數(shù)據(jù)送到鎖存器的“D”端,經(jīng)
48、“/Q”端送場效管應(yīng)輸出極.如:送“1”時(shí),/Q=“0”,使下端的FET截止.這樣出現(xiàn)輸出極的兩個(gè)FET全部截止.在這種情況下必須在端口線上外加上拉電阻.這樣在上拉電阻的作用下,使端口為高電平.同理,若總線向口送“0”時(shí),鎖存器的/Q=1,使下端的FET導(dǎo)通(上面的FET仍然截止),這樣端口呈現(xiàn)“0”電平.,返回結(jié)構(gòu)圖,輸入操作(讀引腳,讀鎖存,輸入前寫一) a,讀引腳:讀外部送到端口引腳的電平,即通常所說的輸入操作(如:MOV A,P0).此時(shí),單片機(jī)控制“讀引腳”的三態(tài)門,使引腳處的外部電平經(jīng)三態(tài)門送入內(nèi)部總線. b,讀鎖存器:將進(jìn)行讀鎖存器并進(jìn)行處理,最后再寫回鎖存器的操作稱之為: “讀
49、修改寫”操作。在這種情況下, 讀入的數(shù)據(jù)不是來自引腳,而是端口內(nèi)部的鎖存器的內(nèi)容。 當(dāng)前面完成一次端口的輸出后,要再將前面輸入的狀態(tài)取回來,進(jìn)行再處理,然后重新輸出,在MCS-51的指令系統(tǒng)中這種“讀修改寫”的操作有: ORL 、XRL 、JBC 、CPL 、INC 、DEC 、DJNZ 、MOV Px,y 、 CLR Px,y和SET Px,y。 如: ORL P0,A ;P0 A P0,返回結(jié)構(gòu)圖,P0. X,c,輸入時(shí)應(yīng)先寫“1”:在端口電路中,可以發(fā)現(xiàn)一個(gè)問題:端口在輸入(讀引腳)時(shí),原來鎖存器的狀態(tài)可能要影響引腳電平的輸入.例如:原來鎖存器的狀態(tài)為“0”態(tài),既輸出極的下端FET是飽和
50、狀態(tài),這樣如果外電路向引腳輸入高電平時(shí),電路將不能正確讀入.要解決的方法就是讓下端的FET截止,既事先向端口寫一個(gè)“1”. 請注意下面的一段程序: MOV A,#0FFH;0FFH送累加器A MOV P0,A ;向P0口“寫1” MOV A,P0 ;從P0口輸入數(shù)據(jù)到A 你能正確的分析出指令的操作嗎?,返回結(jié)構(gòu)圖,2,P0口的總線方式(系統(tǒng)使用外存儲器時(shí)),控制電路的“控制”=1,此時(shí)與門打開,MUX接向“地址/數(shù)據(jù)”信號.在這種情況下,輸出極的兩個(gè)FET都處于正常的工作狀態(tài) 。 訪問外部存儲器的指令movx、movc ,就是使用P0口來輸出外部存儲器的低八位地址和輸入、輸出存儲器的數(shù)據(jù)??梢?/p>
51、從:訪問外部程序存儲器ROM的時(shí)序; 讀外部數(shù)據(jù)存儲器RAM的指令時(shí)序中來清楚的觀察P0口作為“地址/數(shù)據(jù)復(fù)用”總線的工作特點(diǎn)。 在進(jìn)行單片機(jī)的硬件系統(tǒng)的設(shè)計(jì)中,如果使用了外部存儲器(或使用movx指令來訪問外部接口電路)時(shí),P0口成為整個(gè)系統(tǒng)的地址/數(shù)據(jù)復(fù)用總線。換句話,P0口不能再作為通用的I/O端口的形式直接與外部連接。,返回結(jié)構(gòu)圖,1, 做通用數(shù)據(jù)I/O端口時(shí),輸出級上端的FET處于截止?fàn)顟B(tài),所以與MOS器件連接時(shí),必須接“上拉電阻”,否則不能正確的輸出高電平; 2,在輸入操作前,為了保證輸入正確,必須先向端口“寫1”; 3,“讀引腳”與“讀鎖存器”是不同的兩個(gè)數(shù)據(jù)通道。凡是“讀修改寫
52、” 的操作,CPU讀的都是端口鎖存器中的數(shù)據(jù)。 4,為了提高電路的可靠性,端口引腳不要直接與三極管一類的器件直接連接,應(yīng)加隔離電路或與三極管之間加一個(gè)電阻. 5,在總線方式時(shí),P0口不能再做通用的I/O端口。它分時(shí)輸出地址、數(shù)據(jù)總線的信息(此時(shí)引腳不用外接上拉電阻)。,返回,返回結(jié)構(gòu)圖,P0口特點(diǎn)小結(jié):,特點(diǎn):單純的通用I/O端口,負(fù)載能力為3個(gè)TTL輸入。與P0口的區(qū)別在于內(nèi)部具有上拉電阻,所以輸出時(shí)不用外接上拉電阻。,1.6.2 P1口的位結(jié)構(gòu)圖,D Q 鎖存器 CL /Q,P1.x 引腳,Vcc,讀鎖存器,讀引腳,內(nèi)部總線,寫鎖存器,內(nèi)部上拉電阻,返回,返回前一次,1.6.3 P2口 特
53、點(diǎn): “通用數(shù)據(jù)I/O端口”和“高八位地址總線”端口,D Q 鎖存器 CL /Q,P2.x 引腳,Vcc,地址/數(shù)據(jù) 1/0,控制,讀鎖存器,讀引腳,內(nèi)部總線,寫鎖存器,MUX (地址/數(shù)據(jù)=0),內(nèi)部上拉電阻,返回上一次,與P0口一樣,P2口在系統(tǒng)使用外部存儲器時(shí),做高八位的地址總線。 應(yīng)當(dāng)注意的是:僅使用外部數(shù)據(jù)存儲器時(shí),P2口分兩種情況: 1,僅僅使用256B的外部RAM時(shí),既使用movx a,r0指令訪問外部RAM,此時(shí)用8位的寄存器R0或R1作間址寄存器,這時(shí)P2口無用,所以在這種情況下,P2口仍然可以做通用I/O端口。 2,如果訪問外部ROM或使用大于256BRAM時(shí),P2口必須作
54、為外存儲器的高八位地址總線。 如:movx a,dptr ;訪問外部數(shù)據(jù)存儲器 movc a,a+dptr ;訪問外部程序存儲器 這里使用了16位的寄存器DPTR,上一頁,返回,1.6.4 P3口 特點(diǎn):通用I/O端口、多用途端口,在多用途情況下,P3口分別作為串行口、外中斷輸入、外部計(jì)數(shù)輸入和系統(tǒng)擴(kuò)展時(shí)使用的WR和RD信號的端口。在這種情況下,鎖存器Q端為“1”電平以保證與門是打開的。 在通用I/O模式下,“替代輸出功能”端為“1”電平,以保證與門打開。,D Q 鎖存器 CL /Q,P3.x 引腳,替代輸出功能,讀鎖存器,讀引腳,內(nèi)部總線,寫鎖存器,MUX (地址/數(shù)據(jù)=0),Vcc,返回,
55、1.6.5 并行端口在使用時(shí)應(yīng)注意的幾個(gè)問題,“拉電流”還是“灌電流”-與大電流負(fù)載的連接 (我們以美國ATMEL公司生產(chǎn)的AT8951為例) 1, 使用灌電流的方式與電流較大的負(fù)載直接連接時(shí), 端口可以吸收約20mA的電流而保證端口電平不高于0.45V(見右上圖)。 2,采用拉電流方式連接負(fù)載時(shí),AT89C51所能提供“拉電流”僅僅為80A,否則輸出的高電平會急劇下降.如果我們采用右下圖的方式,向端口輸出一個(gè)高電平去點(diǎn)亮LED,會發(fā)現(xiàn),端口輸出的電平不是“1”而是“0”! 當(dāng)然,不是所有的單片機(jī)都是這樣,PIC單片機(jī)就可以提供30mA的拉電流和灌電流。單對于大多數(shù)IC電路,最好還是使用“灌電
56、流”去推動負(fù)載。,Px.y,Vdd,Px.y,Vdd,Vdd,灌電流方式 輸出”0”點(diǎn) 亮LED,拉電流方式 輸出高電平 點(diǎn)亮LED,返回,單片機(jī)與繼電器等大電流負(fù)載的接口,我們知道:AT89C51的端口可以吸收約20mA的電流.對于繼電器等大于20mA的負(fù)載,單片機(jī)可以采用右圖的接法,用一個(gè)三極管來承擔(dān)負(fù)載所需的大電流. 若于負(fù)載電流易造成干擾單片機(jī)的環(huán)境,應(yīng)采用右下圖”光電隔離”的方式.其中: A 、 B兩處沒有 任何電的聯(lián)系.,Px.y,J,Vcc,Vdd,負(fù)載,Vcc,Px.y,A,B,返回,1.7 MCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器,定時(shí)/計(jì)數(shù)器工作方式與原理:,1.7.1 定時(shí)/計(jì)數(shù)器的四種工作模式,1.7.2 MCS-51定時(shí)/計(jì)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度國際貿(mào)易合同主體欺詐風(fēng)險(xiǎn)監(jiān)測與預(yù)警系統(tǒng)
- 2025年度化工石油工程智能化生產(chǎn)系統(tǒng)設(shè)計(jì)合同
- 2025年度新能源電池組裝合作加工合同范本
- 2025年度高科技研發(fā)成果轉(zhuǎn)讓合同(含擔(dān)保及收益分成)
- 2025年度日化用品包裝設(shè)計(jì)與印刷服務(wù)合同
- 2025年度融資租賃合同單方面終止的條件與法律責(zé)任合同
- 2025年度海洋船舶租賃保險(xiǎn)服務(wù)合同
- 2025年度寧波舟山港綜合物流樞紐運(yùn)營管理合同
- 2025年度金蝶企業(yè)資源計(jì)劃系統(tǒng)全面升級支持服務(wù)合同
- 2025年度智能物流系統(tǒng)采購合同范本二零二五
- (2024年)剪映入門教程課件
- 《寵物飼養(yǎng)》課程標(biāo)準(zhǔn)
- 快餐品牌全案推廣方案
- 環(huán)境衛(wèi)生整治推進(jìn)行動實(shí)施方案
- 口腔醫(yī)院感染預(yù)防與控制1
- 緒論中國文化概論張岱年
- 發(fā)生輸液反應(yīng)時(shí)的應(yīng)急預(yù)案及處理方法課件
- 中國旅游地理(高職)全套教學(xué)課件
- 數(shù)字貨幣的匿名性與反洗錢
- 門脈高壓性消化道出血的介入治療課件
- 民航保密培訓(xùn)課件
評論
0/150
提交評論