第1章最新單片機概述.ppt_第1頁
第1章最新單片機概述.ppt_第2頁
第1章最新單片機概述.ppt_第3頁
第1章最新單片機概述.ppt_第4頁
第1章最新單片機概述.ppt_第5頁
免費預(yù)覽已結(jié)束,剩余802頁可下載查看

付費下載

下載本文檔

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

文檔簡介

1、,第1章 單片機概述,第2章 單片機的硬件結(jié)構(gòu),第3章 MCS-51單片機指令系統(tǒng),第4章 MCS-51單片機程序設(shè)計,第5章 中斷與定時,第6章 存儲器與存儲器的擴展,第7章 單片機I/O接口的擴展,單片機原理與應(yīng)用電子教案,第8章 單片機與輸入輸出設(shè)備的接口,第9章 單片機的串行通信,第10章 單片機與A/D及D/A 轉(zhuǎn)換器的接口,第11章 單片機應(yīng)用系統(tǒng)設(shè)計,第1章 單片機概述,第2章 單片機的硬件結(jié)構(gòu),第3章 MCS-51單片機指令系統(tǒng),第4章 MCS-51單片機程序設(shè)計,第5章 中斷與定時,第6章 存儲器與存儲器的擴展,第7章 單片機I/O接口的擴展,第8章單片機與輸入輸出設(shè)備的接口

2、,第9章 單片機的串行通信,第10章單片機與A/D及D/A 轉(zhuǎn)換器的接口,第11章 單片機應(yīng)用系統(tǒng)設(shè)計,1什么叫單片機 它是把組成微型計算機的各功能部件:中央處理器CPU、隨機存取存儲器RAM、只讀存儲器ROM、I/O接口電路、定時器/計數(shù)器以及串行通信接口等制作在一塊集成芯片中,構(gòu)成一個完整的微型計算機。 單片機是單片微型計算機的簡稱。 單片機主要應(yīng)用于控制領(lǐng)域,它的結(jié)構(gòu)與指令功能都是按照工業(yè)控制要求設(shè)計的,故又稱為微控制器(Micro Controller Unit)。在國際上,“微控制器”的叫法更通用些,在我國比較習慣“單片機”這一名稱。,由于單片機在應(yīng)用時通常是被控系統(tǒng)的核心并融入其中

3、,即以嵌入的方式工作,為了強調(diào)其“嵌入”的特點,也常常將單片機稱為嵌入式微控制器。,1單片機的發(fā)展 單片機出現(xiàn)的歷史并不長,它的產(chǎn)生與發(fā)展和微處理器的產(chǎn)生與發(fā)展大體上同步,經(jīng)歷了4個階段: 第一階段(19711974年):1971年11月美國Intel公司首先設(shè)計出集成度為2000只晶體管/片的4位微處理器Intel 4004,并且配有隨機存取存儲器RAM、只讀存儲器ROM和移位寄存器等芯片,構(gòu)成第一臺MCS-4微型計算機。1972年4月Intel公司又研制成功了處理能力較強的8位微處理器Intel 8008。這些微處理器雖說還不是單片機,但從此拉開了研制單片機的序幕。,第二階段(197419

4、78年):初級單片機階段。以Intel公司的MCS-48為代表。這個系列單片機內(nèi)集成有8位CPU、并行I/O接口、8位定時器/計數(shù)器,尋址范圍不大于4K,且無串行口。,第三階段(19781983年):在這一階段推出的單片機普遍帶有串行口,有多級中斷處理系統(tǒng)、16位定時器/計數(shù)器。片內(nèi)RAM、ROM容量加大,且尋址范圍可達64KB,有的片內(nèi)還帶有A/D轉(zhuǎn)換器接口。這類單片機有Intel公司的MCS-51、Motorola公司的6801和Zilog公司的Z8等。這類單片機的應(yīng)用領(lǐng)域極其廣泛,這個系列的各類產(chǎn)品仍然是目前國內(nèi)外產(chǎn)品的主流。其中MCS-51系列產(chǎn)品,以其優(yōu)良的性能價格比,成為我國廣大科

5、技人員的首選。 第四階段(1983年現(xiàn)在):8位單片機鞏固發(fā)展及16位單片機推出階段。此階段主要特征是一方面發(fā)展16位單片機及專用單片機;另一方面不斷完善高檔8位單片機,改善其結(jié)構(gòu),以滿足不同的用戶需要。,1單片機的應(yīng)用特性 (1)集成度高 MCS-51系列單片機代表產(chǎn)品為8051,8051內(nèi)部包含4KB的ROM、128B的RAM、四個8位并行口、一個全雙工串行口、兩個16位定時器/計數(shù)器以及一個處理功能強大的中央處理器。 (2)系統(tǒng)結(jié)構(gòu)簡單 MCS-51系列單片機芯片內(nèi)部采用模塊化結(jié)構(gòu),增加或更換一個模塊就能獲得指令系統(tǒng)和引腳兼容的新產(chǎn)品。另一方面,MCS-51系列單片機具有64KB的外部程

6、序存儲器尋址能力和64KB的外部RAM和I/O口尋址能力。Intel公司標準的I/O接口電路和存儲器電路都可以直接連到MCS-51系列單片機上以擴展系統(tǒng)功能,應(yīng)用非常靈活。,(3)可靠性高 單片機產(chǎn)品和其他產(chǎn)品一樣,出廠指標有軍用品、工業(yè)品和商用品之分。其中軍用品要求絕對可靠,在任何惡劣的環(huán)境下都能可靠工作,主要用于武器系統(tǒng)、航空器等方面。單片機屬于工業(yè)品,能在常溫下工作,不需要在溫度恒定的機房內(nèi)工作。由于單片機總線大多在芯片內(nèi)部不易受干擾,而且單片機應(yīng)用系統(tǒng)體積小,易于屏蔽,所以單片機的可靠性較高。 (4)處理功能強,速度快 MCS-51系列單片機指令系統(tǒng)中具有加、減、乘、除指令,各種邏輯運

7、算和轉(zhuǎn)移指令,還具有位操作功能。CPU時鐘頻率高達12MHz,單字節(jié)乘法和除法僅需要4s,而且具有特殊的多機通信功能,可作為多機系統(tǒng)中的子系統(tǒng)。,2. 單片機的制造工藝 制造單片機的工藝只有兩種:HMOS工藝和CHMOS工藝。 早期的MCS-51系列芯片都采用HMOS工藝,即高密度、短溝道MOS工藝。8051、8751、8031、8951等產(chǎn)品均屬于HMOS工藝制造的產(chǎn)品。 CHMOS工藝是CMOS和HMOS的結(jié)合,除保持了HMOS工藝的高密度、高速度之外,還具有CMOS工藝低功耗的特點。例如HMOS工藝制造的8051芯片的功耗為630mW,而用CHMOS工藝制造的80C51芯片的功耗為120

8、mW,這么低的功耗用一粒鈕扣電池就可以工作。單片機型號中包含有“C”的產(chǎn)品就是指它的制造工藝是CHMOS工藝。 例如80C51,就是指用CHMOS工藝制造的8051。,3. MCS-51單片機系列產(chǎn)品 MCS-51是一個單片機系列產(chǎn)品,具有多種芯片型號。具體說,按其內(nèi)部資源配置的不同,MCS-51可分為兩個子系列和四種類型,見表1.1。,表1.1 MCS-51系列單片機,MCS-51子系列包含4個產(chǎn)品,這4個產(chǎn)品具有不同的應(yīng)用特性。 8051:單片機8051內(nèi)部包含了4KB的ROM、128B的RAM、21個特殊功能寄存器、4個8位并行口、一個全雙工串行口、兩個16位定時器/計數(shù)器以及一個處理功

9、能很強的中央處理器,是一臺完整的微型計算機 8751:是以4KB的EPROM代替4KB ROM的8051。 8951:是以4KB的E2PROM(或Flash ROM)代替4KB ROM的8051。 8031:是內(nèi)部無ROM的8051。單片機8031不構(gòu)成完整計算機,必須外接EPROM作為程序存儲器。 52子系列也包含4個產(chǎn)品,分別是51子系列的增強型。由于資源數(shù)量的增加,芯片的功能有所增強。片內(nèi)ROM容量從4KB增加到8KB;RAM容量從128B增加到256B;定時器數(shù)目從2個增加到3個;中斷源從5個增加到6個等。,4. 80C51單片機系列 80C51單片機系列是在MCS-51系列的基礎(chǔ)上發(fā)

10、展起來的。 最早推出80C51系列芯片的是Intel公司,并且作為MCS-51系列的一部分,按原MCS-51系列芯片的規(guī)則命名,例如80C51、80C31、87C51等(至于89C51,我們把它歸入89系列單片機,將在下一節(jié)介紹)。 后來越來越多的公司生產(chǎn)80C51芯片,而且型號的命名已面目全非,功能上也做了不同程度的改進,如增加了A/D轉(zhuǎn)換、高速I/O口等。有些還在總線結(jié)構(gòu)上做了重大改進,出現(xiàn)了廉價的非總線型單片機芯片。但是萬變不離其宗: CHMOS工藝芯片80C51/80C31/87C51/89C51的基本特征是低功耗、允許的電源電壓波動范圍較大(為5V20%),并有三種功耗控制方式(增加

11、了待機和掉電保護兩種方式)。 習慣上,我們?nèi)匀话?0C51系列作為MCS-51的子系列。,AT89系列單片機是ATMEL公司的8位Flash單片機系列。 這個系列單片機的最大特點是在片內(nèi)含有Flash存儲器,而其他方面和MCS-51沒有太大的區(qū)別。該系列有著十分廣泛的用途,特別是在便攜式、省電和特殊信息保存的儀器和系統(tǒng)中顯得更為有用。,AT89系列單片機的特點 (1)內(nèi)含有Flash存儲器 由于片內(nèi)含有Flash存儲器,因此在系統(tǒng)開發(fā)過程中可以十分容易地進行程序的修改。同時,在系統(tǒng)工作過程中,能有效地保存數(shù)據(jù)信息,即使外界電源損壞也不影響信息的保存。 (2)和AT80C51插座兼容 AT89系

12、列單片機的引腳和MCS-51系列單片機的引腳是一樣的。只要用相同引腳的AT89系列單片機就可以取代MCS-51系列單片機。 (3)靜態(tài)時鐘方式 AT89系列單片機采用靜態(tài)時鐘方式,節(jié)省電能,這對于降低便攜式產(chǎn)品的功耗十分有用。,2. AT89系列單片機的概況 AT89系列單片機共有7種型號,分別為AT89C51、AT89LV51、AT89C52、AT89LV52、AT89C2051、AT89C1051、AT89S8252。 其中AT89LV51、AT89LV52分別是AT89C51、AT89C52的低電壓產(chǎn)品。最低電壓可以低至2.7V。而AT89C2051、AT89C1051則是低檔型的低電壓

13、產(chǎn)品。它們只有20條引腳,最低電壓也為2.7V,見表1.2。,表1.2 AT89系列單片機概況,1.單片機的應(yīng)用 由于單片機具有可靠性高、體積小、價格低、易于產(chǎn)品化等特點,因而在智能儀器儀表、實時工業(yè)控制、智能終端、通信設(shè)備、導航系統(tǒng)、家用電器等自控領(lǐng)域獲得廣泛應(yīng)用。例如: (1)智能儀器儀表 用單片機改造原有的測量、控制儀表,能促進儀表向數(shù)字化、智能化、多功能化、綜合化、柔性化發(fā)展,如溫度、壓力、流量、濃度顯示、控制儀表等。通過采用單片機軟件編程技術(shù),使長期以來測量儀表中的誤差修正、線性化處理等難題迎刃而解。 (2)實時工業(yè)測控系統(tǒng) 用單片機可以構(gòu)成各種工業(yè)控制系統(tǒng)、自適應(yīng)系統(tǒng)、數(shù)據(jù)采集系統(tǒng)

14、等。如溫室人工氣候控制、水閘自動控制、電鍍生產(chǎn)線自動控制等。,(3)機電一體化產(chǎn)品 單片機與傳統(tǒng)的機械產(chǎn)品結(jié)合,使傳統(tǒng)機械產(chǎn)品結(jié)構(gòu)簡化、控制智能化。例如電傳打字機的設(shè)計中由于采用了單片機,取代了近千個機械部件。 (4)家用電器 全自動洗衣機、智能冰箱、各類小家電都無一例外地采用了單片機。,2.單片機的應(yīng)用特點: (1)控制系統(tǒng)在線應(yīng)用 控制系統(tǒng)在線應(yīng)用由于控制對象和單片機聯(lián)系密切,所以對設(shè)計者提出了很高的要求。他們不但要熟練掌握單片機,還要了解控制對象,懂得傳感技術(shù),具有一定的控制理論知識等。 (2)軟硬件結(jié)合 單片機應(yīng)用系統(tǒng)的設(shè)計需要軟、硬件統(tǒng)籌考慮。設(shè)計者不但要熟練掌握匯編語言的編程技術(shù),

15、而且還必須精通單片機硬件系統(tǒng)和指令系統(tǒng)。,(3)應(yīng)用現(xiàn)場環(huán)境惡劣 應(yīng)用現(xiàn)場的環(huán)境一般是比較惡劣的。電磁干擾、電源波動、高低溫等因素都會影響系統(tǒng)工作的穩(wěn)定。設(shè)計者必須根據(jù)特定的環(huán)境采取正確的辦法才能解決。 (4)微控制技術(shù) 由于單片機具有高可靠性、超小型、低價格、容易產(chǎn)品化等特點,因而在需要嵌入式的控制系統(tǒng)里得到了廣泛的應(yīng)用,而且過去必須由模擬和數(shù)字電路來實現(xiàn)的大部分功能,現(xiàn)在可以通過軟件(編程序)方法實現(xiàn)了。這種超小型的以軟件取代硬件,并能提高系統(tǒng)性能的控制系統(tǒng)“軟化”技術(shù),稱之為微控制技術(shù)。微控制技術(shù)是一種全新的概念,是對傳統(tǒng)技術(shù)的一次革命。隨著單片機應(yīng)用的推廣普及,微控制技術(shù)的發(fā)展必將帶動

16、產(chǎn)品的升級換代及產(chǎn)業(yè)升級。,習 題 1. 什么叫單片機?除了“單片機”之外,單片機還可以稱為什么? 2. 單片機主要使用匯編語言,而編寫匯編語言程序要求設(shè)計人員除了熟練掌握指令系統(tǒng)外,還必須精通什么? 3. 8051、8751、8031單片機的主要區(qū)別是什么? 4. 與8051比較,80C51的最大特點是什么? 5. AT89系列單片機的最大優(yōu)點是什么? 6. 單片機發(fā)展方向是什么?,2.1.1 MCS-51單片機的內(nèi)部結(jié)構(gòu),MCS-51結(jié)構(gòu)框圖如圖2.1所示。它主要由9個部件和一條內(nèi)部總線組成。現(xiàn)分別對各部件的情況介紹如下:,1. 8位中央處理器(CPU) 中央處理器簡稱CPU,是單片機的核

17、心,完成運算和控制操作。中央處理器包括運算器和控制器兩部分電路。 (1)運算器電路 運算器電路是單片機的運算部件,用于實現(xiàn)算術(shù)和邏輯運算。圖2.1中的ALU(算術(shù)邏輯單元)、ACC(累加器)、B寄存器、程序狀態(tài)字和兩個暫存寄存器等屬于運算器電路。運算器電路以ALU為核心,基本的算術(shù)運算和邏輯運算均在其中進行,包括加、減、乘、除、增量、減量、十進制調(diào)整、比較等算術(shù)運算,與、或、非等邏輯運算,左、右移位和半字節(jié)交換等操作。運算和操作結(jié)果的狀態(tài)由狀態(tài)寄存器(PSW)保存。,(2)控制電路 控制電路是單片機的指揮控制部件,保證各部分能自動而協(xié)調(diào)地工作。圖2.1中的PC(程序計數(shù)器)、PC加1寄存器、指

18、令寄存器、指令譯碼器、定時和控制電路等均屬于控制電路。,單片機執(zhí)行指令是在控制電路的控制下進行的。首先從程序存儲器中讀出指令,送指令寄存器保存,然后送指令譯碼器進行譯碼,譯碼結(jié)果送定時控制邏輯電路,由定時控制邏輯電路產(chǎn)生各種定時信號和控制信號,再送到系統(tǒng)的各個部件進行相應(yīng)的操作。這就是執(zhí)行一條指令的全過程。,2. 內(nèi)部程序存儲器 內(nèi)部程序存儲器在圖2.1中包括4KB/8KB的存儲器(ROM或EPROM),對于8051、80C51內(nèi)部共有4KB的掩膜ROM,用于存放程序和原始數(shù)據(jù)。,3. 內(nèi)部數(shù)據(jù)存儲器 內(nèi)部數(shù)據(jù)存儲器在圖2.1中包括128B/256B的RAM和RAM地址鎖存器等。實際上8051

19、或80C51內(nèi)部共有256個RAM單元,但后128單元被特殊功能寄存器SFR(也稱專用寄存器)占用,供用戶使用的只是前128個單元,用于存放可讀寫的數(shù)據(jù)。因此通常所說的內(nèi)部數(shù)據(jù)存儲器是指前128單元,簡稱“內(nèi)部RAM”。,4. 并行的I/O口 MCS-51中共有4個8位的I/O口(P0、P1、P2、P3)以實現(xiàn)并行的輸入輸出。在圖2.1中分別標出了4個并行的I/O口。,5. 定時器/計數(shù)器 出于控制應(yīng)用的需要,MCS-51有2個(對8031/8051是2個)或3個(對8032/8052是3個)16位定時器/計數(shù)器,以實現(xiàn)定時或計數(shù)功能,并以定時或計數(shù)的結(jié)果對單片機進行控制。圖2.1中定時器/計

20、數(shù)器和中斷、串行端口在一起。,6. 串行口 MCS-51有一個全雙工UART(通用異步接收發(fā)器)的串行口,以實現(xiàn)單片機和其他數(shù)據(jù)設(shè)備之間的串行數(shù)據(jù)傳送。該串行口功能較強,既可作為全雙工UART異步通信收發(fā)器使用,又可以作為同步移位器使用。在圖2.1中串行端口和定時器/計數(shù)器中斷在一起。,8. 時鐘電路 MCS-51單片機芯片內(nèi)部有時鐘電路,但石英晶體振蕩器和微調(diào)電容需外接。在圖2.1中,畫出了外接的石英晶體振蕩器和微調(diào)電容以及片內(nèi)的反向放大器振蕩電路。時鐘電路為單片機產(chǎn)生時鐘脈沖序列,典型的晶振頻率為6MHz或12MHz。,9. 位處理器 單片機主要用于控制,需要有較強的位處理能力。位處理器又

21、稱布爾處理器。位處理器以狀態(tài)寄存器中的進位標志C為累加位,可進行置位、復(fù)位、取反、等于“0”轉(zhuǎn)移、等于“1”轉(zhuǎn)移以及C與可尋址位之間的傳送、邏輯與、邏輯或等位操作。位操作是通過運算器實現(xiàn)的,在圖2.1中沒有畫出。,10. 總線 上述9個部件都通過片內(nèi)單一總線連接。系統(tǒng)的地址信號、數(shù)據(jù)信號、控制信號都是通過總線傳送的??偩€結(jié)構(gòu)減少了單片機的連線和引腳,提高了集成度和可靠性。,2.1.2 MCS-51單片機的信號引腳,HMOS制造工藝的MCS-51單片機都采用40引腳的雙列直插封裝(DIP方式),CHMOS制造工藝的80C51/80C31芯片除采用DIP方式外,還采用方形封裝工藝。如圖2.2所示。

22、圖2.2(a)、圖2.2(b)分別是DIP方式和方形封裝的引腳圖,其中方形封裝CHMOS芯片有44腳,但其中4只腳(標有NC的引腳1、12、23、34)是不使用的。,下面將這40條引腳按功能分為四部分敘述其功能。 1. 主電源引腳Vcc和Vss Vcc(40腳):接+5V電壓 Vss(20腳):接地 2. 外接晶體引腳XTAL1和XTAL2 XTAL1(19腳):接外部晶體的一個引腳。在單片機內(nèi)部,它是一個反相放大器的輸入端,這個放大器構(gòu)成了片內(nèi)振蕩器。當采用外部振蕩器時,對HMOS單片機,此引腳應(yīng)接地;對CHMOS單片機,此引腳作為驅(qū)動端。 XTAL2(18腳):接外部晶體管的另一個引腳。在

23、單片機內(nèi)部,接至上述振蕩器的反相放大器的輸出端。當采用外部振蕩器時,對于HMOS單片機,此引腳應(yīng)接外部振蕩器的信號,即把外部振蕩器的信號直接接到內(nèi)部時鐘發(fā)生器的輸入端;對于CHMOS單片機,此引腳應(yīng)懸浮。,3. 控制或其他電源復(fù)用引腳RST/VPD、ALE/PROG、PSEN、EA/VPP,RST/VPD(9腳):振蕩器運行時,在此引腳上出現(xiàn)兩個機器周期的高電平使單片機復(fù)位。建議在此引腳與Vss之間連接一個約8.2k的下拉電阻,與Vcc引腳之間連接一個約10F的電容,以保證可靠的復(fù)位(詳見復(fù)位電路內(nèi)容)。Vcc掉電期間,此引腳可接上備用電源,以保持內(nèi)部RAM的數(shù)據(jù)不丟失。,ALE/ PROG(

24、30腳):當訪問外部存儲器時,ALE(允許地址鎖存)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲器,ALE端仍然以不變的頻率周期性地出現(xiàn)正脈沖信號,此頻率為振蕩器的1/6。因此,它可以用作對外輸出的時鐘,或用于定時。,對于EPROM型的單片機(如8751),在EPROM編程期間,此引腳用于輸入編程脈沖。,PSEN(29腳):此引腳的輸出是外部程序存儲器的讀選通信號。在從外部程序存儲器取指令(或常數(shù))期間,每個機器周期它二次有效。但在此期間,每當訪問外部數(shù)據(jù)存儲器時,這二次有效信號將不出現(xiàn)。它同樣可以驅(qū)動(吸收或輸出電流)8個LS型的TTL輸入電路。,EA/VPP(31腳):當這引腳保持高電

25、平時,訪問內(nèi)部程序存儲器,但在PC(程序計數(shù)器)值超過0FFFH(對8051/8751)或1FFFH(對8052)時將自動轉(zhuǎn)向執(zhí)行外部程序存儲器內(nèi)的程序。當這引腳保持低電平時,則只訪問外部程序存儲器。 對于8031來說,無內(nèi)部程序存儲器,端口必須保持低電平,即接地,才能只選擇外部程序存儲器。對于EPROM型的單片機(如8751),在EPROM編程期間,此引腳也用于施加21V的編程電源(VPP)。,4. 輸入/輸出(I/O)引腳P0、P1、P2、P3(共32根) P0口(39腳32腳):是雙向8位三態(tài)I/O口,在外接存儲器時,與地址總線的低8位及數(shù)據(jù)總線復(fù)用,能以吸收電流的方式驅(qū)動8個LS型的T

26、TL輸入負載。 P1口(1腳8腳):是準雙向8位I/O口。由于這種接口輸出沒有高阻狀態(tài),輸入也不能鎖存,故不是真正的雙向I/O口。P1口可以驅(qū)動(吸收或輸出電流)4個LS型的TTL負載。對于8052、8032,P1.0引腳的第二功能為T2定時器/計數(shù)器的外部輸入,P1.1引腳的第二功能為T2的外部控制端。對EPROM編程和程序驗證期間,它接收低8位地址。,P2口(21腳28腳):是準雙向8位I/O口。在訪問外部程序存儲器時,它可以作為擴展電路高8位地址總線送出高8位地址。在對EPROM編程和程序驗證期間,它接收高8位地址。P2口可以驅(qū)動(吸收或輸出電流)4個LS型的TTL輸入負載。,P3口(1

27、0腳17腳):是準雙向8位I/O口,在MCS-51中,這8個引腳還用于專門功能,是復(fù)用雙功能口。P3口可以驅(qū)動(吸收或輸出電流)4個LS型的TTL輸入負載。作為第一功能使用時,為普通I/O口,功能和操作方法與P1口相同。作為第二功能使用時,各引腳的定義見表2.2。值得強調(diào)的是,P3口的每一條引腳均可獨立定義為第一功能的輸入輸出或第二功能。,表2.1 P3口線的第二功能定義,2.2.1 內(nèi)部數(shù)據(jù)存儲器低128單元,片內(nèi)RAM(內(nèi)部數(shù)據(jù)存儲器)的地址范圍是00HFFH。內(nèi)部數(shù)據(jù)存儲器低128單元的地址范圍是00H7FH。分三個區(qū)。 (1)工作寄存器區(qū) 00H1FH單元共32B,是4個通用工作寄存器

28、組,每組含8個寄存器(R0R7)。切換CPU的工作寄存器組,只要CPU執(zhí)行一條單周期指令改變程序狀態(tài)字PSW(特殊功能寄存器)的第3、4位,見表2.2。若程序中不需要4組工作寄存器,那么剩下的工作寄存器組所對應(yīng)的單元也可以作一般的數(shù)據(jù)緩沖器使用。,表2.2 工作寄存器組的選擇,(2)位尋址區(qū) 20H2FH單元共16個字節(jié)。這16個RAM單元具有雙重功能。它們既可以像普通RAM單元一樣按字節(jié)存取,也可以單獨存取,這就是位尋址。20H2FH單元用作位尋址時,共有168=128位,每位分配了一個特定的地址,即00H7FH,這些地址稱為位地址,如圖2.3所示。位地址在位尋址時使用。例如:把24H單元中

29、最高位(位地址為27H)置位成1,則可以使用如下置位指令: SETB 27H ; 27H 1,SETB為置位指令的操作碼 位地址的另一種表示方法是采用字節(jié)地址和位地址結(jié)合的表示方法。位地址05H可以表示成20H.5。,(3)用戶數(shù)據(jù)區(qū) 307FH總共有80個RAM單元,存放用戶數(shù)據(jù)或作堆棧操作使用。中斷系統(tǒng)中的堆棧一般都設(shè)在這一區(qū)域內(nèi),MCS-51對用戶數(shù)據(jù)區(qū)中的每個RAM單元是按字節(jié)存取的。,2.2.2 內(nèi)部數(shù)據(jù)存儲器高128單元,在MCS-51系列單片機中,內(nèi)部RAM的高128單元是供給特殊功能寄存器SFR(Special function register)使用的。所謂特殊功能寄存器是指

30、有特殊用途的寄存器集合,也稱專用寄存器。它們位于片內(nèi)數(shù)據(jù)存儲器之上,離散地分布在80HFFH的地址空間范圍內(nèi)。 特殊功能寄存器的實際個數(shù)和單片機的型號有關(guān):8051或8031的SFR有21個,8052的SFR有26個。 它們在80HFFH的地址空間范圍內(nèi),不為SFR占用的RAM單元實際并不存在,訪問它們是沒有意義的。表2.3列出了這些SFR的助記符號、名稱和地址。,表2.3 特殊功能寄存器地址映像表,1. 特殊功能寄存器 下面簡單介紹SFR塊中的部分寄存器,其他SFR寄存器將在有關(guān)章節(jié)中介紹。 (1)程序計數(shù)器PC 程序計數(shù)器PC用于存放下一條要執(zhí)行的指令地址,是一個16位專用寄存器,可尋址范

31、圍為065535(64K)。PC在物理上是獨立的,不屬于SFR。 (2)累加器A 累加器A是一個最常用的專用寄存器,屬于SFR,也稱ACC。大部分單操作數(shù)指令的操作數(shù)取自累加器,很多雙操作數(shù)指令的一個操作數(shù)取自累加器,加、減、乘、除算術(shù)運算指令的運算結(jié)果都存放在累加器A或A和B寄存器中。,(3)B寄存器 在乘除指令中,用到了B寄存器。乘除指令的兩個操作數(shù)分別取自A和B,其結(jié)果存放在A和B寄存器中。例如除法指令中,被除數(shù)取自A,除數(shù)取自B,商數(shù)存放于A,余數(shù)存放于B。 (4)堆棧指針SP 堆棧指針SP是一個8位專用寄存器。它指示出堆棧頂部在內(nèi)部RAM塊中的位置。系統(tǒng)復(fù)位后,SP初始化為07H,使

32、得堆棧事實上由08H單元開始。08H1FH單元分別屬于工作寄存器組13,在程序設(shè)計中用到這些區(qū),最好把SP值改置為1FH或更大的值。MCS-51的堆棧是向上生成的,若SP=60H,CPU執(zhí)行一條調(diào)用指令或響應(yīng)中斷后,PC進棧,PCL保護到61H,PCH保護到62H,SP=62H。,(5)數(shù)據(jù)指針DPTR 數(shù)據(jù)指針DPTR是一個16位的SFR,其高字節(jié)寄存器用DPH表示,低字節(jié)寄存器用DPL表示。DPTR可以作為一個16位的寄存器DPTR來用,也可以作為兩個獨立的8位寄存器DPH和DPL來用。 (6)程序狀態(tài)字(PSWProgram status word) 程序狀態(tài)字是一個8位的寄存器用于寄存

33、指令執(zhí)行的狀態(tài)信息。其中有些位狀態(tài)是根據(jù)指令執(zhí)行結(jié)果,由硬件自動設(shè)置的,而有些位狀態(tài)則是用軟件方法設(shè)定的。PSW的位狀態(tài)可以用專門的指令進行測試,也可以用指令讀出。一些條件轉(zhuǎn)移指令將根據(jù)PSW中有關(guān)位信息來進行程序轉(zhuǎn)移。PSW的各位定義如下:,表2.4 PSW各位的定義,除PSW.1位保留未用外,對其余各位的定義及使用介紹如下: CY或C(PSW.7)進位標志位。CY(或C)是PSW中最常用的標志位,其功能有二:一是存放算術(shù)運算的進位標志;二是在位操作中,作累加位使用。在位傳送、位與、位或等操作中,都要使用進位標志位。 AC(PSW.6)輔助進位標志位。在加減運算中,當有低4位向高4位進位或借

34、位時,AC由硬件置位,否則AC位被清“0”。在進行十進制數(shù)運算時需要十進制調(diào)整,此時要用到AC位狀態(tài)進行判斷。 F0(PSW.5)用戶標志位。這是一個由用戶自定義的標志位,用戶根據(jù)需要用軟件方法置位或復(fù)位。例如用它來控制程序的轉(zhuǎn)向。, RS1和RS0(PSW.4和PSW.3)寄存器組選擇位。它用于設(shè)定當前通用寄存器的組號。通用寄存器共有4組,其對應(yīng)關(guān)系見表2.2。這兩個選擇位的狀態(tài)是由軟件設(shè)置的,被選中的寄存器組即為當前通用寄存器。 OV(PSW.2)溢出標志位。 在帶符號數(shù)的加減運算中,OV=1表示加減運算結(jié)果超出了累加器A所能表示的符號數(shù)有效范圍(128+127),因此運算結(jié)果是錯誤的。

35、在乘法運算中,OV=1表示乘積超過255,即乘積分別在寄存器B與A中;反之,OV=0表示乘積只在A中。 在除法運算中,OV=1表示除數(shù)為0,除法不能進行;反之OV=0,表示除數(shù)不為0,除法能正常進行。, P(PSW.0)奇偶標志位。其表明累加器A中1的個數(shù)的奇偶性,在每個指令周期由硬件根據(jù)A的內(nèi)容對P位進行置位或復(fù)位,若1的個數(shù)為奇數(shù),P=1,反之P=0。 (7)專用寄存器字節(jié)尋址 訪問SFR塊時,只能采用直接尋址方式。在操作過程中必須注意以下幾點: 21個可字節(jié)尋址的專用寄存器是離散分布在128個單元中的。 程序計數(shù)器PC是不可尋址的。PC不占據(jù)RAM,它在物理上是獨立的。 對專用寄存器只能

36、采用直接尋址方式。書寫時,既可以使用寄存器符號,也可以使用寄存器單元地址。,(8)專用寄存器位尋址 課本16頁:表2.3列出了可以進行位尋址的11個專用寄存器。下面詳細介紹這11個可以進行位尋址的專用寄存器的位地址。表2.5列出了相關(guān)寄存器的位地址。表中所列全部專用寄存器可尋址的位共83位(8032/8052特有的T2CON除外)。這些位都是有專門用途的。這樣,加上低128單元位尋址區(qū)的128位,在MCS-51的內(nèi)部RAM中共有128+83=211個可尋址位。,2.2.3 堆棧,堆棧是一種數(shù)據(jù)結(jié)構(gòu)。所謂堆棧就是只允許在其一端進行數(shù)據(jù)插入和數(shù)據(jù)刪除操作的線性表。其結(jié)構(gòu)如圖2.4所示。,圖2.4

37、堆棧示意圖,1. 堆棧的功能 堆棧是為了子程序調(diào)用和中斷操作而設(shè)立的,其作用有兩個:保護斷點和保護現(xiàn)場。 2. 堆棧的開辟 早期的微型計算機多在主存儲器中開辟堆棧,稱為外堆棧。主要優(yōu)點是容量大,可看作是無限的,但速度慢。另一類堆棧稱為內(nèi)堆棧。所謂內(nèi)堆棧就是在CPU芯片的寄存器中開辟堆棧。MCS-51的堆棧就開辟在內(nèi)部RAM中。內(nèi)堆棧的優(yōu)點是速度快,但堆棧的容量有限。這種限制反映在單片機上的表現(xiàn)就是:限制了高級語言的使用。因為在高級語言中,除了中斷和子程序的調(diào)用外,參數(shù)的傳遞也是靠堆棧的操作來實現(xiàn)的。,3. 堆棧指示器 堆棧共有兩種操作:進棧和出棧。 但不論是數(shù)據(jù)進棧還是出棧,都是對堆棧的棧頂單

38、元進行的,即對堆棧棧頂單元的寫和讀操作。為了指示棧頂?shù)刂?,所以要設(shè)置堆棧指示器SP。SP的內(nèi)容就是堆棧棧頂?shù)拇鎯卧刂贰?MCS-51單片機由于堆棧設(shè)在內(nèi)部RAM上,因此SP是一個8位寄存器。實際上SP就是專用寄存器的一員。系統(tǒng)復(fù)位后,SP的內(nèi)容為07H,但由于堆棧最好在內(nèi)部RAM的30H7FH單元中開辟,所以在程序設(shè)計時,應(yīng)注意把SP值初始化為30H。SP的內(nèi)容一旦確定,棧頂?shù)奈恢镁痛_定了。,4. 堆棧類型 向上生長型和向下生長型。MCS-51的堆棧是向上生長的。 5. 堆棧使用方法 調(diào)用子程序或中斷時,返回地址(斷點)自動進棧。程序返回時,斷點再自動彈回PC。 使用專用的堆棧操作指令,進

39、行進出棧操作。保護現(xiàn)場(PUSH);恢復(fù)現(xiàn)場(POP)。,2.2.4 內(nèi)部程序存儲器,MCS-51單片機的程序計數(shù)器PC為16位,因此可以尋址的地址空間為64KB。8051和8751單片機內(nèi)部有4KB字節(jié)ROM/EPROM程序存儲器(0000H0FFFH),1000HFFFFH是外部擴展程序存儲器地址空間。而8052單片機內(nèi)部有8KB ROM程序存儲器,同樣可以擴展到64KB。在64KB程序存儲器中,有6個地址單元具有特殊功能。 1. 程序計數(shù)器PC MCS-51單片機在復(fù)位后PC的內(nèi)容為0000H,所以系統(tǒng)必須從0000H開始取指令,執(zhí)行程序。因為0000H是系統(tǒng)的啟動地址,所以用戶在設(shè)計程

40、序時,一般會在這一單元中存放一條絕對跳轉(zhuǎn)指令,而主程序則從跳轉(zhuǎn)到的新地址處開始存放。,2. 中斷源 除0000H外,其余5個特殊功能單元分別對應(yīng)6種中斷源的中斷服務(wù)子程序的入口地址,見表2.6。通常在程序設(shè)計時會在這些入口地址處都安放一條絕對跳轉(zhuǎn)指令,而真正的中斷服務(wù)子程序從轉(zhuǎn)移地址開始安放。,表2.6 中斷源入口地址,2.2.5 MCS-51存儲器的結(jié)構(gòu),物理上,MCS-51單片機有4個存儲器空間:片內(nèi)程序存儲器、片外程序存儲器、片內(nèi)數(shù)據(jù)存儲器、片外數(shù)據(jù)存儲器。從用戶使用的角度看,MCS-51單片機有3個存儲器地址空間:片內(nèi)外統(tǒng)一的64KB的程序存儲器地址空間、片內(nèi)數(shù)據(jù)存儲器(其中128B的

41、特殊功能寄存器地址空間僅有20幾個字節(jié)是有實際定義的)、片外64KB數(shù)據(jù)存儲器地址空間。在訪問這3個不同的邏輯空間時應(yīng)采用不同的指令形式。MCS-51單片機存儲器的結(jié)構(gòu)如圖2.5所示。 如圖2.5所示,MCS-51數(shù)據(jù)存儲器與程序存儲器全部64KB地址重疊,且數(shù)據(jù)存儲器的片內(nèi)外的低128B地址重疊。所以對片內(nèi)外數(shù)據(jù)存儲器的操作使用了不同的指令,這樣就不會發(fā)生混亂。而程序存儲器和數(shù)據(jù)存儲器的區(qū)分是靠引腳PSEN、RD、WR、EA控制的。,另外,在片外數(shù)據(jù)存儲器中,數(shù)據(jù)區(qū)與擴展的I/O口統(tǒng)一編址,因此,用戶在應(yīng)用系統(tǒng)設(shè)計時,所有的外圍接口地址均占用外部RAM地址單元。,a)程序存儲器 (b)內(nèi)部數(shù)

42、據(jù)存儲器 (c)外部數(shù)據(jù)存儲器,圖2.5 MCS-51單片機存儲器結(jié)構(gòu),如2.1.2所介紹的,MCS-51單片機有4個雙向的8位I/O口P0P3,實際上它們已經(jīng)被歸入特殊功能寄存器之列。P0口負載能力為8個TTL電路,P1、P2、P3口負載能力為4個TTL電路。在單片機中,口是一個集數(shù)據(jù)輸入緩沖、數(shù)據(jù)輸出驅(qū)動及鎖存等多項功能于一體的I/O電路。4個口在電路結(jié)構(gòu)上基本相同,但又各具特點,因此在功能和使用上各口之間有一定的差異。下面分別討論4個雙向的8位I/O口的電路及功能。,2.3.1 P0口,P0口的字節(jié)地址為80H,位地址為80H87H??诘母魑豢诰€具有完全相同,但又相互獨立的邏輯電路,如圖

43、2.6所示。,圖2.6 P0口邏輯電路,P0口邏輯電路的主要內(nèi)容包括: 一個數(shù)據(jù)輸出鎖存器,用于進行數(shù)據(jù)位的鎖存。 兩個三態(tài)輸入緩沖器,分別用于鎖存器數(shù)據(jù)和引腳數(shù)據(jù)輸入的緩沖。 一個多路轉(zhuǎn)接開關(guān)MUX,它的一個輸入來自鎖存器,另一個輸入為“地址/數(shù)據(jù)”。輸入轉(zhuǎn)接由“控制”信號控制。之所以設(shè)置多路轉(zhuǎn)接開關(guān),是因為P0口既可以作為通用的I/O口進行數(shù)據(jù)的輸入輸出,又可以作為單片機系統(tǒng)的地址/數(shù)據(jù)線之間的接通轉(zhuǎn)接。 數(shù)據(jù)輸出的驅(qū)動和控制電路,由兩只場效應(yīng)管(FET)組成,上面的那只場效應(yīng)管構(gòu)成上拉電路。,在實際應(yīng)用中,P0口大多數(shù)情況下都是作為單片機系統(tǒng)的地址/數(shù)據(jù)線使用。當傳送地址或數(shù)據(jù)時,CPU

44、發(fā)出控制信號,打開上面的與門,并使多路轉(zhuǎn)接開關(guān)MUX處于內(nèi)部地址/數(shù)據(jù)線與驅(qū)動場效應(yīng)管柵極反向接通狀態(tài)。這時的輸出驅(qū)動電路由上下兩只場效應(yīng)管形成推拉式的電路結(jié)構(gòu),大大提高了負載能力。當輸入數(shù)據(jù)時,數(shù)據(jù)信號直接從引腳通過輸入緩沖器進入內(nèi)部總線。,當P0口作為輸入口(讀)使用時,應(yīng)區(qū)分讀引腳和讀端口(鎖存器)兩種情況。為此在口電路中有兩個用于讀入的三態(tài)緩沖器。所謂讀引腳,就是讀芯片引腳上的數(shù)據(jù),也就是直接讀外部數(shù)據(jù),這時使用下面的三態(tài)緩沖器,由“讀引腳”信號把三態(tài)緩沖器打開,引腳上的數(shù)據(jù)經(jīng)三態(tài)緩沖器通過內(nèi)部總線讀進來。但要注意,必須先向電路的鎖存器寫入“1”,使FET截止,以避免鎖存器為“0”狀態(tài)

45、時對引腳讀入的干擾。而讀端口則通過上面的三態(tài)緩沖器把鎖存器Q端的狀態(tài)讀進來。 當P0口作為輸出口(寫)使用時,由鎖存器和驅(qū)動電路構(gòu)成數(shù)據(jù)輸出通路。由于通路中已有輸出鎖存器,因此數(shù)據(jù)輸出可以與外設(shè)直接連接,無需再加數(shù)據(jù)鎖存電路。進行數(shù)據(jù)輸出時,來自CPU的寫脈沖加在D觸發(fā)器的CP端,數(shù)據(jù)寫入鎖存器,并向端口引腳輸出。但要注意,由于輸出電路是漏極開路電路,必須外接上拉電阻才能有高電平輸出。,2.3.2 P1口,P1口的地址為90H,位地址為90H97H。P1口的口線邏輯電路如圖2.7所示。P1口只能作為通用的I/O口使用,所以在電路結(jié)構(gòu)上和P0口不同主要表現(xiàn)為:, 它只傳送數(shù)據(jù),所以不需要多路轉(zhuǎn)接

46、開關(guān)MUX。 因為只用來傳送數(shù)據(jù),因此輸出電路中有上拉電阻,且上拉電阻和場效應(yīng)管共同組成了輸出驅(qū)動電路。 P1口作為輸出口使用時,已能提供推拉電流負載,外電路無需再接上拉電阻。 P1口作為輸入口使用時,應(yīng)先向其鎖存器寫入“1”,使輸出驅(qū)動電路的場效應(yīng)管截止。,2.3.3 P2口,P2口的字節(jié)地址為0A0H,位地址為0A0H0A7H。P2口的邏輯電路如圖2.8所示。,在實際使用中,P2口用于為系統(tǒng)提供高位地址,但不作為數(shù)據(jù)線使用,所以P2口和P0口既有共同點,又有不同點。 共同點:在口電路中有一個多路轉(zhuǎn)換開關(guān)MUX。用于口線作為通用的I/O口進行數(shù)據(jù)的輸入輸出和作為單片機系統(tǒng)的地址/數(shù)據(jù)線之間的

47、接通轉(zhuǎn)接。 不同點:P2口只作為高位地址線使用,不作為數(shù)據(jù)線使用,所以多路轉(zhuǎn)換開關(guān)MUX的一個輸入端不再是“地址/數(shù)據(jù)”,而是單一的“地址”。,2.3.4 P3口,P3口的字節(jié)地址為0B0H,位地址為0B0H0B7H。P3口的邏輯電路如圖2.9所示。,雖然P3口可以作為通用I/O口使用,但在實際使用中它的第二功能信號更為重要。為適應(yīng)引腳信號第二功能的需要,在口電路中增加了第二功能控制邏輯。由于第二功能信號有輸入和輸出兩類,因此我們分兩種情況說明。 對于輸出第二功能信號的引腳,當作為通用I/O口使用時,電路中的“第二輸出功能”信號線應(yīng)保持高電平,與非門開通,以維持從鎖存器到輸出端數(shù)據(jù)輸出通路的暢

48、通。當作為輸出第二功能信號時,該鎖存器應(yīng)預(yù)先置“1”,使與非門對第二功能的信號的輸出是暢通的,從而實現(xiàn)第二功能信號的輸出。,對于第二功能為輸入信號的引腳,在口線的輸入通路上增加了一個緩沖器,輸入的信號就從這個緩沖器的輸出端取得。而作為通用的I/O口線使用的數(shù)據(jù)輸入,仍然取自三態(tài)緩沖器的輸出端??傊?,不管是作為輸入口還是第二功能信號輸入,輸出電路中的鎖存器輸出和“第二功能輸出信號”線都應(yīng)保持高電平。,2.3.5 I/O口的讀修改寫操作,由圖2.6圖2.9可見,每個I/O口均有兩種讀入方法,即讀鎖存器和讀引腳,并有相應(yīng)的指令。讀鎖存器指令是從鎖存器中讀取數(shù)據(jù),進行處理,并把處理后的數(shù)據(jù)重新寫入鎖存

49、器中,這類指令叫讀修改寫指令。例如在ANL、ORL、XRL;INC、DEC;DJNZ;MOV;CLR、SETB等指令中,當目的操作數(shù)為某一I/O口或某一I/O口的某一位時這些指令均為讀修改寫指令。,讀引腳指令一般都是以I/O端口為原操作數(shù)的指令,執(zhí)行讀引腳指令時打開三態(tài)門輸入口狀態(tài)。例如讀P1口的輸入狀態(tài)時,讀引腳指令為: MOV A,P1,根據(jù)I/O口的結(jié)構(gòu)及CPU的控制,當執(zhí)行讀引腳操作后,口鎖存器的狀態(tài)應(yīng)與引腳的狀態(tài)相同;但當給口鎖存器寫入某一狀態(tài)后,相應(yīng)的口引腳是否呈現(xiàn)鎖存器狀態(tài)與外電路的連接有關(guān)。例如用I/O口線驅(qū)動三極管的基極時,該口線的位鎖存器寫入“1”后使三極管導通,而三極管一

50、旦導通后,基極電平為“0”。如果該口線無讀引腳操作時,口鎖存器與引腳的狀態(tài)不一致。,執(zhí)行改寫鎖存器數(shù)據(jù)的指令時,在該指令的最后一個時鐘周期S6P2里將數(shù)據(jù)寫入鎖存器。由于輸出緩沖器僅僅在每一個狀態(tài)周期的相位1(P1)期間采樣口鎖存器,因而鎖存器中的新數(shù)據(jù)在下一個狀態(tài)周期的相位出現(xiàn)之前是不會出現(xiàn)在輸出線上的。,2.3.6 I/O口的負載能力及接口要求,前面我們已經(jīng)詳細分析了I/O的邏輯電路。MCS-51單片機有4個雙向的8位I/O口P0P3,實際上它們已經(jīng)被歸入特殊功能寄存器之列。P0口為三態(tài)雙向口, P1、P2、P3口為準雙向口(用作輸入時,口線被拉成高電平,故稱為準雙向口)。由于其電路結(jié)構(gòu)和

51、使用的功能和特點有所不同,因而負載能力及接口要求也有所區(qū)別。,P0口:輸出驅(qū)動電路由于上下兩只場效應(yīng)管,形成推拉式的電路結(jié)構(gòu),因而負載能力較強,能以吸收電流的方式驅(qū)動8個LS型的TTL輸入負載。在實際應(yīng)用中,P0口經(jīng)常作地址總線的低8位及數(shù)據(jù)總線復(fù)用口。在接口設(shè)計時,對于74LS系列、CD4000系列及一些大規(guī)模集成電路芯片(如8155、8255、AD574等)都可以直接接口;對于一些線性元件,特別是鍵盤、碼盤及LED顯示器等,應(yīng)盡量加驅(qū)動部分。,P1口:從電路結(jié)構(gòu)可知,P1口的負載能力不如P0口。能以吸收或輸出電流的方式驅(qū)動4個LS型的TTL負載。在實際應(yīng)用中,P1口經(jīng)常用作I/O擴展口。在

52、接口設(shè)計時,對于74LS系列、CD4000系列及一些大規(guī)模集成電路芯片(如8155、8255、MC14513等)都可以直接接口;對于一些線性元件,特別是鍵盤、碼盤及LED顯示器等,應(yīng)盡量加驅(qū)動部分。,P2口:由電路結(jié)構(gòu)可見,P2口的負載能力不如P0口,但和P1口一樣。能以吸收或輸出電流的方式驅(qū)動4個LS型的TTL負載。在實際應(yīng)用中,P2口經(jīng)常用作高8位地址和I/O口擴展的地址譯碼。在設(shè)計接口時,對于74LS系列、CD4000系列及一些大規(guī)模集成電路芯片(如74LS138、8243等)都可以直接接口。,P3口:由電路結(jié)構(gòu)可見,P3口的負載能力不如P0口,但和P1、P2口一樣,能以吸收或輸出電流的

53、方式驅(qū)動4個LS型的TTL負載。在實際應(yīng)用中,P3口經(jīng)常用作中斷輸入、串行通信口。在設(shè)計接口時,對于74LS系列、CD4000系列及一些大規(guī)模集成電路芯片(如74LS164、74LS165等)都可以直接接口。,時鐘電路用于產(chǎn)生單片機工作所需要的時鐘信號,單片機本身就是一個復(fù)雜的同步時序電路,為了保證同步工作方式的實現(xiàn),電路應(yīng)在惟一的時鐘信號控制下嚴格地按時序進行工作。而時序所研究的則是指令執(zhí)行中各信號之間的相互時間關(guān)系。,2.4.1 時鐘電路,在介紹單片機引腳時,我們已經(jīng)敘述過有關(guān)振蕩器的概念。振蕩電路產(chǎn)生的振蕩脈沖,并不是時鐘脈沖。這二者既有聯(lián)系又有區(qū)別。在由多片單片機組成的系統(tǒng)中,為了各單

54、片機之間時鐘信號的同步,還引入公用外部脈沖信號作為各單片機的振蕩脈沖。,1. 時鐘信號的產(chǎn)生,XTAL1(19腳)是接外部晶體管的一個引腳。在單片機內(nèi)部,它是一個反相放大器的輸入端,這個放大器構(gòu)成了片內(nèi)振蕩器。輸出端為引腳XTAL2,在芯片的外部通過這兩個引腳接晶體震蕩器和微調(diào)電容,形成反饋電路,構(gòu)成一個穩(wěn)定的自激振蕩器。如圖2.10所示。,我們可以用示波器測出XTAL2上的波形。電路中的C1和C2一般取30pF左右,而晶體振蕩器的頻率范圍通常是1.212MHz,晶體振蕩器的頻率越高,振蕩頻率就越高。 振蕩電路產(chǎn)生的振蕩脈沖并不是時鐘信號,而是經(jīng)過二分頻后才作為系統(tǒng)的時鐘信號。如圖2.10所示

55、。在二分頻的基礎(chǔ)上再三分頻產(chǎn)生ALE信號(這就是前面介紹ALE時所說的“ALE是以晶振1/6的固定頻率輸出的正脈沖”)在二分頻的基礎(chǔ)上再六分頻得到機器周期信號。,2. 引入外部脈沖信號 在由多片單片機組成的系統(tǒng)中,為了各單片機之間時鐘信號的同步,應(yīng)當引入惟一的公用外部脈沖信號作為各單片機的振蕩脈沖。這時外部的脈沖信號是經(jīng)XTAL2引腳注入如圖2.11所示。對于80C51單片機,情況有所不同。外引脈沖信號需從XTAL1引腳注入而XTAL2引腳應(yīng)懸浮。,2.4.2 時序定時單位,單片機執(zhí)行指令是在時序電路的控制下一步一步進行的,人們通常以時序圖的形式來表明相關(guān)信號的波形及出現(xiàn)的先后次序。為了說明信

56、號的時間關(guān)系,需要定義定時單位。MCS-51時序的定時單位共有4個,從小到大依次是:拍節(jié)、狀態(tài)、機器周期和指令周期。下面分別加以說明。,1、拍節(jié)與狀態(tài) 把振蕩脈沖的周期定義為拍節(jié)(用“P”表示)。振蕩脈沖經(jīng)過二分頻后,就是單片機的時鐘信號,把時鐘信號的周期定義為狀態(tài)(用“S”表示)。這樣一個狀態(tài)就包含二個拍節(jié),其前半個周期對應(yīng)的拍節(jié)叫拍節(jié)1(P1),后半個周期對應(yīng)的拍節(jié)叫拍節(jié)2(P2)。,2. 機器周期 MCS-51采用同步控制方式,因此它有固定的機器周期。規(guī)定一個機器周期的寬度為6個狀態(tài),并依次表示為S1S6。由于一個狀態(tài)又包括二個拍節(jié),因此一個機器周期總共有12個拍節(jié),分別記作S1P1,S

57、1P2,S6P2。由于一個機器周期共有12個振蕩脈沖周期,因此機器周期就是振蕩脈沖的十二分頻。當振蕩脈沖頻率為12MHz時,一個機器周期為1s,當振蕩脈沖頻率為6MHz時,一個機器周期為2s。 3. 指令周期,指令周期是最大的時序定時單位。執(zhí)行一條指令所需要的時間稱為指令周期。指令周期以機器周期的數(shù)目來表示,MCS-51的指令周期根據(jù)指令不同,可包含有14個機器周期。圖2.12表明了各種周期的相互關(guān)系。,2.4.3 典型指令時序,MCS-51共有111條指令,全部指令按其長度可分為單字節(jié)指令、雙字節(jié)指令和三字節(jié)指令。執(zhí)行這些指令所需要的機器周期數(shù)目是不同的,概括起來共有以下幾種情況:單字節(jié)指令

58、單機器周期和單字節(jié)指令雙機器周期;雙字節(jié)指令單機器周期和雙字節(jié)指令雙機器周期;三字節(jié)指令都是雙機器周期;單字節(jié)的乘除指令為四機器周期。,圖2.13所表示的是幾種典型單機器周期和雙機器周期指令的時序。圖中的ALE信號是為地址鎖存而定義的,該信號每有效一次對應(yīng)單片機進行一次讀指令操作。ALE信號以振蕩脈沖1/6的頻率出現(xiàn),因此在一個機器周期中,ALE信號二次有效,第一次在S1P2和S2P1期間,第二次在S4P2和S5P1期間,有效寬度為一個狀態(tài)。,現(xiàn)對幾種典型單機器周期和雙機器周期指令的時序作如下說明:, 字節(jié)單周期指令(例如INC A):由于是單字節(jié)指令,因此只需進行一次讀指令操作。當?shù)诙€AL

59、E有效時,由于PC沒有加1,所以讀出的還是原指令,屬于一次無效的操作。 雙字節(jié)單周期指令(例如ADD A,#data):這種情況下對應(yīng)于ALE的二次讀操作都是有效的,第一次是讀指令操作碼,第二次是讀指令第二字節(jié)(本例中是立即數(shù))。 單字節(jié)雙周期指令(例如INC DPTR):兩個機器周期共進行4次讀指令操作,但后3次的讀操作全是無效的。, 單字節(jié)雙周期指令(MOVX類指令):如前述每個機器周期內(nèi)有二次讀指令操作,但MOVX類指令情況有所不同。因為執(zhí)行這類指令時,先在ROM讀取指令,然后對外部RAM進行讀/寫操作。第一機器周期時,與其他指令一樣,第一次讀指令(操作碼)有效,第二次讀指令操作無效。第二機器周期時,進行外部RAM訪問,此時與ALE無關(guān),因此不產(chǎn)生讀指令操作。 此外,還應(yīng)說明,時序圖中只表現(xiàn)了取指令操作的有關(guān)時序,而沒有表現(xiàn)指令執(zhí)行的內(nèi)容。實際上,每條指令都有具體的數(shù)據(jù)操作,例如算術(shù)和邏輯操作在拍節(jié)1進行,片內(nèi)寄存器對寄存器傳送操作在拍節(jié)2進行等。由于數(shù)據(jù)操作種類繁多,不逐一列出。,在單片機應(yīng)用系統(tǒng)工作時,除了進入系統(tǒng)正常的初始化之外,

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論