![汽車電子技術(shù)與單片機整套課件完整版ppt全體教學(xué)教程最全電子教案講義_第1頁](http://file4.renrendoc.com/view/0a9ab6d01a66464043e0c523c95a8405/0a9ab6d01a66464043e0c523c95a84051.gif)
![汽車電子技術(shù)與單片機整套課件完整版ppt全體教學(xué)教程最全電子教案講義_第2頁](http://file4.renrendoc.com/view/0a9ab6d01a66464043e0c523c95a8405/0a9ab6d01a66464043e0c523c95a84052.gif)
![汽車電子技術(shù)與單片機整套課件完整版ppt全體教學(xué)教程最全電子教案講義_第3頁](http://file4.renrendoc.com/view/0a9ab6d01a66464043e0c523c95a8405/0a9ab6d01a66464043e0c523c95a84053.gif)
![汽車電子技術(shù)與單片機整套課件完整版ppt全體教學(xué)教程最全電子教案講義_第4頁](http://file4.renrendoc.com/view/0a9ab6d01a66464043e0c523c95a8405/0a9ab6d01a66464043e0c523c95a84054.gif)
![汽車電子技術(shù)與單片機整套課件完整版ppt全體教學(xué)教程最全電子教案講義_第5頁](http://file4.renrendoc.com/view/0a9ab6d01a66464043e0c523c95a8405/0a9ab6d01a66464043e0c523c95a84055.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第一章汽車電子技術(shù)與單片機第一節(jié)汽車電子技術(shù)的發(fā)展第二節(jié)單片機在汽車中的應(yīng)用和總線系統(tǒng)第三節(jié)單片機的基本知識第四節(jié)數(shù)制與碼制第一節(jié)汽車電子技術(shù)的發(fā)展一、當(dāng)今汽車技術(shù)發(fā)展的幾個重要方向科學(xué)技術(shù)的不斷進步體現(xiàn)在各個方面,在計算機和微電子、生物工程、材料科學(xué)、工藝制作技術(shù)等很多領(lǐng)域都出現(xiàn)了一大批具有換時代意義的成,在制造業(yè)中,汽車技術(shù)的發(fā)展具有很強的代表性,成為許多新技術(shù)的載體。電控發(fā)動機、自動變速器、防抱死系統(tǒng)(ABS)、安全氣囊、智能導(dǎo)航等大量推陳出新的技術(shù)使得汽車在動力性、經(jīng)濟性、排放水平、加成舒適性和安全性方面已經(jīng)達到了令人相當(dāng)滿意的程度。新技術(shù)同時也為行業(yè)的發(fā)展帶來了升級,為行業(yè)的進步指明了方向。下一頁返回第一節(jié)汽車電子技術(shù)的發(fā)展作為汽車“心臟”的發(fā)動機,在汽車技術(shù)進步的過程中始終走在前列。汽油機電控噴射技術(shù)結(jié)合三元催化器、柴油機燃油噴射系統(tǒng)、可變截面渦輪增壓器(VGT)、可變氣門正時和升程技術(shù)(VTEC)、混合動力技術(shù)(HPS)等許多機、電、液緊密結(jié)合的技術(shù)使發(fā)動機的性能指標日益提高。汽車采用自動變速器,在駕駛時可以不踩離合器,實現(xiàn)自動換擋,而且發(fā)動機不會熄火,從而可以有效的提高駕駛方便性。20世紀80年代以來,隨著電子技術(shù)的發(fā)展,變速器自動控制更加完善,在各種使用工況下均能實現(xiàn)發(fā)動機與傳統(tǒng)系的最佳匹配。上一頁下一頁返回第一節(jié)汽車電子技術(shù)的發(fā)展不少現(xiàn)代車型已裝有自診斷裝置。有些高級的汽車內(nèi)還裝備了汽車導(dǎo)航系統(tǒng),它通過汽車內(nèi)的顯示裝置顯示地圖、汽車位置、運動軌跡、目的方向和距離等,從而為引導(dǎo)汽車提供大量信息。該系統(tǒng)還能將以汽車行駛方向為主的交通信息等反映到顯示屏的移動地圖上,為車輛行駛指示最佳路線。汽車導(dǎo)航系統(tǒng)可分為衛(wèi)星導(dǎo)航系統(tǒng)和地面無線電固定導(dǎo)航系統(tǒng)兩類。上一頁下一頁返回第一節(jié)汽車電子技術(shù)的發(fā)展二、汽車電子技術(shù)的發(fā)展史從20世紀60年代中期開始,微電子技術(shù)的迅猛發(fā)展使其在汽車上被廣泛應(yīng)用,給汽車工業(yè)的進一步發(fā)展帶來了新的生機。電子控制系統(tǒng)具有控制精度高、響應(yīng)速度快,集成度高、體積小、重量輕、應(yīng)用更加靈活等特點用于汽車后,可使汽車有關(guān)系統(tǒng)在各種工況下都處在最佳的工作狀況,各項受控指標均能獲得較大的改善,使任何機械控制系統(tǒng)都難以達到的。50年代到70年代末,主要用電子裝置改善部分機械部件的性能;70年代末到90年代中期,汽車電子控制技術(shù)開始形成,大規(guī)模集成電路得到廣泛應(yīng)用,減小了汽車電子產(chǎn)品的體積,特別是8位、16位單片機的廣泛應(yīng)用,提高了電子裝置的可靠性和穩(wěn)定性。上一頁下一頁返回第一節(jié)汽車電子技術(shù)的發(fā)展80年代中期到90年代末被認為是電子技術(shù)在汽車上應(yīng)用的第三階段,在這一階段中,以微處理器為核心的微機控制系統(tǒng)在汽車上大規(guī)模的應(yīng)用趨于成熟和可靠,并向智能化發(fā)展,汽車全面進入電子化時代。2000年以后,汽車電子化被認為已進入第四階段——智能化和網(wǎng)絡(luò)化時代,在這一階段中,汽車產(chǎn)品將大量采用人工智能技術(shù),并利用網(wǎng)絡(luò)進行信息的傳遞和交換。汽車電子技術(shù)的中的由解決汽車部件或總成問題開始向廣泛應(yīng)用計算機網(wǎng)絡(luò)與信息技術(shù)發(fā)展,使汽車更加自動化、智能化,并向解決汽車與社會融為一體等問題轉(zhuǎn)移。汽車電子設(shè)備成本占汽車總成本的比重越來越大,汽車制造技術(shù)由機械制造逐步步入電子控制技術(shù)時代。上一頁下一頁返回第一節(jié)汽車電子技術(shù)的發(fā)展三、汽車電子系統(tǒng)在整車中的地位從世界范圍看,汽車工業(yè)向電子化發(fā)展的趨勢,在20世紀90年代已十分明顯,由于汽車工業(yè)是國民經(jīng)濟發(fā)展的支柱產(chǎn)業(yè),因而是國際經(jīng)濟競爭的重要領(lǐng)域,而電子技術(shù)在汽車上的應(yīng)用促進了汽車各項性能的發(fā)展,世界各大汽車公司紛紛投入巨資開發(fā)自己的汽車電子產(chǎn)品以贏得更大的市場空間,因此,汽車電子化將是奪取汽車市場的重要手段。上一頁下一頁返回第一節(jié)汽車電子技術(shù)的發(fā)展現(xiàn)代汽車電子控制技術(shù)的應(yīng)用不僅提高了汽車的動力性、經(jīng)濟性和安全性,改善了行駛的穩(wěn)定性和舒適性,推動了汽車工業(yè)的發(fā)展,還為電子產(chǎn)品開拓了廣闊的市場,從而推動了電子工業(yè)的發(fā)展。因此,發(fā)展汽車電子控制新技術(shù),加快汽車電子化速速,是振興和發(fā)展汽車工業(yè)的重要手段。上一頁返回第二節(jié)單片機在汽車中的應(yīng)用和總線系統(tǒng)一、單片機的發(fā)展史及其在汽車中的引入單片機從20世紀70年代出現(xiàn)至今已經(jīng)有30多年的歷史,從最初的簡單功能單片機發(fā)展到現(xiàn)在32位、64位的高性能微處理器,它的身影幾乎已經(jīng)融入人們生產(chǎn)生活的各個領(lǐng)域,從工業(yè)設(shè)備的自動化,到人們?nèi)粘J褂玫母鞣N通訊產(chǎn)品,再到武器軍工行業(yè),衛(wèi)星和載人等方方面面,單片機都在發(fā)揮著難以替代的作用,并且成為產(chǎn)品附加值的重要來源。下一頁返回第二節(jié)單片機在汽車中的應(yīng)用和總線系統(tǒng)從單片機性能的衍變和發(fā)展看,可以將單片機的發(fā)展歷史劃分為三個階段:第一階段是20世紀70年代,單片機產(chǎn)生,低性能微處理器開始在工業(yè)生產(chǎn)中得到應(yīng)用。第二階段從20世紀80年代到20世紀末,微處理器的性能已經(jīng)有了很大的提高,以Motorola公司和Zilong公司為代表,雖然其單片機問世較遲,但是產(chǎn)品性能較高,單片機內(nèi)有串行I/O口,多集中斷處理能力,片內(nèi)RAM和ROM容量較大,有些還帶有A/D轉(zhuǎn)換接口。第三階段是20世紀末直到現(xiàn)在,這一階段是8位單片機鞏固發(fā)展,16為單片機、32為單片機推出階段。上一頁下一頁返回第二節(jié)單片機在汽車中的應(yīng)用和總線系統(tǒng)單片機在汽車中的引入,最早應(yīng)用于汽車發(fā)動機的控制。首推1976年通用汽車公司研發(fā)的利用單片機對發(fā)動機的點火時間進行控制(MASIR)。它能更好的根據(jù)發(fā)動機運轉(zhuǎn)工況,對點火調(diào)速器提前角與負壓提前角作出精確的點火時間控制。汽車電子控制電腦也從模擬時代進入到了數(shù)字時代。上一頁下一頁返回第二節(jié)單片機在汽車中的應(yīng)用和總線系統(tǒng)二、當(dāng)代汽車各系統(tǒng)使用單片機的狀況隨著時代的發(fā)展,特別是計算機總線技術(shù)的日益成熟。在車上使用的芯片也越來越多,比如ABS、EBD、ASR、懸掛、電子防盜和衛(wèi)星導(dǎo)航等系統(tǒng)上的應(yīng)用,而在這些系統(tǒng)中有的使用的芯片功能較為簡單,甚至一片8位的芯片就完全能滿足使用要求。因而有許多汽車上開始采用基于總線的多芯片系統(tǒng),大家通過布置在車上的總線系統(tǒng),共享信息,使汽車能非常自如地工作。上一頁下一頁返回第二節(jié)單片機在汽車中的應(yīng)用和總線系統(tǒng)三、汽車總線系統(tǒng)的產(chǎn)生及其在整車中的應(yīng)用電控系統(tǒng)的增加雖然提高了汽車的動力性、經(jīng)濟性和舒適性,但隨之增加的復(fù)雜電路也降低了汽車的可靠性,增加了維修的難度。為此,早在20世紀70年代就已提出實現(xiàn)汽車電控單元之間的通訊問題。隨著集成電路的迅速發(fā)展,使得以串行總線將車用電器組成網(wǎng)絡(luò),無論是在可靠性和經(jīng)濟性上,都成為了可能。CAN(ControllerAreaNetwork)總線即控制器局域網(wǎng)絡(luò),是德國BOSCH公司在20世紀80年代初研制成功的,最初主要是為汽車監(jiān)測、控制系統(tǒng)而設(shè)計的?,F(xiàn)在,由于CAN總線的優(yōu)良特性,除了在汽車電子控制系統(tǒng)中應(yīng)用外,在其他一些實時控制系統(tǒng)中也得到了廣泛應(yīng)用。上一頁下一頁返回第二節(jié)單片機在汽車中的應(yīng)用和總線系統(tǒng)目前,汽車新技術(shù)的發(fā)展應(yīng)用于汽車線束數(shù)量及線束急劇增加的矛盾相當(dāng)突出。為解決這些問題,數(shù)據(jù)總線已被廣泛地應(yīng)用到汽車電控系統(tǒng)。現(xiàn)代汽車典型的控制單元有電控燃油噴射系統(tǒng)、電控傳動系統(tǒng)、防抱死制動系統(tǒng)(ABS)、防滑控制系統(tǒng)(ASR)、廢氣再循環(huán)系統(tǒng)、巡航系統(tǒng)和空調(diào)系統(tǒng)。在一個完善的汽車電子控制系統(tǒng)中,許多動態(tài)信息必須與車速同步。為了滿足各子系統(tǒng)的實時性要求,有必要對汽車公共數(shù)據(jù)實行共享,如發(fā)動機轉(zhuǎn)速、車輪轉(zhuǎn)速、油門踏板位置等。上一頁返回第三節(jié)單片機的基本知識一、概述單片機是微型機計算機的一個很重要的分支。自20世紀70年代問世以來,以極其高的性能價格比受到人們的重視和關(guān)注,應(yīng)用廣泛,發(fā)展迅速。單片機體積小,質(zhì)量輕,抗干擾能力強,對環(huán)境要求不高,價格低廉,可靠性高,靈活性好,開發(fā)較為容易。通過學(xué)習(xí)有關(guān)單片機的知識后,能依靠自己的力量來開發(fā)所希望的單片機系統(tǒng),并可獲得較高的經(jīng)濟效益。在我國,單片機已廣泛地應(yīng)用在智能儀器儀表、機電設(shè)備過程控制、自動檢測、家用電器和數(shù)據(jù)處理等各個方面。下一頁返回第三節(jié)單片機的基本知識二、單片機的軟件和硬件系統(tǒng)單片微型計算機就是把組成微型計算機的各部件,如中央處理器、存儲器、輸入/輸出接口電路、定時器/計數(shù)器等,制作在一塊集成電路芯片中,構(gòu)成一個完整的微型計算機。下面把組成計算機的五個基本組成部分做簡單說明,如圖1-3所示。運算器是計算機的運算部件,用于實現(xiàn)算術(shù)和邏輯運算,計算機的數(shù)據(jù)運算和處理都在這里進行??刂破魇怯嬎銠C的指揮控制部件,使計算機各部分能自動協(xié)調(diào)地工作。上一頁下一頁返回第三節(jié)單片機的基本知識運算器和控制器是計算機的核心部分,常把他們合在一起統(tǒng)稱為中央處理器,簡稱CPU。存儲器是計算機的記憶部件,用于存放程序和數(shù)據(jù),存儲器又分為內(nèi)存儲器和外存儲器。輸入設(shè)備用于將程序和數(shù)據(jù)輸入到計算機中。輸出設(shè)備用于把計算機數(shù)據(jù)計算或加工的結(jié)果,以用戶需要的形式顯示或保存。通常把外存儲器、輸入設(shè)備和輸出設(shè)備合在一起稱之為計算機的外部設(shè)備。以上這些組成計算機實際的部分稱之為計算機的硬件,也叫計算機硬件系統(tǒng)。單片機盡管簡單、組成單片機系統(tǒng)的也是上述這五個基本組成部分。上一頁下一頁返回第三節(jié)單片機的基本知識硬件系統(tǒng)作為實體,為計算機工作提供了基礎(chǔ)和條件,但要想使計算機有效地工作,還必須有軟件的配合,概括的說,計算機的軟件系統(tǒng)包括系統(tǒng)軟件和應(yīng)用軟件兩個部分。但單片機由于硬件支持和需要所限,其軟件系統(tǒng)比較簡單。傳統(tǒng)觀念認為單片機的系統(tǒng)管理不需要像微型計算機那樣復(fù)雜的操作系統(tǒng),而只使用簡單的操作系統(tǒng)程序,通常稱之為監(jiān)控程序。因此監(jiān)控程序就成為單片機中最重要的系統(tǒng)軟件,這種觀念還認為大多數(shù)單片機不使用高級語言,單片機中通常使用的是匯編語言,但單片機并沒有自己專用的匯編程序。上一頁下一頁返回第三節(jié)單片機的基本知識三、Intel公司MCS-51系列產(chǎn)品概述8051單片機是美國Intel公司在1980年推出的MCS-51系列單片機的第一個成員。凡Intel公司生產(chǎn)的以8051為核心單元的其他派生單片機都可成為MCS-51系列,有時簡稱為51系列。其他公司生產(chǎn)的以8051為核心單元的其他派生單片機不能稱為MCS-51系列,只能稱為8051系列。MCS-51系列單片機包括三個基本型80C31、8051、8751,以及對應(yīng)的低功耗型號80C31、8051、8751,因而MCS-51特指Intel的這幾種型號。上一頁下一頁返回第三節(jié)單片機的基本知識四、單片機的最新發(fā)展技術(shù)單片機在近10年取得了飛速的發(fā)展,目前在世界范圍內(nèi)從事單片機開發(fā)的有4各區(qū)域:一是歐美,如美國國家半導(dǎo)體的COP8系列單片機,Philips公司的51系列單片機,AMD公司的186系列16位嵌入式單片機,ST公司的ST62系列單片機,MICROCHIP的PIC系列單片機,Motorola的各個系列單片機,以及Infineontechnologies的C500和C166系列等;二是日本,如TOSHIBA公司開發(fā)了從4位到64位的多系列單片機,日立公司也有從4位到32位的單片機,F(xiàn)UJITSUMicroelectronics的F2MC-8L單片機系列產(chǎn)品,OKIElectronics的MSM80、MSM66、MSM63系列單片機,NEC的75X、78X系列單片機;三是臺灣地區(qū),如WINBOND公司的W741/W536、W78/W77等系列單片,Holtek的HT46/48/49CXX系列單片機,EMC公司的E7系列單片機等;四是韓國,如Hyundaimicroelectronics的GMS800、GMS30系列單片機,另外,LG等公司也生產(chǎn)單片機。上一頁返回第四節(jié)數(shù)制與碼制一、數(shù)制數(shù)制也稱計數(shù)制,是指用一組固定的符號和統(tǒng)一的規(guī)則來表示數(shù)值的方法。按進位的方法進行計數(shù),稱為進位計數(shù)制。在進位計數(shù)制中有數(shù)位、基數(shù)和位權(quán)三個要素。數(shù)位是指數(shù)碼在一個數(shù)中所處的位置;基數(shù)是指在某種進位計數(shù)制中,每個數(shù)位上所能使用的數(shù)碼的個數(shù),位權(quán)是指在某種進位計數(shù)制中,每個數(shù)位上的數(shù)碼所代表的數(shù)值的大小,等于在這個數(shù)位上的數(shù)碼乘上一個固定的數(shù)值,每個固定的數(shù)值就是這種進位計數(shù)制中該數(shù)位上的位權(quán)。數(shù)碼所處的位置不同,代表數(shù)的大小也不同。下一頁返回第四節(jié)數(shù)制與碼制1.十進制十進位計數(shù)制簡稱十進制。十進制數(shù)具有下列特點:(1)有十個不同的數(shù)碼符號0、1、2、3、4、5、6、7、8、9.(2)每一個數(shù)碼符號根據(jù)它在這個數(shù)中所處的位置(數(shù)位),按“逢十進一”來決定其實際數(shù)值,即各數(shù)位的位權(quán)是以10為底的冪次方。2.二進制二進位計數(shù)制簡稱二進制。一個二進制數(shù)位簡稱為位(英文名為bit)。計算機中最直接、最基本的操作就是對二進制位的操作。二進制數(shù)具有下列特點:(1)有兩個不同的數(shù)碼符號0、1。(2)每個數(shù)碼符號根據(jù)它在這個數(shù)中的數(shù)位,按“逢二進一”來決定其實際數(shù)值。上一頁下一頁返回第四節(jié)數(shù)制與碼制3.十六進制二進制數(shù)書寫冗長、易錯、難記,而十進制數(shù)與二進制數(shù)之間的轉(zhuǎn)換過程復(fù)雜,所以一般用十六進制數(shù)或八進制數(shù)來表示。十六進位計數(shù)制簡稱為十六進制。十六進制具有下列特點:(1)它有十六個不同的數(shù)碼符號0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。(2)每個數(shù)碼符號根據(jù)它在這個數(shù)中的數(shù)位,按“逢十六進一”來決定其實際數(shù)值。上一頁下一頁返回第四節(jié)數(shù)制與碼制二、碼制數(shù)值在計算機中表示形式為機器數(shù),計算機只能識別0和1,使用的是二進制,而在日常生活中人們使用的是十進制,為了能方便地與二進制轉(zhuǎn)換,就是用了十六進制(24)和八進制(23)。數(shù)值有正負之分,計算機就用一個數(shù)的最高位存放符號(0為正,1為負)。這就是機器數(shù)的原碼了。假設(shè)機器能處理的位數(shù)為8,即字長為1byte,原碼能表示數(shù)值的范圍為(-127~-0,+0~+127)共256個。有了數(shù)值的表示方法就可以對數(shù)值進行算術(shù)運算,但是很快就發(fā)現(xiàn)用帶符號位的原碼進行乘除運算時結(jié)果正確,而在加減運算的時候就出現(xiàn)了為題,假設(shè)字長為8bits:上一頁下一頁返回第四節(jié)數(shù)制與碼制上式顯然不正確,因為在兩個整數(shù)的加法運算中是沒有問題的,于是就發(fā)現(xiàn)問題出現(xiàn)在帶符號位的負數(shù)身上,對除符號位外的其余各位逐位取反就產(chǎn)生了反碼。反碼的取值空間和原碼相同且一一對應(yīng)。下面是反碼的減法運算:上一頁下一頁返回第四節(jié)數(shù)制與碼制上式也不正確,再如:上面這種計算方法是正確的。問題出現(xiàn)在(+0)和(-0)上,在人們的計算概念中零是沒有正負之分的。于是就引入了補碼概念:負數(shù)的補碼就是對反碼加一,而正數(shù)不變,正數(shù)的原碼、反碼、補碼是一樣的。在補碼中用(-128)代替了(-0),所以補碼的表示范圍為(-128~0~127)共256個。(-128)沒有相對應(yīng)的原碼和反碼,(-128)=(10000000)。上一頁下一頁返回第四節(jié)數(shù)制與碼制下面是補碼的加減運算:上一頁下一頁返回第四節(jié)數(shù)制與碼制以上這幾種計算方法是正確的。補碼的設(shè)計目的是:(1)使符號位能有效值部分一起參加運算,從而簡化運算規(guī)則;(2)使減法運算轉(zhuǎn)換為加法運算,進一步簡化計算機中運算器的線路設(shè)計。所有這些轉(zhuǎn)換都是在計算機的最底層進行的,而在我們使用的匯編、C語言等其他高級語言中使用的都是原碼。上一頁下一頁返回第四節(jié)數(shù)制與碼制ASCII碼是美國信息交換用標準代碼。ASCII碼雖然是美國國家標準,但它已被國際標準化組織(ISO)認定為國際標準,為世界公認,并在世界范圍內(nèi)通用。ASCII碼用一個8位二進制數(shù)(字節(jié))表示,每個字節(jié)只占用了7位,最高位恒為0。7位ASCII碼可以表示128(27=128)種字符,其中通用控制字符34個,阿拉伯?dāng)?shù)字10個,大小寫英文字母52個,各種標點符號和運算符號共有32個。上一頁返回圖1-3微型計算機的組成返回第二章MSC-51單片機的結(jié)構(gòu)和原理第一節(jié)MCS-51單片機的內(nèi)部組成及信號引腳第二節(jié)MCS-51單片機的中央處理器CPU第三節(jié)MCS-51的內(nèi)部存儲器第四節(jié)I/O端口、時鐘電路與時序第五節(jié)MCS-51單片機工作方式第六節(jié)MCS-51單片機的存儲器第一節(jié)MCS-51單片機的內(nèi)部組成及信號引腳MCS-51系列單片微型機計算機包括8031、8051、8751等型號,其代表型號是8051。8051內(nèi)部組成方框圖如圖2-1所示,本書也將主要以8051單片機的代表來介紹MCS-51系列單片機的工作原理。通常計算機須由三大基本單元,即中央處理器、存儲器和輸入/輸出設(shè)備組成。下一頁返回第一節(jié)MCS-51單片機的內(nèi)部組成及信號引腳一、MCS-51單片機的基本組成8051單片機的結(jié)構(gòu)組成如圖2-1所示,各部分情況介紹如下:1.中央處理器顧名思義,這是單片機的核心部分。也有人將其稱為MCU,在這些公司提供的器件使用手冊上還有μP的寫法,都是同一個意思。8051單片機的CPU由算術(shù)邏輯部件(ALU)、累加器(ACC)、寄存器B、暫存器TMP1和TMP2、程序狀態(tài)寄存器(PSW)等運算部件,以及指令寄存器(IR)、指令譯碼器(ID)、數(shù)據(jù)指針寄存器(DPTR)、程序指針寄存器(PC)、堆棧指針(SP)等控制部件組成。上一頁下一頁返回第一節(jié)MCS-51單片機的內(nèi)部組成及信號引腳2.內(nèi)部數(shù)據(jù)寄存器(內(nèi)部RAM)MCS-51的CPU能處理8位二進制。8051芯片中共有256個RAM單元,但其中后128單元被專用寄存器占用,能作為寄存器供用戶使用的只是前128個單元,用于存放可讀寫的數(shù)據(jù)。因此,通常所說的內(nèi)部數(shù)據(jù)存儲器就是指前128單元,簡稱內(nèi)部RAM。3.內(nèi)部程序存儲器(內(nèi)部ROM)根據(jù)有無片內(nèi)ROM,8051單片機有三個品種,即無ROM版本為8031、工廠掩膜只讀ROM版本為8051、EPROM版本為8751.8051共有4KB掩膜ROM,用于存放程序、原始數(shù)據(jù)或表格,簡稱內(nèi)部ROM。上一頁下一頁返回第一節(jié)MCS-51單片機的內(nèi)部組成及信號引腳4.定時器/計數(shù)器8051有兩個16位定時器/計數(shù)器(T0,T1),它們由特殊功能寄存器TMOD和TCON分別選擇它們的工作方式和表示它們的狀態(tài)。在定時器功能中,每個機器周期定時器加1,可以認為它是機器周期計數(shù)器,由于1個機器周期包含12個振蕩周期,定時器計數(shù)到的脈沖為振蕩頻率的1/12。5.并行I/O口MCS-51共有四個8位的I/O口(P0、P1、P2、P3),以實現(xiàn)數(shù)據(jù)的并行輸入輸出。上一頁下一頁返回第一節(jié)MCS-51單片機的內(nèi)部組成及信號引腳6.串行口MCS-51單片機有一個全雙工的串行口,以實現(xiàn)單片機和其他設(shè)備之間的穿行數(shù)據(jù)傳送。該串行口功能較強,既可作為全雙工異步通信收發(fā)器使用,也可作為同步移位器使用。7.中斷控制系統(tǒng)MCS-51單片機的中斷功能較強,以滿足控制應(yīng)用的需要。8051共有5各中斷源,即外部中斷2個,定時/計數(shù)中斷2個,串行中斷1個。全部中斷分為高級和低級兩個優(yōu)先級別。上一頁下一頁返回第一節(jié)MCS-51單片機的內(nèi)部組成及信號引腳8.時鐘電路MCS-51芯片的內(nèi)部有時鐘電路,但石英晶體和微調(diào)電容需外接。時鐘電路為單片機產(chǎn)生時鐘脈沖序列。系統(tǒng)允許的最高晶振頻率為12MHZ。從上述內(nèi)容可以看出,MCS-51雖然是一個單片機芯片,但作為計算機應(yīng)該具有的基本部件它都包括,因此實際上它是一個簡單的微型計算機系統(tǒng)。上一頁下一頁返回第一節(jié)MCS-51單片機的內(nèi)部組成及信號引腳二、MCS-51的信號引腳MCS-51微處理器采用40引腳的雙列直插封裝(DIP)方式,如圖2-2所示,仔0條引腳中,有2條專用于主電源的引腳,2條外接晶振引腳,4條控制引腳和3條I/O引腳。下面分別敘述各引腳的功能。主電源引腳VSS和VCC:VSS(20)接地,VCC(40)正常操作時接+5V電源。外接晶振引腳XTAL1和XTAL2:當(dāng)外接晶體振蕩器時,XTAL1和XTAL2分別接在外接晶體兩端;當(dāng)采用外部時鐘方式時,XTAL1接地,XTAL2接外來振蕩信號。上一頁下一頁返回第一節(jié)MCS-51單片機的內(nèi)部組成及信號引腳控制引腳RST/VPD,ALE/、、。對于RST/VPD:當(dāng)振蕩器正常運行時,在此引腳上出現(xiàn)兩個機器周期以上的高電平使微處理器復(fù)位;VCC掉電期間,此引腳可接備用電源,以保持內(nèi)部RAM的數(shù)據(jù)。:當(dāng)訪問外部存儲器時,由微處理器的P2口送出地址的高8為,P0口送出地址的低8位,數(shù)據(jù)通過P0口傳送。:是程序存儲器讀選通信號,低電平有效。上一頁下一頁返回第一節(jié)MCS-51單片機的內(nèi)部組成及信號引腳EA/VPP(31):當(dāng)EA端保持高電平時,訪問內(nèi)部程序存取器(4KB),但當(dāng)PC(程序計數(shù)器)值超過0FFFH時,將自動轉(zhuǎn)向執(zhí)行外部程序存儲器內(nèi)的程序;當(dāng)EA保持低電平時,則只訪問外部程序存儲器(從0000H地址開始),而不管微處理器內(nèi)部是否有程序存儲器。輸入輸出引腳P0.0~P0.7(39~~32):P0口是一個漏極開路型準雙向I/O口。在訪問外部存儲器時,它是分時多路轉(zhuǎn)換的地址(低8位)和數(shù)據(jù)總線,在訪問期間激活了內(nèi)部的上拉電阻。在EPROM編程時,它接收指令字節(jié),而在驗證程序時,則輸出指令字節(jié)。驗證時,要求外接上拉電阻。上一頁下一頁返回第一節(jié)MCS-51單片機的內(nèi)部組成及信號引腳P1.0~P1.7(1~8):P1口是帶內(nèi)部上拉電阻的8位雙向I/O口。在EPROM編程和程序驗證時,它接收低8位地址。P2.0~P2.7(21~28):P2口是一個帶內(nèi)部上拉電阻的8位雙向I/O口。在訪問外部存儲器時,它送出高8位地址。在對EFROM編程和程序驗證期間,它接收高8位地址。P3.0~P3.7(10~17):P3口是一個帶內(nèi)部上拉電阻的8位雙向I/O口。在MCS-51中,這8個引腳還兼有專用功能。上一頁返回第二節(jié)MCS-51單片機的中央處理器CPU一、運算器運算器包括算術(shù)邏輯部件ALU、位處理器、累加器A、寄存器B、暫存器以及程序狀態(tài)寄存器PSW等。該模塊的功能是實現(xiàn)數(shù)據(jù)的算術(shù)、邏輯運算、位變量處理和數(shù)據(jù)傳送等操作。ALU的功能十分強,它不僅可對8位變量進行邏輯“與”、“或”、“異或”、循環(huán)、求補和清零等基本操作,還可以進行加、減、乘、除等基本運算。ALU還具有一般的微機ALU所不具備的功能,即位處理操作,它可以位(bit)變量進行處理,如置位、清零、求補、測試轉(zhuǎn)移及邏輯“與”、“或”等操作。下一頁返回第二節(jié)MCS-51單片機的中央處理器CPU由此可見,ALU在算術(shù)運算及控制處理方面能力是很強的。累加器A是一個8位的累加器,從功能上看,它與一般微機的累加器相比沒什么特別之處,但需要說明的是A的進位標志Cy是特殊的,因為它同時又是位處理器的一位累加器。寄存器B是為執(zhí)行乘法和除法操作設(shè)置的,在不執(zhí)行乘、除法操作的一般情況下可把它當(dāng)做一個普通寄存器使用。MCS-51的程序狀態(tài)寄存器PSW是一個8位可讀寫的寄存器,它的不同位包含了程序狀態(tài)的不同信息,掌握并牢記PSW各位的含義是十分重要的,因為在程序設(shè)計中,經(jīng)常會與PSW的各個位打交道。PSW各位的定義如表2-1所示。上一頁下一頁返回第二節(jié)MCS-51單片機的中央處理器CPU二、控制器控制部件是微處理器的神經(jīng)中樞,以主振頻率位基準??刂破骺刂艭PU的時序,對指令進行譯碼,然后發(fā)出各種控制信號,將各個硬件環(huán)節(jié)組織在一起。CPU的時序為每個機器周期(12個振蕩周期)由6個狀態(tài)周期組成,即S1、S2、……S6,而每個狀態(tài)周期由兩個時相P1,P2組成。上一頁下一頁返回第二節(jié)MCS-51單片機的中央處理器CPUCPU功能的強弱,主要可以用下幾個指標來衡量:(1)內(nèi)部總現(xiàn)寬度,也稱字長、位數(shù)。位數(shù)越大運算精度越高,運算速度越快。(2)指令數(shù)。指令越多、編程越靈活。(3)執(zhí)行每條指令所需時間或每秒鐘平均執(zhí)行指令條數(shù),常用的MIPS表示每秒鐘執(zhí)行指令的百萬條數(shù)。(4)尋址方式越多、對某一空間的尋址越靈活。MCS-51有5種尋址方式,MCS-96有6種尋址方式,Z80有6種尋址方式,MC6805有10種尋址方式。上一頁返回第三節(jié)MCS-51的內(nèi)部存儲器一、內(nèi)部數(shù)據(jù)存儲器的結(jié)構(gòu)(圖2-3)MCS-51數(shù)據(jù)存儲器在物理上和邏輯上都分為兩個地址空間:一個內(nèi)部和一個外部數(shù)據(jù)存儲器空間。訪問內(nèi)部數(shù)據(jù)存儲器,用MOV指令,訪問外部數(shù)據(jù)存儲器用MOVX指令。MCS-51內(nèi)部數(shù)據(jù)存儲器共有128個字節(jié)單元。內(nèi)部數(shù)據(jù)存儲器的00H~1FH(共32個單元)為4個寄存器工作區(qū),每區(qū)8個寄存器,表示為R0~R7,如表2-2所示。由于每個寄存器區(qū)的8個寄存器都記為R0~R7,因此每次只能選擇一個寄存器區(qū)工作。寄存器工作區(qū)的選擇是通過狀態(tài)標志寄存器PSW的第3、4位,即RS1、RS0進行。下一頁返回第三節(jié)MCS-51的內(nèi)部存儲器內(nèi)部數(shù)據(jù)存儲器20H~2FH(16個單元)既可按字節(jié)尋址,作為一般工作單元,又可以按位CPU直接尋址,進行位操作。二、堆棧及堆棧指示器堆棧實際上是一種數(shù)據(jù)結(jié)構(gòu)(如圖2-4所示),是只允許在其一端進行數(shù)據(jù)插入和數(shù)據(jù)刪除操作的線性表。數(shù)據(jù)寫入堆棧稱為壓入運算(PUSH),也叫入棧。數(shù)據(jù)從堆棧中讀出稱之為彈出運算(POP),也叫出棧。堆棧的最大特點就是“后進先出”的數(shù)據(jù)操作規(guī)則,常把“后進先出”寫為LIFO(Last-In.First-Out),即先入棧的數(shù)據(jù)存放在棧的底部。堆棧有兩種類型:向上生長型和向下生長型。上一頁下一頁返回第三節(jié)MCS-51的內(nèi)部存儲器不論是數(shù)據(jù)進棧還是數(shù)據(jù)出棧,都是對堆棧的棧頂單元進行的,即對棧頂單元的寫和讀操作。為了指示棧頂?shù)刂罚O(shè)置堆棧指示器SP,其內(nèi)容就是堆棧棧頂?shù)拇鎯卧刂?。MCS-51系列微處理器的堆棧是以棧頂滿的形式工作的。在執(zhí)行PUSH期間,壓入數(shù)據(jù)前,SP加1;反之,在執(zhí)行POP期間,彈出數(shù)據(jù)前,SP減1.SP寬為8位。由于堆棧指針可以由指令改變,因此堆??梢栽O(shè)置在片內(nèi)RAM中任一連續(xù)空間內(nèi)。復(fù)位后,SP初始化值位07H,所以,堆棧從08H單元開始。上一頁下一頁返回第三節(jié)MCS-51的內(nèi)部存儲器三、程序存儲器程序存儲器空間為0000H~FFFFH,共64KB,其結(jié)構(gòu)如圖2-5所示。其中低4KB(0000H-0FFFH)可以在單片機外部(8031),也可以在內(nèi)部(8051、8751)。對沒有片內(nèi)ROM的8031,只要在硬件設(shè)計時使,就可以使程序執(zhí)行始終在外部ROM中進行;對有片內(nèi)ROM的8051和8751,只要在硬件設(shè)計時使,程序開始執(zhí)行的前4KB總是在片內(nèi)ROM中,超過0FFFH(4KB)時,在片外ROM中。上一頁下一頁返回第三節(jié)MCS-51的內(nèi)部存儲器無論,還是,都由16位程序計數(shù)器(PC)作為尋址裝置。在整個程序存儲器的64KB空間中,0000H~0023H空間只能用于存放中斷服務(wù)子程序的向量地址,還有一組特殊單元是0003H~002AH,共40個單元。這40個單元被均勻地分為五段,作為五個中斷源的中斷地址,如表2-3所示。上一頁返回第四節(jié)I/O端口、時鐘電路與時序一、MCS-51的I/O端口輸入/輸出口也稱為I/O端口。MCS-51單片機的四個I/O端口都是8位雙向口,這些端口在結(jié)構(gòu)和特性上是基本相同的,但又各具特點。I/O端口的作用在單片機中是一個集數(shù)據(jù)輸入緩沖、數(shù)據(jù)輸出驅(qū)動及鎖存等多項功能為一體的電路。8051共有32根引腳全部為I/O端口,分為4個8位口。8051單片機的4個端口都是雙向的,每個端口都包含鎖存器(特殊功能寄存器中P0~P3,地址分別為80H、90H、0A0H、0B0H)、輸出驅(qū)動器和輸入緩沖器。下一頁返回第四節(jié)I/O端口、時鐘電路與時序每個端口的每一根引腳都可以獨立地用作輸入或輸出引腳。P0端口是三態(tài)雙向端口,稱為數(shù)據(jù)總線端口,因為只有該端口能直接用于對外部存儲器的讀/寫數(shù)據(jù)操作。P0端口還用以輸出外部存儲器的低8位地址。P1端口是8位準雙向端口,作通用I/O端口使用,在輸出驅(qū)動器部分,P1端口有別于P0端口,它接有內(nèi)部上拉電阻。P1端口的每一位可以獨立地定義為輸入或者輸出,因此,P1端口既可以作為8位并行I/O端口,又可作為8位I/O端口。上一頁下一頁返回第四節(jié)I/O端口、時鐘電路與時序P2端口是8位準雙向I/O端口,P2端口可作通用I/O端口使用。P2端口電路中比P1端口多了一個多路轉(zhuǎn)換電路MUX,這又正好與P0端口一樣。但通常應(yīng)用情況下,P2端口是作為高位地址線使用,此時多路轉(zhuǎn)換開關(guān)應(yīng)倒向相反方向。當(dāng)外接程序存儲數(shù)據(jù)時,P3端口給出地址的高8位,此時不能用作通用I/O端口。P3端口是一個8位的準雙向I/O端口。它具有多種功能:可以作為一般準雙向I/O端口,具有字節(jié)操作和位操作兩種工作方式;也可以用8條I/O線獨立地作為串行I/O端口和其他控制信號。上一頁下一頁返回第四節(jié)I/O端口、時鐘電路與時序P1、P2、P3口的輸出緩沖器可驅(qū)動4個TTL電路。對于HMOS芯片單片機的I/O口,在正常情況下,可任意由TTL或NMOS電路驅(qū)動。HMOS及CMOS型單片機的I/O由集電極開路或漏極開路的輸出來驅(qū)動時,不必外加上拉電阻。P0端口輸出緩沖器能驅(qū)動8個TTL電路,驅(qū)動MOS電路須外接上拉電阻,但P0端口用作地址/數(shù)據(jù)總線時,可直接驅(qū)動MOS的輸入而不必外加上拉電阻。如果MCS-51本書的I/O端口不能滿足用戶需要時,可以擴展I/O端口,MCS-51單片機外部RAM存儲器和外部擴展的I/O端口是同一編址的,CPU對它們的操作指令也相同,在外部64KB的RAM空間內(nèi),可以劃出一個區(qū)域作為擴展I/O端口的地址空間,因此I/O端口的擴展幾乎是不受限制的。上一頁下一頁返回第四節(jié)I/O端口、時鐘電路與時序二、時鐘電路MCS-51單片機的時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩方式和外部振蕩方式。在引腳XTAL1和XTAL2外接晶體振蕩器或陶瓷諧振器,就構(gòu)成了內(nèi)部振蕩方式。由于單片機內(nèi)部有一個高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。兩種不同的時鐘電路如圖2-6所示。上一頁下一頁返回第四節(jié)I/O端口、時鐘電路與時序?qū)τ趦?nèi)部振蕩方式的外部電路,電容器C1、C2起穩(wěn)定振蕩頻率、快速起振的作用,其電容值一般在5~30pF。晶振頻率的典型值位12MHz,采用6MHz的情況也比較多。內(nèi)部振蕩方式所得的時鐘信號比較穩(wěn)定,實用電路中使用較多。外部振蕩方式是把外部已有的時鐘信號引入單片機內(nèi)。這種方式適宜來使單片機的時鐘與外部信號保持同步。外部振蕩信號由XTAL2引入,XTAL1接地。為了提高輸入電路的驅(qū)動能力,通常使外部信號經(jīng)過一個帶有上拉電阻的TTL反相門后介入XTAL2。上一頁下一頁返回第四節(jié)I/O端口、時鐘電路與時序三、基本時序單位時序是用定是單位來說明的。MCS-51的時序定時單位共有4個,從小到大依次是:拍節(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)。上一頁下一頁返回第四節(jié)I/O端口、時鐘電路與時序MCS-51采用定時控制方式,因此它有固定的機器周期。一個機器周期總共有12個拍節(jié),分別記作s1p1,s1p2,……s16p2。由于一個機器周期共有12個振蕩脈沖周期,因此機器周期就是振蕩脈沖的12分頻,當(dāng)振蕩脈沖頻率為12MHz時,一個機器周期為1μs當(dāng)振蕩脈沖頻率為6MHz時,一個機器周期為2μs.指令周期是最大的時序定時單位,執(zhí)行一條指令所需要的時間稱之為指令周期。MCS-51的指令周期根據(jù)指令的不同,可包含有一至四個機器周期。上一頁返回第五節(jié)MCS-51單片機工作方式一、復(fù)位方式當(dāng)MCS-51系列單片機的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個機器周期以上的高電平時,單片機就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復(fù)位狀態(tài)。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和上電或開關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作。上電或開關(guān)復(fù)位要求電源接通后,單片機自動復(fù)位,并且在單片機運行期間,用開關(guān)操作也能使單片機復(fù)位。下一頁返回第五節(jié)MCS-51單片機工作方式上電后,由于電容的充電和反相門的作用,使RST持續(xù)一段時間的高電平。當(dāng)單片機已在運行當(dāng)中時,按下復(fù)位鍵K后松開,也能使RST為一段時間的高電平,從而實現(xiàn)上電或開關(guān)復(fù)位的操作。根據(jù)時間操作的經(jīng)驗,可以依據(jù)實際情況給出這兩種復(fù)位電路的電容、電阻參考值。通常的復(fù)位邏輯電路如圖2-7所示。上一頁下一頁返回第五節(jié)MCS-51單片機工作方式二、程序執(zhí)行方式單片機上電復(fù)位和上電或開關(guān)復(fù)位后,單片機便可進入連續(xù)執(zhí)行程序的狀態(tài)。由于復(fù)位時已把PC值清零。所以,程序?qū)?000H單元開始執(zhí)行。如果用戶需要從別的起始地址開始執(zhí)行程序,則必須先把該起始地址輸入單片機,然后才能從該起始地址開始執(zhí)行。單片機從執(zhí)行程序開始除非遇到設(shè)定斷點或軟件出現(xiàn)故障,否則中途不會停止,一直至程序執(zhí)行完為止。上一頁下一頁返回第五節(jié)MCS-51單片機工作方式三、低功耗方式8051在掉電保護情況下,由備用電源給單片機低功耗供電,因此掉電保護方式實際上就進入了低功耗方式。但與HMOS的8051不同,CHMOS的80C51卻有兩種低功耗方式,即待機方式和進入掉電保護方式。要想使單片機進入待機或掉電保護方式,只要執(zhí)行一條能使IDL或PD位為1的指令就可以完成。如果使用指令使PCON寄存器IDL位置1,則80C51即進入待機方式。這是振蕩器仍然運行,并向中斷邏輯、串行口和定時器/計數(shù)器電路提供時鐘,但向CPU提供時鐘的電路被阻斷,因此CPU不能工作,與CPU有關(guān)的如SP、PC、PWS、ACC以及全部通用寄存器也都被“凍結(jié)”在原狀態(tài)。在待機方式下,中斷功能繼續(xù)存在。上一頁下一頁返回第五節(jié)MCS-51單片機工作方式四、掉電保護方式單片機系統(tǒng)在運行過程中,如發(fā)生掉電故障,將會丟失RAM和寄存器中的程序和數(shù)據(jù),其后果有時是很嚴重的。為此MCS-51單片機設(shè)置有掉電保護措施,進行掉電保護處理,具體做法是,先把有用信息轉(zhuǎn)存,然后再啟用備用電源維持供電。所謂信息轉(zhuǎn)存是指當(dāng)電源出現(xiàn)故障時,應(yīng)立即將系統(tǒng)的有用信息轉(zhuǎn)存到內(nèi)部RAM中。信息轉(zhuǎn)存是通過中斷服務(wù)程序完成的。信息轉(zhuǎn)存后還應(yīng)維持內(nèi)部RAM的供電,才能保護轉(zhuǎn)存信息不被破壞。為此,系統(tǒng)應(yīng)裝有備用電源,并在掉電后立即接通備用電源。備用電源由單片機的RST/VPD引腳引入。上一頁返回第六節(jié)MCS-51單片機的存儲器一、存儲器的分類程序存儲器一般采用只讀存儲器,因為這種存儲器在電源關(guān)斷后,仍能保存程序,在系統(tǒng)上電后,CPU可取出這些指令予以重新執(zhí)行。數(shù)據(jù)存儲器一般采用RAM芯片,這種存儲器在電源關(guān)斷后,存儲的數(shù)據(jù)將全部丟失。RAM器件有兩類,即靜態(tài)RAM(SRAM)和動態(tài)RAM(DRAM)。另外,隨著時代的發(fā)展還出現(xiàn)了許多新的或特殊的存儲器。下一頁返回第六節(jié)MCS-51單片機的存儲器二、擴展存儲器的編址所謂存儲器編址,就是使用系統(tǒng)提供的地址線,通過適當(dāng)連接,最終達到一個編址唯一對應(yīng)存儲器中一個存儲單元的目的。由于存儲器通常都是由多片存儲芯片組成的,為此存儲器編址分為兩個層次,即存儲芯片的選擇和芯片內(nèi)部存儲單元的選擇。芯片的選擇比較復(fù)雜,所謂的存儲器編址,實際上主要是研究芯片的選擇問題??偟膩碚f,芯片的選擇共有兩種方法:譯碼法和線選法。上一頁下一頁返回第六節(jié)MCS-51單片機的存儲器所謂譯碼法就是使用譯碼器對系統(tǒng)的高位地址進行譯碼,以其譯碼輸出作為存儲芯片的片選信號。這是一種常用的存儲器編址方法,能有效地利用存儲空間,適用于大容量多芯片存儲器擴展。譯碼電路可以使用現(xiàn)有的譯碼器芯片,圖2-8位譯碼器芯片,表2-4為真值表。常用的譯碼形式有2-4譯碼,3-8譯碼以及4-16譯碼等。上一頁下一頁返回第六節(jié)MCS-51單片機的存儲器三、程序存儲器的擴展程序存儲器擴展使用只讀存儲器芯片,只讀存儲器簡稱為ROM。MCS-51單片機程序存儲器的尋址空間為64KB,對于8051/8751片內(nèi)程序存儲器為4KB的ROM或EPROM,在單片機的應(yīng)用系統(tǒng)中,片內(nèi)的存儲容量往往不夠,特別是8031,片內(nèi)沒有程序存儲器,必須外擴程序存儲器。圖2-9為程序存儲器的擴展圖。上一頁下一頁返回第六節(jié)MCS-51單片機的存儲器CPU在由外部程序存儲器取指令時,16位地址的低8位(PCL)由P0口輸出,高8位(PCH)由P2口輸出,而指令的8位指令碼而通過P0口輸入。CPU讀取的指令有兩種情況:一是不訪問數(shù)據(jù)存儲器的指令;二是訪問數(shù)據(jù)存儲器的指令。在不執(zhí)行MOVEX指令時,P2口專門用于輸出PCH中的內(nèi)容,因有鎖存功能,可直接與外部存儲器的地址線相連。P0口除了輸出PCL中的內(nèi)容外,還要輸入指令,所以,必須用ALE信號鎖存PCL。在每個機器周期中,允許地址鎖存信號ALE兩次有效,且在下降沿時鎖存PCL。ALE信號的頻率是振蕩頻率的1/6,可用來做外部時鐘和定時時鐘。對而言,也是每個機器中期兩次有效,適用于選通外部程序存儲器,使指令由P0口進入片內(nèi)。上一頁下一頁返回第六節(jié)MCS-51單片機的存儲器MCS-51單片機應(yīng)用系統(tǒng)中使用得最多的EPROM程序存儲器時Intel公司典型的27系列芯片,如2764、27128和27512等芯片。EPROM一般都有五種工作方式:(1)讀方式:一般系統(tǒng)工作在這種方式。進入這種方式的條件是使片選控制線為低,同時讓輸出允許控制線為低,就可將指定地址單元的內(nèi)容從數(shù)據(jù)總線上讀出。(2)維持方式:當(dāng)片選控制為高電平時,芯片進入維持方式,這時輸出高阻抗懸浮狀態(tài),不占用數(shù)據(jù)總線。上一頁下一頁返回第六節(jié)MCS-51單片機的存儲器(3)編程方式:在Vpp端加上規(guī)定好的高壓,和端加上合適的電平,就能將數(shù)據(jù)線上的數(shù)據(jù)固化到指定的地址單元。(4)編程校核方式:在Vpp端保持相應(yīng)的高壓,再按讀出方式操作,讀出編程固化好的內(nèi)容,以校核寫入的內(nèi)容是否正確。(5)編程禁止方式:當(dāng)片選信號面無效時,輸出呈高阻狀態(tài)。上一頁下一頁返回第六節(jié)MCS-51單片機的存儲器四、數(shù)據(jù)存取器的擴展MCS-51芯片內(nèi)部具有128B空間的RAM存儲器,它們可以作為寄存器、堆棧、數(shù)據(jù)緩沖器。CPU對其內(nèi)部RAM有豐富的操作指令,因此這個RAM是十分珍貴的資源。在許多系統(tǒng)中,僅僅片內(nèi)的RAM存儲器往往不夠,在這種情況下,可以擴展外部數(shù)據(jù)存儲器。圖2-11給出了單片機擴展RAM的電路結(jié)構(gòu)。圖中P0口分時傳動RAM的低8位地址和數(shù)據(jù),P2口為高8位地址線,用于對RAM進行頁尋址。在外部RAM讀/寫周期,CPU產(chǎn)生讀寫選通信號。上一頁下一頁返回第六節(jié)MCS-51單片機的存儲器外部數(shù)據(jù)存儲器讀寫的時序通常是,在其讀周期中,P2口輸出外部RAM單元的高8位地址,P0口分時傳送低8位地址及數(shù)據(jù)。當(dāng)?shù)刂锋i存允許信號ALE為高電平時,P0口輸出的地址信息有效,ALE的下降沿將此地址打入外部地址鎖存器,接著P0口變?yōu)檩斎敕绞?,讀信號有效,選通外部RAM,相應(yīng)存儲單元的內(nèi)容出現(xiàn)在P0口,由CPU讀入累加器。外部數(shù)據(jù)存儲器寫周期波形,其操作過程與讀周期類似。寫操作時,在ALE下降為低電平以后,寫信號才有效,P0口上出現(xiàn)的數(shù)據(jù)寫入相應(yīng)的RAM單元。上一頁返回圖2-18051單片機的組成結(jié)構(gòu)圖返回圖2-28051單片機的引腳信號返回表2-1PSW狀態(tài)字的組成返回圖2-3MCS-51內(nèi)部數(shù)據(jù)區(qū)返回表2-2寄存器工作區(qū)的分配返回圖2-4堆棧的結(jié)構(gòu)返回圖2-5程序存儲器的結(jié)構(gòu)返回表2-3中斷向量的入口地址返回圖2-6內(nèi)部和外部時鐘電路返回圖2-7復(fù)位電路邏輯圖返回圖2-8譯碼器芯片返回表2-4真值表返回圖2-9程序存儲器的擴展圖返回圖2-11外部數(shù)據(jù)存儲器的擴展返回第三章MCS-51單片機系統(tǒng)程序設(shè)計第一節(jié)MCS-51指令系統(tǒng)概述第二節(jié)MCS-51單片機指令詳解第三節(jié)MCS-51單片機系統(tǒng)程序設(shè)計實例第一節(jié)MCS-51指令系統(tǒng)概述一、概述MCS-51指令系統(tǒng)是一種簡明易掌握、效率較高的指令系統(tǒng)。MCS-51的基本指令共111條,其中單字節(jié)指令49條,雙字節(jié)指令45條,三字節(jié)指令17條。從指令的執(zhí)行時間來看,單機器周期指令64條,雙機器周期指令45條,只有乘、除兩條指令的執(zhí)行時間為4個機器周期。指令的表示方法稱之為指令格式,其內(nèi)容包括指令的長度和指令內(nèi)部信息的安排等。一條指令通常由兩部分組成,即操作碼和操作數(shù)。下一頁返回第一節(jié)MCS-51指令系統(tǒng)概述通常在MCS-51指令系統(tǒng)中,有一字節(jié)、二字節(jié)和三字節(jié)等不同長度的指令。一字節(jié)指令只有一個字節(jié),操作碼和操作數(shù)信息同在其中。二字節(jié)指令包括兩個字節(jié),其中一個字節(jié)為操作碼,第二個字節(jié)是操作數(shù)。三字節(jié)指令中,操作碼占一個字節(jié),操作數(shù)占兩個字節(jié),其中操作數(shù)既可能是數(shù)據(jù),也可能是地址。二、尋址方式MCS-51共有5種尋址方式,現(xiàn)介紹如下:上一頁下一頁返回第一節(jié)MCS-51指令系統(tǒng)概述1.立即尋址操作數(shù)就寫在指令中,和操作碼一起放在程序存儲器中。把“#”號放在立即數(shù)前面,以表示該尋址方式為立即尋址,如#20H。2.寄存器尋址操作數(shù)放在寄存中,在指令中直接以寄存器的名字來表示操作數(shù)的地址。例如MOVA,R0就屬于寄存器尋址,即將RO寄存器的內(nèi)容送到累加器A中。3.直接尋址操作數(shù)放在單片機的內(nèi)部RAM某單元中,在指令中直接寫出該單元的地址。如前例的ADDA,70H中的70H。上一頁下一頁返回第一節(jié)MCS-51指令系統(tǒng)概述4.寄存器間接尋址寄存器間接尋址方式可用于訪問內(nèi)部RAM或外部數(shù)據(jù)存儲器。訪問內(nèi)部RAM或外部數(shù)據(jù)存儲器的低256個字節(jié)時,可采用R0或R1作為間接寄存器。這類指令為單字節(jié)指令,其最低位是表示采用R0還是R1作為間接寄存器。這種尋址方式的示意圖如圖3-1所示。訪問外部數(shù)據(jù)存儲器的低256字節(jié)時,只要把MOV改為MOVX就行了。訪問外部數(shù)據(jù)存儲器,還可用數(shù)據(jù)指針DPTR作為間址寄存器,DPTR是16位寄存器,故它可對整個外部數(shù)據(jù)存儲器空間(64K)尋址。在執(zhí)行PUSH和POP指令時,也采用寄存器間接尋址,這是堆棧指針SP用作間接寄存器。上一頁下一頁返回第一節(jié)MCS-51指令系統(tǒng)概述5.基址寄存器加變址寄存器間接尋址這種尋址方式用于訪問程序寄存器的一個單元,該單元的地址是基址寄存器(DPTR或PC)的內(nèi)容與變地址寄存器A的內(nèi)容之和。這種尋址方式對查表訪問特別有用。尋址方式的示意圖如圖3-2所示。三、指令執(zhí)行過程和指令符號意義單片機執(zhí)行程序的過程,實際上就是執(zhí)行我們所編制程序的過程,即執(zhí)行逐條指令的過程。計算機每執(zhí)行一條指令都可分為三個階段進行,即取指令——分析指令——執(zhí)行指令。上一頁下一頁返回第一節(jié)MCS-51指令系統(tǒng)概述取指令的任務(wù)是:根據(jù)程序計數(shù)器PC中的值從程序存儲器讀出現(xiàn)行指令,送到指令寄存器。分析指令階段的任務(wù)是:將指令寄存器中的指令操作碼讀出后進行譯碼,分析其指令性質(zhì),如指令要求操作數(shù),則尋找操作數(shù)地址。計算機執(zhí)行程序的過程實際上就是逐條指令地重復(fù)上述操作過程,直至遇到停機指令或循環(huán)等到指令。一般計算機進行工作時,首先要通過外部設(shè)備把程序和數(shù)據(jù)通過輸入接口電路和數(shù)據(jù)總線送入到存儲器,然后逐條取出執(zhí)行。但單片機中的程序一般事先都已通過寫入器固化在片內(nèi)或片外程序存儲器中,因而一開機即可執(zhí)行指令。上一頁下一頁返回第一節(jié)MCS-51指令系統(tǒng)概述指令中操作數(shù)的描述符號:Rn——工作寄存器R0~R7Ri——間接尋址寄存器R0、R1Direct——直接地址,包括內(nèi)部128BRAM單元地址、26個SFR地址。#data——8位常數(shù)#data16——16位常數(shù)addr16——16位目的地址addr11——11位目的地址rel——8位帶符號的偏移地址DPTR——16位外部數(shù)據(jù)指針寄存器上一頁下一頁返回第一節(jié)MCS-51指令系統(tǒng)概述bit——可直接位尋址的位A——累加器AB——寄存器BC——進、借位標志位,或位累加器@——間接寄存器或基址寄存器的前綴/——指定位求反(x)——x中的內(nèi)容((x))——x中的地址中的內(nèi)容
——當(dāng)前指令存放的地址上一頁返回第二節(jié)MCS-51單片機指令詳解一、數(shù)據(jù)傳輸指令1.累加器相關(guān)的數(shù)據(jù)傳輸指令以下指令的功能是把源操作數(shù)的內(nèi)容送入累加器A,源操作數(shù)有寄存器尋址、直接尋址、間接尋址和立即尋址等方式。2.內(nèi)部RAM單元之間的數(shù)據(jù)傳輸指令下一頁返回第二節(jié)MCS-51單片機指令詳解內(nèi)部RAM單元之間的數(shù)據(jù)傳輸可以使用直接尋址、寄存器尋址以及寄存器間接尋址方式。3.外部存儲器數(shù)據(jù)傳輸指令外部RAM傳輸指令通常使用間接尋址的方式,主要可以分為以Ri進行間接尋址和使用16位的DPTR進行的間接尋址。針對外部RAM的操作只能通過累加器A來完成,MCS-51系統(tǒng)中沒有專門的存儲器讀寫指令,實際上這些傳輸指令就是讀寫指令,為了區(qū)分是外部寄存器,特別是指令助記符上增加了“X”代表外部之意。具體的指令如下:上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解采用Ri的指令有:采用DPTR的指令有:上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解4.數(shù)據(jù)交換指令數(shù)據(jù)交換主要是在內(nèi)部RAM單元與累加器A之間進行,有整字節(jié)交換、半字節(jié)交換和累加器高低半字節(jié)交換指令。源操作數(shù)有寄存器尋址、直接尋址和寄存器間接尋址等方式,例如:上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解5.堆棧指令在MCS-51內(nèi)部RAM中可以設(shè)定一個后進先出LIFO的區(qū)域作為一個堆棧。在特殊功能寄存器中有一個堆棧指針SP,它指出棧頂?shù)奈恢?,在指令系統(tǒng)中有兩條用于數(shù)據(jù)操作的棧操作指令。首先是入棧指令,這條指令的功能是首先將棧指針SP加1,然后把直接地址指出的內(nèi)容送到棧指針SP指示的內(nèi)部RAM單元中。還有對應(yīng)的出棧指令,出棧指令是將當(dāng)前堆棧指針寄存器SP所指示的單元的內(nèi)容傳送到該指令指定的直接尋址單元中去,然后SP中的內(nèi)容減1.堆棧操作實際上是通過堆棧指示器SP進行的讀寫操作,是以SP為間址寄存器的間接尋址方式。因為SP是唯一的,所以在指令中把通過SP的間接尋址的操作數(shù)項隱含了,只表示出直接尋址的操作數(shù)項。上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解二、算術(shù)運算指令1.加法指令在加法指令中,又分位普通加法和帶進位的加法。這組加法指令的功能是把所指出的字節(jié)變量與累加器A的內(nèi)容相加,其結(jié)果放在累加器A中。如果位7有進位輸出,則置“1”進位標志Cy,否則對Cy清“0”,如果位3有進位輸出,置“1”輔助進位標志Ac,否則對Ac清“0”;如果位6有進位輸出而位7沒有進位,或者位7有進位輸出而位6沒有進位,則置“1”溢出標志OV,否則對OV清“0”。源操作數(shù)有寄存器尋址、直接尋址、寄存器間接尋址和立即尋址等方式。帶進位的加法,除了與上述的運算相似外,還增加了進位標制Cy參加運算;上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解2.減法指令通常的減法運算都帶有借位,這與帶進位的加法十分類似:上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解3.增1減1指令這些指令可以實現(xiàn)對相應(yīng)的操作數(shù)的增1和減1操作,這種操作不會影響PSW的狀態(tài),具體指令如下:以上為自增1運算,只需將INC更改為DEC,則可以實現(xiàn)減1運算,但增1運算中還有INCDPTR,實現(xiàn)DPTR增1,而減1中卻沒有這條指令。上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解4.乘除指令MULABDIVABMUL為乘法指令,其功能是把累加器A和寄存器B中的無符號8位整數(shù)相乘,其16位積得低位字節(jié)在累加器A中,高位字節(jié)在B中。如果積大于255,則置位溢出標志位OV,否則對OV清“0”。進位標志位總是清“0”。DIV為除法指令,該指令的功能是把累加器A中8位無符號整數(shù)除以B中的8位無符號整數(shù),所得的商(為整數(shù))存放在累加器A中,余數(shù)在寄存器B中,清“0”Cy和溢出標志位OV。如果B得內(nèi)容為“0”(除數(shù)為“0”),則結(jié)果A,B中的內(nèi)容不定,并置位溢出標志位OV。上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解5.十進制調(diào)整指令DAA這條指令對累加器A由前兩個變量(壓縮的BCD碼)相加的結(jié)果進行十進制調(diào)整使A中的結(jié)果為二進制碼數(shù)。三、邏輯運算指令邏輯運算指令包括與、或、異或、循環(huán)、累加器清零與求反指令。這些指令中的操作數(shù)都是8位,它們在執(zhí)行時,不影響標志位。上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解1.與(AND)邏輯運算指令邏輯運算都是按位進行的,邏輯與運算用符號∧表示。以上這幾條指令運算結(jié)果存放在A中,下面這兩條指令的運算結(jié)果則存放在直接地址的地址單元中:上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解2.或(OR)邏輯運算指令邏輯或運算用符號∨表示。以上幾條指令運算結(jié)果存放在A中,下面這兩條指令的運算結(jié)果則存放在直接尋址的地址單元中:上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解3.異或邏輯運算指令邏輯異或運算的規(guī)則是,兩運算數(shù)相同時為假(0),兩運算數(shù)相異時為真(1),這種運算用符號表示。以上這幾條指令運算結(jié)果存放在A中,下面這兩條指令的運算結(jié)果則存放在直接地址的地址單元中:上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解4.累加器清零和求反指令四、控制轉(zhuǎn)移指令控制轉(zhuǎn)移指令包括無條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指定、比較轉(zhuǎn)移指令、循環(huán)轉(zhuǎn)移指令及調(diào)用與返回指令。1.無條件轉(zhuǎn)移指令這里又分為長轉(zhuǎn)移、短轉(zhuǎn)移、絕對轉(zhuǎn)移和變址尋址轉(zhuǎn)移4種方式。長轉(zhuǎn)移指令執(zhí)行時可以把指令的第二和第三字節(jié)分別裝入PC的高位和低位字節(jié)中,無條件地轉(zhuǎn)向指定地址。轉(zhuǎn)移的目標地址可以在64K程序存儲器地址空間的任何地方。指令格式如下:上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解對于短轉(zhuǎn)移指令,在執(zhí)行時在PC加2之后,把指令的有符號的偏移量rel加到PC上,并計算出轉(zhuǎn)向地址。因此轉(zhuǎn)向的目標地址可以在這條指令前128字節(jié)到后127字節(jié)之間。指令格式如下:絕對轉(zhuǎn)移指令是2KB范圍內(nèi)的無條件跳轉(zhuǎn)指令。AJMP把MCS-51的64K程序存儲器空間劃分為32個區(qū),每個區(qū)為2K字節(jié),轉(zhuǎn)移目標地址必須與AJMP下一條指令的第一個字節(jié)在同一2KB范圍內(nèi),否則,將引起混亂,如果AJMP正好落在區(qū)底的兩個單元內(nèi),程序就轉(zhuǎn)移到下一個區(qū)中去了,這時不會出現(xiàn)問題。上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解執(zhí)行該指令時,先將PC加2,然后把addr11送入PC的低11位,PC高位不變,程序轉(zhuǎn)移到指定的地方。指令格式如下:變址尋址轉(zhuǎn)移指令的功能是把累加器中8位元符號數(shù)與數(shù)據(jù)指針DPTR的16位數(shù)相加,結(jié)果作為下條指令地址送入PC,不改變累加器和數(shù)據(jù)指針DPTR內(nèi)容,也不影響標志。指令格式如下:上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解2.條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令又可以分為判零轉(zhuǎn)移、數(shù)值比較轉(zhuǎn)移和減1轉(zhuǎn)移三種。判零轉(zhuǎn)移是有條件的相對轉(zhuǎn)移指令,指令如下:上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解數(shù)值比較轉(zhuǎn)移指令的功能是比較前面兩個操作數(shù)的大小,如果他們的值不相等則轉(zhuǎn)移,在PC加到下一條指令的起始地址后,通過把指令最后一個字節(jié)的有符號的相對偏移量加到PC上,并計算出轉(zhuǎn)向地址。如果第一操作數(shù)(無符號數(shù))小于第二操作數(shù)(無符號整數(shù)),則置進位標志位Cy,否則對Cy清“0”,不影響任何一個操作數(shù)的內(nèi)容。指令格式如下:上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解這組指令將源操作數(shù)(Rn,direct)減1,結(jié)果回送到源操作數(shù)寄存器或存儲器中去。如果結(jié)果不為0則轉(zhuǎn)移。源操作數(shù)有寄存器尋址和直接尋址。允許程序員把內(nèi)部RAM單元用作程序循環(huán)計數(shù)器。指令格式如下:DJNZRn,relDJNZdirect,rel3.子程序調(diào)用和返回指令子程序結(jié)構(gòu)是一種重要的程序結(jié)構(gòu)。在一個程序中經(jīng)常遇到反復(fù)多次執(zhí)行程序段的情況,如果重復(fù)書寫這個程序段,會使程序變得冗長而雜亂,因而采用了功能較為重復(fù)的子程序。上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解調(diào)用和返回構(gòu)成了子程序調(diào)用的完整過程。為了實現(xiàn)這一過程,必須有子程序調(diào)用指令和返回指令。返回指令則應(yīng)該是子程序的最后一條指令。執(zhí)行完這條指令之后,程序返回主程序斷點處繼續(xù)執(zhí)行。上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解還有子程序返回指令RET和RETI,分別放置了在子程序和中斷服務(wù)程序的最后。4、空操作指令這條語句什么也不做,消耗一個機器周期的時間,通常用于程序的延時。上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解五、位操作指令1.數(shù)據(jù)位傳送指令這組指令的功能是把由源操作數(shù)指出的位變量送到目的操作數(shù)指定的單元中去。其中一個操作數(shù)必須為進位標志,另一個可以是任何直接尋址位。不影響其他寄存器或標志。指令格式如下:上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解2.修改變量指令這組指令將操作數(shù)指出的位清“0”、取反、置“1”,不影響其他標志。上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解3.位變量的邏輯運算實際上位運算全部是邏輯運算,共有與、或、非三種指令。這里僅以與運算為例來說明,或運算符位ORL,非運算已在上文中替代。上一頁下一頁返回第二節(jié)MCS-51單片機指令詳解4.條件轉(zhuǎn)移類指令與前文介紹的條件轉(zhuǎn)移指令類似,位運算也可以進行條件轉(zhuǎn)移。上一頁返回第三節(jié)MCS-51單片機系統(tǒng)程序設(shè)計實例一、匯編語言程序的基本結(jié)構(gòu)各種計算機的匯編語言的語法規(guī)則基本相同,且具有相同的語句格式。先以MCS-51匯編語言作具體說明。MCS-51匯編語言的語句格式表示如下:下一頁返回第三節(jié)MCS-51單片機系統(tǒng)程序設(shè)計實例其中,方括號括起來的是可選部分,可有可無,視需要而定。標號是指令的符號的地址,有了標號,程序中的其他語句才能訪問該語句。標號的規(guī)則:標號由1~8個ASCII字符組成,但頭一個字符必須是字母,其余可以是字母,數(shù)字或其他特定字符。不能使用本匯編語言已定義了符號作為符號,如指令助記符、偽指令助記符以及寄存器的符號名稱。標號后必須跟以冒號(:)同一標號在一個程序中只能定義一次,不能重復(fù)定義。上一頁下一頁返回第三節(jié)MCS-51單片機系統(tǒng)程序設(shè)計實例一條語句可以有標號,也可以沒有標號,標號的有無取決于本程序中的其他語句是否需要訪問這條語句操作碼用于規(guī)定語句執(zhí)行的操作內(nèi)容。操作碼是以指令助記符或偽指令助記符表示的,操作碼是匯編指令格式中唯一不能空缺的部分。操作數(shù)用于給指令和操作提示數(shù)據(jù)或地址。注釋不屬于語句的功能部分,它只是對語句的解釋說明。分界符用于把語句格式中的各部分隔開,以便于匯編語言程序區(qū)分,包括空格,冒號,分號或逗號等多種符號,在MCS-51中,冒號(:)用于標號之后;空格()用于操作碼和操作數(shù)之間;逗號(,)用于操作數(shù)之間;分號(;)用于注釋之前。上一頁下一頁返回第三節(jié)MCS-51單片機系統(tǒng)程序設(shè)計實例匯編語言程序的結(jié)構(gòu)形式主要分為三種:順序結(jié)構(gòu),分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)是最簡單的程序結(jié)構(gòu),在順序結(jié)構(gòu)中既無分支,循環(huán),也不調(diào)用子程序,程序執(zhí)行時一條一條地按順序執(zhí)行指令。分支結(jié)構(gòu)使用條件轉(zhuǎn)移指令實現(xiàn),即根據(jù)條件對程序的執(zhí)行進行判斷,滿足條件則進行程序轉(zhuǎn)移,否則程序順序執(zhí)行。循環(huán)結(jié)構(gòu)則在程序的某個區(qū)段進行反復(fù)的運行,直到滿足某種條件結(jié)束,而有的程序則完全不能跳出的死循環(huán),將會無休止地運行下去。上一頁下一頁返回第三節(jié)MCS-51單片機系統(tǒng)程序設(shè)計實例二、簡單程序設(shè)計簡單程序設(shè)計指的就是按照順序來執(zhí)行程序,程序中可以包含某種算法。[實例]求解多項式y(tǒng)=2a-b。假設(shè)操作數(shù)a放在寄存器R3,操作數(shù)b放在寄存器R4;結(jié)果分別放在寄存器R5和R6.上一頁下一頁返回第三節(jié)MCS-51單片機系統(tǒng)程序設(shè)計實例上一頁下一頁返回第三節(jié)MCS-51單片機系統(tǒng)程序設(shè)計實例三、分支和循環(huán)程序在許多情況下,需要根據(jù)不同的條件轉(zhuǎn)向不同的處理程序,這種結(jié)構(gòu)的程序稱為分支程序。MCS-51單片機設(shè)置的條件轉(zhuǎn)移指令、比較轉(zhuǎn)移指令和位轉(zhuǎn)移指令可以實現(xiàn)程序的分支。圖3-3為分支程序框圖。[實例]設(shè)a存放在累加器R2中,b存放在寄存器R3中,要求按下式計算y值,并將結(jié)果y存于累加器A中。上一頁下一頁返回第三節(jié)MCS-51單片機系統(tǒng)程序設(shè)計實例上一頁下一頁返回第三節(jié)MCS-51單片機系統(tǒng)程序設(shè)計實例循環(huán)程序是指一段反復(fù)執(zhí)行的程序。圖3-4為循環(huán)程序框圖。[實例]將內(nèi)部數(shù)據(jù)存儲器38H~6FH單元的內(nèi)容傳送到外部數(shù)據(jù)存儲器以1000H開始的連續(xù)單元中去。38H~6FH單元向外傳數(shù)據(jù),需傳送56次。將R6作為循環(huán)計數(shù)寄存器,有如下的流程圖:上一頁下一頁返回第三節(jié)MCS-51單片機系統(tǒng)程序設(shè)計實例四、查表程序查表就是根據(jù)自變量x的值,在表總查找y,使y=f(x)。x和y可以使各種類型的數(shù)據(jù)。表的結(jié)構(gòu)也是多種多樣的。表格可以放在程序存儲器中,也可以存放在數(shù)據(jù)存儲器中。在單片機應(yīng)用系統(tǒng)中,這類程序使用頻繁。利用它能避免進行復(fù)雜的運算或轉(zhuǎn)換過程,故它廣泛應(yīng)用于顯示、打印字符的轉(zhuǎn)換以及數(shù)據(jù)補償、計算、轉(zhuǎn)換等程序中。一般情況下,對自變量x是有變化規(guī)律的數(shù)據(jù),可以根據(jù)這一規(guī)律形成地址,對應(yīng)的y則存放于該地址單元中;對x是沒有變化規(guī)律的數(shù)據(jù),在表中存放x及其對應(yīng)的y值。上一頁下一頁返回第三節(jié)MCS-51單片機系統(tǒng)程序設(shè)計實例[實例]試計算發(fā)動機
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年碳鋼長接桿項目投資可行性研究分析報告
- 2025年軟磁鐵氧體用氧化鎂項目可行性研究報告
- 道路基礎(chǔ)建設(shè)工程EPC總承包模式實施方案
- 中國機械療法器具行業(yè)發(fā)展運行現(xiàn)狀及投資潛力預(yù)測報告
- 停車用地合同范本
- 代建工程合同范例
- 2025年度房地產(chǎn)開發(fā)合同終止及購房退款協(xié)議
- 農(nóng)村壘墻養(yǎng)殖合同范本
- 剪輯崗位合同范例
- 買賣火車罐合同范例
- 必修3《政治與法治》 選擇題專練50題 含解析-備戰(zhàn)2025年高考政治考試易錯題(新高考專用)
- 17J008擋土墻(重力式、衡重式、懸臂式)圖示圖集
- 外貿(mào)業(yè)務(wù)員面試試卷
- 紀檢知識答題測試題及答案
- 人教版八年級人文地理下冊知識點整理(2021版)
- 道教系統(tǒng)諸神仙位寶誥全譜
- 中國經(jīng)濟轉(zhuǎn)型導(dǎo)論-政府與市場的關(guān)系課件
- 統(tǒng)計過程控制SPC培訓(xùn)資料
- 食品經(jīng)營操作流程圖
- 新視野大學(xué)英語讀寫教程 第三版 Book 2 unit 8 教案 講稿
- 村務(wù)公開表格
評論
0/150
提交評論