單片機原理及應(yīng)用PPT完整全套教學(xué)課件_第1頁
單片機原理及應(yīng)用PPT完整全套教學(xué)課件_第2頁
單片機原理及應(yīng)用PPT完整全套教學(xué)課件_第3頁
單片機原理及應(yīng)用PPT完整全套教學(xué)課件_第4頁
單片機原理及應(yīng)用PPT完整全套教學(xué)課件_第5頁
已閱讀5頁,還剩348頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機概述“

單片機原理及應(yīng)用第一章【ch01】單片機概述.pptx【ch02】MCS-51單片機的結(jié)構(gòu)和原理.pptx【ch03】Keil與Proteus軟件的使用.pptx【ch04】MCS-51單片機匯編語言指今系統(tǒng)及其編程.pptx【ch05】單片機C51程序設(shè)計基礎(chǔ).pptx【ch06】單片機內(nèi)部資源及編程.pptx【ch07】單片機的功能擴展.pptx【ch08】單片機系統(tǒng)的擴展.pptx【ch09】單片機應(yīng)用系統(tǒng)的開發(fā)與設(shè)計.pptx全套可編輯PPT課件01單片機的基本概念單片機的基本概念單片機,顧名思義,指的就是單片微型計算機,這個稱謂也是比較通俗的。從這點上理解,單片機就是在單個芯片上的一臺微型計算機。當(dāng)然,這種計算機比起我們使用的普通微型計算機來說,功能要弱很多,但基本的結(jié)構(gòu)還是很完善的。顯示器那么單片機的構(gòu)成到底與普通微型計算機有什么相似之處呢?先來分析一下普通微型計算機的組成結(jié)構(gòu),如圖1.1.1所示。什么是單片機單片機的基本概念什么是單片機普通微型計算機的核心部分往往由在主板上的CPU(中央處理器,CentralProcessUnit)主板芯片組內(nèi)存條及硬盤、光驅(qū)、顯示器、鍵盤、鼠標(biāo)等構(gòu)成。CPU完成核心控制、計算功能,是解析執(zhí)行程序代碼的核心工作部件;主板芯片組是CPU對外交互聯(lián)系的通道和部分外設(shè)(外部設(shè)備)控制單元。單片機的基本概念什么是單片機圖1.1.2其實也是其他更復(fù)雜計算機的典型結(jié)構(gòu)。本書將詳盡闡述的單片機也具有相同結(jié)構(gòu),如圖1.1.3所示。單片機的基本概念由于大多數(shù)單片機的CPU較簡單,所以單片機往往不能勝任復(fù)雜的數(shù)學(xué)運算,而更著重于控制功能的實現(xiàn)。在絕大部分電子產(chǎn)品中,單片機是作為控制核心出現(xiàn)的。因此“單片機”只是一個通俗的說法,更確切的稱謂應(yīng)該是微控制器(Microcontroller)。微控制器(MCU)單片機的基本概念如前所述,單片機是一個單片化微型計算機系統(tǒng),使用單片機完成一個具體應(yīng)用需要對其編程,一般來說,lash結(jié)構(gòu)的單片機在出廠的時候其內(nèi)ROM(即ash)是空白的,可以認為它的功能未被定義,需要輸入針對應(yīng)用的代碼來實現(xiàn)具體的應(yīng)用功能。為產(chǎn)生上述代碼,般流程是需要在單片機開發(fā)環(huán)境中編寫針對程序,經(jīng)編譯獲得所需執(zhí)行代碼,這里的單片機開發(fā)環(huán)境指的是一種在PC上的軟件,通常它具有編程序、交又編譯、生成執(zhí)行代碼文件的功能。如何使用單片機單片機的基本概念不同的單片機具有不同的開發(fā)環(huán)境,單片機屬于MCS-51系列,可以使用Kei集成開發(fā)環(huán)境而AVR系列單片機卻可以使用TCCAVR軟或AVRSdio軟件;PIC單片機使用的是MPLABIDE軟件。除此之外,開發(fā)環(huán)境也可能支持不同的編程語言,常見的單片機開發(fā)語言有匯編語言和C語言。如何使用單片機單片機的基本概念單片機開發(fā)者需要針對具體的應(yīng)用來與對應(yīng)的匯編語言程序或C語言程序,集成發(fā)環(huán)境中進行編譯、調(diào)試,最后獲得所需的執(zhí)行代碼文件,通過編程器或其他特定的編程方式把執(zhí)行代碼文件燒寫到單片機的flashROM中,這樣該單片機就具有了針對應(yīng)用的邏輯控制功能。燒寫了執(zhí)行代碼的單片機在系統(tǒng)上電后,就會按照開發(fā)者的意愿執(zhí)行相應(yīng)的邏輯控制功能,此時單片機就不停歇地運轉(zhuǎn)起來了。如何使用單片機02單片機的發(fā)展概況單片機的發(fā)展概況1)第一階段(19761978年):探索階段Intel公司的MCS-48第一次采用了單片結(jié)構(gòu),即在一塊芯片內(nèi)含有8位CPU、定時器/計數(shù)器并行I/0口、RAM和ROM等。以體積小,功能全,價格低得到了廣泛應(yīng)用,為單片機的發(fā)展奠定了基礎(chǔ)。2)第二階段(1979~1982年):發(fā)展階段在MCS-48的帶領(lǐng)下其后各大半導(dǎo)體公司相繼研制和發(fā)展了自己的單片機單片機的發(fā)展歷史單片機的發(fā)展概況3)第三階段(1983~1990年):16位單片機階段16位單片機開始出現(xiàn),除CPU為16位外,片內(nèi)RAM和ROM的容量進一步增大,實時處理能力更強,體現(xiàn)了微控制器的特征。4)第四階段(1991~2000年):真正單片化階段新的高性能單片機不斷出現(xiàn),新單片機普遍采用RISC架構(gòu),向高速、高集成度、數(shù)?;旌稀⒊凸姆较虬l(fā)展。單片機的發(fā)展歷史單片機的發(fā)展概況5)現(xiàn)階段:(2001年以后):32位單片機階段32位微控制器的應(yīng)用日益廣泛,許多應(yīng)用場合在單片機上大量使用RTOS(實時操作系統(tǒng))EmbeddedSystem獲得較大發(fā)展。在專用單片機發(fā)展方面,SOC開始從概念走向?qū)嶋H應(yīng)用。單片機的發(fā)展歷史單片機的發(fā)展概況MCS-51系列單片機的展(1)Atmel公司通過與Imtel公司的術(shù)交換得了Intel的8051制造技術(shù)并且結(jié)合自己的Flash技術(shù),生產(chǎn)出了ROM為Flash的51單片機,即AT89系列,使得單片機應(yīng)用變得更靈活,在我國擁有大量用戶。(2)Philips半導(dǎo)體公司(現(xiàn)為NXP公司)著力發(fā)展了單片機的控制功能和外圍單元。(3)ADI公司推出的ADuC8x系列單片機,在單片機向SOC發(fā)展的模數(shù)合集成電路發(fā)展過程中扮演了很重要的角色。單片機的發(fā)展概況MCS-51系列單片機的展(4)Cygmal公司(后被SiiconLabs公司收購)采用一種全新的流水線設(shè)計思路,使單片機的運算速度得到了極大提高,在向SOC發(fā)展的過程中邁出了一大步(5)Cypress公司的CY7C68系列,是MCS-51的改進版本指集增強主要用于USB接口應(yīng)用。目前8051系列單片機各生產(chǎn)廠商的主流產(chǎn)品有幾十個系列,幾百個品種。盡管其各具特色,名稱各異,但作為集CPU、RAM、ROM、I0口定時器/計數(shù)器、中斷系統(tǒng)為一體的單片機,其原理與結(jié)構(gòu)大同小異?,F(xiàn)以Atmel公司的AT89S系列產(chǎn)品為例,說明其系列之間的區(qū)別。單片機的發(fā)展概況前面介紹了MCS-51及其兼容系列單片機,下面簡要介紹一下現(xiàn)階段國內(nèi)主流單片機系列。為敘述方便,現(xiàn)以單片機CPU中ALU(算數(shù)邏輯單元)的數(shù)據(jù)位寬為依據(jù)分成四類:(1)4位單片機。(2)8位單片機。(3)16位單片機。(4)32位單片機?,F(xiàn)階段主流單片機系列簡介單片機的發(fā)展概況8位主流單片機的種類很多:(1)ImtelMCS-51兼容單片機,詳細可以參考1.2.2節(jié)屬于早期的8位單片機系列。(2)MicrochipPIC16C5X/6X/7X/8X系列、PIC17C系列、PIC18C系列。(3)Freescale68HC908系列、68S08系列。(4)AtmelAVR系列。(5)義隆EM78系列?,F(xiàn)階段主流單片機系列簡介單片機的發(fā)展概況16位主流單片機,如下所示:(1)IntelMCS-96系列:80C196。(2)TIMSP430系列。(3)MicrochipPIC24C系列。32位主流單片機,如下所示:(1)STSTM32(Cortex-M3)。(2)AtmelAT32UC3B系列(AVR32)。(3)NXPLPC2000系列(ARM7內(nèi)核)。現(xiàn)階段主流單片機系列簡介03單片機的應(yīng)用特點與應(yīng)用領(lǐng)域單片機的應(yīng)用特點與應(yīng)用領(lǐng)域單片機的應(yīng)用特點(1)應(yīng)用現(xiàn)場環(huán)境惡。在惡劣環(huán)境中,單片機構(gòu)成的電子裝置可以在程序控制下完成復(fù)雜的控制任務(wù)。單片機的高可靠性和強抗干擾能力,使其可以置于惡劣環(huán)境的前端工作。(2)軟硬件結(jié)合。單片機系統(tǒng)是一個軟硬件結(jié)合的系統(tǒng),系統(tǒng)的可伸縮能力較強。單片機系統(tǒng)也是一個可以編程的系統(tǒng),硬件上的不足有時可以通過軟件的修改來滿足控制要求。軟硬件協(xié)同,可以處理較復(fù)雜的現(xiàn)場控制問題。單片機的應(yīng)用特點與應(yīng)用領(lǐng)域單片機的應(yīng)用特點(3)靈活定制。計算機系統(tǒng)的靈活性在單片機系統(tǒng)上也有體現(xiàn)。同一個單片機可以使用在完全不同的系統(tǒng)上。根據(jù)軟件來決定系統(tǒng)功能,大大提高了系統(tǒng)的靈活性。(4)升級方便。單片機通過使用Flash技術(shù),使得程序的修改變得非常容易。在開發(fā)調(diào)試階段,可以通過更新FIash的內(nèi)容,調(diào)試系統(tǒng)直到滿足要求。當(dāng)需要對產(chǎn)品進行升級的時候,也只要更新Flash就可以了,非常方便。單片機的應(yīng)用特點與應(yīng)用領(lǐng)域單片機的應(yīng)用特點(5)應(yīng)用廣泛。單片機因其價格低廉和強大的性能而被廣泛應(yīng)用。幾乎所有涉及控制和邏輯運算的電子產(chǎn)品都可以使用它。(6)成本低廉。簡化設(shè)計的CPU、集成的存儲器和多種外設(shè),使得整個單片機系統(tǒng)的價格較低。大批量生產(chǎn)又使得生產(chǎn)成本進一步下降。(7)低消耗。與普通微機的功耗相比,單片機的功耗很低。低功耗使得單片機在便攜式和電池應(yīng)用中發(fā)揮著重要作用。單片機的應(yīng)用特點與應(yīng)用領(lǐng)域由于單片機具有上述應(yīng)用特點,使得它迅速成為實現(xiàn)新技術(shù)的有力工具。它的應(yīng)用遍及各個領(lǐng)域,主要表現(xiàn)在以下幾個方面:(1)工業(yè)控制、工業(yè)自動化。機電一體化產(chǎn)品是指集成機械技術(shù)、微電子技術(shù)、計算機技術(shù)于一體,具有智能化特征的機電產(chǎn)品,如微機控制的車床、鉆床等。單片機作為產(chǎn)品中的控制器,能充分發(fā)揮其體積小、可靠性高、功能強等優(yōu)點,可大大提高機器的自動化、智能化程度。單片機的應(yīng)用領(lǐng)域單片機的應(yīng)用特點與應(yīng)用領(lǐng)域(2)儀器儀表。單片機廣泛用于各種儀器儀表,使儀器儀表智能化,并可以提高測量的自動化程度和精度,簡化儀器儀表的硬件結(jié)構(gòu),提高其性價比。(3)家用電器。單片機自誕生以來,就步入了我們的生活,如洗衣機、電冰箱、電子玩具、收錄機等家用電器配上單片機后,提高了智能化程度的同時增加了功能,倍受人們喜愛。單片機的應(yīng)用領(lǐng)域04單片機的發(fā)展趨勢單片機的發(fā)展趨勢現(xiàn)在,單片機技術(shù)還處于迅速發(fā)展階段,隨著集成電路工藝的不斷升級,在單位面積上可以實現(xiàn)的電路會更多,讓新設(shè)計的單片機不斷獲得進步。下面分幾個方面來說明現(xiàn)階段單片機的發(fā)展趨勢。(1)低成本。集成電路制造工藝的改進,使得單片機可以在更小的硅片面積上實現(xiàn),成本不斷下降?,F(xiàn)在許多4位或8位單片機具有比中小規(guī)模邏輯芯片(74系列)更低的價格。單片機的發(fā)展趨勢(2)低功耗。在現(xiàn)代社會發(fā)展過程中,對能源的利用效率越來越高,人們希望在生活中使用的電子產(chǎn)品節(jié)能,單片機作為大多數(shù)電子產(chǎn)品的核心部件,當(dāng)然也需要節(jié)能,即降低功耗。另外,越來越多使用電池的便攜式產(chǎn)品出現(xiàn),為延長電池的使用時間,客觀上也要求便攜式產(chǎn)品中的單片機降低功耗。新設(shè)計的單片機具有越來越多的電源管理模式,在應(yīng)用中通過軟件切換不同的電源模式以節(jié)省電源電流的消耗,某些單片機甚至可以在特定電源模式下消耗電流小于1A,甚至小于電源的漏電流。單片機的發(fā)展趨勢(3)低電壓。單片機的低電壓發(fā)展趨勢由兩個原因造成,一個是因為集成電路工藝線寬越來越小,導(dǎo)致能夠耐受的電源電壓越來越低,另一個原因是大量電池應(yīng)用的產(chǎn)生,而電池電壓的限制導(dǎo)致電池應(yīng)用系統(tǒng)的電源電壓降低。這兩個原因最終使得新出的針對便攜式計算的單片機電源電壓逐漸走低,從幾年前的3.3V到現(xiàn)在的1.8V,甚至更低。低電壓單片機的發(fā)展有另外一個好的效果,那就是,使得這些單片機的功耗降低。低電壓同時也附帶了一些負面影響,比如,電源電壓降低直接導(dǎo)致單片機在同等工作條件下速度降低。05如何學(xué)好MCS-51系列單片機如何學(xué)好MCS-51系列單片機51單片機是20世紀(jì)70年代發(fā)展起來,80年代被廣泛應(yīng)用的單片機。到20世紀(jì)90年代,國內(nèi)中小市場容易找到的是MCS-51系列的資源(括芯片、開發(fā)工具、參考書、參考設(shè)計)。由于51內(nèi)核的單片機具有大量資料,有很多種類,所以受到了人們的喜愛,使初學(xué)者能夠收到事半功倍的學(xué)習(xí)效果。為什么要學(xué)51單片機如何學(xué)好MCS-51系列單片機學(xué)習(xí)使用單片機就是理解單片機硬件結(jié)構(gòu)及內(nèi)部資源的應(yīng)用,在匯編語言或C語言中學(xué)會各種功能的初始化設(shè)置,以及實現(xiàn)各種功能的程序編制并通過I0口進行輸入/輸出控制1.理論與實踐相結(jié)合51單片機基本原理包含一大堆指令、名詞。對一個初學(xué)單片機的人來說,如果只聽老師上課講,用不了幾天就會覺得枯燥乏味,半途而廢,所以理論學(xué)習(xí)與實踐結(jié)合是一個好方法,邊學(xué)習(xí)、邊演練,循序漸進,這樣用不了幾次就能將所用到的指令理解、記憶、靈活運用。怎么字51單片機謝謝觀看“MCS-51單片機的結(jié)構(gòu)和原理“

單片機原理及應(yīng)用第二章01MCS-51單片機的基本組成MCS-51單片機的基本組成MCS-51單片機是指由美國Intel公司生產(chǎn)的一系列單片機的總稱這一系列單片機包括眾多品種如基本型(8051子系列)8031、8051875189C51和89S51等,增強型(8052子系列)80328052,8752、89S52等,其中,8051是最早最典型的產(chǎn)品。該系列其他單片機都是在8051的基礎(chǔ)上進行功能的增、減、改變而來的,所以人們習(xí)慣于用8051來稱呼MCS-51系列單片機而8031是20世紀(jì)90年代在我國很流行的單片機,所以很多場合會看到8031的名稱。MCS-51單片機的基本結(jié)構(gòu)MCS-51單片機的基本組成目前,國內(nèi)大多數(shù)單片機類課程的教材都是以MCS-51系列為基礎(chǔ)來講授單片機原理及應(yīng)用的,這是因為51系列單片機莫定了8位單片機的基礎(chǔ),各類型單片機的基本組成相同,主要差別反映在存儲器的配置上。8031內(nèi)部無程序存儲器ROM;8051內(nèi)部設(shè)有4KB的掩膜ROM,8751內(nèi)部為EPROM,AT89C51內(nèi)部為FlashROM,AT89S51內(nèi)部則是4KB的支持ISP的Flash。MCS-51單片機的基本結(jié)構(gòu)MCS-51單片機的基本組成由圖2.12可以看出,它集成了中央處理器(CPU)存儲器系統(tǒng)(RAM和ROM)定時器/計數(shù)并行接口、串行接口、中斷系統(tǒng)及一些特殊功能寄存器(SFR)。MCS-51單片機的基本結(jié)構(gòu)MCS-51單片機的基本組成1.中央處理器(CPU)中央處理器(CentralProcessingUnit,CPU)是單片機的核心,由運算器和控制器組成,用于完成運算和控制操作。2.內(nèi)部程序存儲器在MCS-51系列單片機中不同的芯片其內(nèi)部程序存儲器各不相同8031和8032內(nèi)部沒有ROM;8051內(nèi)部有4KB的ROM;8051內(nèi)部有4KB的ROM。MCS-51單片機的基本結(jié)構(gòu)MCS-51單片機的基本組成3.內(nèi)部數(shù)據(jù)存儲器MCS-51系列基本型單片機內(nèi)部有256字節(jié)的RAM其高128單元有一部分被特殊功能寄存器(SFR)占用,其余單元用戶不能使用。4.定時器/計數(shù)器MCS-51系列基本型單片機內(nèi)部有兩個16位的定時器/計數(shù)器,用定時器/計數(shù)器0和定時器/計數(shù)器1表示,用于實現(xiàn)定時或計數(shù)功能,并以其定時或計數(shù)的結(jié)果對系統(tǒng)進行控制。MCS-51單片機的基本結(jié)構(gòu)MCS-51單片機的基本組成5.并行I/0口MCS-51單片機內(nèi)部有4個8位并行I/0口,即PO、P1、P2、P3,以實現(xiàn)數(shù)據(jù)或地址的并行輸入/輸出。6.串行I/0口MCS-51單片機有一個全雙工的串行口,以實現(xiàn)單片機和其他數(shù)據(jù)設(shè)備之間的串行數(shù)據(jù)傳送。MCS-51單片機的基本結(jié)構(gòu)MCS-51單片機的基本組成7.中斷控制系統(tǒng)MCS-51系列基本型單片機有5個中斷源,即2個外部中斷源、2個定時器計數(shù)器中斷源和1個串行中斷源。全部中斷源可設(shè)為高、低2個優(yōu)先級,用來滿足控制應(yīng)用的需要。8.時鐘電路MCS-51系列基本型單片機芯片內(nèi)部有時鐘電路,但石英晶體和微調(diào)電容需外接。時鐘電路為單片機產(chǎn)生時鐘脈沖序列。MCS-51單片機的基本結(jié)構(gòu)MCS-51單片機的基本組成9.位處理器單片機主要用于控制,需要有較強的位處理功能,因此,位處理器是其必要組成部分。位處理器也稱為布爾處理器。10.內(nèi)部總線上述部件通過總線連接起來才能構(gòu)成一個完整的計算機系統(tǒng)。芯片內(nèi)的地址信號、數(shù)據(jù)信號和控制信號都是通過總線傳送的??偩€結(jié)構(gòu)減少了單片機的連線和引腳,提高了集成度和可靠性。MCS-51單片機的基本結(jié)構(gòu)MCS-51單片機的基本組成MCS-51單片機的封裝與信號引腳1,芯片封裝形式MCS-51單片機采用40引腳雙列直插式DIP(DualIn-linePackage)44引腳方形扁平式QFP(QuadFlatPackage)和帶引線的塑料芯片載體PLCC(PlasticLeadedChinCarrier)形式等封裝。2.芯片引腳介紹(1)輸入/輸出(I/0)引腳(POP1P2P3口)。P0、P1、P2、P3口:每個口8位,共32個引腳。MCS-51單片機的基本組成MCS-51單片機的封裝與信號引腳(2)電源及時鐘引腳。電源及時鐘引腳共4個,分別是:Vcc(40腳):接+5V電源。Vss(20腳):接地。(3)控制線和復(fù)位引腳。單片機用于復(fù)位和控制用的引腳共4個,分別為:ALE/PROG(30腳):地址鎖存允許信號輸出引腳/編程脈沖輸入引腳。MCS-51單片機的基本組成MCS-51單片機的封裝與信號引腳3.引腳的第二功能隨著單片機功能的增強,其所需要引腳的數(shù)量不斷增加,但芯片的引腳數(shù)目受到工藝及標(biāo)準(zhǔn)化等因數(shù)的限制,因此在單片機設(shè)計中,給有些引腳賦予了雙重功能,即給一個引腳賦予了兩種功能。(1)P3口線的第二功能。(2)內(nèi)部程序存儲器固化所需要的信號。(3)備用電源。02MCS-51單片機的并行I/O端口結(jié)構(gòu)MCS-51單片機的并行I/O端口結(jié)構(gòu)MCS-51單片機有4個8位并行I/0端口(Input/OutputPort),即P0、P1、P2、P3,每個端口中每位口線的內(nèi)部結(jié)構(gòu)基本相同,51單片機的I/0端口主要由數(shù)據(jù)鎖存器和輸出級組成,其中,P1口結(jié)構(gòu)最簡單,PO口結(jié)構(gòu)最復(fù)雜。下面從P1口開始紹51單片機IO端口結(jié)構(gòu)。MCS-51單片機的并行I/O端口結(jié)構(gòu)1.P1口P1口的內(nèi)部結(jié)構(gòu)如圖2.2.1所示,由一個數(shù)據(jù)輸出鎖存器兩個三態(tài)輸入緩沖器和輸出驅(qū)動電路組成,輸出驅(qū)動電路內(nèi)部設(shè)有上拉電阻。該上拉電阻實際上并不是真正的電阻,而是一個能起到上拉電阻作用的由兩個場效應(yīng)管構(gòu)成的電路。MCS-51單片機的并行I/O端口結(jié)構(gòu)2.P2口P2口與P1口的輸出級結(jié)構(gòu)相同,內(nèi)部都有上拉電阻,整個端口結(jié)構(gòu)也基本相同,唯一不同的是多了一個多路轉(zhuǎn)接電子開關(guān)MUX。它的一個輸入來自鎖存器,另一個輸入為地址線,輸入轉(zhuǎn)換由“控制”信號控制,即在控制信號的作用下,由MUX實現(xiàn)鎖存器輸出和地址之間的接通轉(zhuǎn)換。MCS-51單片機的基本組成3.P3口P3口與P1口輸出級的結(jié)構(gòu)相同,內(nèi)部都有上拉電阻,整個端口結(jié)構(gòu)也基本相同,唯一的差別是多了一個與非門,以便選擇第一功能或第二功能。4.P0口PO口與P1、P2、P3口不同,電路中除包含一個數(shù)據(jù)輸出鎖存器和兩個三態(tài)數(shù)據(jù)輸入緩沖器外還有數(shù)據(jù)輸出驅(qū)動和控制電路。03MCS-51系列單片機的存儲器結(jié)構(gòu)MCS-51系列單片機的存儲器結(jié)構(gòu)程序存儲器程序存儲器用于存放應(yīng)用程序及表格常數(shù)。程序存儲器依單片機類型的不同,可以是ROM、EPROM、E‘PROM、FlashROM等,其中,8031片內(nèi)無程序存儲器8051片內(nèi)有4KB的ROM,875第2章MCS-51單片機的結(jié)構(gòu)和原理19片內(nèi)有4KB的EPROM,AT89系列單片機片內(nèi)是FlashROM,編程方便。4B的程序存儲器地址是0000F~OFFFFH。MCS-51系列單片機的存儲器結(jié)構(gòu)數(shù)據(jù)存儲器數(shù)據(jù)存儲器用于存放運算的中間結(jié)果、標(biāo)志位及數(shù)據(jù)的暫存和緩沖等,數(shù)據(jù)存儲器包括內(nèi)部數(shù)據(jù)存儲器和外部數(shù)據(jù)存儲器,其原則是內(nèi)部數(shù)據(jù)存儲器不夠用時才擴展外部數(shù)據(jù)存儲器。MCS-51基本型單片機內(nèi)部數(shù)據(jù)存儲器有256B的存儲空間,地址為00FFH;外部數(shù)據(jù)存儲器的地址空間最大為64KB,編址為0000H~FFFFH。MCS-51系列單片機的存儲器結(jié)構(gòu)數(shù)據(jù)存儲器1.基本RAM區(qū)基本RAM區(qū)分為工作寄存器區(qū)、位尋址區(qū)和用戶RAM區(qū)三個部分。(1)工作寄存器區(qū)(00~1FH)。(2)位址區(qū)(20H~2FH)。(3)用戶RAM區(qū)(30H~TFH)。MCS-51系列單片機的存儲器結(jié)構(gòu)數(shù)據(jù)存儲器2.特殊功能寄存器(SFR)區(qū)MCS-51基本型單片機的特殊功能寄存器(也叫專用存器)區(qū)中,有22個特殊功能寄存器,它們離散地分布在片內(nèi)RAM的高128B,地址范圍為80H~FFH,如圖2.3.4所示。MCS-51系列單片機的存儲器結(jié)構(gòu)數(shù)據(jù)存儲器(1)程序計數(shù)器(PC,ProgramCounter)。程序計數(shù)器(PC)用于存放下一條要執(zhí)行的指令地址,是一個16位寄存器,可尋址范圍達64KB。PC有自動加1功能,以實現(xiàn)程序的順序執(zhí)行。(2)累加器A(ACC,Accumulator)。累加器A為8位寄存器,在內(nèi)部RAM的地址為0EOH,是程序中最常用的特殊功能寄存器功能較多,地位重要,既可以用于存放操作數(shù),也可以用于存放運算的中間結(jié)果。MCS-51系列單片機的存儲器結(jié)構(gòu)數(shù)據(jù)存儲器(3)B寄存器。B寄存器是一個8位寄存器,在內(nèi)部RAM的地址為OFOH,主要用于乘除運算。(4)數(shù)據(jù)指針寄存器。數(shù)據(jù)指針寄存器(DPTR)是一個16位的寄存器也是MCS-51單片機中唯一一個供用戶使用的16位寄存器。(5)程序狀態(tài)字寄存器(ProgramStatusWord,PSW)。程序狀態(tài)字寄存器是一個8位寄存器,在內(nèi)部RAM的地址為0DOH,用來存放程序執(zhí)行的狀態(tài)23信息。04單片機的時鐘電路與時序單片機的時鐘電路與時序MCS-51單片機所需要的時鐘信號頻率是因型號而異的,80C51的典型值為12MHz,單片機得到時鐘信號的方法有兩種。一種是通過外接晶振、電容,與內(nèi)部電路一起構(gòu)成振蕩申路而產(chǎn)生,稱為內(nèi)部時鐘方式;另一種是外接時鐘信號,稱為外部時鐘方式。時鐘電路單片機的時鐘電路與時序在由多片單片機組成的系統(tǒng)中,為了使各單片機之間的時鐘信號同步,應(yīng)當(dāng)引入唯一的公用外部脈沖信號作為各單片機的振蕩脈沖,如圖2.4.2和圖243所示。時鐘電路單片機的時鐘電路與時序單片機在執(zhí)行指令時,一條指令經(jīng)譯碼后產(chǎn)生若干個基本操作,這些操作所對應(yīng)的脈沖信號在時間上的先、后次序稱為單片機的時序。描述MCS-51單片機時序的有關(guān)單位有4個,分別是振蕩周期時鐘周期、機器周期、指令周期。時序單片機的時鐘電路與時序1.振蕩周期P振蕩周期是指為單片機提供脈沖信號的振蕩源的周期。振蕩周期又定義為拍節(jié),用P表示。若內(nèi)部時鐘產(chǎn)生方式,則為晶振的振蕩周期。2.時鐘周期S振蕩脈沖經(jīng)過二分頻后就是單片機的時鐘信號,時鐘信號的周期稱為時鐘周期,又定義為狀態(tài),用S表示。時序單片機的時鐘電路與時序時序3.機器周期為了便于管理,常把一條指令的執(zhí)行過程劃分為若干個階段,每一個階段完成一個基本操作,如取指令、讀存儲器、寫存儲器等。4.指令周期指令周期是指執(zhí)行一條指令所需要的時間。05MCS-51單片機的工作方式MCS-51單片機的工作方式復(fù)位復(fù)位是指單片機的初始化操作,復(fù)位使單片機及其內(nèi)部寄存器處于一個確定的初始狀態(tài),從這個狀態(tài)開始工作。1,復(fù)位信號RST引腳是復(fù)位信號的輸入端,高電平有效。當(dāng)外部電路使得RST端出現(xiàn)兩個機器周期(即24個振蕩脈沖周期)以上的高電平時,系統(tǒng)內(nèi)部復(fù)位。MCS-51單片機的工作方式2.復(fù)位操作為了使復(fù)位可靠,在每個機器周期的S5P2時刻采樣施密特觸發(fā)器的輸出,若連續(xù)兩次采樣到高電平才確認為是復(fù)位信號,因此要求復(fù)位信號高電平在RST端至少保持兩個機器周期。3復(fù)位方式復(fù)位分為上電自動復(fù)位和按鍵手動復(fù)位兩種方式。復(fù)位MCS-51單片機的工作方式程序執(zhí)行方式是單片機的基本工作方式,也是單片機最主要的工作方式。單片機在實現(xiàn)用戶功能時通常采用這種方式。單片機執(zhí)行的程序放置在程序存儲器中,可以是片內(nèi)ROM,也可以是片外ROM。程序執(zhí)行方式MCS-51單片機的工作方式單步執(zhí)行方式是指通過外來脈沖控制程序的執(zhí)行,使之達到來一個脈沖就執(zhí)行一條指令的目的。而外來脈沖是通過按鍵產(chǎn)生的,因此單步執(zhí)行實際上就是按一次鍵執(zhí)行一條指令,其通常用于調(diào)試程序、跟蹤程序執(zhí)行和了解程序執(zhí)行過程。單步執(zhí)行方式MCS-51單片機的工作方式低功耗方式1.HMOS單片機的掉電方式HMOS單片機芯片本身運行功耗較大,為了減小系統(tǒng)功耗,設(shè)置了掉電方式。RST/VPD端接備用電源,當(dāng)單片機正常運行時單片機內(nèi)部的RAM由主電源Vcc供電;當(dāng)Vcc掉電,Vcc電壓低于RST/VPD帶備用電源電壓時,由備用電源向RAM維持供電,保證RAM中的數(shù)據(jù)不丟失。MCS-51單片機的工作方式EPROM編程和校驗方式在MCS-51單片機中,內(nèi)部集成有EPROM的機型可以工作于編程和校驗方式。不同型號的單片機EPROM的容量和特性不一樣相應(yīng)的EPROM編程和校驗方法也不一樣。這里以HMOS器件8751,內(nèi)部集成4KB的EPROM為例介紹。MCS-51單片機的工作方式EPROM編程和校驗方式1.EPROM編程EPROM編程時一般采用4~6MHZ的振蕩頻率,EPROM單元地址由P2口的P2.3~P2.0和P1提供。2.程序校驗及擦除(1)程序校驗在程序的保密位未設(shè)置時,無論是寫入時還是寫入之后,均可以將EPROM的內(nèi)容讀出進行校驗校驗。MCS-51單片機的工作方式EPROM編程和校驗方式(2)程序擦除不同型號單片機的程序擦除方法不一樣,對于8751單片機而言,內(nèi)部EPROM的擦除和其他EPROM芯片的擦除方法一樣,可以通過紫外線照射來擦除。擦除后,可以重新寫入數(shù)據(jù)。3.程序的加密8751單片機的內(nèi)部EPROM含有一位加密位,一旦此加密位被編程,就可禁止任何外部方法對片內(nèi)程序存儲器進行讀寫,也不能再對EPROM編程,保證了片內(nèi)程序的安全性。謝謝觀看“Keil與Proteus軟件的使用“

單片機原理及應(yīng)用第三章01KeilC51軟件的介紹及應(yīng)用示例KeilC51軟件的介紹及應(yīng)用示例Kei1公司在互聯(lián)網(wǎng)上提供KeilC51的最新評估版本下載,方便軟件愛好者學(xué)習(xí)和使用。該版本和正式版的區(qū)別在于沒有浮點庫支持,并且編譯后生成的代碼大小限制為2KB。用戶下載Kei1C51安裝文件后,雙擊打開安裝文件,顯示窗口如圖3.1.1所示。KeilC51軟件的安裝及環(huán)境介紹KeilC51軟件的介紹及應(yīng)用示例KeilC51的軟件開發(fā)環(huán)境又稱為Vision,其當(dāng)前版本是524即名稱為Vision5安裝完KeilC51軟件后,選擇“開始”一“所有程序”一“KeiluVision5”或用鼠標(biāo)左鍵雙擊桌面上的KeiluVision5圖標(biāo)羅打開軟件。Vision5開發(fā)環(huán)境啟動后界面如圖3.1.2所示。KeilC51軟件的安裝及環(huán)境介紹KeilC51軟件的介紹及應(yīng)用示例在uVision5中,軟件開發(fā)時一般必須為單片機程序新建一個項目(Project),然后輸入程序代碼并將該代碼文件添加到項目中。打開KeilC51開發(fā)環(huán)境后,如圖3.13所示,單擊菜單“Project”-“New”即可新建一個項目。uVisionProject...建立KeilC51工程KeilC51軟件的介紹及應(yīng)用示例新建項目完成后,用戶即可看到新建的項目名稱已經(jīng)顯示在uVision5窗口標(biāo)題上了,同時窗口左側(cè)的ProjectWorkspace項目欄中也已經(jīng)添加了名為“Target1”的項目列表項單擊“Target1”左邊的田符號展開該項可以看到當(dāng)前Hello項中僅有一個“STARTUP.A51”文件,該文件即是圖3.16中選擇添加的C51初始化代碼文件。建立KeilC51工程KeilC51軟件的介紹及應(yīng)用示例建立Hello項目并添加Hello.c文件后,用戶在Helo.c文本編輯窗口可以進行程序輸入、修改等操作。如圖3.1.10所示。程序輸入KeilC51軟件的介紹及應(yīng)用示例輸入程序后,用戶可以選擇菜單“Project”一“BuildTarget”命令或按快捷鍵F7進行編譯,對圖3.1.10中的Hello程序,KeilC51編譯結(jié)果如圖3.1.11所示。編譯程序KeilC51軟件的介紹及應(yīng)用示例程序調(diào)試本節(jié)將對圖3.115中的程序進行調(diào)試說明,該程序的功能是隔0.5s將51單片機P1端口第4位的輸出電平翻轉(zhuǎn)。KeilC51軟件的介紹及應(yīng)用示例程序調(diào)試如果要在仿真時判斷定時時間是否正確,還需設(shè)置目標(biāo)器件使用的晶振頻率。如圖3.1.16所示,在項目設(shè)置窗口的“Target”頁中,將“Xtal(MHz):”欄內(nèi)的晶振頻率改為12MHz。KeilC51軟件的介紹及應(yīng)用示例程序調(diào)試仿真開始之前,用戶還可以在文本編輯窗口設(shè)置程序調(diào)試斷點。如圖3.1.17所示,單擊圖中第15行代碼,然后按快捷鍵F9,該行前端將顯示一個紅點,表示已經(jīng)在該行添加了一個調(diào)試斷點。02Proteus介紹及使用示例Proteus介紹及使用示例Proteus運行于WindowsXP/7/8/10環(huán)境,對PC的配置要求不高,一般配置即可滿足要求。雙擊桌面上的Proteus8Professional圖標(biāo)或單擊屏幕左下方的“開始”-“程序”一“Proteus8Professional”,出現(xiàn)如圖321所示界面,表示即將進入Proteus8Professional工作主界面。Proteus8原理圖編輯環(huán)境介紹Proteus介紹及使用示例電路設(shè)計的第一步通常是進行原理圖設(shè)計,只有在設(shè)計好原理圖的基礎(chǔ)上才可以進行電路圖仿真等操作,原理圖的具體設(shè)計步驟如下。1.新建設(shè)計文檔:在進入原理圖設(shè)計之前,要構(gòu)思好原理圖,即必須清楚所設(shè)計的項目由哪些電路來完成,用何種模板。2.放置元器件:根據(jù)需要先從元器件庫中添加相應(yīng)的類,然后從添加元器件對話框中選取需要的元器件,將其布置到圖紙的合適位置,并對元器件的名稱、標(biāo)注進行設(shè)定。Proteus8原理圖設(shè)計方法及示例Proteus介紹及使用示例3.對原理圖進行布線根據(jù)實際電路的需要,利用Proteus8原理圖編輯環(huán)境所提供的各種工具指令進行布線,將工作平面上的元器件用導(dǎo)線連接起來,構(gòu)成一幅完整的電路原理圖。4.建立網(wǎng)絡(luò)表:在完成上述步驟后,即可看到一張完整的電路圖,但要完成電路板的設(shè)計,還需要生成一個網(wǎng)絡(luò)表文件(*SDF)。網(wǎng)絡(luò)表是電路板與電路原理圖之間的紐帶。Proteus8原理圖設(shè)計方法及示例Proteus介紹及使用示例5.對原理圖進行電氣規(guī)則檢查:當(dāng)完成原理圖布線后,利用電氣規(guī)則檢查命令(Tools-ElectricalRuleCheck)對設(shè)計進行檢查,并根據(jù)系統(tǒng)提供的錯誤檢查報告修改原理圖。6.存盤和輸出報表:Proteus8原理圖編輯環(huán)境提供了多種報表輸出格式,同時可以對設(shè)計好的原理圖和報表進行存盤和輸出打印。Proteus8原理圖設(shè)計方法及示例Proteus介紹及使用示例單片機系統(tǒng)的仿真是Proteus的VSM環(huán)境的一大特色。VSM(VirtualSystemModeling)直接譯作“虛擬系統(tǒng)模型”,官方的定義是:將Sice電路模型、動態(tài)外設(shè)及微處理器的仿真結(jié)合起來,在物理原型調(diào)試之前用于仿真整個單片機系統(tǒng)的一種設(shè)計方法。對動態(tài)外設(shè)的支持是Proteus區(qū)別于其他仿真軟件最直接的地方。Proteus8程序仿真示例Proteus介紹及使用示例Proteus8提供的虛擬工具和儀器如圖3215所示。Proteus8程序仿真示例Proteus介紹及使用示例對單片機程序的仿真處理通常分為以下幾個步驟。1)添加程序右擊圖3.2.14所示原理圖中的AT89C52單片機在彈出的菜單中選擇“EditSourceCode”菜單項59(在菜單最下方)將彈出如圖3.2.17所示的“NewFiwareProiect”(新建固件工程)窗口。Proteus8程序仿真示例Proteus介紹及使用示例2)編寫程序代碼在“SourceCode”窗口中修改main.c文件的程序代碼為圖3.1.15所示的示例程序程序功能為每隔0.5s將P1.4端口的輸出電平翻轉(zhuǎn),即實現(xiàn)P1.4所接LED燈秒閃功能。程序修改后,單擊工具條上的編譯按鈕色或按快捷鍵Ctl+F7重新編譯,編譯結(jié)果如圖3.2.19所示。Proteus8程序仿真示例Proteus介紹及使用示例3)程序仿真與調(diào)試確定程序編譯成功后按快捷鍵F12或單擊窗口左下角仿真控制工具條上的仿真按鈕開始仿真。觀察仿真運行結(jié)果,可以看到原理圖中的LED燈出現(xiàn)秒閃效果,AT89C52單片機P1.4端口的輸出電平也在動態(tài)變化(紅色表示高電平藍色表示低電平)。在仿真過程中。程序運行時間和CPU占用率都顯示在狀態(tài)欄中。Proteus8程序仿真示例Proteus介紹及使用示例同時,因為在原理圖中添加了示波器,仿真時還會顯示如圖3.2.20所示的“DigitalOscilloscope窗口,通過該窗口能觀察到P1.4端口電平的連續(xù)變化波形。如果沒有看到或之前已經(jīng)關(guān)閉了示波器窗口,在仿真狀態(tài)下,可以通過主菜單“Debug”一“DigitalOscilloscope”重新打開。Proteus8程序仿真示例Proteus介紹及使用示例Proteus8程序仿真示例Proteus介紹及使用示例4)仿真Hex文件如果單片機程序沒有添加到Proteus8工程中而是在KeilC51工程中進行編譯則也可以用Proteus對該程序進行仿真。簡單一點的方法是在KeilC51工程設(shè)置中的輸出選項頁勾選“CreateHEXFie”這樣編譯輸出就會生成hex程序文件,然后在Proteus原理圖中右擊單片機元器件,選擇右鍵菜單中的“EditProperties”菜單項,彈出元器件屬性窗口,如圖3.2.24所示。Proteus8程序仿真示例Proteus介紹及使用示例Proteus8程序仿真示例Proteus介紹及使用示例4)仿真Hex文件如果單片機程序沒有添加到Proteus8工程中而是在KeilC51工程中進行編譯則也可以用Proteus對該程序進行仿真。簡單一點的方法是在KeilC51工程設(shè)置中的輸出選項頁勾選“CreateHEXFie”這樣編譯輸出就會生成hex程序文件,然后在Proteus原理圖中右擊單片機元器件,選擇右鍵菜單中的“EditProperties”菜單項,彈出元器件屬性窗口,如圖3.2.24所示。Proteus8程序仿真示例Proteus介紹及使用示例5)示例程序擴展在本節(jié)的原理圖示例中,電路圖上還添加了兩位數(shù)碼管,現(xiàn)在可以把圖3.2.25中的數(shù)碼管顯示函數(shù)代碼添加到main函數(shù)之前并在main主循環(huán)中的“TFO=0”語句之后再添加一句“disp-val(Beep);函數(shù)調(diào)用,這樣就可以將Beep變量的值顯示到數(shù)碼管上進行觀察了。Proteus8程序仿真示例Proteus介紹及使用示例Proteus8程序仿真示例謝謝觀看“MCS-51單片機匯編語言指今系統(tǒng)及其編程“

單片機原理及應(yīng)用第四章01指令格式及其符號說明指令格式及其符號說明MCS-51單片機的指令系統(tǒng)有111條指令,可以實現(xiàn)51種基本操作。指令由操作碼助記符和操作數(shù)兩部分組成,其基本格式如下:[標(biāo)號:]操作碼助記符[目的操作數(shù)][,源操作數(shù)][;注釋]在指令的基本格式中使用了可選擇符號“[]”,其包含的內(nèi)容因指令的不同可有可無。指令格式指令格式及其符號說明標(biāo)號:標(biāo)號是程序員根據(jù)編程需要給指令設(shè)定的符號地址,可有可無。通常在子程序入口或轉(zhuǎn)移指令的目標(biāo)地址時賦予標(biāo)號。操作碼助記符:操作碼助記符表明指令的功能,不同指令有不同的操作碼助記符,一般用說明其功能的英文單詞的縮寫形式表示。操作碼助記符是指令的核心部分,用于指示指令執(zhí)行何種操作,如加、減、乘、除、傳送等。指令格式指令格式及其符號說明操作數(shù):操作數(shù)表示指令操作的對象,其可以是一個具體的數(shù)據(jù),也可以是參加運算的數(shù)據(jù)所在的地址。注釋:注釋是對指令的解釋說明,用于提高程序的可讀性,注釋前必須加分號,注釋換行時行前也要加分號。注釋對于指令本身的功能而言是可以不要的。指令格式指令格式及其符號說明常用符號說明在MCS-51單片機的指令中,常用符號說明如表411所示。指令格式及其符號說明指令的字節(jié)1.單字節(jié)指令(49條)單字節(jié)指令的指令代碼只占一字節(jié),操作碼和操作數(shù)信息同在其中。單字節(jié)指令可以分為兩類:無操作數(shù)單字節(jié)指令和含有操作數(shù)的單字節(jié)指令。(1)無操作數(shù)單字節(jié)指令這類指令只有操作碼字段,操作數(shù)隱含在操作碼中。(2)含有操作數(shù)的單字節(jié)指令這類指令的指令代碼把操作碼的代碼和操作數(shù)的代碼“擠”在同一字節(jié)中。指令格式及其符號說明指令的字節(jié)2.雙字節(jié)指令(45條)雙字節(jié)指令包括兩字節(jié),其中第一字節(jié)為操作碼,第二字節(jié)是操作數(shù)。3,三字節(jié)指令(17條)三字節(jié)指令中,操作碼占一字節(jié),操作數(shù)占兩字節(jié),其中,操作數(shù)既可能是數(shù)據(jù),也可能是操作數(shù)地址,包括如下4類。(1)16位數(shù)據(jù)(2)8位地址和8位數(shù)據(jù)(3)8位數(shù)據(jù)和8位地址(4)16位地址02尋址方式尋址方式操作數(shù)是指令的重要組成部分,其指定了參與運算的數(shù)據(jù)或數(shù)據(jù)所在單元的地址,如何得到這個地址就稱為尋址方式。CPU尋址操作數(shù)方式的多少,說明了其尋址操作數(shù)的靈活程度。按指令給出操作數(shù)方式的不同,MCS-51單片機指令系統(tǒng)有7種尋址方式:立即尋址、直接尋址、寄存器尋址、寄存器間接尋址、變址尋址、相對尋址和位尋址。尋址方式立即尋址是指操作數(shù)在指令中直接給出,通常把出現(xiàn)在指令中的操作數(shù)稱為立即數(shù),因此就把這種尋址方式稱為立即尋址。為了與直接尋址指令中的直接地址相區(qū)別,在立即數(shù)前面加上前綴“#”立即數(shù)可以是8位立即數(shù)#data,也可以是16位立即數(shù)#data16;立即數(shù)可以是二進制數(shù)、十進制數(shù)十六進制數(shù),也可以是帶單引號的字符。立即尋址尋址方式直接尋址是把存放操作數(shù)內(nèi)存單元的地址直接在指令中給出。直接尋址方式只能使用8位進制數(shù)表示地址,因此這種尋址方式的尋址范圍只限于內(nèi)部RAM具體說就是:1.內(nèi)部RAM的低128字節(jié)單元在指令中直接以單元地址的形式給出。2.特殊功能寄存器除以單元地址形式給出外,還可以以寄存器符號形式給出。應(yīng)當(dāng)指出,直接尋址是訪問特殊功能寄存器的唯一方式。直接尋址尋址方式寄存器尋址時指令中給出的是操作數(shù)所在的寄存器,寄存器的內(nèi)容為操作數(shù)。寄存器尋址方式指令中的寄存器包括:1.工作寄存器。2.部分特殊功能寄存器。寄存器尋址尋址方式寄存器間接尋址是指存放操作數(shù)的內(nèi)存單元的地址放在寄存器中,指令只給出寄存器。與寄存器尋址方式不同,寄存器尋址方式中,寄存器中存放的是操作數(shù);而寄存器間接尋址方式中,寄存器中存放的是操作數(shù)的地址。寄存間接尋址尋址方式執(zhí)行過程為:以RO寄存器內(nèi)容50H作為地址,把該地址單元的內(nèi)容送至累加器A。其執(zhí)行過程參見圖4.2.1寄存間接尋址尋址方式變址尋址是指將基址寄存器與變址寄存器的內(nèi)容相加,結(jié)果作為操作數(shù)的地址。變址尋址主要用于查表操作,DPTR或PC是基址寄存器,累加器A是變址寄存器,A中的數(shù)據(jù)為無符號數(shù)。例如:MOVCA,@A+DPTR變址尋址尋址方式其功能為將累加器A和DPTR的內(nèi)容相加,相加結(jié)果為操作數(shù)存放地址,再將操作數(shù)取出送到累加器A中。因此符號“@”應(yīng)理解為是針對A+DPTR的,而不是單單針對A的。假定指令執(zhí)行前(A)=02H,(DPTR)=0100H,則該指令的操作示意圖如圖4.2.2所示變址尋址形成的操作數(shù)地址為0100H+02H-0102H,而ROM中0102H單元的內(nèi)容假設(shè)為38H,故該指令執(zhí)行后A的內(nèi)容為38H。變址尋址尋址方式變址尋址尋址方式相對尋址是為了實現(xiàn)程序的相對轉(zhuǎn)移而設(shè)置的,由相對轉(zhuǎn)移指令采用。相對尋址是把程序計數(shù)器(PC)的當(dāng)前內(nèi)容與指令中給出的偏移量(rel)相加,從而構(gòu)成程序轉(zhuǎn)移的目的地址。PC的當(dāng)前內(nèi)容是指取出該指令后的PC值,即下一條指令的地址。因此轉(zhuǎn)移的目的地址為:目的地=轉(zhuǎn)移指令所在的地址+轉(zhuǎn)移指今字節(jié)數(shù)+rel偏移量(rel)是一個帶符號的8位二進制數(shù),表示范圍為-128~+127。相對尋址尋址方式該指令為二字節(jié)指令,假設(shè)存放在程序存儲器的1000H和1001H單元中。當(dāng)執(zhí)行該指令時,先從這兩個單元中取出指令,PC值自動變?yōu)?002H,再把PC的內(nèi)容與操作數(shù)50H相加,得到目的地址1052H,再送回PC,使程序跳轉(zhuǎn)到1052H單元繼續(xù)執(zhí)行。通常在使用時把re1寫成符號地址形式,編程者一般不去標(biāo)偏移值。相對尋址尋址方式位尋址是按位進行的尋址操作。位尋址的范圍包含兩個區(qū)域:1.內(nèi)部RAM的位尋址區(qū)20H~2FH,共128位,位地址00H~7FH,用直接尋址方式表示。2.特殊功能寄存器(SFR)中的可尋址位。11個特殊功能寄存器有83位可尋址位。位尋址03MCS-51系列單片機指令系統(tǒng)MCS-51系列單片機指令系統(tǒng)MCS-51系列單片機指令系統(tǒng)有111條指令,按指令功能可以分為:1.數(shù)據(jù)傳送類指令(29條)。2.算術(shù)運算類指令(24條)。3.邏輯運算及移位類指令(24條)。4.控制轉(zhuǎn)移類指令(17條)。5.位操作類指令(17條)。MCS-51系列單片機指令系統(tǒng)數(shù)據(jù)傳送類指令有29條,是指今系統(tǒng)中數(shù)量最多使用最頻繁的一類指令。這類指令可分為三組:普通傳送指令、數(shù)據(jù)交換指令和堆棧操作指令。1.普通傳送指令普通傳送指令的助記符為“MOV”“MOVC”或“MOVX”匯編指令格式為:MOV目的操作數(shù),源操作數(shù)數(shù)據(jù)傳送類指令MCS-51系列單片機指令系統(tǒng)2.數(shù)據(jù)交換指令普通傳送指令實現(xiàn)將源操作數(shù)的數(shù)據(jù)傳送到目的操作數(shù),執(zhí)行指令后源操作數(shù)不變,數(shù)據(jù)傳送是單向的。在數(shù)據(jù)交換指令中,源操作數(shù)和目的操作數(shù)的內(nèi)容做雙向傳送。這類指令有5條,分為整字節(jié)和半字節(jié)兩種交換。數(shù)據(jù)傳送類指令MCS-51系列單片機指令系統(tǒng)3.堆棧操作指令堆棧是在片內(nèi)RAM中按“先進后出,后進先出”的原則設(shè)置的專用存儲區(qū)。數(shù)據(jù)的進棧和出棧由指針SP統(tǒng)一管理,堆棧操作指令有2條:PUSHdirect;SP-(SP)+1,SP-(direct)POPdirect;direct-(SP),SP-(SP)-1其中,PUSH為入棧指令,POP為出棧指令,采用直接尋址方式。數(shù)據(jù)傳送類指令MCS-51系列單片機指令系統(tǒng)算術(shù)運算類指令包括加法指令、減法指令、乘法指令、除法指令和十進制調(diào)整指令,共24條。算術(shù)運算類指令多以累加器A為目的操作數(shù),大多數(shù)指令執(zhí)行結(jié)果影響程序狀態(tài)字寄存器。1.加法指令加法指令有不帶進位的加法指令、帶進位的加法指令和加1指令。2.減法指令減法指令有帶借位的減法指令和減1指令。算術(shù)運算類指令MCS-51系列單片機指令系統(tǒng)3.乘法指令乘法指令只有1條:MULAB這條指令把累加器A和寄存器B中的兩個無符號8位數(shù)相乘其16位乘積的低位字節(jié)放在A中高位字節(jié)放在B中。4.除法指令除法指令也只有1條:DIVAB算術(shù)運算類指令MCS-51系列單片機指令系統(tǒng)算術(shù)運算類指令5,十進制調(diào)整指令在單片機指令系統(tǒng)中,加法運算指令的源操作數(shù)、目的操作數(shù)和運算結(jié)果都是二進制數(shù),適用于二進制數(shù)據(jù)的操作,如果要用來進行十進制數(shù)據(jù)的加法運算,需要在加法指令后使用一條十進制調(diào)整指令,對累加器A中的二進制數(shù)加法結(jié)果進行調(diào)整,稱為BCD碼。該指令只有1條,指令如下:DAAMCS-51系列單片機指令系統(tǒng)邏輯運算及移位類指令邏輯運算及移位類指令有24條。其中,邏輯運算指令可以按位完成數(shù)字邏輯的與、或、異或累加器清零和取反操作;移位指令是對累加器A的循環(huán)移位操作,包括帶與不帶進位標(biāo)志的左、右方向循環(huán)移位操作。MCS-51系列單片機指令系統(tǒng)邏輯運算及移位類指令1.邏輯與指令邏輯與指令是把源操作數(shù)與目的操作數(shù)的內(nèi)容按位進行與運算,再把運算結(jié)果送入目的操作數(shù)。邏輯與運算用符號“^”表示2.邏輯或指令邏輯或指令是把源操作數(shù)與目的操作數(shù)的內(nèi)容按位進行或運算,再把運算結(jié)果送入目的操作數(shù)。邏輯或運算用符號“V”表示MCS-51系列單片機指令系統(tǒng)3.邏輯異或指令邏輯異或指令是把源操作數(shù)與目的操作數(shù)的內(nèi)容按位進行異或運算,再把運算結(jié)果送入目的操作數(shù)。4.累加器清零和取反指令5.循環(huán)移位指令循環(huán)移位指令有4條,前兩條只在累加器A中進行循環(huán)移位,后兩條帶進位標(biāo)志CY進行循環(huán)移位。邏輯運算及移位類指令MCS-51系列單片機指令系統(tǒng)1.無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令是指當(dāng)執(zhí)行指令后,程序?qū)o條件地轉(zhuǎn)移到指令指定的地方。無條件轉(zhuǎn)移指令包括長轉(zhuǎn)移指令、絕對轉(zhuǎn)移指令、短轉(zhuǎn)移指令、變址尋址轉(zhuǎn)移指令。控制轉(zhuǎn)移類指令MCS-51系列單片機指令系統(tǒng)2.條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令是指當(dāng)條件滿足時,程序轉(zhuǎn)移到指定位置,當(dāng)條件不滿足時,程序?qū)㈨樞驁?zhí)行。條件轉(zhuǎn)移指令有三種:累加器A判零轉(zhuǎn)移指令、比較轉(zhuǎn)移指令、減1非零轉(zhuǎn)移指令??刂妻D(zhuǎn)移類指令MCS-51系列單片機指令系統(tǒng)前面介紹的指令操作數(shù)均是字節(jié),位操作類指令的操作數(shù)是字節(jié)中的某個位。這些位只能取0或1也稱為布爾變量或開關(guān)變量,因此位操作指令也稱為布爾變量操作指令,包括17條指令。允許進行位操作的位空間是:內(nèi)部RAM位尋址區(qū)(20H~2FH)的128位和SFR中可以進行位操作的11個特殊功能寄存器中的83位。其中,累加器A中的進位標(biāo)志CY也稱為位累加器,在指令中寫作C。位操作類指令MCS-51系列單片機指令系統(tǒng)1.位傳送指令2.位置位與清零指令3.位運算指令4.位控制轉(zhuǎn)移指令位操作類指令04MCS-51單片機匯編語言程序設(shè)計MCS-51單片機匯編語言程序設(shè)計各種匯編程序都提供了一些特殊的指令供編程時使用,既方便編程也可以對匯編語言程序進行匯這些指令通常稱為偽指令,由偽指令確定的操作稱為偽操作。偽指令又稱為匯編程序控制譯碼指編?!皞巍斌w現(xiàn)在匯編時不產(chǎn)生任何機器指令代碼,也不影響程序的執(zhí)行,僅僅指出在匯編時執(zhí)行一些特殊的操作。匯編語言的偽指令MCS-51單片機匯編語言程序設(shè)計匯編語言程序設(shè)計的步驟如下:(1)擬訂設(shè)計任務(wù)書(2)建立數(shù)學(xué)模型。(3)確定算法。(4)分配內(nèi)存單元,編制程序流程圖。匯編語言程序設(shè)計MCS-51單片機匯編語言程序設(shè)計(5)編制源程序,進一步合理分配存儲器單元及了解I/0接口地址:按功能設(shè)計程序,明確各程序之間的相互關(guān)系;用注釋行說明程序,便于閱讀及修改調(diào)試。(6)上機試調(diào)。(7)程序優(yōu)化。匯編語言程序設(shè)計MCS-51單片機匯編語言程序設(shè)計1.簡單程序設(shè)計2.分支程序設(shè)計分支程序有三種基本形式,即單分支、雙分支、多分支。其結(jié)構(gòu)流程圖如圖4.4.2所示。匯編語言程序設(shè)計MCS-51單片機匯編語言程序設(shè)計3.循環(huán)程序設(shè)計順序程序、分支程序的共同點是每條指令至多執(zhí)行一次,而實際中有時要求某程序段多次重復(fù)執(zhí)這就需要采用循環(huán)程序結(jié)構(gòu)。循環(huán)程序一般由下面四部分組成。(1)循環(huán)初始化。(2)循環(huán)體。(3)循環(huán)控制。(4)循環(huán)結(jié)束。匯編語言程序設(shè)計MCS-51單片機匯編語言程序設(shè)計4.數(shù)制轉(zhuǎn)換程序在單片機應(yīng)用程序中存在各種形式的數(shù)據(jù),數(shù)制變換是十分普遍的,下面列舉一些數(shù)制轉(zhuǎn)換程序。(1)二進制數(shù)轉(zhuǎn)換成BCD碼。(2)BCD碼轉(zhuǎn)換成二進制數(shù)。(3)ASCI碼與二進制數(shù)的相互轉(zhuǎn)換。匯編語言程序設(shè)計MCS-51單片機匯編語言程序設(shè)計5.查表程序設(shè)計預(yù)先將相關(guān)數(shù)據(jù)以表格的形式存放在程序存儲區(qū)中,然后用程序?qū)⑵渥x出,這種能將表格數(shù)據(jù)讀出的程序稱為查表程序。查表程序主要應(yīng)用于數(shù)碼顯示、打印字符轉(zhuǎn)換、數(shù)據(jù)轉(zhuǎn)換、復(fù)雜函數(shù)的計算等場合。MCS-51有兩條專用的查表指令:MOVCA,@A+DPTRMOVCA,@A+PC匯編語言程序設(shè)計謝謝觀看“單片機C51程序設(shè)計基礎(chǔ)“

單片機原理及應(yīng)用第五章01C51數(shù)據(jù)與運算C51數(shù)據(jù)與運算變量與常量是程序中的兩種基本數(shù)據(jù)對象,一個對象的類型決定著該對象可取值的集合及可以對該對象施行的運算。變量或常量的類型在聲明時由數(shù)據(jù)類型關(guān)鍵字來指定。C51的數(shù)據(jù)類型C51數(shù)據(jù)與運算為了更加有效地利用51單片機的結(jié)構(gòu),除了C語言中的所有標(biāo)準(zhǔn)數(shù)據(jù)類型,C51還加入了以下特殊的數(shù)據(jù)類型:bit位變量,值為0或1sbit從字節(jié)中聲明的位變量sfr特殊功能寄存器,8位sfr16特殊功能寄存器,16位C51的數(shù)據(jù)類型C51數(shù)據(jù)與運算表5.1.1列出了C51所支持的數(shù)據(jù)類型。C51的數(shù)據(jù)類型C51數(shù)據(jù)與運算C51數(shù)據(jù)的存儲類型C51中,變量或參數(shù)的存儲類型可以由存儲模式默認指定,也可以用關(guān)鍵字直接聲明指定。存儲模式?jīng)Q定了沒有明確指定存儲類型的變量、函數(shù)參數(shù)等的默認存儲區(qū)域,共三種。C51數(shù)據(jù)與運算C51數(shù)據(jù)的存儲類型(1)Smal1模式:所有默認變量參數(shù)均裝入內(nèi)部RAM。(2)Compact模式:所有默認變量均位于外部RAM區(qū)的一頁(256字節(jié)),具體哪一頁可由P2口指定(在STARTUP.A51文件中說明,也可用pdata指定)。(3)Large模式:所有默認變量可放在多達64KB的外部RAM區(qū)。C51數(shù)據(jù)與運算C51數(shù)據(jù)的存儲類型直接使用關(guān)鍵字聲明變量數(shù)據(jù)的存儲類型時,可用的關(guān)鍵字如表5.1.2所示,各個關(guān)鍵字分別對應(yīng)51單片機的某個存儲區(qū)。C51數(shù)據(jù)與運算51單片機中,除了程序計數(shù)器(PC)和4組通用存器組,其他所有寄存器均為特殊功能寄存器(SFR),其地址范圍為80H~FPH。特殊功能寄存器可由以下關(guān)鍵字說明。(1)sfs聲明字節(jié)尋址的特殊功能存器。8051特殊功能寄存器的C51定義C51數(shù)據(jù)與運算(2)sfr16對于一些8051派生系列單片機,該關(guān)鍵字可以聲明其內(nèi)兩個連續(xù)地址的特殊功能寄存器(SFR)。(3)sbit聲明可位尋址的特殊功能寄存器和別的可位尋址目標(biāo)。8051特殊功能寄存器的C51定義C51數(shù)據(jù)與運算8051提供4個并行接口PO~P3,其地址分別是0x80、0x90、0xA0和0xB0。一般而言,單片機的C51開發(fā)軟件中已經(jīng)提供定義這4個并行接口的通用頭文件供開發(fā)人員使用,如Keil公司的C51開發(fā)軟件就提供REG51.h和REG52.h這兩個頭文件。8051并行接口及位變量的C51定義02C51運算符表達式及其規(guī)則C51運算符表達式及其規(guī)則無論是加、減、乘、除還是數(shù)值比較,都需要用到運算符,運算符包括賦值運算符、算術(shù)運算符邏輯運算符、位運算符、位移運算符、關(guān)系運算符、自增和自減運算符等。大多數(shù)運算符都是二目運算符,即運算符位于兩個表達式之間。單目運算符的意思是運算符作用于單個表達式。C51運算符表達式及其規(guī)則賦值語句的作用是把某個常量、變量或表達式的值賦給另一個變量。符號為=。這里并不是等于的意思,只是賦值,等于用=表示。注意:賦值語句左邊的變量在程序的其他地方必須要聲明。(復(fù)合)賦值運算符C51運算符表達式及其規(guī)則在C51中有兩個單目運算符和5個雙目運算符。算術(shù)運算符C51運算符表達式及其規(guī)則這是一類特殊的運算符,自增運算符++和自減運算符-對變量的操作結(jié)果是增加1和減小1。上述語句中,運算符在變量前或后對變量本身的影響一樣,都是加1或減1,但是如果把它們作為其他表達式的一部分,兩者就有區(qū)別了。自增和自減運算符C51運算符表達式及其規(guī)則關(guān)系運算符是對兩個表達式進行比較,返回一個真/假值。關(guān)系運算符C51運算符表達式及其規(guī)則邏輯運算符根據(jù)表達式的值來返回真值或假值。其實在C語言中沒有所謂的真值和假值,只是認為非0為真值,0為假值。邏輯運算符C51運算符表達式及其規(guī)則般而言,在計算機中,一字節(jié)占8位,這樣表示的數(shù)值范圍為0~255,即00000000~11111111。位就是里面的0和1。位操作運算符包括位邏輯運算符和位移運算符:位運算符C51運算符表達式及其規(guī)則條件運算符(?:)是C語言中唯一的一個三目運算符,其對第一個表達式做真、假檢測,然后根據(jù)結(jié)果返回后面兩個表達式中的一個。首先對第一個表達式進行檢驗,如果為真,則返回表達式2的值,如果為假,則返回在運算中,表達式3的值。條件運算符C51運算符表達式及其規(guī)則指針數(shù)據(jù)類型是一種存放指向另一個數(shù)據(jù)地址的變量類型。指針是C語言中一個十分重要的概也是學(xué)習(xí)C語言的一個難點。C語言中提供兩個專門用于指針和地址的運算符:指針和地址運算符C51運算符表達式及其規(guī)則表5.2.1是C51運算符的優(yōu)先級和結(jié)合性。指針和地址運算符03C51流控制語句C51流控制語句C語言是一種結(jié)構(gòu)化、模塊化的編程語言。模塊是程序的一部分,只有一個出口和一個入口。一個C51程序由若干個模塊組成,每個模塊中包含若干個基本結(jié)構(gòu),每個基本結(jié)構(gòu)由若干條語句組成。C語言歸納起來有三種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。C51程序的基本結(jié)構(gòu)及流程圖C51流控制語句(1)順序結(jié)構(gòu)及其流程圖順序結(jié)構(gòu)中,程序由低地址向高地址順序執(zhí)行代碼。如圖5.31所示程序先執(zhí)行A操作,再執(zhí)行B操作,兩者是順序執(zhí)行的關(guān)系。C51程序的基本結(jié)構(gòu)及流程圖C51流控制語句(2)選擇結(jié)構(gòu)及其流程圖。選擇結(jié)構(gòu)通常出現(xiàn)在程序的功能決策、操作判斷等位置,程序首先對一個條件進行測試。選擇結(jié)構(gòu)還有兩種派生結(jié)構(gòu):串行多分支結(jié)構(gòu)和并行多分支結(jié)構(gòu)。如圖5.3.2所示:C51程序的基本結(jié)構(gòu)及流程圖C51流控制語句(3)循環(huán)結(jié)構(gòu)及其流程圖。不同于順序結(jié)構(gòu)和選擇結(jié)構(gòu)的單次操作特點,循環(huán)結(jié)構(gòu)可以使分支流程重復(fù)執(zhí)行。循環(huán)結(jié)構(gòu)又有while型和dowhile型兩類。如圖5.3.3,5.3.4所示:C51程序的基本結(jié)構(gòu)及流程圖C51流控制語句c語言中的選擇語句有三種:if語句、switch/case語句和條件表達式。(1)if語句if語句作為C語言的一個基本判定語句。(2)條件表達式。條件表達式是使用?:三目操作符的一種決策代碼書寫方法:表達式1?表達式2:表達式3選擇語句C51流控制語句(3)switch/case語句。switch/case語句常用于處理并行多分支選擇問題,其將一個變量或表達式的值作為判斷條件,將此變量的值域范圍分成幾段,每一段對應(yīng)一種選擇或操作,當(dāng)判斷值處在某個段中時,程序就會選擇執(zhí)行該段相應(yīng)的操作。選擇語句C51流控制語句C51提供三種基本的循環(huán)語句:for語句、while語句和do-while語句。(1)for循環(huán)語句,其一般格式為:for(<初始化>;<條件表達式>;<增量>)[語句;}//循環(huán)體循環(huán)語句C51流控制語句(2)while循環(huán)語句,其一般格式為:while(條件){語句;}//循環(huán)體(3)do-while循環(huán)語句,其一般格式為:{

語句塊;//循環(huán)體}while(條件)循環(huán)語句C51流控制語句(4)循環(huán)語句中的break。break語句通常用在循環(huán)語句和switch語句中。(5)循環(huán)語句中的continue。continue語句的作用是跳過循環(huán)體中剩余語句而強行執(zhí)行下一次循環(huán)。循環(huán)語句04C51構(gòu)造數(shù)據(jù)類型C51構(gòu)造數(shù)據(jù)類型數(shù)組是一組具有固定數(shù)目和相同類型成分分量的有序集合,顧名思義就是一組同類型的數(shù)。數(shù)組有一維、二維、三維和多維之分,C51中常用的有一維數(shù)組和字符數(shù)組。1)數(shù)組的聲明聲明數(shù)組的語法為在數(shù)組名后加上用方括號括起來的維數(shù)說明。數(shù)組C51構(gòu)造數(shù)據(jù)類型2)用下標(biāo)訪問數(shù)組元素Intbuffer[10];3)數(shù)組的初始化變量可以在定義的時候初始化,數(shù)組也可以,如下示例:intarray[5]={1,2,3,4,5];4)字符數(shù)組整數(shù)和浮點數(shù)類型的數(shù)組很好理解,在一維數(shù)組中,還有一類字符型數(shù)組。數(shù)組C51構(gòu)造數(shù)據(jù)類型規(guī)范地使用指針,可以使程序簡單明了,因此不但要學(xué)會如何正確地使用指針,而且要學(xué)會在各種情況下正確地使用指針變量。1)指針的基本概念及指針變量的定義所謂變量的指針,實際上是指變量的地址。變量的地址雖然在形式上類似于整數(shù),但在概念上不同于整數(shù)類型,它屬于一種新的數(shù)據(jù)類型,即指針類型。指針C51構(gòu)造數(shù)據(jù)類型2)指向數(shù)組元素的指針指針和數(shù)組有著密切的關(guān)系,任何能由數(shù)組下標(biāo)完成的操作都可用指針來實現(xiàn),但程序中使用指針可使代碼更緊湊、靈活。3)地址運算指針允許的運算方式有:(1)指針在一定條件下可進行比較,這里所說的一定條件,是指兩個指針指向同一個對象才有意義。指針C51構(gòu)造數(shù)據(jù)類型(2)指針和整數(shù)可進行加、減運算。(3)兩個指針變量在一定條件下可進行減法運算。設(shè)p和g指向同一數(shù)組,則p-g的絕對值表示p所指對象與q所指對象之間的元素個數(shù)。其相減的結(jié)果遵守對象類型的字節(jié)長度進行縮小的規(guī)則。指針C51構(gòu)造數(shù)據(jù)類型結(jié)構(gòu)是由基本數(shù)據(jù)類型構(gòu)成,并用一個標(biāo)識符來命名的各種變量組合。結(jié)構(gòu)中可以使用不同的數(shù)據(jù)類型。1)結(jié)構(gòu)說明和結(jié)構(gòu)變量的定義在C語言中,結(jié)構(gòu)體也是一種數(shù)據(jù)類型,可以使用結(jié)構(gòu)變量。像其他類型的變量一樣,在使用結(jié)構(gòu)變量時也要先對其定義。結(jié)構(gòu)體C51構(gòu)造數(shù)據(jù)類型2)結(jié)構(gòu)變量的使用結(jié)構(gòu)是一個新的數(shù)據(jù)類型,因此結(jié)構(gòu)變量也可以像其他類型的變量一樣賦值、運算,不同的是結(jié)構(gòu)變量以成員作為基本變量。3)結(jié)構(gòu)指針結(jié)構(gòu)指針是指向結(jié)構(gòu)的指針,其由一個加在結(jié)構(gòu)變量名前的*操作符來定義。結(jié)構(gòu)體C51構(gòu)造數(shù)據(jù)類型共用體又稱聯(lián)合(union),是C語言的構(gòu)造類型數(shù)據(jù)結(jié)構(gòu)之一。其與數(shù)組、結(jié)構(gòu)等一樣,也是種比較復(fù)雜的構(gòu)造數(shù)據(jù)類型。1)共用體說明和共用體變量定義共用體說明和共用體變量定義與結(jié)構(gòu)十分相似。共用體C51構(gòu)造數(shù)據(jù)類型2)結(jié)構(gòu)和共用體的區(qū)別1.結(jié)構(gòu)和共用體都是由多個不同的數(shù)據(jù)類型成員組成的,但在任何同一時刻,共用體中只存放一個被選中的成員,而結(jié)構(gòu)的所有成員都存在。2.對共用體的不同成員賦值,將會對其他成員重寫,原來成員的值就不存在了,而對結(jié)構(gòu)的不同成員賦值,則互不影響。共用體C51構(gòu)造數(shù)據(jù)類型枚舉是一個被命名的整型常數(shù)集合,枚舉在日常生活中很常見。例如,表示星期的SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,F(xiàn)RIDAY,SATURDAY,就是一個枚舉。枚舉C51構(gòu)造數(shù)據(jù)類型注意:1.枚舉中每個成員(標(biāo)識符)結(jié)束符是逗號,而不是分號,最后一個成員可省略逗號。2.初始化時可以賦負數(shù),以后的標(biāo)識符仍依次加1。3.26枚舉變量只能取枚舉說明結(jié)構(gòu)中的某個標(biāo)識符常量。枚舉05函數(shù)函數(shù)在高級語言中,函數(shù)與“子程序”“過程”用來描述同樣的事情,都含有以同樣方法重復(fù)完成某件事情的意思。C51中使用“函數(shù)”這個術(shù)語,主程序可以根據(jù)需要來調(diào)用函數(shù),當(dāng)函數(shù)執(zhí)行完畢時發(fā)出return指令,而主程序則繼續(xù)執(zhí)行函數(shù)調(diào)用后面的指令。同一個函數(shù)可以在不同的地方被調(diào)用,并且函數(shù)可以重復(fù)使用。函數(shù)函數(shù)有3種形式:無參數(shù)函數(shù)、有參數(shù)函數(shù)和空函數(shù)。下面簡單介紹這3種函數(shù)的定義方法。1)無參數(shù)函數(shù)的定義無參數(shù)函數(shù)的定義形式為:函數(shù)的定義函數(shù)2)有參數(shù)函數(shù)的定義有參數(shù)函數(shù)的定義形式為:3)空函數(shù)的定義空函數(shù)的

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論