單片機原理及應(yīng)用技術(shù)(基于Keil C與Proteus)全套教學(xué)課件_第1頁
單片機原理及應(yīng)用技術(shù)(基于Keil C與Proteus)全套教學(xué)課件_第2頁
單片機原理及應(yīng)用技術(shù)(基于Keil C與Proteus)全套教學(xué)課件_第3頁
單片機原理及應(yīng)用技術(shù)(基于Keil C與Proteus)全套教學(xué)課件_第4頁
單片機原理及應(yīng)用技術(shù)(基于Keil C與Proteus)全套教學(xué)課件_第5頁
已閱讀5頁,還剩690頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機原理及應(yīng)用技術(shù)(基于KeilC與Proteus)全套可編輯PPT課件課程簡介第1章單片機應(yīng)用基礎(chǔ)概述第2章51單片機及硬件結(jié)構(gòu)第3章指令系統(tǒng)、匯編語言及C51程序設(shè)計第4章51單片機的中斷系統(tǒng)及應(yīng)用第5章51單片機的定時器/計數(shù)器及應(yīng)用第6章51單片機串行口及應(yīng)用技術(shù)第7章單片機基本I/O接口應(yīng)用技術(shù)第8章單片機系統(tǒng)擴展及I/O接口技術(shù)第9章D/A與A/D轉(zhuǎn)換接口技術(shù)及應(yīng)用第10章單片機應(yīng)用系統(tǒng)開發(fā)及設(shè)計實例第11章單片機應(yīng)用系統(tǒng)抗干擾技術(shù)實驗安排根據(jù)需求添加第1章單片機應(yīng)用基礎(chǔ)概述1.1單片機及單片機簡介1.2數(shù)值與編碼1.3計算機系統(tǒng)組成1.4單片機與嵌入式系統(tǒng)1.5單片機應(yīng)用開發(fā)資源1.6單片機應(yīng)用實例1.什么是單片機?2.為什么要學(xué)單片機?3.怎樣學(xué)習(xí)單片機?第1章單片機基礎(chǔ)知識概述1.什么是單片機?——從微型計算機技術(shù)的兩大發(fā)展分支談起第1章單片機基礎(chǔ)知識概述

分支一:通用微型計算機系統(tǒng)

(Universal

microComputerSystem)UCS——為滿足眾多普通應(yīng)用場合需要而發(fā)展的一類個人計算機系統(tǒng)

技術(shù)要求:高速計算+海量存儲發(fā)展方向:CPU速度不斷提升,存儲容量不斷擴大

386486Pentium

PentiumⅣConroeII第1章單片機基礎(chǔ)知識概述計算機(PersonalComputer)/多板機CPU+存儲器+主板+顯卡+聲卡+網(wǎng)卡+顯示器+鼠標(biāo)+鍵盤…基本功能部件接口部件外部設(shè)備支持它的軟件五花八門,應(yīng)有盡有第1章單片機基礎(chǔ)知識概述

分支二:嵌入式計算機系統(tǒng)

(EmbeddedComputerSystem)ECS——能嵌入到對象體系中,以實現(xiàn)對象體系智能化為目的的一類專用計算機系統(tǒng)技術(shù)要求:必須滿足對象體系的物理、電氣和環(huán)境以及產(chǎn)品成本等要求發(fā)展方向:與對象系統(tǒng)密切相關(guān)的嵌入性能、控制能力與控制可靠性

第1章單片機基礎(chǔ)知識概述

哈佛結(jié)構(gòu)馮諾依曼結(jié)構(gòu)

PC→電氣加固、機械加固,并配置各種接口板卡→IPC(工控機)→嵌入到大型對象系統(tǒng)中(實現(xiàn)智能化)工業(yè)計算機(IndustrialPersonalComputer)

船舶駕駛室集中控制臺自動配料控制系統(tǒng)電站鍋爐控制系統(tǒng)第1章單片機基礎(chǔ)知識概述眾多小型對象系統(tǒng)(如家電、儀器、工控單元…)無法使用IPC→需要發(fā)展一類特殊的嵌入式計算機系統(tǒng)第1章單片機基礎(chǔ)知識概述單片計算機(SingleChipMicrocomputer)SCM——將通用微計算機基本功能部件集成在一塊芯片上構(gòu)成的一種專用微計算機系統(tǒng)第1章單片機基礎(chǔ)知識概述應(yīng)用:SCM硬件+少量外圍電路+SCM軟件→嵌入式微機系統(tǒng)+被控對象→微電腦控制產(chǎn)品第1章單片機基礎(chǔ)知識概述嵌入式微機系統(tǒng)

微電腦控制產(chǎn)品單片機分布式控制第1章單片機基礎(chǔ)知識概述站臺門與車門同步打開自動調(diào)度自動報站車輛位置實時顯示單片機的發(fā)展:從1976年起,Intel公司先后推出MCS-48(4位機)、MCS-51(8位機)和MCS-96(16位機)3大系列單片機。迄今為止,世界各地廠商已相繼研制出大約50個系列300多個品種的單片機產(chǎn)品。第1章單片機基礎(chǔ)知識概述51系列、PIC系列、AVR系列、ARM系列、DSP系列….由于51系列單片機具有開放的系統(tǒng)架構(gòu)、靈活可靠的工作性能、低廉的價格,因而獲得了很大的成功。單片機發(fā)展趨勢:高集成度、高性能、低功耗、高性價比MicroControllerUnitSingleChipMicrocomputer8位基于51內(nèi)核的單片機仍然是主流機型。第1章單片機基礎(chǔ)知識概述單片機(SCM)→微控制器(MicroControllerUnit)位數(shù)不斷增加:4位→8位→16位→32位外設(shè)接口內(nèi)置化:ADC、DAC、PGA、USB……2.為什么要學(xué)單片機?單片機是高技術(shù)領(lǐng)域,可實現(xiàn)機電產(chǎn)品的升級換代;第1章單片機基礎(chǔ)知識概述單片機人才社會需求廣泛,具有很好的就業(yè)前景;單片機知識與具體專業(yè)技術(shù)相結(jié)合可產(chǎn)生更大的創(chuàng)造力和發(fā)展?jié)摿?。學(xué)習(xí)方法第1章單片機基礎(chǔ)知識概述1.2數(shù)制與編碼1、數(shù)制定義——2、10、16進(jìn)制數(shù)的概念2、數(shù)制轉(zhuǎn)換——2、10、16進(jìn)制數(shù)的換算3、有符號數(shù)——2進(jìn)制負(fù)數(shù)的表示方法4、位-字節(jié)-字——2進(jìn)制基本概念5、ASCII碼——字符的2進(jìn)制表示方法6、BCD碼——10進(jìn)制數(shù)的2進(jìn)制表示方法7、基本邏輯門電路——與、或、非、與非第1章單片機基礎(chǔ)知識概述1.數(shù)制單片機常用的數(shù)制有十進(jìn)制、二進(jìn)制、十六進(jìn)制。第1章單片機基礎(chǔ)知識概述符號集:0~9;規(guī)則:逢十進(jìn)一;十進(jìn)制數(shù)的后綴為D但可省略;十進(jìn)制數(shù)可用加權(quán)展開式表示,例如:其中,10為基數(shù),0~9為各位加權(quán)數(shù),其一般表達(dá)式為:1、十進(jìn)制數(shù),ND第1章單片機基礎(chǔ)知識概述2、二進(jìn)制數(shù),NB符號集:0、1;規(guī)則:逢二進(jìn)一;二進(jìn)制數(shù)的后綴為B且不可省略;二進(jìn)制數(shù)可用加權(quán)展開式表示,例如:其中,2為基數(shù),0和1為各位加權(quán)數(shù),其一般表達(dá)式為:第1章單片機基礎(chǔ)知識概述3、十六進(jìn)制數(shù),NH符號集:0~9、A~F;規(guī)則:逢十六進(jìn)一;十六進(jìn)制數(shù)的后綴為H且不可省略;十六進(jìn)制數(shù)可用加權(quán)展開式表示。例如:其中,16為基數(shù),0~15為各位加權(quán)數(shù),其一般表達(dá)式為:2.數(shù)制轉(zhuǎn)換

(1)二進(jìn)制轉(zhuǎn)換成十進(jìn)制轉(zhuǎn)換規(guī)則:按二進(jìn)制表達(dá)式展開,按十進(jìn)制運算求和。例如:111111118421163264128記憶:1100B=121001B=91111B=1511111111B=255舉例:第1章單片機基礎(chǔ)知識概述(2)十六進(jìn)制轉(zhuǎn)換成十進(jìn)制轉(zhuǎn)換規(guī)則:按十六進(jìn)制表達(dá)式展開,按十進(jìn)制運算求和。例如:第1章單片機基礎(chǔ)知識概述(3)二進(jìn)制與十六進(jìn)制數(shù)之間的轉(zhuǎn)換1010B=0AH1101B=0DH1011B=0BH1110B=0EH1100B=0CH1111B=0FH記憶:從低位起由右到左,每4位二進(jìn)制數(shù)對應(yīng)1位十六進(jìn)制數(shù)。例如:(最后一組不足時左邊添0湊齊4位)轉(zhuǎn)換規(guī)則:第1章單片機基礎(chǔ)知識概述(4)十進(jìn)制整數(shù)轉(zhuǎn)換成二、十六進(jìn)制整數(shù)轉(zhuǎn)換規(guī)則:“除基取余”。十進(jìn)制整數(shù)不斷除以轉(zhuǎn)換進(jìn)制基數(shù),直至商為0。每除一次取一個余數(shù),從低位排向高位。例如:第1章單片機基礎(chǔ)知識概述3.有符號數(shù)的表示方法

有符號數(shù):最高位為符號位,“0”表示“+”

,“1”表示“-”

。其余為數(shù)值位第1章單片機基礎(chǔ)知識概述例如:+123→01111011B-123→11111011B11111011B→=251?=-123?靠事先約定無符號數(shù):最高位不作為符號位,全部為數(shù)值位。有符號數(shù)有3種編碼形式:原碼、反碼和補碼基本規(guī)律:正數(shù)的原碼、反碼和補碼都是相同的,而負(fù)數(shù)的原碼、反碼和補碼各有不同。運算規(guī)則:當(dāng)有符號數(shù)用補碼表示時,可以把減法運算轉(zhuǎn)換為加法運算。CPU中便無需設(shè)置硬件減法器,從而可簡化其硬件結(jié)構(gòu)。第1章單片機基礎(chǔ)知識概述4.

位—字節(jié)—字

位(bit):二進(jìn)制數(shù)中的一位,其值不是“1”,就是“0”。半字節(jié):4位二進(jìn)制例如:1000111011001011B=8ECDH字(word):51單片機的字由2個字節(jié)組成,16位字長。第1章單片機基礎(chǔ)知識概述字節(jié)(byte):一個8位的二進(jìn)制數(shù)為一個字節(jié),可用大寫B(tài)表示,例如256字節(jié)→256B。千字節(jié)用“KB”表示,1KB=1024B。例如,64KB=1024B×64=65536B。半字節(jié)字節(jié)字5.

BCD碼

BinaryCodedDecimal——用二進(jìn)制代碼表示的十進(jìn)制數(shù),稱為“二進(jìn)碼十進(jìn)數(shù)”或“二/十進(jìn)制代碼”。第1章單片機基礎(chǔ)知識概述8421BCD碼

用4位二進(jìn)制數(shù)表示1位十進(jìn)制數(shù)BCD碼的用途:可使計算機直接進(jìn)行十進(jìn)制數(shù)運算例如:23+15=00100011B+00010101B=00111000B=56(二進(jìn)制)38(BCD)靠事先約定6.

ASCⅡ碼

字母和字符的二進(jìn)制數(shù)表示——ASCⅡ碼(AmericanStandardCodeforInformationInterchange——美國國家信息交換標(biāo)準(zhǔn)字符碼

)。它采用7位二進(jìn)制編碼表示128個字符,其中包括數(shù)碼0~9以及英文字母等可打印的字符。高3位低4位‘0’~‘9’→30H~39H‘A’→1000001B→41H例如:第1章單片機基礎(chǔ)知識概述7.基本邏輯門電路

數(shù)字計算機靠基本邏輯門電路實現(xiàn)二進(jìn)制數(shù)的運算,其中高電平和低電平分別代表1和0。單片機原理分析中需要用到一些基本邏輯門電路、邏輯關(guān)系和邏輯符號。4種最基本的邏輯關(guān)系如下:與邏輯、或邏輯、非邏輯、與非邏輯

第1章單片機基礎(chǔ)知識概述邏輯門電路1.3計算機系統(tǒng)組成

1、計算機硬件系統(tǒng)2、計算機軟件系統(tǒng)第1章單片機基礎(chǔ)知識概述1計算機硬件系統(tǒng)2計算機軟件系統(tǒng)軟件系統(tǒng)是指計算機上運行的各種程序、管理的數(shù)據(jù)和有關(guān)的各種文檔。

1.4單片機與嵌入式系統(tǒng)1、嵌入式系統(tǒng) 2、單片機應(yīng)用系統(tǒng)的組成第1章單片機基礎(chǔ)知識概述1、嵌入式系統(tǒng)所謂嵌入式系統(tǒng),是指以嵌入式應(yīng)用為目的的計算機系統(tǒng)。嵌入式系統(tǒng)是作為其他系統(tǒng)的組成部分使用的,單片機應(yīng)用系統(tǒng)是典型的嵌入式系統(tǒng)。系統(tǒng)內(nèi)核小專用性強系統(tǒng)精簡高實時性嵌入式軟件開發(fā)走向標(biāo)準(zhǔn)化嵌入式系統(tǒng)開發(fā)需要開發(fā)工具和環(huán)境單片機典型應(yīng)用系統(tǒng)結(jié)構(gòu)

2、單片機應(yīng)用系統(tǒng)的組成系統(tǒng)軟件系統(tǒng)軟件是處于底層硬件和高層應(yīng)用軟件之間的橋梁。但是,由于單片機的資源有限,需綜合考慮設(shè)計成本及單片機運行速度等因素,故設(shè)計者必須在系統(tǒng)軟件和應(yīng)用軟件實現(xiàn)的功能與硬件配置之間,仔細(xì)地尋求平衡。應(yīng)用軟件應(yīng)用軟件是用戶為實現(xiàn)系統(tǒng)功能要求設(shè)計的程序。1.5單片機應(yīng)用開發(fā)資源1、單片機開發(fā)板2、Keil開發(fā)環(huán)境3、Proteus4、ISP軟件5、Protel第1章單片機基礎(chǔ)知識概述1、單片機開發(fā)板2、KeilProteus是電路分析與實物仿真軟件(ISIS和ARES)英國LabcenterElectronicsLtd.開發(fā)提供原理圖繪制、單片機系統(tǒng)仿真與PCB設(shè)計等功能(部分功能類似于Multisim軟件)

可仿真多種MCU,如51、AVR,PIC,MSP等可仿真許多電子元件,如阻容元件、開關(guān)、晶體管、集成電路、液晶顯示器等可提供多種調(diào)試虛擬儀器,如示波器、信號源等第1章單片機基礎(chǔ)知識概述3、Proteus應(yīng)用簡介ISIS——智能原理圖輸入系統(tǒng)數(shù)字與模擬電路原理圖繪制數(shù)字與模擬電路仿真運行單片機匯編程序編譯調(diào)試(IntelligentSchematicInputSystem)ISIS模塊應(yīng)用舉例第1章單片機基礎(chǔ)知識概述單片機系統(tǒng)原理圖第1章單片機基礎(chǔ)知識概述4、ISP4、Protesl1.6一個簡單的單片機應(yīng)用實例第1章單片機基礎(chǔ)知識概述1.開發(fā)單片機應(yīng)用系統(tǒng)的一般步驟開發(fā)單片機應(yīng)用系統(tǒng)時,一般要經(jīng)過以下步驟。①總體設(shè)計。分析問題,明確任務(wù),擬定出性價比較高的方案。②硬件設(shè)計。③軟件設(shè)計。④程序編譯、仿真及調(diào)試。⑤制作硬件電路。⑥程序下載、硬件調(diào)試運行。

1.6一個簡單的單片機應(yīng)用實例第1章單片機基礎(chǔ)知識概述匯編和C代碼

ORG0000HSETBP1.0START:

LCALLDELAY;調(diào)用延遲一段時間的子程序CPLP1.0;求反(1變0,0變1)SJMPSTART;不斷循環(huán)DELAY:

MOVR0,#00H;延時子程序入口LP:

MOVR1,#00HLP1:

DJNZR1,LP1DJNZR0,LPRET;子程序返回END#include<reg51.h>#defineucharunsignedcharvoiddelay(ucharn);sbiti=P1^0;voidmain(){while(1){i=!i;//求反(1變0,0變1)

delay(30);//調(diào)用延時函數(shù)

}}voiddelay(ucharn)//延時函數(shù)

{uchara,b,c;for(c=0;c<n;c++)for(a=0;a<100;a++)for(b=0;b<100;b++);}本章小結(jié)1.單片機是將通用微計算機基本功能部件集成在一塊芯片上構(gòu)成的一種專用微計算機系統(tǒng)。2.單片機的發(fā)展趨勢是高集成度、高性能、高性價比、低功耗,51內(nèi)核單片機仍然是目前主流機型。3.不同數(shù)制轉(zhuǎn)換和基本邏輯門電路是學(xué)習(xí)單片機的重要基礎(chǔ)知識。4.Proteus和KeilC是學(xué)習(xí)單片機編程的兩個重要軟件工具。第1章單片機基礎(chǔ)知識概述第2章51單片機及硬件結(jié)構(gòu)2.151單片機的概念及系列產(chǎn)品2.251單片機總體結(jié)構(gòu)2.351單片機存儲結(jié)構(gòu)及編程資源2.451單片機的工作方式2.5單片機的工作時序2.6單片機最小系統(tǒng)2.151單片機的概念及系列產(chǎn)品51單片機是對所有兼容Intel8051指令系統(tǒng)的單片機的統(tǒng)稱。在不斷增長的市場需求的推動下,隨著FlashROM技術(shù)及CPU工藝技術(shù)的高速發(fā)展,各種51兼容單片機應(yīng)運而生,單片機片內(nèi)在原來僅包含RAM、ROM、I/O口、中斷系統(tǒng)及定時器/計數(shù)器等模塊的基礎(chǔ)上,擴展多種I/O接口、驅(qū)動電路、PWM電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器、定時器等功能模塊,成為較為完善的單片微型計算機硬件系統(tǒng)。目前,常用51單片機系列產(chǎn)品主要有Intel80C51單片機、ATMELAT89單片機、STC(國產(chǎn)宏晶)單片機等。51單片機系列及兼容單片機的典型產(chǎn)品STC單片機SCM——將通用微計算機基本功能部件集成在一塊芯片上構(gòu)成的一種專用微計算機系統(tǒng)SCM=CPU+OSC+ROM+RAM+T/C+INT+I/O+UART第2章51單片機及硬件結(jié)構(gòu)51單片機的結(jié)構(gòu)組成2.251單片機總體結(jié)構(gòu)87C52INTELMCS-51系列單片機一覽表第2章51單片機及硬件結(jié)構(gòu)SCM=CPU+OSC+ROM+RAM+T/C+INT+I/O+UART80C51=(8位)CPU+4KBROM+128BRAM+(2×16)T/C+(4×8)I/O+1個UART+5個INT+2個64KB51單片機主要內(nèi)部資源的學(xué)習(xí)安排

中央處理器CPU——第2章程序存儲器ROM——第2章數(shù)據(jù)存儲器RAM——第2章并行I/O口——第2章中斷源INT——第5章定時器/計數(shù)器T/C——第6章全雙工串行口UART——第7章第2章51單片機及硬件結(jié)構(gòu)教材結(jié)構(gòu)第1章單片機基礎(chǔ)知識概述第2章MCS-51單片機結(jié)構(gòu)及原理第3章單片機的匯編語言與程序設(shè)計第4章單片機的C51語言第5章單片機的中斷系統(tǒng)第6章單片機的定時器/計數(shù)器第7章單片機的串行通信技術(shù)第8章單片機接口技術(shù)第9章單片機應(yīng)用系統(tǒng)的設(shè)計與開發(fā)附錄實驗指導(dǎo)CPUCPU=控制器

+運算器第2章51單片機及硬件結(jié)構(gòu)(CentralProcessingUnit)控制器的用途:統(tǒng)一指揮和控制各單元協(xié)調(diào)工作控制器的任務(wù):從ROM中取出指令→譯碼→執(zhí)行指令控制器的組成:程序計數(shù)器PC、數(shù)據(jù)指針寄存器DPTR、…第2章51單片機及硬件結(jié)構(gòu)運算器的用途:對數(shù)據(jù)進(jìn)行算術(shù)運算和邏輯操作運算器的任務(wù):計算緩存器內(nèi)容→結(jié)果暫存→修改運行標(biāo)志運算器的組成:累加器ACC、程序狀態(tài)字寄存器PSW、…第2章51單片機及硬件結(jié)構(gòu)(1)程序計數(shù)器(ProgramCounter——PC)——指向ROM存儲單元的地址指針(引導(dǎo)程序運行)

……XxxxxxxxXxxxxxxxXxxxxxxxXxxxxxxxXxxxxxxxROM0000H0001H0002H0003H0004HFFFFH16位寄存器→可尋址范圍216(=65536B=64KB)永遠(yuǎn)存放著下一條指令的首地址具有自動加“1”

功能→順序運行程序功能具有可被指令修改功能→跳轉(zhuǎn)運行程序功能復(fù)位時,PC初值=0→復(fù)位后程序從0開始運行第2章51單片機及硬件結(jié)構(gòu)PC指針0000(2)數(shù)據(jù)指針寄存器(DataPointer——DPTR)16位寄存器,可尋址范圍216(64KB)可拆為2個8位的獨立寄存器DPL和DPH具有可被指令修改功能→可變更數(shù)據(jù)地址DPLDPH——指向ROM或RAM存儲單元的地址指針(引導(dǎo)數(shù)據(jù)傳送)

第2章51單片機及硬件結(jié)構(gòu)……0000H0001H0002H0003H0004HFFFFH35H77HF4H94H9EHDPTR指針……xxHxxHxxHxxHxxHROMRAM0000H0001H0002H0003H0004HFFFFH(3)累加器(ACCUMULATER——A或ACC)8位寄存器其值可由指令修改是最繁忙的寄存器——存放操作數(shù)或中間運算結(jié)果的寄存器第2章51單片機及硬件結(jié)構(gòu)A(4)程序狀態(tài)字寄存器(ProgramStateWord——PSW)

8位寄存器各位都具有特殊含義狀態(tài)值可由硬件形成或由指令修改——存放程序運行過程中的各種狀態(tài)信息的寄存器第2章51單片機及硬件結(jié)構(gòu)CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0CY(PSW.7)——進(jìn)位標(biāo)志在進(jìn)行加或減運算時,如果操作結(jié)果最高位有進(jìn)位或借位時,CY由硬件置“1”,否則清“0”。CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0用途:1、可根據(jù)CY判斷有無進(jìn)位或借位;2、可作為位操作中的位累加器用。第2章51單片機及硬件結(jié)構(gòu)10010011+11110000

————————CY=110000011進(jìn)位標(biāo)志位CY舉例

AC(PSW.6)——輔助進(jìn)位標(biāo)志在進(jìn)行加或減運算時,如果操作結(jié)果的低四位數(shù)向高四位產(chǎn)生進(jìn)位或借位時,將由硬件置“1”,否則清“0”。01001111+10100001

————————AC=111110000半進(jìn)位舉例用途:1、根據(jù)AC判斷加減運算時有無半進(jìn)位或半借位;2、在BCD碼調(diào)整運算中要用到AC標(biāo)志第2章51單片機及硬件結(jié)構(gòu)CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0F0(PSW.5)和F1(PSW.1)——用戶標(biāo)志位用途:可做為用戶指定的狀態(tài)標(biāo)志第2章51單片機及硬件結(jié)構(gòu)CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0RS1(PSW.4)和RS0(PSW.3)——工作寄存器組指針用途:用于指定CPU的當(dāng)前工作寄存器組第2章51單片機及硬件結(jié)構(gòu)CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0OV(PSW.2)——溢出標(biāo)志在有符號數(shù)加減運算或無符號數(shù)乘除運算中若有異常結(jié)果,OV硬件置1,否則硬件清0。用途:判斷運算的結(jié)果是否正確,正確=0;出錯=1第2章51單片機及硬件結(jié)構(gòu)CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0OV=C6YC7Y=1

0=101010100(+84)

+01101001(+105)

——————————————CY=010111101→(-67)D6有進(jìn)位D7無進(jìn)位10111101→11000010→11000011正數(shù)的補碼是它本身,負(fù)數(shù)的補碼是除符號位外每位求反,然后末尾加111111011(-5)

+11110000(-16)

——————————————CY=111101011→(-21)D7有進(jìn)位

D6有進(jìn)位OV=C6YC7Y=1

1=011101011→10010100→10010101→運算出錯→運算正確舉例舉例第2章51單片機及硬件結(jié)構(gòu)P(PSW.0)——奇偶標(biāo)志位該位始終跟蹤累加器A中含“1”個數(shù)的奇偶性如果A中有奇數(shù)個“1”,則P置“1”,否則置“0”舉例若A=10011111,則P=0

若A=11000001,則P=1用途:串行通訊中的數(shù)據(jù)校驗,判斷是否存在傳輸錯誤。第2章51單片機及硬件結(jié)構(gòu)CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.051系列單片機一般采用40只引腳的雙列直插式(DIP——DualIn-linePackage)封裝結(jié)構(gòu)第2章51單片機及硬件結(jié)構(gòu)除DIP封裝外,51單片機還采用44只引腳的方形扁平(QFP

——QuadFlatPackage)封裝方式(4只引腳無用)。第2章51單片機及硬件結(jié)構(gòu)DIP引腳分布電源及晶振引腳(共4只)控制引腳(共4只)端口引腳(共32只)三類第2章51單片機及硬件結(jié)構(gòu)(1)電源及晶振引腳VCC(40腳):+5V電源引腳VSS(20腳):接地引腳XTAL1(19腳);外接晶振引腳(內(nèi)置放大器輸入端)XTAL2(18腳):外接晶振引腳(內(nèi)置放大器輸出端)80C51Vcc80C512040Vss+5V80C51第2章51單片機及硬件結(jié)構(gòu)(2)控制引腳RST/VPD

(9):復(fù)位/備用電源引腳ALE/PROG

(30):地址鎖存使能輸出/編程脈沖輸入PSEN

(29):輸出訪問外部ROM讀選通信號

EA/VPP

(31):外部ROM允許訪問/編程電源輸入20μF8K10k80C51第2章51單片機及硬件結(jié)構(gòu)(3)端口引腳P0.0~P0.7(39~32腳)——P0口P1.0~P1.7(1~8腳)——P1口P2.0~P2.7(21~28腳)——P2口P3.0~P3.7(10~17腳)——P3口8只/組×4組=32只引腳P0口~P3口是單片機對外聯(lián)絡(luò)的重要通道第2章51單片機及硬件結(jié)構(gòu)由于工作任務(wù)不同,4個端口的內(nèi)部結(jié)構(gòu)也不同。了解4類端口的內(nèi)部結(jié)構(gòu)對于正確使用這些I/O端口非常重要。第2章51單片機及硬件結(jié)構(gòu)以下按照先易后難的原則進(jìn)行學(xué)習(xí),即P1→P3→P0→P21.P1口

P1.n=1個鎖存器+1個場效應(yīng)管驅(qū)動器V+2個三態(tài)門緩沖器P1口包含P1.0~P1.7共8個相同結(jié)構(gòu)的電路P1.0~P1.7中的8個鎖存器共同組成P1特殊功能寄存器(90H)第2章51單片機及硬件結(jié)構(gòu)P1.n的通用I/O口工作方式:第2章51單片機及硬件結(jié)構(gòu)讀鎖存器輸出讀引腳

(詳見P1口仿真課件)P1口的要點:1、P1口具有通用I/O口方式,可實現(xiàn)輸出、讀引腳(輸入)和讀鎖存器三種功能;2、P1口為準(zhǔn)雙向通用口,作為通用輸入口時應(yīng)先使P1.n→1,作為通用輸出口時是無條件的。第2章51單片機及硬件結(jié)構(gòu)2.P3口

與P1.n

差別:第二功能控制單元→雙功能P3.0~P3.7中的8個鎖存器構(gòu)成了P3

SFR(B0H)第2章51單片機及硬件結(jié)構(gòu)P3.n的通用I/O口工作方式第2章51單片機及硬件結(jié)構(gòu):輸出、讀引腳、讀鎖存器輸出條件:第二輸出功能口→

“1”(與非門開鎖)輸入條件:Q端和第二輸出功能端→“1”(V管截止)*此時的第二功能口由CPU自動置位,無需指令操作P3口的第二功能方式第二輸出功能的條件:Q端→“1”(與非門開鎖)1第2章51單片機及硬件結(jié)構(gòu):第二輸出功能、第二輸入功能

RXD第7章TXD第7章/INT0第5章/INT1第5章T0第6章T1第6章/WR第8章/RD第8章第二輸入功能的條件:Q端和第二輸出功能端→“1”(V管截止)(詳見P3口仿真課件)*此時上述條件由CPU自動設(shè)置,無需指令操作P3口的要點:1、P3口具有通用I/O口方式,可實現(xiàn)輸出、讀引腳(輸入)和讀鎖存器三種功能;2、P3口為準(zhǔn)雙向通用口,作為通用輸入口時應(yīng)先使P3.n→1,作為通用輸出口時應(yīng)先使第二輸出端→1;3、P3口具有第二功能方式,可實現(xiàn)第二輸出和第二輸入兩種功能。第2章51單片機及硬件結(jié)構(gòu)3.P0口

與P1.n差別:輸出控制電路、輸出驅(qū)動電路→總線功能P0.0~P0.7中的8個鎖存器構(gòu)成了P0

SFR(80H)第2章51單片機及硬件結(jié)構(gòu)漏極開路與上拉電阻的概念

控制端=0→MUX下通→/Q與V1柵極直通→V2截止→V1漏極開路第2章51單片機及硬件結(jié)構(gòu)→封鎖與門A(→0)→地址/數(shù)據(jù)端與A輸出無關(guān)為使漏極開路的V1有效,必須通過外接上拉電阻與電源連通,上拉電阻的阻值一般為100Ω~10kΩ。注意:P1、P2、P3口無需外接上拉電阻(已有內(nèi)部上拉電阻)第2章51單片機及硬件結(jié)構(gòu)P0.n的通用I/O口工作方式第2章51單片機及硬件結(jié)構(gòu):輸出、讀引腳、讀鎖存器輸出條件:控制端→

“0”(V2管截止,MUX下通)輸入條件:Q端→

“1”(V1管截止)P0.n的地址/數(shù)據(jù)分時復(fù)用方式:地址/數(shù)據(jù)輸出時V1和V2交替導(dǎo)通,無需外接上拉電阻

第2章51單片機及硬件結(jié)構(gòu)地址/數(shù)據(jù)輸出的條件:控制端→1地址/數(shù)據(jù)輸出、數(shù)據(jù)輸入數(shù)據(jù)輸入時,CPU自動使Q端→1,控制端→0,故分時復(fù)用方式為無條件的真雙向口(詳見P0口仿真課件)P0口的要點:1、P0口具有通用I/O口方式,可實現(xiàn)輸出、讀引腳(輸入)和讀鎖存器三種功能;2、P0口為準(zhǔn)雙向通用口,作為通用輸入口時應(yīng)先使P3.n→1,作為通用輸出口時應(yīng)先使第二輸出端→1;3、作為通用I/O口方式時,需要外接上拉電阻;4、P0口具有地址/數(shù)據(jù)分時復(fù)用方式,可實現(xiàn)地址/數(shù)據(jù)輸出、數(shù)據(jù)輸入兩種功能;5、地址/數(shù)據(jù)分時復(fù)用方式時無需外接上拉電阻;6、分時復(fù)用方式的數(shù)據(jù)輸入時無需程序?qū)?操作。第2章51單片機及硬件結(jié)構(gòu)4.P2口

與P1.n差別:輸出控制單元,鎖存信號由Q端輸出P2.0~P2.7中的8個鎖存器構(gòu)成了P2

SFR(A0H)第2章51單片機及硬件結(jié)構(gòu)P2.n的通用IO口方式第2章51單片機及硬件結(jié)構(gòu):輸出、讀引腳、讀鎖存器輸出條件:控制端→

“0”(MUX下通)輸入條件:Q端→

“1”(V管截止)無需外接上拉電阻P2.n的地址輸出口方式第2章51單片機及硬件結(jié)構(gòu):地址輸出地址輸出條件:控制端→

“1”(MUX上通)(詳見P2口仿真課件)P2口的要點:1、P2口具有通用I/O口方式,可實現(xiàn)輸出、讀引腳(輸入)和讀鎖存器三種功能;2、P2口為準(zhǔn)雙向通用口,作為通用輸入口時應(yīng)先使P2.n→1,作為通用輸出口時應(yīng)先使控制端→1;3、作為通用I/O口方式時,無需外接上拉電阻;4、P2口具有地址輸出方式,可實現(xiàn)地址輸出功能。第2章51單片機及硬件結(jié)構(gòu)P0~P3小結(jié)1.結(jié)構(gòu)2.功能B0HA0H90H80HSFR地址★

第二功能

★復(fù)用端口★★★★準(zhǔn)雙向IO口P3P2P1P0★★★內(nèi)部上拉電阻★★★輸出控制★★MUX開關(guān)★★★★D鎖存器P3P2P1P0第2章51單片機及硬件結(jié)構(gòu)最簡單的單片機電路圖MCU的電源引腳被隱藏(ISIS仿真與Vcc和Vss無關(guān))1.

存儲器劃分方法計算機存儲器地址空間的兩種結(jié)構(gòu)形式:普林斯頓結(jié)構(gòu)和哈佛結(jié)構(gòu)。RAM和ROM統(tǒng)一編址

RAM和ROM分別編址

第2章51單片機及硬件結(jié)構(gòu)2.3單片機存儲結(jié)構(gòu)及編程資源程序存儲器ROM數(shù)據(jù)存儲器RAM第2章51單片機及硬件結(jié)構(gòu)51單片機采用哈佛結(jié)構(gòu),共有4個物理存儲空間:片內(nèi)RAM、片內(nèi)ROM、片外RAM、片外ROM各類存儲器分別編址片內(nèi)RAM片內(nèi)ROM片外RAM片外ROM00H000H0000H0000H

FFH

FFFHFFFFHFFFFH2.程序存儲器(ROM)作用:存放程序、表格或常數(shù),具有非易失性特點:片內(nèi)ROM與片外ROM可有2種組合方案第2章51單片機及硬件結(jié)構(gòu)方案1

:4KB以內(nèi)的地址在片內(nèi)ROM,大于4KB的地址在片外ROM中(圖中折線),兩者共同構(gòu)成64KB空間;方案2

:片內(nèi)ROM被禁用,全部64KB地址都在片外ROM中(圖中直線)。2種組合方案由EA引腳的電平狀態(tài)決定:EA=1時為方案1,EA=0時為方案2EA引腳接低電平時,僅使用片外ROM(片外ROM不可缺省)。由于片內(nèi)、外ROM是統(tǒng)一編址的,故只能算作1個邏輯存儲空間。第2章51單片機及硬件結(jié)構(gòu)EA引腳接高電平時,可同時使用2種ROM(片外ROM可以缺省);第2章51單片機及硬件結(jié)構(gòu)51單片機的四個物理存儲空間僅相當(dāng)于三個邏輯存儲空間片內(nèi)RAM片內(nèi)ROM片外RAM片外ROM00H000H0000H0000H

FFH

FFFHFFFFHFFFFH物理存儲空間邏輯存儲空間第2章51單片機及硬件結(jié)構(gòu)中斷程序執(zhí)行過程:某一突發(fā)事件→相應(yīng)中斷入口地址自動裝入PC→引導(dǎo)兩次跳轉(zhuǎn)→執(zhí)行相應(yīng)中斷服務(wù)程序主程序一般應(yīng)安排在0030H地址以后(有中斷需要時)ROM有6個特殊存儲器單元——用于程序引導(dǎo)…主程序跳轉(zhuǎn)指令I(lǐng)NT0中斷跳轉(zhuǎn)指令T0中斷跳轉(zhuǎn)指令I(lǐng)NT1中斷跳轉(zhuǎn)指令T1中斷跳轉(zhuǎn)指令主程序首指令0000H0003H000BH0013H001BH0030H0023HRI/TI中斷跳轉(zhuǎn)指令ROM

0000H:主程序入口地址

0003H:INT0中斷程序入口地址

000BH:T0中斷程序入口地址

0013H:INT1中斷程序入口地址

001BH:T1中斷程序入口地址

0023H:RI/TI中斷程序入口地址3.片內(nèi)數(shù)據(jù)存儲器(RAM)作用:存放程序運行結(jié)果字長:8位數(shù)量:128B+128B(80C51)30H低128B(00H~7FH)為普通RAM區(qū)高128B(80H~FFH)為特殊功能寄存器區(qū)第2章51單片機及硬件結(jié)構(gòu)(1)低128字節(jié)的區(qū)域

①工作寄存器區(qū)(00H~1FH)

②可位尋址區(qū)(20H~2FH)

③用戶RAM區(qū)(30H~7FH)①②③30H第2章51單片機及硬件結(jié)構(gòu)①區(qū)共有32個存儲單元;每個單元都有1個8位地址(字節(jié)地址)每個單元都有1個寄存器名稱(R0~R7)32個單元分為4組(第0~

第3組)CPU只能選一組為當(dāng)前工作寄存器組當(dāng)前工作寄存器組取決于PSW的設(shè)置①30HCPU復(fù)位后RS1和RS0默認(rèn)值為0,即默認(rèn)第0組為當(dāng)前工作寄存器組。第2章51單片機及硬件結(jié)構(gòu)②30H②區(qū)共有16個存儲單元;每個單元都有一個字節(jié)地址每個單元都有8個不同的位地址

②區(qū)共有128個位地址②區(qū)可以字節(jié)地址和位地址兩種方式存取數(shù)據(jù)。第2章51單片機及硬件結(jié)構(gòu)③區(qū)共有80個存儲單元;每個單元都有一個字節(jié)地址,但沒有位地址,也沒有寄存器名。③30H此區(qū)可作為堆棧區(qū)和中間數(shù)據(jù)存儲區(qū)使用——用戶RAM區(qū)【注意】:①區(qū)和③區(qū)只能按字節(jié)進(jìn)行數(shù)據(jù)存取操作,②區(qū)則可按字節(jié)和位兩種方式存取操作。第2章51單片機及硬件結(jié)構(gòu)(2)高128字節(jié)RAM區(qū)

30HSFR承擔(dān)著51單片機內(nèi)部資源的管理工作每個存儲單元都有一個字節(jié)地址,但只有其中21個單元可以使用,并有相應(yīng)寄存器名稱。51單片機共有21個特殊功能寄存器(SpetialFunctionRegister)第2章51單片機及硬件結(jié)構(gòu)字節(jié)地址末位是0或8的SFR,都具有位地址。88H89H8AH8BH8CH8DH8EH8FH§2.1§2.1§2.3§2.3復(fù)位——使單片機恢復(fù)原始默認(rèn)狀態(tài)的操作。1.復(fù)位與復(fù)位電路

第2章51單片機及硬件結(jié)構(gòu)2.451單片機的工作方式復(fù)位條件在RST/VPD引腳端出現(xiàn):≥10ms時間的高電平(≥3V)狀態(tài)復(fù)位方式

上電復(fù)位第2章51單片機及硬件結(jié)構(gòu)復(fù)合復(fù)位按鍵復(fù)位10ms3V

程序執(zhí)行的方式1.連續(xù)執(zhí)行方式連續(xù)執(zhí)行方式就是單片機正常執(zhí)行控制程序的工作方式。2.單步執(zhí)行方式用戶在調(diào)試程序時,常常要逐條地執(zhí)行程序中的每一條指令。單片機需要統(tǒng)一的時鐘控制,其時鐘系統(tǒng)可有兩種方案:2.551單片機的工作時序外部時鐘脈沖內(nèi)部OSC+外部時鐘電路,或內(nèi)部OSC

+外部時鐘脈沖第2章51單片機及硬件結(jié)構(gòu)MCS-51的時鐘頻率一般為6~12MHzC1、C2≈30pF外部時鐘電路石英晶體

時鐘電路

3.單片機時序

(1)時序的概念第2章51單片機及硬件結(jié)構(gòu)時序是對象(或引腳、事件、信息)間按照時間順序組成的序列關(guān)系。時序可以用狀態(tài)方程、狀態(tài)圖、狀態(tài)表和時序圖4種方法表示,其中時序圖最為常用。時序圖亦稱為波形圖或序列圖,縱坐標(biāo)表示不同對象的電平,橫坐標(biāo)表示時間(從左往右為時間正向軸),通常坐標(biāo)軸可省略。時鐘的度量單位:時鐘周期(或節(jié)拍)P、狀態(tài)周期S、機器周期、指令周期1個狀態(tài)周期(S)=2個節(jié)拍(P)1個機器周期=6個狀態(tài)(S)=12個節(jié)拍(P)1個指令周期約為1~4個機器周期第2章51單片機及硬件結(jié)構(gòu)第2章51單片機及硬件結(jié)構(gòu)單片機時序——CPU在執(zhí)行指令時所需控制信號的時間順序。1、用于片內(nèi)各功能部件的邏輯控制(不作介紹)2、用于片外RAM訪問或總線方式控制(§8.2.1介紹)51單片機訪問外部RAM時序

第2章51單片機及硬件結(jié)構(gòu)單片機最小系統(tǒng)一般是指單片機能夠用來實現(xiàn)簡單I/O端口控制的硬件電路組成,是單片機初學(xué)者的必備工具。2.6單片機最小系統(tǒng)本章小結(jié)1、單片機的CPU由控制器和運算器組成,在時鐘電路和復(fù)位電路的支持下,按一定的時序工作。單片機的時序信號包括振蕩周期、時鐘周期、機器周期和指令周期。2、51單片機采用哈佛結(jié)構(gòu)存儲器,共有3個邏輯存儲空間和4個物理存儲空間。片內(nèi)低128字節(jié)RAM中包含4個工作寄存器組、128個位地址單元和80個字節(jié)地址單元。片內(nèi)高128字節(jié)RAM中離散分布有21個特殊功能寄存器。3、P0~P3口都可作為準(zhǔn)雙向通用I/O口,其中只有P0口需要外接上拉電阻;在需要擴展片外設(shè)備時,P2口可作為其地址線接口,P0口可作為其地址線/數(shù)據(jù)線復(fù)用接口,此時它是真正的雙向口。第2章51單片機及硬件結(jié)構(gòu)第3章指令系統(tǒng)、匯編語言及C51程序設(shè)計3.1單片機指令系統(tǒng)3.2匯編語言程序設(shè)計基礎(chǔ)3.3C51程序設(shè)計及應(yīng)用3.4Keil51單片機集成開發(fā)環(huán)境3.5單片機I/O端口應(yīng)用示例3.6KeilC與Proteus聯(lián)機調(diào)試示例第3章指令系統(tǒng)、匯編語言及C51程序匯編語言(AssemblyLanguage)——用助記(字)符代替操作碼,用地址符號代替地址碼的一種面向機器的程序設(shè)計語言;本章學(xué)習(xí)目標(biāo):了解匯編語言的一般規(guī)則,借助指令手冊能讀懂匯編程序。匯編語言特點——代碼精煉、執(zhí)行速度快,但不便于編寫較復(fù)雜的程序;匯編程序處理過程——輸入源程序→檢查語法正確性(如有語法錯誤,輸出錯誤信息)→翻譯成二進(jìn)制目標(biāo)程序。一條匯編語言指令中最多包含4個區(qū)段,其一般格式為:

[標(biāo)號:]操作碼[操作數(shù)][;注釋]第3章指令系統(tǒng)、匯編語言及C51程序標(biāo)號(標(biāo)識符)當(dāng)前指令行的符號地址,其值為

該指令的機器碼首字節(jié)在ROM中的存放地址;標(biāo)號由英文字母開頭的1~6個字符組成,不區(qū)分大小寫;標(biāo)號與(英文)冒號可以同時省略?!?…….0122H0123H0124H…….xxHxxHxxH

74H

12HROMSTART→

[標(biāo)號:]

操作碼[操作數(shù)][;注釋] ……START:MOVA,#12H;機器碼7412H ……例如:

[標(biāo)號:]

操作碼

[操作數(shù)][;注釋]第3章指令系統(tǒng)、匯編語言及C51程序操作碼是指令的操作行為,由操作碼助記字符表征;51單片機共有42種操作碼助記符,不區(qū)分大小寫。MOVA,#12H;

move(傳送)SETBP1.0 ;setbit(置位)CJNEA,R0,START;compareandjumpifnotequal(比較跳轉(zhuǎn))舉例:

[標(biāo)號:]操作碼

[操作數(shù)]

[;注釋]第3章指令系統(tǒng)、匯編語言及C51程序操作數(shù)是指令的操作對象,用操作數(shù)簡記符表示,不區(qū)分大小寫;操作數(shù)可以是3個、2個、1個或沒有操作數(shù);操作數(shù)大于1時要用(英文)逗號隔開。CJNEA,R0,START;若A≠R0,轉(zhuǎn)STARTADDA,#10H ;A+10H→ACRLA ;A←0RET ;子程序返回舉例:

[標(biāo)號:]操作碼[操作數(shù)]

[;注釋]第3章指令系統(tǒng)、匯編語言及C51程序注釋是對指令的解釋性說明,用以提高程序的可讀性;可用任何文字或符號描述,可以省略;由(英文)分號開始,無需結(jié)束符號。MOVA,#12H;立即數(shù)12H→ASETBP1.0 ;P1.0←1CJNEA,R0,START;若A≠R0,轉(zhuǎn)START

舉例:第3章指令系統(tǒng)、匯編語言及C51程序匯編語言中標(biāo)示符/十六進(jìn)制地址/立即數(shù)的區(qū)別方法:標(biāo)示符——標(biāo)號或匯編符號統(tǒng)稱為標(biāo)識符,由英文字母

開頭的1~6個字符組成。例如

EAH,或C6A16進(jìn)制地址——若存儲單元地址的最高位值>9時,應(yīng)加

前綴“0”

,以區(qū)別標(biāo)識符。例如0EAH,或5AH立即數(shù)——出現(xiàn)在指令中的常數(shù)叫做立即數(shù),應(yīng)加前綴

“#”以區(qū)別于地址。例如#0EAH,或#5AH指令手冊中,每條指令的操作數(shù)卻是以簡記符號表示的。第3章指令系統(tǒng)、匯編語言及C51程序掌握簡記符號規(guī)則→便于閱讀源程序(查指令手冊)真實指令中一般都含有具體的操作數(shù),例如:MOVA,R3或MOVA,#35H第3章指令系統(tǒng)、匯編語言及C51程序序號簡記符號簡記符號的意義第3章指令系統(tǒng)、匯編語言及C51程序簡記符號的使用練習(xí)①MOV20H,#34H

以direct取代20H,以#data取代#34H

指令原型為MOVdirect,#data②MOV@R0,A

以Ri取代R0,A保持不變

指令原型為MOV@Ri,A③SJMP30H

以rel取代30H

指令原型為SJMPrel1#data2#data163Rn4Ri5direct6addr167addr118rel9bit10/11$12@第3章指令系統(tǒng)、匯編語言及C51程序?qū)ぶ贩绞绞菍Σ僮鲾?shù)存在規(guī)律的歸納,一條指令究竟屬于哪種尋址方式往往并不重要,也不會影響它的使用,因而不必過意追究。51單片機共有七種尋址方式:直接尋址、寄存器尋址、寄存器間接尋址、立即尋址、變址尋址、位尋址、相對尋址。尋址方式越多,單片機的功能就越強;CPU取得操作數(shù)的方法稱為尋址方法

尋址方法

第3章指令系統(tǒng)、匯編語言及C51程序(1)直接尋址

指令中包含direct形式操作數(shù)的尋址方式稱為直接尋址direct既可以是片內(nèi)RAM的低128字節(jié)地址,也可以是除A、B、C、DPTR外的其它特殊功能寄存器名。

MOV

40H,A;指令原形MOVdirect,A(2)寄存器尋址

第3章指令系統(tǒng)、匯編語言及C51程序指令中包含通用寄存器形式操作數(shù)的尋址方式稱為寄存器尋址通用寄存器只能是Rn,A,B,CY和DPTR五種類型MOVA,R1

;指令原形MOVA,Rn(3)寄存器間接尋址

第3章指令系統(tǒng)、匯編語言及C51程序MOV

A,@R0

;指令原形MOVA,@Ri指令中包含“@間址寄存器”形式操作數(shù)的尋址方式稱為寄存器間接尋址間址寄存器只能由R0、R1或DPTR三個寄存器兼任第3章指令系統(tǒng)、匯編語言及C51程序MOV

A,#44H

;指令原形MOVA,#data(4)立即尋址

指令中包含#data或#data16形式操作數(shù)的尋址方式稱為立即尋址

第3章指令系統(tǒng)、匯編語言及C51程序(5)變址尋址

MOVC

A,@A+DPTR

;A←(A+DPTR)指令中包含“@A+基址寄存器”形式操作數(shù)的尋址方式稱為變址尋址方式基址寄存器只能由DPTR或PC兼任

MOVCA,@A+PCMOVCA,@A+DPTRJMPA,@A+DPTR僅有3條變址尋址指令第3章指令系統(tǒng)、匯編語言及C51程序MOV

C,

2FH

;指令原形MOVC,bit

SETB

0E0H;指令原形SETBbitCLRP1.0 ;指令原形

CLRbit(6)位尋址

指令中包含bit形式操作數(shù)的尋址方式稱為位尋址方式bit形式的位地址可以是片內(nèi)RAM中的位地址,也可以是SFR中的位地址或位名稱

第3章指令系統(tǒng)、匯編語言及C51程序(7)相對尋址

SJMPFINISH

;指令原形SJMPrel指令中包含rel形式操作數(shù)的尋址方式稱為相對尋址方式rel可以是片內(nèi)RAM或ROM地址偏移量的形式,也可以是標(biāo)號的形式。偽指令

第3章指令系統(tǒng)、匯編語言及C51程序匯編語言指令的兩類指令:硬指令(指令性語句)——匯編后可以產(chǎn)生機器碼的指令,如前介紹的111條指令;偽指令(指示性語句)——用于指示匯編系統(tǒng)軟件要完成的操作,一般不產(chǎn)生機器碼常用的偽指令:

ORG、END、EQU、DATA、BIT、DB第3章指令系統(tǒng)、匯編語言及C51程序

MCS-51常用偽指令偽指令名稱格式功能描述ORG(Oringin)程序起始地址ORG16位地址用于定義匯編程序或數(shù)據(jù)在ROM中存放的起始地址EQU(Equate)等值指令標(biāo)識符EQU數(shù)或匯編符號用于將一個數(shù)值或匯編符號賦給該標(biāo)示符DATA(Data)數(shù)據(jù)地址賦值標(biāo)識符DATA內(nèi)存字節(jié)地址用于將一個內(nèi)部RAM的地址賦給該標(biāo)示符BIT(Bit)位地址賦值標(biāo)識符DATA位地址或位名稱用于將一個位地址或位名稱賦給該標(biāo)示符DB(DefineByte)定義字節(jié)[標(biāo)號:]DB<項或項表>用于把項或項表中的字節(jié)(8位)數(shù)值依次存入標(biāo)號開始的存儲單元中END(End)結(jié)束匯編END用于指示匯編源程序段結(jié)束(1)ORG(=origin)格式:ORGxxxx(16位地址)功能:用于定義匯編程序或數(shù)據(jù)在ROM中存放的首地址舉例:ORG100HSTART:MOVA,R4MOVB,A:ORG后面第1條指令的首地址為100H,即START的值為100H。(2)EQU(=equate)格式:標(biāo)示符

EQU

數(shù)值或匯編符號功能:用于將一個數(shù)值或匯編符號賦給該標(biāo)示符舉例:ADDREQU2000H;將2000H賦予ADDRADDREQUMEM2;將MEM2賦予ADDR說明:

第2條語句的匯編符號MEM2必須是已賦值過的(3)DATA(=data)格式:標(biāo)示符

DATA內(nèi)部RAM地址或表達(dá)式功能:用于將一個內(nèi)部RAM的地址賦給該標(biāo)示符舉例:

COUNTDATA50H;將50H賦予COUNTCOUNTEQU50H;將50H賦予COUNT※EQU與DATA區(qū)別:

1)EQU須先定義后使用,而DATA可無須如此。

2)EQU可用于匯編符號,而DATA不能。

3)DATA可用于表達(dá)式,而EQU不行。(4)BIT(=bit)格式:標(biāo)示符

BIT

位地址或位名稱功能:用于將一個位地址或位名稱賦給該標(biāo)示符舉例:

KEY1BITP1.0;將P1.0賦予KEY1(5)DB(=definebyte)格式:[標(biāo)號:]DB

n1,n2,…,ni功能:用于定義以字節(jié)為單位的常數(shù)表規(guī)則:①”ni”按順序存在標(biāo)號地址開始的單元中;②常數(shù)之間用英文逗號分開,最后一個不要逗號例如:JPH:DB12H,20H,35H,40H,58H

表示字節(jié)常數(shù)12H將放置在JPH語句標(biāo)號對應(yīng)的ROM地址處,其它常數(shù)依此順延排列(6)END(=end)格式:END功能:用于表示匯編程序到此結(jié)束說明:放在源程序的最后一行,并只允許有一個END指令系統(tǒng)——計算機中全部指令的集合51單片機共有111條指令,按功能可劃分為四大類:第3章指令系統(tǒng)、匯編語言及C51程序數(shù)據(jù)傳送與交換類(31條)算術(shù)運算類(24條)邏輯運算類(34條)轉(zhuǎn)移控制類(22條)*也可將分散于上述四類之中的位操作類指令匯總為第

五大類指令指令——CPU用于指揮功能部件完成某一指定動作的指示

和命令——可實現(xiàn)RAM、SFR和ROM之間的數(shù)據(jù)互傳或交換第3章指令系統(tǒng)、匯編語言及C51程序數(shù)據(jù)傳送與交換類指令

(31條)第3章指令系統(tǒng)、匯編語言及C51程序第3章指令系統(tǒng)、匯編語言及C51程序數(shù)據(jù)傳送與交換類指令共有8種操作碼: MOV用于訪問片內(nèi)RAM MOVX用于訪問片外RAM MOVC用于訪問程序存儲器 XCH和XCHD用于字節(jié)交換 SWAP用于A內(nèi)半字節(jié)交換 PUSH和POP用于堆棧操作數(shù)據(jù)傳送類指令的基本通式為:

<

transfer>

<dest>,<src>表示將源操作數(shù)(src)的內(nèi)容傳送給目的操作數(shù)

(dest),傳送后源操作數(shù)中內(nèi)容不變。transfer具有三種具體形式:第3章指令系統(tǒng)、匯編語言及C51程序MOV——數(shù)據(jù)在片內(nèi)RAM范圍內(nèi)傳送MOVX——數(shù)據(jù)在A與片外RAM之間傳送MOVC——數(shù)據(jù)在A與ROM之間傳送第3章指令系統(tǒng)、匯編語言及C51程序單向箭頭表示只能從源到目的雙向箭頭表示源和目的可以互換位置弧線箭頭表示源和目的相同(唯一)箭頭線旁邊的文字是相應(yīng)的操作碼基本規(guī)律:①立即數(shù)和ROM地址只能作為源操作數(shù)(單向箭頭);②內(nèi)外ROM與A的數(shù)據(jù)傳送只能用MOVC操作碼助記符;③片外RAM與A的數(shù)據(jù)傳送只能用MOVX操作碼助記符;④PUSH、POP、SWAP只有1個操作數(shù)(弧線箭頭);⑤位數(shù)據(jù)傳送只能在C(即Cy標(biāo)志位)與bit間進(jìn)行。數(shù)據(jù)傳送目的和源的快捷記憶法關(guān)注:

MOVA,R1(機器碼E9H)

工作原理利用通用寄存器查找操作數(shù)的做法稱為寄存器尋址通用寄存器:Rn,A,B,CY和DPTR五種類型(一般不考慮A的作用,除非A是指令中唯一的操作數(shù))

根據(jù)機器碼E9H先找到片內(nèi)RAM中R1里存放的35H,然后將35H傳送給A,即操作結(jié)果是通過寄存器R1得到的。第3章指令系統(tǒng)、匯編語言及C51程序【例3-1】數(shù)據(jù)傳送指令。第3章指令系統(tǒng)、匯編語言及C51程序【例3-2】將A的內(nèi)容傳送至R1;30H單元的內(nèi)容傳送至R3;立即數(shù)80H傳送至R7?!纠?-3】將A的內(nèi)容傳送至30H單元;R7的內(nèi)容傳送至20H單元;立即數(shù)0FH傳送至27H單元;40H單元的內(nèi)容傳送至50H單元。第3章指令系統(tǒng)、匯編語言及C51程序關(guān)注:MOVA,@R0(機器碼E6H)

工作原理:根據(jù)機器碼E6H先找到片內(nèi)RAM中R0里存放的內(nèi)容44H,然后以44H為RAM地址將其保存的內(nèi)容07H傳送給A。R0里存放的是操作數(shù)的地址,而不是操作數(shù)結(jié)果。利用寄存器作為地址指針間接查找操作數(shù)的做法稱為寄存器間接尋址可以進(jìn)行間接尋址的寄存器稱為間址寄存器

R0、R1和DPTR是51單片機僅有的三個間址寄存器第3章指令系統(tǒng)、匯編語言及C51程序第3章指令系統(tǒng)、匯編語言及C51程序?qū)儆诩拇嫫鏖g接尋址方式的傳送類指令第3章指令系統(tǒng)、匯編語言及C51程序第3章指令系統(tǒng)、匯編語言及C51程序【例3-4】將從20H開始的32個單元全部清0。【例3-5】設(shè)片外RAM的2000H單元中的數(shù)為61H,讀該單元數(shù)據(jù),傳送到片外RAM的3FFFH單元中去。第3章指令系統(tǒng)、匯編語言及C51程序關(guān)注:MOVCA,@A+DPTR(機器碼93H)第3章指令系統(tǒng)、匯編語言及C51程序工作原理:根據(jù)機器碼93H先找出A中存放的內(nèi)容30H,再找出DPTR中存放的內(nèi)容2010H,然后以這兩項內(nèi)容之和2040H為ROM地址,將其存

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論