




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、單片機原理及應(yīng)用設(shè)計(第二版)21世紀(jì)高等院校規(guī)劃教材一、課程的性質(zhì)和目的 單片機是微型計算機應(yīng)用技術(shù)的一個重要分支,近年來在工業(yè)智能儀器儀表、光機電設(shè)備、自動檢測、信息處理、家電等的得到廣泛應(yīng)用和迅速發(fā)展。 單片機原理與應(yīng)用是為電子信息工程、測控技術(shù)類專業(yè)及計算機應(yīng)用專業(yè)學(xué)生開設(shè)的專業(yè)基礎(chǔ)必修課或?qū)I(yè)基礎(chǔ)選修課,本課程的教學(xué)目的是通過理論教學(xué)與實驗環(huán)節(jié),使學(xué)生正確理解單片機的基本概念、基本原理,掌握單片機程序設(shè)計和微機接口應(yīng)用的基本方法,并能綜合運用單片機的軟、硬件技術(shù)分析實際問題,為工業(yè)生產(chǎn)、科學(xué)研究和實驗設(shè)備等領(lǐng)域的單片機應(yīng)用和開發(fā)打下良好的基礎(chǔ),也是進一步學(xué)習(xí)計算機原理和有關(guān)接口知識重
2、要環(huán)節(jié)。二、課程教學(xué)內(nèi)容本課程以理論教學(xué)為主要環(huán)節(jié),以學(xué)生課堂實驗為輔,同時使用計算機輔助教學(xué),28學(xué)時理論課和12學(xué)時實驗課,具體安排如下:1.計算機基礎(chǔ)(2學(xué)時) 2.單片機的內(nèi)部結(jié)構(gòu)及工作原理 (4學(xué)時)主要內(nèi)容:掌握MCS-51單片機的內(nèi)部結(jié)構(gòu)及基本工作原理;單片機并行I/O口的結(jié)構(gòu)特點;單片機最小系統(tǒng)的設(shè)計方法;單片機存儲器的擴展方法。3. 單片機的指令系統(tǒng)(4學(xué)時 2學(xué)時講授,2學(xué)時實驗)主要內(nèi)容:MCS-51單片機指令的格式、分類和尋址方式;匯編語言的各種指令類型;偽指令的使用及匯編語言程序的完整格式。.程序設(shè)計(共4學(xué)時,2學(xué)時講授,2學(xué)時實驗)主要內(nèi)容:MCS-51單片機匯編
3、語言程序設(shè)計的步驟;循環(huán)程序、分支程序、延時程序、查表程序的結(jié)構(gòu)及使用方法;數(shù)制的轉(zhuǎn)換原理;定點數(shù)、浮點數(shù)運算程序。5. 單片機的中斷系統(tǒng) (共4學(xué)時,2學(xué)時講授,2學(xué)時實驗)主要內(nèi)容:MCS-51單片機中斷源的種類及工作方式;外部中斷的結(jié)構(gòu)及原理中斷控制寄存器IE、中斷優(yōu)先級寄存器IP及定時器/計數(shù)器及外部中斷控制寄存器TCON的使用方法; 6.單片機的定時器/計數(shù)器(共4學(xué)時,2學(xué)時講授,2學(xué)時實驗) 主要內(nèi)容:單片機定時器/計數(shù)器的結(jié)構(gòu)、原理、工作方式及使用方法。7. 單片機的串行通信(共4學(xué)時,2學(xué)時講授,2學(xué)時實驗)主要內(nèi)容:單片機串行通信I/O接口的結(jié)構(gòu)及工作方式;串行通信控制寄存
4、器的使用方法;MCS-51單片機串行通信波特率的設(shè)置方法;MCS-51單片機的雙機通信和多機通信的基本原理。8. 單片機C51程序設(shè)計(自學(xué),6學(xué)時講授,8學(xué)時實驗) 主要內(nèi)容:C51的結(jié)構(gòu)及特點;C51的的數(shù)據(jù)類型;C51的常量與變量、C51的運算符及程序的格式;C51的基本語句及C51的程序設(shè)計方法。9. 并行I/O口的應(yīng)用與擴展(共6學(xué)時,4學(xué)時講授,2學(xué)時實驗) MCS-51單片機基本I/O口的應(yīng)用與擴展 ;鍵盤與顯示器的擴展原理及方法;常用外圍電路接口芯片8255、8155、8279的性能特點及使用方法;存儲器的擴展原理與方法。10. A/D、D/A轉(zhuǎn)換器的應(yīng)用(共6學(xué)時,2學(xué)時講授
5、,4學(xué)時實驗) 主要內(nèi)容: MCS-51單片機與8位A/D和D/A轉(zhuǎn)換的原理;MCS-51單片機與12位A/D轉(zhuǎn)換器的串、并行接口技術(shù);MCS-51單片機與具有總線接口芯片PCF8591的使用方法。 11. 單片機的應(yīng)用實例 (共2學(xué)時)主要內(nèi)容: MCS-51單片機在步進電機控制系統(tǒng)中的應(yīng)用;數(shù)據(jù)采集系統(tǒng)的設(shè)計;單片機在溫度控制系統(tǒng)中的應(yīng)用;IC卡讀寫器的設(shè)計。單片機原理及應(yīng)用設(shè)計課程特點知識點既分散又連貫,結(jié)構(gòu)和指令系統(tǒng)是基礎(chǔ);與電子線路尤其是數(shù)字電子線路關(guān)系密切;學(xué)習(xí)方法預(yù)習(xí)、討論、講解、復(fù)習(xí);多動手(硬件、軟件實驗);多看參考書(包括利用網(wǎng)上資料);其它(上課、作業(yè)、答疑)。第1章單片
6、機系統(tǒng)基礎(chǔ)知識1.1 概述單片機是單片微型計算機的簡稱,是典型的嵌入式微控制器(Microcontroller Unit),它單片機由運算器、控制器、存儲器、輸入輸出設(shè)備構(gòu)成,相當(dāng)于一個微型的計算機(最小系統(tǒng)),和計算機相比,單片機缺少了外圍設(shè)備等。1.1.1 單片機的基本概念1.微處理器的概念 MPU是微處理器的縮寫(Microprocessor),簡稱為MP。MPU是集成在同一塊芯片上的具有運算和控制功能邏輯的中央處理器。2微型計算機的概念 微型計算機(Microcomputer)是指由微處理器加上采用大規(guī)模集成電路制成的程序存儲器和數(shù)據(jù)存儲器,以及與輸入/輸出設(shè)備相連接的I/O接口電路,
7、微型計算機簡稱MC。3單片機的基本概念單片機是單片微型計算機的簡稱,也就是把微處理器(CPU)、一定容量的程序存儲器(ROM)和數(shù)據(jù)存儲器(RAM)、輸入/輸出接口(I/O)、時鐘及其它一些計算機外圍電路,通過總線連接在一起并集成在一個芯片上,構(gòu)成的微型計算機系統(tǒng)。4嵌入式系統(tǒng)的基本概念嵌入式系統(tǒng)是以應(yīng)用技術(shù)產(chǎn)品為核心,以計算機技術(shù)為基礎(chǔ),以通信技術(shù)為載體,以消費類產(chǎn)品為對象,引入各類傳感器加入,進入Internet網(wǎng)絡(luò)技術(shù)的連接,而適應(yīng)應(yīng)用環(huán)境的產(chǎn)品。5SOC的基本概念SOC是片上系統(tǒng)的簡稱。所謂SOC技術(shù),是一種高度集成化、固件化的系統(tǒng)集成技術(shù)。1.1.2 單片機的發(fā)展概況1單片機的發(fā)展階
8、段單片機的發(fā)展大致經(jīng)歷了以下三個階段。(1)單片機的初級階段(2)單片機的中級(成熟)階段(3)單片機的高級(發(fā)展)階段2單片機技術(shù)的發(fā)展方向目前,計算機系統(tǒng)的發(fā)展已明顯地朝巨型化,單片化,網(wǎng)絡(luò)化等三個方向發(fā)展。(1)內(nèi)部結(jié)構(gòu)(2)功耗和電源電壓方面(3)工藝的進步及抗干擾能力的提高(4)存儲能力和Internet連接1.1.3 單片機的特點和應(yīng)用1.單片機的特點(1)體積小、使用靈活、成本低、易于產(chǎn)業(yè)化。它能方便地嵌入到各種智能式測控設(shè)備及各種智能儀器儀表中。(2)可靠性好,適應(yīng)溫度范圍寬。由于單片機的生產(chǎn)廠商不斷的提高產(chǎn)品的抗干擾能力,單片機芯片本身也是按工業(yè)測控環(huán)境要求設(shè)計的,能適應(yīng)各種
9、惡劣的環(huán)境,其抗工業(yè)噪聲干擾的能力優(yōu)于一般通用的CPU。(3)易擴展,很容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)、控制功能強。I/O接口多,指令系統(tǒng)豐富,易于單片機的邏輯控制功能的實現(xiàn)。(4)系統(tǒng)內(nèi)無監(jiān)控或系統(tǒng)管理程序。單片機系統(tǒng)內(nèi)部一般無監(jiān)控或系統(tǒng)管理程序,使用簡單,只有用戶設(shè)計和調(diào)試好的應(yīng)用程序。2單片機的應(yīng)用(1)測控系統(tǒng)。用單片機可以構(gòu)成各種工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、分布式測控系統(tǒng)、機器人控制系統(tǒng)和機電一體化產(chǎn)品。(2)智能儀器儀表。把單片機應(yīng)用在智能儀器儀表中,促進儀表向數(shù)字化、智能化、多功能化、綜合化方面發(fā)展。(3)通訊產(chǎn)品。用于調(diào)制解調(diào)器與程控交換技術(shù)。(4)民用產(chǎn)品。用于家用電器、電子玩具
10、、錄像機、激光唱機等民用產(chǎn)品。(5)軍用產(chǎn)品。用于導(dǎo)彈控制、制導(dǎo)控制、智能武器裝備、航天飛機導(dǎo)航系統(tǒng)等軍用產(chǎn)品之中。(6)計算機外部設(shè)備。在人們的日常生活和數(shù)學(xué)計算中,我們經(jīng)常采用的是十進制,但計算機只能“識別”二進制數(shù)。所以,二進制數(shù)及其編碼是所有計算機的基本語言。其基本信息只有“0”和“1”,這是因為數(shù)字電路中的開關(guān)只有“通”和“斷”兩個狀態(tài)。如果計算機要進行十進制或其它進制的計算,那么都要轉(zhuǎn)換成二進制進行計算。 1.2.1 二進制、十進制與十六進制 1二進制 以2為基數(shù)的數(shù)制叫二進制,它只包括“0”和“1”兩個符號二進制數(shù)以B作為標(biāo)識符。 一個含有n位整數(shù), m位小數(shù)的二進制數(shù)可表示為:
11、 N=Xn12n-1Xn22n2 X020X12-1X22-2 Xm2-m 或:舉例例如:二進制數(shù)101.101B等于十進制的5.625其各位數(shù)碼代表的數(shù)值為: 122021120121022123 =5.625 2十進制 以10為基數(shù)的數(shù)制叫十進制,十進制用0、1、2、3、4、5、6、7、8、9等10個符號來表示。進位規(guī)則是“逢十進一”。十進制數(shù)以D作為標(biāo)識符 。一個含有n位整數(shù),m位小數(shù)的十進制數(shù)可表示為:N=Xn110n-1Xn210n2 X0100X110-1X210-2 Xm10-m 或:3十六進制 以16為基數(shù)的數(shù)制叫十六進制,進位規(guī)則是“逢十六進一”。十六進制數(shù)以H作為標(biāo)識符。一
12、個含有n位整數(shù),m位小數(shù)的十六進制數(shù)可表示為: N=Xn116n-1Xn216n2 X0160X116-1X216-2 Xm16-m 或:1.2.2 數(shù)制的轉(zhuǎn)換 1二進制十進制的轉(zhuǎn)換例如: 1101.11B=123122021120121122=13.75 2十六進制十進制的轉(zhuǎn)換例如: 3BH=316111160=59 1A6CH=116310162616112160=6764 3十進制二進制的轉(zhuǎn)換 把一個十進制整數(shù)依次除以2,并記下每次所得的余數(shù)(1或0),最后所得的余數(shù)的組合即為轉(zhuǎn)換的十進制數(shù)。第一位余數(shù)為最低位(LSB),最后一個余數(shù)為最高位(MSB)。例如: 126= 1111110B
13、例如:213=11010101B 十進制數(shù)轉(zhuǎn)換成二進制例如:0.318=010100010B4十六進制二進制的轉(zhuǎn)換 將每位十六進制數(shù)轉(zhuǎn)換成相應(yīng)的四位二進制數(shù)即可。5二進制十六進制的轉(zhuǎn)換只需從二進制數(shù)的最低位算起,每四位一個數(shù),到最高位不夠四位填0,即可按位轉(zhuǎn)換成十六進制數(shù)。 6十進制十六進制的轉(zhuǎn)換 十進制轉(zhuǎn)換成十六進制與十進制轉(zhuǎn)換成二進制方法一樣,只是除數(shù)為16而不是2。而余數(shù)是0F中的任一個數(shù)。 例如: 9168=23D0H 1.2.3 原碼、反碼與補碼 在計算機中,為了運算的方便,數(shù)的最高位用來表示正、負(fù)數(shù)。最高位為“0”表示正數(shù),最高位為“1”表示負(fù)數(shù)。為了區(qū)別原來的數(shù)與它在計算機中的表
14、示形式,我們將已經(jīng)數(shù)碼化了的帶符號數(shù)稱為機器數(shù)。而把原來的數(shù)稱為機器數(shù)的真值。 機器數(shù)有三種表示方法:原碼、反碼、補碼。1原碼在符號位用0表示正數(shù),在符號位用l表示負(fù)數(shù),而數(shù)值位保持原樣的數(shù),這樣的機器數(shù)稱為原碼。8位二進制原碼表示的數(shù)的范圍為:127127。 (1)正數(shù) 正數(shù)的原碼與原來的數(shù)相同。 (2)負(fù)數(shù) 負(fù)數(shù)的原碼為符號位置1,而數(shù)值位不變。 (3)0的原碼表示 0的原碼表示法有兩種,即正0和負(fù)0。 +0原00000000 -0原10000000 2反碼8位二進制反碼表示的數(shù)的范圍為:127127 (1)正數(shù) 正數(shù)的反碼與正數(shù)的原碼相同。 (2)負(fù)數(shù) 負(fù)數(shù)的反碼為數(shù)值位的值按位求反,符
15、號位取“1”。 (3)0的反碼表示 0在反碼中也有兩種表示法,正0和負(fù)0。+0反00000000 -0反11111111 3補碼 8位二進制補碼表示的數(shù)的范圍為:128 127。 補碼概念舉例: 8小時+9小時=5點 8小時-3小時=5點 (1)正數(shù) 正數(shù)的補碼與正數(shù)的原碼相同。 (2)負(fù)數(shù) 負(fù)數(shù)的補碼由它的絕對值求反加1后得到。 (3)0的補碼表示 0的補碼表示只有一種,其表達(dá)式為: +0補=-0補00000000B 補碼的加法規(guī)則是: XY補=X補Y補 補碼的減法規(guī)則是: XY補=X補-Y補 補碼運算舉例1:求十進制數(shù)7628的運算 76的2進制是 01001100 28的2進制是 000
16、11100 - 28的補碼是 11100100補碼運算舉例2:求十進制數(shù)3652的運算總結(jié): 對于正數(shù):x原x反x補 對于負(fù)數(shù):x反x原數(shù)值位取反,符號位不變。 x補=x反1 采取求補運算,可以將計算機中的減法運算轉(zhuǎn)換成加法運算,從而節(jié)約了計算機的硬件成本。 1.2.4 計算機中常用的編碼1BCD(8421)碼 采用二進制數(shù)對每一位十進制數(shù)字編碼,這種編碼方式稱為BCD碼(Binary coded Decimal Code)。 表1-2十進制與二進制的對照 (1)BCD碼的表示。 (2)BCD碼的換算。 (3)BCD碼加法 :“逢十進一” ,若各位的和均在09之間,則其加法運算規(guī)則完全同二進制
17、數(shù)加法的規(guī)則一樣;若相加后的低4位(或高4位)二進制數(shù)大于9,或大于15(即低4位或高4位的最高位有進位),則應(yīng)對低4位(或高4位)加6修正。 例如:BCD碼X=59,Y=78,求X+Y X=0101 1001,Y=0111 1000 (4)BCD碼減法 BCD碼進行減法時,也會出現(xiàn)需要修正的現(xiàn)象,BCD碼減法修正的條件和方法是:低4位向高4位借位,或低4位出現(xiàn)非法碼,低4位減6修正;高4位出現(xiàn)非法碼,或高4位向更高的借位,高4位減6修正。例如:BCD碼X=55,Y=38,求X-Y X=0101 0101,Y=0011 1000 2ASC碼ASC編碼表(American standard Co
18、de for information interchange美國信息交換標(biāo)準(zhǔn)代碼) ASC碼用7位二進制數(shù)表示,可表達(dá)128個字符,其中包括數(shù)碼09,英文大小寫字母,標(biāo)點符號和控制字符。7位ASC碼分成二組:高3位一組,低4位一組,分別表示這些符號的列序和行序, ASC碼的分組如圖1-3所示。 1.3.1 單片機的選擇一般用戶選擇單片機可以從以下幾個方面考慮: 1. 單片機的存儲器。 2. 單片機運行速度 3. IO口的數(shù)量 4. 定時計數(shù)器 5. 串行接口1.3 常用單片機的選擇及簡介 6. 模擬電路功能 7. 工作電壓及功耗 8. 封裝形式 9. 抗干擾性能及保密性 10. 其他方面1.3
19、.2單片機系列產(chǎn)品介紹18051類單片機MCS-51內(nèi)核系列兼容的單片機仍是應(yīng)用的主流產(chǎn)品(比如目前流行的89S51、89C51等),各高校仍與MCS-51單片機作為教學(xué)內(nèi)容。2. AVR單片機1997年,ATMEL公司研發(fā)出RISC精簡指令集的高速8位單片機,簡稱AVR。相對于出現(xiàn)較早也較為成熟的51系列單片機,AVR系列單片機片內(nèi)資源更為豐富,接口也更為強大,同時由于其價格低等優(yōu)勢,在很多場合可以替代51系列單片機。3. PIC單片機PIC單片機是MICROCHIP公司的產(chǎn)品,其突出的特點是體積小,功耗低,精簡指令集 ,抗干擾性好,可靠性高,有較強的模擬接口,代碼保密性好。在一些小型的應(yīng)用
20、中,比傳統(tǒng)的51單片機更加靈活,外圍電路更少,因而得到了廣泛的應(yīng)用。4. MSP430單片機MSP430系列單片機是美國德州儀器(TI)公司1996年開始推向市場的一種16 位超低功耗的混合信號處理器(Mixed Signal Processor)。稱之為混合信號處理器,主要是由于它把許多模擬電路、數(shù)字電路和微處理器集成在一個芯片上,以提供“單片”解決方案。5. ARM處理器ARM全稱是Advanced RISC Machines,即高級精簡指令集機器。用戶只需掌握了一種ARM內(nèi)核結(jié)構(gòu)及其開發(fā)手段,就能夠使用多家公司相同ARM內(nèi)核的芯片。6. STM32系列處理器STM32系列是專為要求高性能
21、、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計的ARM Cortex-M3內(nèi)核。按性能分成STM32F103“增強型”和STM32F101“基本型”兩個系列。7 DSP處理器DSP(digital signal processing)是數(shù)字信號處理的簡稱。數(shù)字信號處理就是用數(shù)值計算的方式對信號進行加工的理論和技術(shù),它是集成專用計算機的一種芯片。DSP芯片也稱數(shù)字信號處理器,是一種特別適合于進行數(shù)字信號處理運算的微處理器,其主要應(yīng)用是實時快速地實現(xiàn)各種數(shù)字信號處理算法。習(xí)題1將下列一組二進制數(shù)轉(zhuǎn)換成十進制數(shù)。(1)10011100B (2)110001101001B (3)1001101000110110
22、B5求下列一組數(shù)字的原碼、反碼、補碼。(1)86 (2)116 (3)-34 (4)-79第2章 單片機的內(nèi)部結(jié)構(gòu)及工作原理2.1 單片機的內(nèi)部結(jié)構(gòu) MCS-51系列單片機其主要特點如下:(1)擴大了內(nèi)部程序存儲器(ROM)和內(nèi)部數(shù)據(jù)存儲器(RAM)的容量。(2)具有布爾代數(shù)運算能力。(3)具有32條雙向可被獨立尋址的I/O口。(4)具有56個中斷源,可分為2個中斷優(yōu)先級。 (5)具有豐富的指令系統(tǒng)。(6)具有全雙工傳輸信號UART。(7)片內(nèi)具有時鐘振蕩電路。(8)燒寫工藝上采用可一次性燒寫的內(nèi)含ROM或可重復(fù)燒寫的EPROM。2.1.1 內(nèi)部結(jié)構(gòu)微計算機組成微處理器CPUROMRAMI/O
23、接口外設(shè)地址總線AB數(shù)據(jù)總線DB控制總線CB微型機組成框圖單片機的內(nèi)部結(jié)構(gòu)總線1CPUCPU也叫中央處理器,是單片機的核心部件,主要完成單片機的運算和控制功能。(1)運算器:包括算術(shù)邏輯單元ALU、布爾處理器、累加器ACC、寄存器B、暫存器TMP1和TMP2、程序狀態(tài)字PSW寄存器及十進制調(diào)整電路等。(2)控制器:包括定時控制邏輯、指令寄存器、譯碼器以及信息傳送控制部件等,以實現(xiàn)控制功能。 2內(nèi)部存儲器 單片機內(nèi)的存儲器包括程序存儲器和數(shù)據(jù)存儲器,它們是相互獨立。(1)程序存儲器(ROM):為只讀存儲器,用于存放程序指令,常數(shù)及數(shù)據(jù)表格。(2)數(shù)據(jù)存儲器(RAM):為隨機存儲器,用于存放數(shù)據(jù)。
24、數(shù)據(jù)存儲器又可分為內(nèi)部數(shù)據(jù)存儲器和外部數(shù)據(jù)存儲器。在單片機內(nèi)部有256個RAM單元來存放可讀寫的數(shù)據(jù),其中,后128單元被專用寄存器占用,作為寄存器供用戶使用的只是前128單元。 3定時/計數(shù)器 MCS-51單片機內(nèi)部有2個16位的定時器/計數(shù)器,用于實現(xiàn)內(nèi)部定時或外部計數(shù)的功能;并以其定時或計數(shù)的結(jié)果(查詢或中斷方式)來實現(xiàn)控制功能。 4.中斷系統(tǒng)控制器MCS-51單片機具有中斷功能,以滿足控制應(yīng)用的需要。MCS-51共有5個中斷源(52系列有6個中斷源),即外部中斷2個,定時/計數(shù)器中斷2個,串行口中斷1個。全部中斷可分為高級和低級兩個優(yōu)先級別。5并行I/O口MCS-51單片機內(nèi)部共有四個
25、8位的并行I/O口(P0、P1、P2、P3),以實現(xiàn)數(shù)據(jù)的并行輸入和輸出。 6全雙工串行口MCS-51單片機還有一個全雙工的串行口,以實現(xiàn)單片機與外部之間的串行數(shù)據(jù)傳送。7OSCOSC是單片機的時鐘電路。時鐘電路用于單片機產(chǎn)生時鐘脈沖序列,協(xié)調(diào)和控制單片機的工作。MCS-51系列單片機分類 資源 配置子 系列 片內(nèi)ROM形式 片 內(nèi) ROM 容 量 片 內(nèi) RAM 容 量定時/計數(shù)器中斷源 無ROMEPROME2PROM51子系列80318051875189514KB128B216552子系列80328052875289528KB256B31662.1.2 引腳定義及功能 8051123456
26、78910111213141516171819204039383736353433323130292827262524232221 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST/VPDRXD/ P3.0TXD/ P3.1INT0/ P3.2INT1/ P3.3 T0/ P3.4 T1/ P3.5 WR/ P3.6 RD/ P3.7 XTAL2 XTAL1 VssVccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.02單片機引腳說明 (1)
27、P0口(32腳39腳)有三種使用方法:作為與外部傳送數(shù)據(jù)的8位數(shù)據(jù)總線(D0D7)。作為擴展外部存儲器時的低8位地址總線(A0A7) 作為普通I/O口使用。 (2)P1口(1腳8腳):作為普通I/O口使用,無須外接上拉電阻。(3)P2口(21腳28腳)有兩種使用方法:作為普通I/O口使用,無須外接上拉電阻。作為擴展外部存儲器時的高8位地址總線(A8A15)。(4)P3口(10腳17腳)有兩種使用方法。作為普通I/O口使用,無須外接上拉電阻; P3口的特殊功能 單片機引腳(5)VDD(40腳):+5V電源。(6)VSS(20腳):GND(7)XTAL1(19腳) XTAL2(18腳):接外部石英
28、晶振的引腳,也可引入外部時鐘。(8)RESET(9腳):復(fù)位信號引腳。必須在此引腳上出現(xiàn)兩個機器周期的高電平,才能保證單片機可靠的復(fù)位。復(fù)位后,單片機內(nèi)部各寄存器的狀態(tài)見表2-2所示。復(fù)位后單片機寄存器的內(nèi)容 單片機引腳(9)ALE/PROG(30腳):地址鎖存允許信號。有以下三個作用:當(dāng)外接存儲器(RAM/ROM)時,ALE(允許地址鎖存)的輸出用于鎖存地址的低8位。一般ALE接鎖存器的EN端。當(dāng)沒有外部存儲器時,ALE端可輸出脈沖信號,此頻率為石英振蕩頻率的1/6。因此,它可用作對外部芯片提供輸出的時鐘,或用于定時的目的。在燒寫EPROM時,作為燒寫時鐘輸入端 。單片機引腳(10)PSEN
29、(29腳):外部程序存儲器的讀選通信號。(11) /VPP(腳31):訪問程序存儲器控制信號。當(dāng)信號接低電平時,對ROM的讀操作(執(zhí)行程序)限定在外部程序儲器。當(dāng)接高電平時,對ROM的讀操作(執(zhí)行程序)從內(nèi)部開始。在使用內(nèi)部帶程序存儲器的單片機時,應(yīng)接高電平。2.2 單片機的存儲器結(jié)構(gòu) (1)內(nèi)部程序存儲器(ROM):用來存放程序和表格常數(shù)。8051為4KB、8052為8KB。 (2)內(nèi)部數(shù)據(jù)存儲器(RAM):用來存放運算過程中的數(shù)據(jù)。包括寄存器在內(nèi),8051/31為128字節(jié)、8052/32為256字節(jié)。 (3)外部程序存儲器(ROM):用來存放程序。最大可擴展64KB空間(包括內(nèi)部ROM)
30、。 (4)外部數(shù)據(jù)存儲器(RAM):在數(shù)據(jù)采集系統(tǒng)中可存放大量的數(shù)據(jù)。最大可擴展64KB空間(不包括內(nèi)部RAM)。1內(nèi)部數(shù)據(jù)存儲器 2.2.1 內(nèi)部數(shù)據(jù)存儲器及專用寄存器 內(nèi)部數(shù)據(jù)存儲器在結(jié)構(gòu)上可分為兩個不同的存儲空間,即低128單元的數(shù)據(jù)存儲器空間(00H7FH)和高128單元的具有特殊功能的專用寄存器存貯器空間(80H0FFH)。2專用寄存器SFR 專用寄存器(Special Function Registers)也叫特殊功能寄存器,就是將內(nèi)部RAM的高128單元作為特殊功能寄存器使用。其單元地址為80HFFH。 (1)B寄存器B寄存器是一個8位寄存器,即可作為一般寄存器使用,也可用于乘除
31、運算。做乘法運算時,B是乘數(shù)。乘法操作后,乘積的高8位存于B中。做除法運算時,B存放除數(shù)。除法操作后,余數(shù)存放在B中。(2)累加器ACC(Accumulator)累加器A是在編程操作中最常用的專用寄存器,功能較多,可按位尋址。(3)程序狀態(tài)字PSW(Program Status Word)CY:進位標(biāo)志。 加減運算時,保存最高位進位、借位狀態(tài)。 AC:半進位標(biāo)志。 例:78H+97H 0111 1000 +1001 0111 1 0000 1111有進位CY=1沒有半進位AC=0(4)定時器2寄存器(52系列單片機獨有) T2CON:定時器2控制寄存器。 T2MOD:定時器2方式寄存器。 RC
32、AP2L、RCAP2H:捕獲寄存器,一旦8052單片機的T2EX腳出現(xiàn)負(fù)跳變,則TL2、TH2的內(nèi)容立即被捕獲到RCAP2L、RCAP2H中。 TL2、TH2:定時器2寄存器。(5)IP寄存器中斷優(yōu)先級寄存器 (6)IE寄存器中斷允許寄存器 (7)SCON寄存器 串行控制寄存器 (8)SBUF寄存器 串行數(shù)據(jù)緩沖器SBUF用于利用串行口進行發(fā)送或接收的數(shù)據(jù),在硬件上,實際上由兩個獨立的寄存器組成,一個是發(fā)送緩沖器,另一個是接收緩沖器。 (9)定時器0和定時器1寄存器 TCON:定時器控制寄存器。 TMOD:定時器方式寄存器。 TL0、TH0:定時器0寄存器。 TL1、TH1:定時器1寄存器。(
33、10)P0P3端口寄存器 (11)棧指針SP寄存器 棧指針SP寄存器指示出堆棧頂部在內(nèi)部數(shù)據(jù)存儲器中的位置。系統(tǒng)復(fù)位后,SP初始化為07H,如果不重新設(shè)置,就使得堆棧由08H單元開始。但08H1FH單元屬于工作寄存器區(qū),所以在程序設(shè)計中,最好把SP的值設(shè)置的大一些,一般將堆棧開辟在30H7FH區(qū)域中。SP的值越小,堆棧容量就越大,但最大為128字節(jié)。 (12)數(shù)據(jù)指針DPTR寄存器 數(shù)據(jù)指針DPTR由兩個8位寄存器DPH和DPL組合而成一個16位專用寄存器,其中DPH為DPTR的高8位,DPL為DPTR的低8位。 3.程序計數(shù)器PC 程序計數(shù)器PC中存儲的是將要執(zhí)行的指令地址,是一個16位的計
34、數(shù)器。尋址范圍達(dá)64KB。2.2.2 外部數(shù)據(jù)存儲器 程序計數(shù)器PC中存儲的是將要執(zhí)行的指令地址,是一個16位的計數(shù)器。尋址范圍達(dá)64KB。 2.2.3 程序存儲器 2.3 單片機并行IO口 8051單片機有4個I/O端口,每個端口都是8位準(zhǔn)雙向口,共占32根引腳。每個端口都包括一個鎖存器(即專用寄存器P0P3)、一個輸出驅(qū)動器和輸入緩沖器。通常把4個端口籠統(tǒng)地表示為P0P3。2.3.1 P0口的結(jié)構(gòu)及特點 P0口的某位P0.n(n=07)結(jié)構(gòu)圖,它由一個輸出鎖存器、兩個三態(tài)輸入緩沖器和輸出驅(qū)動電路及控制電路組成。從圖中可以看出,P0口既可以作為I/O用,也可以作為地址/數(shù)據(jù)線用。D QCLK
35、 QMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳1、P0口作為普通I/O口輸出時CPU發(fā)出控制電平“0”封鎖“與”門,將輸出上拉場效應(yīng)管T1截止,同時使多路開關(guān)MUX把鎖存器與輸出D QCLK QMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳驅(qū)動場效應(yīng)管T2柵極接通。故內(nèi)部總線與P0口同相。由于輸出驅(qū)動級是漏極開路電路,若驅(qū)動NMOS或其它拉流負(fù)載時,需要外接上拉電阻。P0的輸出級可驅(qū)動8個LSTTL負(fù)載。D QCLK QMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳 輸入時-分讀引腳
36、或讀鎖存器讀引腳:由傳送指令(MOV)實現(xiàn); 下面一個緩沖器用于讀端口引腳數(shù)據(jù),當(dāng)執(zhí)行一條由端口輸入的指令時,讀脈沖把該三態(tài)緩沖器打開,這樣端口引腳上的數(shù)據(jù)經(jīng)過緩沖器讀入到內(nèi)部總線。D QCLK QMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳D QCLK QMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳讀鎖存器:有些指令 如:ANL P0,A稱為“讀-改-寫” 指令,需要讀鎖存器。 上面一個緩沖器用于讀端口鎖存器數(shù)據(jù)。*原因:如果此時該端口的負(fù)載恰是一個晶體管基極,且原端口輸出值為1,那么導(dǎo)通了的PN結(jié)會把端口引腳高電平
37、拉低;若此時直接讀端口引腳信號,將會把原輸出的“1”電平誤讀為“0”電平。現(xiàn)采用讀輸出鎖存器代替讀引腳,圖中,上面的三態(tài)緩沖器就為讀鎖存器Q端信號而設(shè),讀輸出鎖存器可避免上述可能發(fā)生的錯誤。*D QCLK QMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳D QCLK QMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳準(zhǔn)雙向口: 從圖中可以看出,在讀入端口數(shù)據(jù)時,由于輸出驅(qū)動FET并接在引腳上,如果T2導(dǎo)通,就會將輸入的高電平拉成低電平,產(chǎn)生誤讀。所以在端口進行輸入操作前,應(yīng)先向端口鎖存器寫“1”,使T2截止,引腳處于懸浮狀態(tài)
38、,變?yōu)楦咦杩馆斎?。這就是所謂的準(zhǔn)雙向口。 2、P0作為地址/數(shù)據(jù)總線 在系統(tǒng)擴展時,P0端口作為地址/數(shù)據(jù)總線使用時,分為: P0引腳輸出地址/數(shù)據(jù)信息。 D QCLK QMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳 CPU發(fā)出控制電平“1”,打開“與”門,又使多路開關(guān)MUX把CPU的地址/數(shù)據(jù)總線與T2柵極反相接通,輸出地址或數(shù)據(jù)。由圖上可以看出,上下兩個FET處于反相,構(gòu)成了推拉式的輸出電路,其負(fù)載能力大大增強。D QCLK QMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳 P0引腳輸出地址/輸入數(shù)據(jù) 輸入信號是從引
39、腳通過輸入緩沖器進入內(nèi)部總線。 此時,CPU自動使MUX向下,并向P0口寫“1”,“讀引腳”控制信號有效,下面的緩沖器打開,外部數(shù)據(jù)讀入內(nèi)部總線。 P0作為地址/數(shù)據(jù)總線-真正的雙向口D QCLK QMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳2.4.2 P1口的結(jié)構(gòu)及特點 它由一個輸出鎖存器、兩個三態(tài)輸入緩沖器和輸出驅(qū)動電路組成-準(zhǔn)雙向口。D QCLK QP1.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳VCCRTP1口引腳2.4.3 P2口的結(jié)構(gòu)及特點 1.P2口作為普通I/O口D QCLK QMUXP2.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址控制VCCRTP2口引
40、腳CPU發(fā)出控制電平“0” ,使多路開關(guān)MUX倒向鎖存器輸出Q端,構(gòu)成一個準(zhǔn)雙向口。其功能與P1相同。 2.P2口作為地址總線 在系統(tǒng)擴展片外程序存儲器擴展數(shù)據(jù)存儲器且容量超過256B (用MOVX DPTR指令)時,CPU發(fā)出控制電平“1”,使多路開關(guān)MUX倒內(nèi)部地址線。此時,P2輸出高8位地址。D QCLK QMUXP2.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址控制VCCRTP2口引腳2.4.4 P3口的結(jié)構(gòu)及特點 D QCLK QP3.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳VCCRTP3口引腳第二輸入功能第二輸出功能一、作為通用I/O口與P1口類似-準(zhǔn)雙向口(W=1)WP3的內(nèi)部結(jié)構(gòu)D QCLK
41、QP3.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳VCCRTP3口引腳第二輸入功能第二輸出功能二、P3第二功能(Q=1)此時引腳部分輸入(Q=1、W=1) ,部分輸出(Q=1、W輸出) 。WP3第二功能各引腳功能定義:P3.0:RXD串行口輸入P3.1:TXD串行口輸出P3.2:INT0外部中斷0輸入P3.3:INT1外部中斷1輸入P3.4:T0定時器0外部輸入P3.5:T1定時器1外部輸入P3.6:WR外部寫控制P3.7:RD外部讀控制2.4 單片機的時鐘與時序2.4.1 時鐘電路單片機的各項工作都是在時鐘信號的控制下協(xié)調(diào)工作的,單片機的時鐘電路可為單片機提供一個時鐘信號,根據(jù)連接方式的不同,時鐘電路
42、可分為內(nèi)部時鐘方式和外部時鐘方式。時鐘的連接 XTAL1和XTAL2之間跨接晶體振蕩器和兩個微調(diào)電容,和芯片內(nèi)部的振蕩器電路構(gòu)成一個穩(wěn)定的自激振蕩器, 2.4.2 單片機的CPU時序 MCS-51包括4個定時單位,它們分別是:振蕩周期(節(jié)拍)、時鐘周期(狀態(tài)周期)、機器周期和指令周期。單片機兩種常用晶振的4個周期信號的對比見表2-7所示。 1.振蕩周期振蕩周期也叫節(jié)拍,用P表示,振蕩周期是指為單片機提供定時信號的振蕩源的周期。是時序中最小的時間單位。例如:若某單片機時鐘頻率為2MHz,則它的振蕩周期應(yīng)為0.5s。2.時鐘周期時鐘周期又叫做狀態(tài)周期,用S表示。是振蕩周期的二倍,其前半周期對應(yīng)的節(jié)
43、拍叫P1拍,后半周期對應(yīng)的節(jié)拍叫P2。P1節(jié)拍通常完成算術(shù)、邏輯運算,P2節(jié)拍通常完成傳送指令。 3.機器周期機器周期是實現(xiàn)特定功能所需的時間周期,通常有若干時鐘周期構(gòu)成。MCS-51的一個機器周期是固定不變的,寬度均由6個狀態(tài)周期(12個振蕩周期)組成,并依次表示為S1S6,分別記作S1P1、S1P2S6P1、S6P2。4.指令周期指令周期是最大的時序定時單位,指令周期是指執(zhí)行一條指令需要的時間。通常MCS-51的指令周期可以包含有14個機器周期。MCS-51的幾種典型的指令時序如圖2-15所示,每個機器周期內(nèi)地址鎖存信號(ALE)產(chǎn)生兩次有效信號,分別出現(xiàn)在S1P2、S2P1期間與S4P2
44、、S5P1期間。 指令時序2.5.2 節(jié)電工作方式 MCS-51單片機中有HMOS和CHMOS兩種工藝芯片,它們的節(jié)電運行方式不同,HMOS單片機的節(jié)電方式只有掉電方式,CHMOS單片機的節(jié)電工作方式有掉電方式和空閑方式兩種。 2.5 單片機的工作方式 2.5.1 程序執(zhí)行方式 1連續(xù)執(zhí)行方式 2單步運行方式 3.復(fù)位方式 1HMOS的掉電工作方式 掉電工作方式是指由于電源的故障使電源電壓丟失或工作電壓低于正常值,使單片機系統(tǒng)不能正常運行,若不采取保護措施,將丟失RAM和寄存器中的全部數(shù)據(jù),后果嚴(yán)重。為此MCS-51系列單片機設(shè)置有掉電保護措施,進行掉電保護處理。具體做法是:檢測電路一旦發(fā)現(xiàn)掉
45、電,通過外部中斷源向CPU發(fā)出中斷請求,CPU響應(yīng)此中斷請求,調(diào)用中斷服務(wù)子程序,由中斷服務(wù)子程序?qū)⒅匾獢?shù)據(jù)送內(nèi)部RAM轉(zhuǎn)存,立即先把程序運行過程中有用信息轉(zhuǎn)存到RAM,然后啟用備用電源維持RAM供電。 2CHMOS的節(jié)電工作方式 單片機還設(shè)計有待機和掉電兩種節(jié)電工作方式,特別適宜于低功耗場合。 內(nèi)部控制電路 PCON控制寄存器的格式如下: PCON各位的說明如下:SMOD:串行口波特率加倍控制位。SMOD=1,波特率加倍。GF1、GF0:通用標(biāo)志位,由用戶置位或復(fù)位。PD:掉電方式位,若PD=1,進入掉電工作方式。IDL:待機方式位,若IDL=1,進入待機工作方式。若PD和IDL同時為1,則
46、進入掉電工作方式。(1)待機工作方式 是將PCON寄存器的IDL位置“1”,即進入待機工作方式。退出待機方式的方法有兩種,一種是激活中斷,另一種是硬件復(fù)位。(2)掉電保護方式是將PCON中的PD位置“1”使單片機進入掉電保護方式。80C51單片機一旦檢測到電源掉電,即將有用信息轉(zhuǎn)存到片內(nèi)數(shù)據(jù)存儲器RAM中的低128字節(jié)內(nèi),并使PCON.1的PD位置“1”,單片機進入掉電方式。掉電方式下送入時鐘電路的振蕩信號被封鎖,不產(chǎn)生時鐘信號,片內(nèi)的一切工作都停止,只有片內(nèi)RAM的數(shù)據(jù)保留。只要電源恢復(fù)正常值,單片機就可以退出掉電方式,進入正常工作方式,但硬件復(fù)位須維持10ms時間。 2.5.3 復(fù)位 1復(fù)
47、位方式(1)復(fù)位條件 為了實現(xiàn)單片機的復(fù)位,在時鐘電路工作后,必須在單片機的RESET端(9)至少維持2個機器周期以上的高電平,單片機進入復(fù)位狀態(tài)(即程序從0000H地址開始執(zhí)行)。 時鐘頻率為12MHZ,機器周期為1s,則在單片機的RESET端只需持續(xù)2s以上時間的高電就能進入復(fù)位狀態(tài)。 (2)復(fù)位后的狀態(tài) 單片機復(fù)位后,片內(nèi)RAM中低128B的內(nèi)容不會改變,但特殊功能寄存器(SFR)的值被初始化。復(fù)位期間單片機的ALE和端輸出高電平。2復(fù)位電路 第3章 單片機的指令系統(tǒng) 3.1 單片機指令系統(tǒng)概述 3.1.1 指令格式 MCS-51單片機指令格式采用了單地址指令格式。一條匯編語句是由標(biāo)號、
48、操作碼、目的操作數(shù)、源操作數(shù)和注釋等5部分組成的,其中方括號中的部分是可以選擇的。 指令的具體格式為: 標(biāo)號:操作碼 目的操作數(shù),源操作數(shù);注釋 例如: HY1:MOV R3 , #08H ;執(zhí)行數(shù)據(jù)傳送操作3.1.2 指令符號 A:累加器,用于運算及存放數(shù)據(jù)。 B:專用寄存器,用于MUL和DIV指令中,存放第二操作數(shù)、乘積高位字節(jié)。 CY:進位標(biāo)志位,或布爾處理器中的累加器。 bit:內(nèi)部RAM或?qū)S眉拇嫫髦械闹苯訉ぶ肺弧?/bit:位地址單元內(nèi)容取反。 DPTR:16位數(shù)據(jù)指針,也可作為16位地址寄存器。Rn:工作寄存器中的寄存器Rn、R0R7之一,Ri:工作寄存器中的寄存器R0或R1#d
49、ata:8位立即數(shù)#data16:16位立即數(shù)direct:片內(nèi)RAM或SFR的地址(8位):間接尋址寄存器addr11:11位目的地址addr16:16位目的地址rel: 補碼形式的8位地址偏移量。 偏移范圍為-128127/:位操作指令中,該位求反后參與操作,不影響該位X:片內(nèi)RAM的直接地址或寄存器(X):相應(yīng)地址單元中的內(nèi)容:箭頭左邊的內(nèi)容送入箭頭右邊的單元內(nèi)功能數(shù)據(jù)傳送類:29條算術(shù)運算類:24條邏輯運算類:24條控制轉(zhuǎn)移類:17條位操作類: 17條3.1.3 指令分類 MCS-51單片機共有111條指令,可以實現(xiàn)51種基本操作。 1.按指令功能分類 2按指令字節(jié)分類 MCS-51單
50、片機用機器語言表示的指令格式按字節(jié)劃分,有一字節(jié)指令、兩字節(jié)指令和三字節(jié)指令等三種。 (1)一字節(jié)指令中的8位二進制代碼既包含操作碼的信息,也包含操作數(shù)的信息。 例如指令: INC A MOVA,Rn XCHA,Rn ADDA,Ri DECRn (2)二字節(jié)指令中的第一個字節(jié)表示操作碼,第二個字節(jié)表示操作數(shù),操作數(shù)既可能是立即數(shù),也可能是地址。其指令格式為:例如: ANL A,#90HADDA, #06HDEC 30HMOVR2,#0F0H(3)三字節(jié)指令中,第一字節(jié)表示操作碼,另兩個字節(jié)是操作數(shù),其指令格式為: 例如: ANL 30H,#66H MOVDPTR,#1000H LJMP0300
51、H CJNEA,20H,HL53按指令執(zhí)行時間分類 MCS-51系列單片機??梢苑譃閱沃芷谥噶?7條,雙周期指令52條和四周期指令2條等。(1)單周期指令的執(zhí)行指令時間為一個機器周期。例如: XCHA,R1ADDA,R1CLRAMOVR3,#0F0H (2)雙周期指令的執(zhí)行指令時間為2個機器周期。例如:MOVRn,30HDJNZR3,LOOPJMPa+dptr (3)四周期指令的執(zhí)行指令時間為4個機器周期。例如: DIV AB MULAB 3.2.1 立即尋址Immediate Addressing 操作數(shù)就包含在指令代碼中,在操作碼之后,稱為立即數(shù),用“”表示。 如: MOV P1, #80
52、H MOV R7, #0F5H MOV DPTR,#1245H3.2 尋址方式 3.2.2 直接尋址 Direct Addressing直接使用數(shù)所在單元的地址找到了操作數(shù),所以稱這種方法為直接尋址。操作數(shù)在SFR、內(nèi)部RAM、位地址空間。如: MOV A,00H MOV C,60H MOV A,0F0H (B寄存器)3.2.3 寄存器尋址 Register Addressing對選定的工作寄存器R0R7、累加器A、通用寄存器B、地址寄存器DPTR中的數(shù)進行操作。 例:MOV A,R0;將R0工作寄存器中的數(shù)據(jù)送到累加器A中去。問題:我們知道,工作寄存器就是內(nèi)存單元的一部分,如果我們選擇工作寄
53、存器組0,則R0就是RAM的00H單元,那么這樣一來,MOV A,00H 和 MOV A,R0不就沒什么區(qū)別了嗎?執(zhí)行第一條指令需要2個機器周期,而第二條則只需要1個機器周期,第一條指令變成最終的目標(biāo)碼要兩個字節(jié)(E5H 00H),而第二條則只要一個字節(jié)(E8H)。3.2.4 間接尋址 Register Indirect Addressing寄存器間接尋址把地址放在另外一個寄存器中,根據(jù)這個寄存器中的數(shù)值決定該到哪個單元中取數(shù)據(jù)。 R0,R1-8位地址,片內(nèi)低128字節(jié)或片外DPTR-16位,片外64KB如:MOV A,R0MOVX A,R0MOVX A,DPTR操作數(shù)在片內(nèi)RAM中操作數(shù)在片
54、外RAM中操作數(shù)在片外RAM中3.2.5 相對尋址 將PC中的當(dāng)前內(nèi)容與指令第二字節(jié)給出的數(shù)相加,結(jié)果作為跳轉(zhuǎn)指令的轉(zhuǎn)移地址(轉(zhuǎn)移目的地址)。 PC中的當(dāng)前內(nèi)容稱為基地址(本指令后的字節(jié)地址)指令第二字節(jié)給出的數(shù)據(jù)稱為偏移量,1字節(jié)帶符號數(shù).常用于跳轉(zhuǎn)指令。 如: JC 23H 若C=0,不跳轉(zhuǎn); C=1,跳轉(zhuǎn).Relative Addressing程序存儲區(qū)ALU如:JC 231025H1000H 401025H 451001H 23 1024H 471002H 3023H1002H指令代碼當(dāng)前PC以DPTR或PC為基址寄存器,累加器A為變址寄存器。把兩者內(nèi)容相加,結(jié)果作為操作數(shù)的地址。 常
55、用于查表操作。 MOVC A, A+DPTR ;(A+DPTR) A MOVC A, A+PC; PC+1 PC,(A+PC)A JMP A+DPTR;(PC)(A+DPTR)3.2.6 變址尋址(基址+變址)Base-Register-plus-Index-Register-Indirect Addressing操作數(shù)在程序存儲器中E0A程序存儲區(qū)2040H 9320E0H 472041H DPH 20DPL 00ALU如:MOVC A,A+DPTR設(shè)DPTR=2000H,A=E0H20E0H47指令代碼E0A程序存儲區(qū)ALU如:MOVC A,A+PC設(shè)A = #E0H2121H452040
56、H 832121H 452041H 2120H 47當(dāng)前PC指令代碼 對片內(nèi)RAM的位尋址區(qū)和某些可位尋址的特殊功能寄存器進行位操作時的尋址方式。 如: SETB 3DH; 將27H.5位置1 CLR C ;Cy位清03.2.7 位尋址 Bit Addressing操作數(shù)在片內(nèi)RAM位地址區(qū)或SFR某些位中尋址方式涉及的存儲器空間尋址方式尋址空間(操作數(shù)存放空間)立即尋址程序存儲器直接尋址片內(nèi)RAM低128字節(jié)、SFR寄存器尋址工作寄存器R0R7,A,B,DPTR寄存器間接尋址片內(nèi)RAM:R0,R1,SP片外RAM:R0 ,R1,DPTR變址尋址程序存儲器:A+PC,A+DPTR相對尋址程序存
57、儲器256字節(jié)范圍內(nèi):PC+偏移量位尋址片內(nèi)RAM的位尋址區(qū)(20H2FH字節(jié)地址)某些可位尋址的SFR3.3指令系統(tǒng)3.3.1 數(shù)據(jù)傳送類指令 (29條) Data Transfer Instruction助記符: MOV、MOVX、MOVC XCH、XCHD、SWAP PUSH、POP 源操作數(shù)尋址方式(5種):立即尋址、直接尋址、寄存器尋址、寄存器間接尋址、變址尋址 目的操作數(shù)尋址方式(3種): 直接尋址、寄存器尋址、寄存器間接尋址 除了目的操作數(shù)為ACC的指令影響奇偶標(biāo)志P外,一般不影響標(biāo)志位。(1) 以累加器為目的操作數(shù)的指令(4條) MOV A,Rn ;RnAMOV A,direc
58、t;(direct)AMOV A,Ri ;(Ri)AMOV A,#data;dataA 將源操作數(shù)指定內(nèi)容送到A中。 1內(nèi)部數(shù)據(jù)傳送指令MOV (2) 以寄存器Rn為目的操作數(shù)的指令 (3條) MOV Rn,A MOV Rn,direct MOV Rn,#data 這組指令功能是把源操作數(shù)指定的內(nèi)容送入當(dāng)前工作寄存器,源操作數(shù)不變。(3)以寄存器間接地址為目的字節(jié)的 傳送指令(3條) MOV Ri,A ;A (Ri) MOV Ri,direct;(direct) (Ri) MOV Ri,#data; data (Ri) 功能:把源操作數(shù)指定的內(nèi)容送入以R0或R1為地址指針的片內(nèi)存儲單元中。例:
59、MOV R0,AMOV R1,20HMOV R0,#34H(4) 以直接地址為目的操作數(shù)的指令(5條)MOV direct,AMOV direct,RnMOV direct1,direct2MOV direct,RiMOV direct,#data 這組指令功能是把源操作數(shù)指定的內(nèi)容送入由直接地址指出的片內(nèi)存儲單元。例如:MOV 20H,AMOV 20H,R1MOV 20H,30HMOV 20H,R1MOV 0A0H,#34HMOV P2,#34H(5)16位數(shù)據(jù)傳送指令(1條) MOV DPTR,#data16功能:將一個16位的立即數(shù)送入DPTR中去。其中高8位送入DPH,低8位送入DPL
60、。 例:MOV DPTR,#1234H如果分別向DPH,DPL送數(shù),則結(jié)果也一樣。 如下面兩條指令:MOV DPH,#35H MOV DPL,#12H。 則就相當(dāng)于執(zhí)行了 MOV DPTR,#3512H。(6)查表指令(2條) MOVC A,A+DPTR;A(A)+(DPTR)MOVCA,A+PC;A(A)+(PC)已知內(nèi)存單元40H中有一個09范圍內(nèi)的數(shù),用查表指令編出能查出該數(shù)平方值的程序。設(shè)平方表表頭地址為0200H。程序及執(zhí)行后的結(jié)果如下: MOV A,40H MOV DPTR,#LAB MOVC A,A+DPTR LAB:DB 0,1,4,9,10H,19H 若(40H)為2,查表得
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 深海探險起點:船舶租賃合同揭秘
- 飛行員培訓(xùn)合同合作意向范本
- 車險代理合同書樣本
- 企業(yè)員工培訓(xùn)合作協(xié)議合同
- 股權(quán)激勵實施合同協(xié)議
- 施工領(lǐng)域農(nóng)民工勞動合同模板
- 汽車購銷合同其一:條款解析
- 小學(xué)生心理課件
- 無線廣播電視傳輸中的信號傳輸信道分配考核試卷
- 天然氣儲層滲透性改善技術(shù)考核試卷
- 初三語文月考質(zhì)量分析
- 《天才少年維克多》
- CH:火花塞功能、結(jié)構(gòu)類型及檢測
- 信訪工作課件
- 物資盤點工作步驟與細(xì)則
- “中小學(xué)教師全員遠(yuǎn)程培訓(xùn)”的實效性研究-以山西省J市為例的中期報告
- 工業(yè)旅游項目策劃
- 視頻監(jiān)控入門基礎(chǔ)教程視頻監(jiān)控系統(tǒng)
- 國家基本藥物臨床應(yīng)用指南1
- 自主選擇頂崗實習(xí)申請表
- 報驗申請表模板
評論
0/150
提交評論