汽車電子技術(shù)與單片機(jī)整套課件完整版ppt全體教學(xué)教程最全電子教案講義_第1頁(yè)
汽車電子技術(shù)與單片機(jī)整套課件完整版ppt全體教學(xué)教程最全電子教案講義_第2頁(yè)
汽車電子技術(shù)與單片機(jī)整套課件完整版ppt全體教學(xué)教程最全電子教案講義_第3頁(yè)
汽車電子技術(shù)與單片機(jī)整套課件完整版ppt全體教學(xué)教程最全電子教案講義_第4頁(yè)
汽車電子技術(shù)與單片機(jī)整套課件完整版ppt全體教學(xué)教程最全電子教案講義_第5頁(yè)
已閱讀5頁(yè),還剩769頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

——當(dāng)前指令存放的地址上一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解一、數(shù)據(jù)傳輸指令1.累加器相關(guān)的數(shù)據(jù)傳輸指令以下指令的功能是把源操作數(shù)的內(nèi)容送入累加器A,源操作數(shù)有寄存器尋址、直接尋址、間接尋址和立即尋址等方式。2.內(nèi)部RAM單元之間的數(shù)據(jù)傳輸指令下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解內(nèi)部RAM單元之間的數(shù)據(jù)傳輸可以使用直接尋址、寄存器尋址以及寄存器間接尋址方式。3.外部存儲(chǔ)器數(shù)據(jù)傳輸指令外部RAM傳輸指令通常使用間接尋址的方式,主要可以分為以Ri進(jìn)行間接尋址和使用16位的DPTR進(jìn)行的間接尋址。針對(duì)外部RAM的操作只能通過累加器A來(lái)完成,MCS-51系統(tǒng)中沒有專門的存儲(chǔ)器讀寫指令,實(shí)際上這些傳輸指令就是讀寫指令,為了區(qū)分是外部寄存器,特別是指令助記符上增加了“X”代表外部之意。具體的指令如下:上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解采用Ri的指令有:采用DPTR的指令有:上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解4.數(shù)據(jù)交換指令數(shù)據(jù)交換主要是在內(nèi)部RAM單元與累加器A之間進(jìn)行,有整字節(jié)交換、半字節(jié)交換和累加器高低半字節(jié)交換指令。源操作數(shù)有寄存器尋址、直接尋址和寄存器間接尋址等方式,例如:上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解5.堆棧指令在MCS-51內(nèi)部RAM中可以設(shè)定一個(gè)后進(jìn)先出LIFO的區(qū)域作為一個(gè)堆棧。在特殊功能寄存器中有一個(gè)堆棧指針SP,它指出棧頂?shù)奈恢?,在指令系統(tǒng)中有兩條用于數(shù)據(jù)操作的棧操作指令。首先是入棧指令,這條指令的功能是首先將棧指針SP加1,然后把直接地址指出的內(nèi)容送到棧指針SP指示的內(nèi)部RAM單元中。還有對(duì)應(yīng)的出棧指令,出棧指令是將當(dāng)前堆棧指針寄存器SP所指示的單元的內(nèi)容傳送到該指令指定的直接尋址單元中去,然后SP中的內(nèi)容減1.堆棧操作實(shí)際上是通過堆棧指示器SP進(jìn)行的讀寫操作,是以SP為間址寄存器的間接尋址方式。因?yàn)镾P是唯一的,所以在指令中把通過SP的間接尋址的操作數(shù)項(xiàng)隱含了,只表示出直接尋址的操作數(shù)項(xiàng)。上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解二、算術(shù)運(yùn)算指令1.加法指令在加法指令中,又分位普通加法和帶進(jìn)位的加法。這組加法指令的功能是把所指出的字節(jié)變量與累加器A的內(nèi)容相加,其結(jié)果放在累加器A中。如果位7有進(jìn)位輸出,則置“1”進(jìn)位標(biāo)志Cy,否則對(duì)Cy清“0”,如果位3有進(jìn)位輸出,置“1”輔助進(jìn)位標(biāo)志Ac,否則對(duì)Ac清“0”;如果位6有進(jìn)位輸出而位7沒有進(jìn)位,或者位7有進(jìn)位輸出而位6沒有進(jìn)位,則置“1”溢出標(biāo)志OV,否則對(duì)OV清“0”。源操作數(shù)有寄存器尋址、直接尋址、寄存器間接尋址和立即尋址等方式。帶進(jìn)位的加法,除了與上述的運(yùn)算相似外,還增加了進(jìn)位標(biāo)制Cy參加運(yùn)算;上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解2.減法指令通常的減法運(yùn)算都帶有借位,這與帶進(jìn)位的加法十分類似:上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解3.增1減1指令這些指令可以實(shí)現(xiàn)對(duì)相應(yīng)的操作數(shù)的增1和減1操作,這種操作不會(huì)影響PSW的狀態(tài),具體指令如下:以上為自增1運(yùn)算,只需將INC更改為DEC,則可以實(shí)現(xiàn)減1運(yùn)算,但增1運(yùn)算中還有INCDPTR,實(shí)現(xiàn)DPTR增1,而減1中卻沒有這條指令。上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解4.乘除指令MULABDIVABMUL為乘法指令,其功能是把累加器A和寄存器B中的無(wú)符號(hào)8位整數(shù)相乘,其16位積得低位字節(jié)在累加器A中,高位字節(jié)在B中。如果積大于255,則置位溢出標(biāo)志位OV,否則對(duì)OV清“0”。進(jìn)位標(biāo)志位總是清“0”。DIV為除法指令,該指令的功能是把累加器A中8位無(wú)符號(hào)整數(shù)除以B中的8位無(wú)符號(hào)整數(shù),所得的商(為整數(shù))存放在累加器A中,余數(shù)在寄存器B中,清“0”Cy和溢出標(biāo)志位OV。如果B得內(nèi)容為“0”(除數(shù)為“0”),則結(jié)果A,B中的內(nèi)容不定,并置位溢出標(biāo)志位OV。上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解5.十進(jìn)制調(diào)整指令DAA這條指令對(duì)累加器A由前兩個(gè)變量(壓縮的BCD碼)相加的結(jié)果進(jìn)行十進(jìn)制調(diào)整使A中的結(jié)果為二進(jìn)制碼數(shù)。三、邏輯運(yùn)算指令邏輯運(yùn)算指令包括與、或、異或、循環(huán)、累加器清零與求反指令。這些指令中的操作數(shù)都是8位,它們?cè)趫?zhí)行時(shí),不影響標(biāo)志位。上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解1.與(AND)邏輯運(yùn)算指令邏輯運(yùn)算都是按位進(jìn)行的,邏輯與運(yùn)算用符號(hào)∧表示。以上這幾條指令運(yùn)算結(jié)果存放在A中,下面這兩條指令的運(yùn)算結(jié)果則存放在直接地址的地址單元中:上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解2.或(OR)邏輯運(yùn)算指令邏輯或運(yùn)算用符號(hào)∨表示。以上幾條指令運(yùn)算結(jié)果存放在A中,下面這兩條指令的運(yùn)算結(jié)果則存放在直接尋址的地址單元中:上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解3.異或邏輯運(yùn)算指令邏輯異或運(yùn)算的規(guī)則是,兩運(yùn)算數(shù)相同時(shí)為假(0),兩運(yùn)算數(shù)相異時(shí)為真(1),這種運(yùn)算用符號(hào)表示。以上這幾條指令運(yùn)算結(jié)果存放在A中,下面這兩條指令的運(yùn)算結(jié)果則存放在直接地址的地址單元中:上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解4.累加器清零和求反指令四、控制轉(zhuǎn)移指令控制轉(zhuǎn)移指令包括無(wú)條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指定、比較轉(zhuǎn)移指令、循環(huán)轉(zhuǎn)移指令及調(diào)用與返回指令。1.無(wú)條件轉(zhuǎn)移指令這里又分為長(zhǎng)轉(zhuǎn)移、短轉(zhuǎn)移、絕對(duì)轉(zhuǎn)移和變址尋址轉(zhuǎn)移4種方式。長(zhǎng)轉(zhuǎn)移指令執(zhí)行時(shí)可以把指令的第二和第三字節(jié)分別裝入PC的高位和低位字節(jié)中,無(wú)條件地轉(zhuǎn)向指定地址。轉(zhuǎn)移的目標(biāo)地址可以在64K程序存儲(chǔ)器地址空間的任何地方。指令格式如下:上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解對(duì)于短轉(zhuǎn)移指令,在執(zhí)行時(shí)在PC加2之后,把指令的有符號(hào)的偏移量rel加到PC上,并計(jì)算出轉(zhuǎn)向地址。因此轉(zhuǎn)向的目標(biāo)地址可以在這條指令前128字節(jié)到后127字節(jié)之間。指令格式如下:絕對(duì)轉(zhuǎn)移指令是2KB范圍內(nèi)的無(wú)條件跳轉(zhuǎn)指令。AJMP把MCS-51的64K程序存儲(chǔ)器空間劃分為32個(gè)區(qū),每個(gè)區(qū)為2K字節(jié),轉(zhuǎn)移目標(biāo)地址必須與AJMP下一條指令的第一個(gè)字節(jié)在同一2KB范圍內(nèi),否則,將引起混亂,如果AJMP正好落在區(qū)底的兩個(gè)單元內(nèi),程序就轉(zhuǎn)移到下一個(gè)區(qū)中去了,這時(shí)不會(huì)出現(xiàn)問題。上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解執(zhí)行該指令時(shí),先將PC加2,然后把a(bǔ)ddr11送入PC的低11位,PC高位不變,程序轉(zhuǎn)移到指定的地方。指令格式如下:變址尋址轉(zhuǎn)移指令的功能是把累加器中8位元符號(hào)數(shù)與數(shù)據(jù)指針DPTR的16位數(shù)相加,結(jié)果作為下條指令地址送入PC,不改變累加器和數(shù)據(jù)指針DPTR內(nèi)容,也不影響標(biāo)志。指令格式如下:上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解2.條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令又可以分為判零轉(zhuǎn)移、數(shù)值比較轉(zhuǎn)移和減1轉(zhuǎn)移三種。判零轉(zhuǎn)移是有條件的相對(duì)轉(zhuǎn)移指令,指令如下:上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解數(shù)值比較轉(zhuǎn)移指令的功能是比較前面兩個(gè)操作數(shù)的大小,如果他們的值不相等則轉(zhuǎn)移,在PC加到下一條指令的起始地址后,通過把指令最后一個(gè)字節(jié)的有符號(hào)的相對(duì)偏移量加到PC上,并計(jì)算出轉(zhuǎn)向地址。如果第一操作數(shù)(無(wú)符號(hào)數(shù))小于第二操作數(shù)(無(wú)符號(hào)整數(shù)),則置進(jìn)位標(biāo)志位Cy,否則對(duì)Cy清“0”,不影響任何一個(gè)操作數(shù)的內(nèi)容。指令格式如下:上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解這組指令將源操作數(shù)(Rn,direct)減1,結(jié)果回送到源操作數(shù)寄存器或存儲(chǔ)器中去。如果結(jié)果不為0則轉(zhuǎn)移。源操作數(shù)有寄存器尋址和直接尋址。允許程序員把內(nèi)部RAM單元用作程序循環(huán)計(jì)數(shù)器。指令格式如下:DJNZRn,relDJNZdirect,rel3.子程序調(diào)用和返回指令子程序結(jié)構(gòu)是一種重要的程序結(jié)構(gòu)。在一個(gè)程序中經(jīng)常遇到反復(fù)多次執(zhí)行程序段的情況,如果重復(fù)書寫這個(gè)程序段,會(huì)使程序變得冗長(zhǎng)而雜亂,因而采用了功能較為重復(fù)的子程序。上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解調(diào)用和返回構(gòu)成了子程序調(diào)用的完整過程。為了實(shí)現(xiàn)這一過程,必須有子程序調(diào)用指令和返回指令。返回指令則應(yīng)該是子程序的最后一條指令。執(zhí)行完這條指令之后,程序返回主程序斷點(diǎn)處繼續(xù)執(zhí)行。上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解還有子程序返回指令RET和RETI,分別放置了在子程序和中斷服務(wù)程序的最后。4、空操作指令這條語(yǔ)句什么也不做,消耗一個(gè)機(jī)器周期的時(shí)間,通常用于程序的延時(shí)。上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解五、位操作指令1.數(shù)據(jù)位傳送指令這組指令的功能是把由源操作數(shù)指出的位變量送到目的操作數(shù)指定的單元中去。其中一個(gè)操作數(shù)必須為進(jìn)位標(biāo)志,另一個(gè)可以是任何直接尋址位。不影響其他寄存器或標(biāo)志。指令格式如下:上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解2.修改變量指令這組指令將操作數(shù)指出的位清“0”、取反、置“1”,不影響其他標(biāo)志。上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解3.位變量的邏輯運(yùn)算實(shí)際上位運(yùn)算全部是邏輯運(yùn)算,共有與、或、非三種指令。這里僅以與運(yùn)算為例來(lái)說(shuō)明,或運(yùn)算符位ORL,非運(yùn)算已在上文中替代。上一頁(yè)下一頁(yè)返回第二節(jié)MCS-51單片機(jī)指令詳解4.條件轉(zhuǎn)移類指令與前文介紹的條件轉(zhuǎn)移指令類似,位運(yùn)算也可以進(jìn)行條件轉(zhuǎn)移。上一頁(yè)返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計(jì)實(shí)例一、匯編語(yǔ)言程序的基本結(jié)構(gòu)各種計(jì)算機(jī)的匯編語(yǔ)言的語(yǔ)法規(guī)則基本相同,且具有相同的語(yǔ)句格式。先以MCS-51匯編語(yǔ)言作具體說(shuō)明。MCS-51匯編語(yǔ)言的語(yǔ)句格式表示如下:下一頁(yè)返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計(jì)實(shí)例其中,方括號(hào)括起來(lái)的是可選部分,可有可無(wú),視需要而定。標(biāo)號(hào)是指令的符號(hào)的地址,有了標(biāo)號(hào),程序中的其他語(yǔ)句才能訪問該語(yǔ)句。標(biāo)號(hào)的規(guī)則:標(biāo)號(hào)由1~8個(gè)ASCII字符組成,但頭一個(gè)字符必須是字母,其余可以是字母,數(shù)字或其他特定字符。不能使用本匯編語(yǔ)言已定義了符號(hào)作為符號(hào),如指令助記符、偽指令助記符以及寄存器的符號(hào)名稱。標(biāo)號(hào)后必須跟以冒號(hào)(:)同一標(biāo)號(hào)在一個(gè)程序中只能定義一次,不能重復(fù)定義。上一頁(yè)下一頁(yè)返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計(jì)實(shí)例一條語(yǔ)句可以有標(biāo)號(hào),也可以沒有標(biāo)號(hào),標(biāo)號(hào)的有無(wú)取決于本程序中的其他語(yǔ)句是否需要訪問這條語(yǔ)句操作碼用于規(guī)定語(yǔ)句執(zhí)行的操作內(nèi)容。操作碼是以指令助記符或偽指令助記符表示的,操作碼是匯編指令格式中唯一不能空缺的部分。操作數(shù)用于給指令和操作提示數(shù)據(jù)或地址。注釋不屬于語(yǔ)句的功能部分,它只是對(duì)語(yǔ)句的解釋說(shuō)明。分界符用于把語(yǔ)句格式中的各部分隔開,以便于匯編語(yǔ)言程序區(qū)分,包括空格,冒號(hào),分號(hào)或逗號(hào)等多種符號(hào),在MCS-51中,冒號(hào)(:)用于標(biāo)號(hào)之后;空格()用于操作碼和操作數(shù)之間;逗號(hào)(,)用于操作數(shù)之間;分號(hào)(;)用于注釋之前。上一頁(yè)下一頁(yè)返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計(jì)實(shí)例匯編語(yǔ)言程序的結(jié)構(gòu)形式主要分為三種:順序結(jié)構(gòu),分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)是最簡(jiǎn)單的程序結(jié)構(gòu),在順序結(jié)構(gòu)中既無(wú)分支,循環(huán),也不調(diào)用子程序,程序執(zhí)行時(shí)一條一條地按順序執(zhí)行指令。分支結(jié)構(gòu)使用條件轉(zhuǎn)移指令實(shí)現(xiàn),即根據(jù)條件對(duì)程序的執(zhí)行進(jìn)行判斷,滿足條件則進(jìn)行程序轉(zhuǎn)移,否則程序順序執(zhí)行。循環(huán)結(jié)構(gòu)則在程序的某個(gè)區(qū)段進(jìn)行反復(fù)的運(yùn)行,直到滿足某種條件結(jié)束,而有的程序則完全不能跳出的死循環(huán),將會(huì)無(wú)休止地運(yùn)行下去。上一頁(yè)下一頁(yè)返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計(jì)實(shí)例二、簡(jiǎn)單程序設(shè)計(jì)簡(jiǎn)單程序設(shè)計(jì)指的就是按照順序來(lái)執(zhí)行程序,程序中可以包含某種算法。[實(shí)例]求解多項(xiàng)式y(tǒng)=2a-b。假設(shè)操作數(shù)a放在寄存器R3,操作數(shù)b放在寄存器R4;結(jié)果分別放在寄存器R5和R6.上一頁(yè)下一頁(yè)返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計(jì)實(shí)例上一頁(yè)下一頁(yè)返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計(jì)實(shí)例三、分支和循環(huán)程序在許多情況下,需要根據(jù)不同的條件轉(zhuǎn)向不同的處理程序,這種結(jié)構(gòu)的程序稱為分支程序。MCS-51單片機(jī)設(shè)置的條件轉(zhuǎn)移指令、比較轉(zhuǎn)移指令和位轉(zhuǎn)移指令可以實(shí)現(xiàn)程序的分支。圖3-3為分支程序框圖。[實(shí)例]設(shè)a存放在累加器R2中,b存放在寄存器R3中,要求按下式計(jì)算y值,并將結(jié)果y存于累加器A中。上一頁(yè)下一頁(yè)返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計(jì)實(shí)例上一頁(yè)下一頁(yè)返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計(jì)實(shí)例循環(huán)程序是指一段反復(fù)執(zhí)行的程序。圖3-4為循環(huán)程序框圖。[實(shí)例]將內(nèi)部數(shù)據(jù)存儲(chǔ)器38H~6FH單元的內(nèi)容傳送到外部數(shù)據(jù)存儲(chǔ)器以1000H開始的連續(xù)單元中去。38H~6FH單元向外傳數(shù)據(jù),需傳送56次。將R6作為循環(huán)計(jì)數(shù)寄存器,有如下的流程圖:上一頁(yè)下一頁(yè)返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計(jì)實(shí)例四、查表程序查表就是根據(jù)自變量x的值,在表總查找y,使y=f(x)。x和y可以使各種類型的數(shù)據(jù)。表的結(jié)構(gòu)也是多種多樣的。表格可以放在程序存儲(chǔ)器中,也可以存放在數(shù)據(jù)存儲(chǔ)器中。在單片機(jī)應(yīng)用系統(tǒng)中,這類程序使用頻繁。利用它能避免進(jìn)行復(fù)雜的運(yùn)算或轉(zhuǎn)換過程,故它廣泛應(yīng)用于顯示、打印字符的轉(zhuǎn)換以及數(shù)據(jù)補(bǔ)償、計(jì)算、轉(zhuǎn)換等程序中。一般情況下,對(duì)自變量x是有變化規(guī)律的數(shù)據(jù),可以根據(jù)這一規(guī)律形成地址,對(duì)應(yīng)的y則存放于該地址單元中;對(duì)x是沒有變化規(guī)律的數(shù)據(jù),在表中存放x及其對(duì)應(yīng)的y值。上一頁(yè)下一頁(yè)返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計(jì)實(shí)例[實(shí)例]試計(jì)算發(fā)動(dòng)機(jī)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論