版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
單片機(jī)原理及應(yīng)用技術(shù)(基于KeilC與Proteus)全套可編輯PPT課件課程簡介第1章單片機(jī)應(yīng)用基礎(chǔ)概述第2章51單片機(jī)及硬件結(jié)構(gòu)第3章指令系統(tǒng)、匯編語言及C51程序設(shè)計(jì)第4章51單片機(jī)的中斷系統(tǒng)及應(yīng)用第5章51單片機(jī)的定時(shí)器/計(jì)數(shù)器及應(yīng)用第6章51單片機(jī)串行口及應(yīng)用技術(shù)第7章單片機(jī)基本I/O接口應(yīng)用技術(shù)第8章單片機(jī)系統(tǒng)擴(kuò)展及I/O接口技術(shù)第9章D/A與A/D轉(zhuǎn)換接口技術(shù)及應(yīng)用第10章單片機(jī)應(yīng)用系統(tǒng)開發(fā)及設(shè)計(jì)實(shí)例第11章單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)實(shí)驗(yàn)安排根據(jù)需求添加第1章單片機(jī)應(yīng)用基礎(chǔ)概述1.1單片機(jī)及單片機(jī)簡介1.2數(shù)值與編碼1.3計(jì)算機(jī)系統(tǒng)組成1.4單片機(jī)與嵌入式系統(tǒng)1.5單片機(jī)應(yīng)用開發(fā)資源1.6單片機(jī)應(yīng)用實(shí)例1.什么是單片機(jī)?2.為什么要學(xué)單片機(jī)?3.怎樣學(xué)習(xí)單片機(jī)?第1章單片機(jī)基礎(chǔ)知識(shí)概述1.什么是單片機(jī)?——從微型計(jì)算機(jī)技術(shù)的兩大發(fā)展分支談起第1章單片機(jī)基礎(chǔ)知識(shí)概述
分支一:通用微型計(jì)算機(jī)系統(tǒng)
(Universal
microComputerSystem)UCS——為滿足眾多普通應(yīng)用場合需要而發(fā)展的一類個(gè)人計(jì)算機(jī)系統(tǒng)
技術(shù)要求:高速計(jì)算+海量存儲(chǔ)發(fā)展方向:CPU速度不斷提升,存儲(chǔ)容量不斷擴(kuò)大
386486Pentium
PentiumⅣConroeII第1章單片機(jī)基礎(chǔ)知識(shí)概述計(jì)算機(jī)(PersonalComputer)/多板機(jī)CPU+存儲(chǔ)器+主板+顯卡+聲卡+網(wǎng)卡+顯示器+鼠標(biāo)+鍵盤…基本功能部件接口部件外部設(shè)備支持它的軟件五花八門,應(yīng)有盡有第1章單片機(jī)基礎(chǔ)知識(shí)概述
分支二:嵌入式計(jì)算機(jī)系統(tǒng)
(EmbeddedComputerSystem)ECS——能嵌入到對象體系中,以實(shí)現(xiàn)對象體系智能化為目的的一類專用計(jì)算機(jī)系統(tǒng)技術(shù)要求:必須滿足對象體系的物理、電氣和環(huán)境以及產(chǎn)品成本等要求發(fā)展方向:與對象系統(tǒng)密切相關(guān)的嵌入性能、控制能力與控制可靠性
第1章單片機(jī)基礎(chǔ)知識(shí)概述
哈佛結(jié)構(gòu)馮諾依曼結(jié)構(gòu)
PC→電氣加固、機(jī)械加固,并配置各種接口板卡→IPC(工控機(jī))→嵌入到大型對象系統(tǒng)中(實(shí)現(xiàn)智能化)工業(yè)計(jì)算機(jī)(IndustrialPersonalComputer)
船舶駕駛室集中控制臺(tái)自動(dòng)配料控制系統(tǒng)電站鍋爐控制系統(tǒng)第1章單片機(jī)基礎(chǔ)知識(shí)概述眾多小型對象系統(tǒng)(如家電、儀器、工控單元…)無法使用IPC→需要發(fā)展一類特殊的嵌入式計(jì)算機(jī)系統(tǒng)第1章單片機(jī)基礎(chǔ)知識(shí)概述單片計(jì)算機(jī)(SingleChipMicrocomputer)SCM——將通用微計(jì)算機(jī)基本功能部件集成在一塊芯片上構(gòu)成的一種專用微計(jì)算機(jī)系統(tǒng)第1章單片機(jī)基礎(chǔ)知識(shí)概述應(yīng)用:SCM硬件+少量外圍電路+SCM軟件→嵌入式微機(jī)系統(tǒng)+被控對象→微電腦控制產(chǎn)品第1章單片機(jī)基礎(chǔ)知識(shí)概述嵌入式微機(jī)系統(tǒng)
微電腦控制產(chǎn)品單片機(jī)分布式控制第1章單片機(jī)基礎(chǔ)知識(shí)概述站臺(tái)門與車門同步打開自動(dòng)調(diào)度自動(dòng)報(bào)站車輛位置實(shí)時(shí)顯示單片機(jī)的發(fā)展:從1976年起,Intel公司先后推出MCS-48(4位機(jī))、MCS-51(8位機(jī))和MCS-96(16位機(jī))3大系列單片機(jī)。迄今為止,世界各地廠商已相繼研制出大約50個(gè)系列300多個(gè)品種的單片機(jī)產(chǎn)品。第1章單片機(jī)基礎(chǔ)知識(shí)概述51系列、PIC系列、AVR系列、ARM系列、DSP系列….由于51系列單片機(jī)具有開放的系統(tǒng)架構(gòu)、靈活可靠的工作性能、低廉的價(jià)格,因而獲得了很大的成功。單片機(jī)發(fā)展趨勢:高集成度、高性能、低功耗、高性價(jià)比MicroControllerUnitSingleChipMicrocomputer8位基于51內(nèi)核的單片機(jī)仍然是主流機(jī)型。第1章單片機(jī)基礎(chǔ)知識(shí)概述單片機(jī)(SCM)→微控制器(MicroControllerUnit)位數(shù)不斷增加:4位→8位→16位→32位外設(shè)接口內(nèi)置化:ADC、DAC、PGA、USB……2.為什么要學(xué)單片機(jī)?單片機(jī)是高技術(shù)領(lǐng)域,可實(shí)現(xiàn)機(jī)電產(chǎn)品的升級(jí)換代;第1章單片機(jī)基礎(chǔ)知識(shí)概述單片機(jī)人才社會(huì)需求廣泛,具有很好的就業(yè)前景;單片機(jī)知識(shí)與具體專業(yè)技術(shù)相結(jié)合可產(chǎn)生更大的創(chuàng)造力和發(fā)展?jié)摿?。學(xué)習(xí)方法第1章單片機(jī)基礎(chǔ)知識(shí)概述1.2數(shù)制與編碼1、數(shù)制定義——2、10、16進(jìn)制數(shù)的概念2、數(shù)制轉(zhuǎn)換——2、10、16進(jìn)制數(shù)的換算3、有符號(hào)數(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章單片機(jī)基礎(chǔ)知識(shí)概述1.數(shù)制單片機(jī)常用的數(shù)制有十進(jìn)制、二進(jìn)制、十六進(jìn)制。第1章單片機(jī)基礎(chǔ)知識(shí)概述符號(hào)集: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章單片機(jī)基礎(chǔ)知識(shí)概述2、二進(jìn)制數(shù),NB符號(hào)集:0、1;規(guī)則:逢二進(jìn)一;二進(jìn)制數(shù)的后綴為B且不可省略;二進(jìn)制數(shù)可用加權(quán)展開式表示,例如:其中,2為基數(shù),0和1為各位加權(quán)數(shù),其一般表達(dá)式為:第1章單片機(jī)基礎(chǔ)知識(shí)概述3、十六進(jìn)制數(shù),NH符號(hào)集: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)制運(yùn)算求和。例如:111111118421163264128記憶:1100B=121001B=91111B=1511111111B=255舉例:第1章單片機(jī)基礎(chǔ)知識(shí)概述(2)十六進(jìn)制轉(zhuǎn)換成十進(jìn)制轉(zhuǎn)換規(guī)則:按十六進(jìn)制表達(dá)式展開,按十進(jìn)制運(yùn)算求和。例如:第1章單片機(jī)基礎(chǔ)知識(shí)概述(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ù)。例如:(最后一組不足時(shí)左邊添0湊齊4位)轉(zhuǎn)換規(guī)則:第1章單片機(jī)基礎(chǔ)知識(shí)概述(4)十進(jìn)制整數(shù)轉(zhuǎn)換成二、十六進(jìn)制整數(shù)轉(zhuǎn)換規(guī)則:“除基取余”。十進(jìn)制整數(shù)不斷除以轉(zhuǎn)換進(jìn)制基數(shù),直至商為0。每除一次取一個(gè)余數(shù),從低位排向高位。例如:第1章單片機(jī)基礎(chǔ)知識(shí)概述3.有符號(hào)數(shù)的表示方法
有符號(hào)數(shù):最高位為符號(hào)位,“0”表示“+”
,“1”表示“-”
。其余為數(shù)值位第1章單片機(jī)基礎(chǔ)知識(shí)概述例如:+123→01111011B-123→11111011B11111011B→=251?=-123?靠事先約定無符號(hào)數(shù):最高位不作為符號(hào)位,全部為數(shù)值位。有符號(hào)數(shù)有3種編碼形式:原碼、反碼和補(bǔ)碼基本規(guī)律:正數(shù)的原碼、反碼和補(bǔ)碼都是相同的,而負(fù)數(shù)的原碼、反碼和補(bǔ)碼各有不同。運(yùn)算規(guī)則:當(dāng)有符號(hào)數(shù)用補(bǔ)碼表示時(shí),可以把減法運(yùn)算轉(zhuǎn)換為加法運(yùn)算。CPU中便無需設(shè)置硬件減法器,從而可簡化其硬件結(jié)構(gòu)。第1章單片機(jī)基礎(chǔ)知識(shí)概述4.
位—字節(jié)—字
位(bit):二進(jìn)制數(shù)中的一位,其值不是“1”,就是“0”。半字節(jié):4位二進(jìn)制例如:1000111011001011B=8ECDH字(word):51單片機(jī)的字由2個(gè)字節(jié)組成,16位字長。第1章單片機(jī)基礎(chǔ)知識(shí)概述字節(jié)(byte):一個(gè)8位的二進(jìn)制數(shù)為一個(gè)字節(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章單片機(jī)基礎(chǔ)知識(shí)概述8421BCD碼
用4位二進(jìn)制數(shù)表示1位十進(jìn)制數(shù)BCD碼的用途:可使計(jì)算機(jī)直接進(jìn)行十進(jìn)制數(shù)運(yùn)算例如: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個(gè)字符,其中包括數(shù)碼0~9以及英文字母等可打印的字符。高3位低4位‘0’~‘9’→30H~39H‘A’→1000001B→41H例如:第1章單片機(jī)基礎(chǔ)知識(shí)概述7.基本邏輯門電路
數(shù)字計(jì)算機(jī)靠基本邏輯門電路實(shí)現(xiàn)二進(jìn)制數(shù)的運(yùn)算,其中高電平和低電平分別代表1和0。單片機(jī)原理分析中需要用到一些基本邏輯門電路、邏輯關(guān)系和邏輯符號(hào)。4種最基本的邏輯關(guān)系如下:與邏輯、或邏輯、非邏輯、與非邏輯
第1章單片機(jī)基礎(chǔ)知識(shí)概述邏輯門電路1.3計(jì)算機(jī)系統(tǒng)組成
1、計(jì)算機(jī)硬件系統(tǒng)2、計(jì)算機(jī)軟件系統(tǒng)第1章單片機(jī)基礎(chǔ)知識(shí)概述1計(jì)算機(jī)硬件系統(tǒng)2計(jì)算機(jī)軟件系統(tǒng)軟件系統(tǒng)是指計(jì)算機(jī)上運(yùn)行的各種程序、管理的數(shù)據(jù)和有關(guān)的各種文檔。
1.4單片機(jī)與嵌入式系統(tǒng)1、嵌入式系統(tǒng) 2、單片機(jī)應(yīng)用系統(tǒng)的組成第1章單片機(jī)基礎(chǔ)知識(shí)概述1、嵌入式系統(tǒng)所謂嵌入式系統(tǒng),是指以嵌入式應(yīng)用為目的的計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)是作為其他系統(tǒng)的組成部分使用的,單片機(jī)應(yīng)用系統(tǒng)是典型的嵌入式系統(tǒng)。系統(tǒng)內(nèi)核小專用性強(qiáng)系統(tǒng)精簡高實(shí)時(shí)性嵌入式軟件開發(fā)走向標(biāo)準(zhǔn)化嵌入式系統(tǒng)開發(fā)需要開發(fā)工具和環(huán)境單片機(jī)典型應(yīng)用系統(tǒng)結(jié)構(gòu)
2、單片機(jī)應(yīng)用系統(tǒng)的組成系統(tǒng)軟件系統(tǒng)軟件是處于底層硬件和高層應(yīng)用軟件之間的橋梁。但是,由于單片機(jī)的資源有限,需綜合考慮設(shè)計(jì)成本及單片機(jī)運(yùn)行速度等因素,故設(shè)計(jì)者必須在系統(tǒng)軟件和應(yīng)用軟件實(shí)現(xiàn)的功能與硬件配置之間,仔細(xì)地尋求平衡。應(yīng)用軟件應(yīng)用軟件是用戶為實(shí)現(xiàn)系統(tǒng)功能要求設(shè)計(jì)的程序。1.5單片機(jī)應(yīng)用開發(fā)資源1、單片機(jī)開發(fā)板2、Keil開發(fā)環(huán)境3、Proteus4、ISP軟件5、Protel第1章單片機(jī)基礎(chǔ)知識(shí)概述1、單片機(jī)開發(fā)板2、KeilProteus是電路分析與實(shí)物仿真軟件(ISIS和ARES)英國LabcenterElectronicsLtd.開發(fā)提供原理圖繪制、單片機(jī)系統(tǒng)仿真與PCB設(shè)計(jì)等功能(部分功能類似于Multisim軟件)
可仿真多種MCU,如51、AVR,PIC,MSP等可仿真許多電子元件,如阻容元件、開關(guān)、晶體管、集成電路、液晶顯示器等可提供多種調(diào)試虛擬儀器,如示波器、信號(hào)源等第1章單片機(jī)基礎(chǔ)知識(shí)概述3、Proteus應(yīng)用簡介ISIS——智能原理圖輸入系統(tǒng)數(shù)字與模擬電路原理圖繪制數(shù)字與模擬電路仿真運(yùn)行單片機(jī)匯編程序編譯調(diào)試(IntelligentSchematicInputSystem)ISIS模塊應(yīng)用舉例第1章單片機(jī)基礎(chǔ)知識(shí)概述單片機(jī)系統(tǒng)原理圖第1章單片機(jī)基礎(chǔ)知識(shí)概述4、ISP4、Protesl1.6一個(gè)簡單的單片機(jī)應(yīng)用實(shí)例第1章單片機(jī)基礎(chǔ)知識(shí)概述1.開發(fā)單片機(jī)應(yīng)用系統(tǒng)的一般步驟開發(fā)單片機(jī)應(yīng)用系統(tǒng)時(shí),一般要經(jīng)過以下步驟。①總體設(shè)計(jì)。分析問題,明確任務(wù),擬定出性價(jià)比較高的方案。②硬件設(shè)計(jì)。③軟件設(shè)計(jì)。④程序編譯、仿真及調(diào)試。⑤制作硬件電路。⑥程序下載、硬件調(diào)試運(yùn)行。
1.6一個(gè)簡單的單片機(jī)應(yīng)用實(shí)例第1章單片機(jī)基礎(chǔ)知識(shí)概述匯編和C代碼
ORG0000HSETBP1.0START:
LCALLDELAY;調(diào)用延遲一段時(shí)間的子程序CPLP1.0;求反(1變0,0變1)SJMPSTART;不斷循環(huán)DELAY:
MOVR0,#00H;延時(shí)子程序入口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í)函數(shù)
}}voiddelay(ucharn)//延時(shí)函數(shù)
{uchara,b,c;for(c=0;c<n;c++)for(a=0;a<100;a++)for(b=0;b<100;b++);}本章小結(jié)1.單片機(jī)是將通用微計(jì)算機(jī)基本功能部件集成在一塊芯片上構(gòu)成的一種專用微計(jì)算機(jī)系統(tǒng)。2.單片機(jī)的發(fā)展趨勢是高集成度、高性能、高性價(jià)比、低功耗,51內(nèi)核單片機(jī)仍然是目前主流機(jī)型。3.不同數(shù)制轉(zhuǎn)換和基本邏輯門電路是學(xué)習(xí)單片機(jī)的重要基礎(chǔ)知識(shí)。4.Proteus和KeilC是學(xué)習(xí)單片機(jī)編程的兩個(gè)重要軟件工具。第1章單片機(jī)基礎(chǔ)知識(shí)概述第2章51單片機(jī)及硬件結(jié)構(gòu)2.151單片機(jī)的概念及系列產(chǎn)品2.251單片機(jī)總體結(jié)構(gòu)2.351單片機(jī)存儲(chǔ)結(jié)構(gòu)及編程資源2.451單片機(jī)的工作方式2.5單片機(jī)的工作時(shí)序2.6單片機(jī)最小系統(tǒng)2.151單片機(jī)的概念及系列產(chǎn)品51單片機(jī)是對所有兼容Intel8051指令系統(tǒng)的單片機(jī)的統(tǒng)稱。在不斷增長的市場需求的推動(dòng)下,隨著FlashROM技術(shù)及CPU工藝技術(shù)的高速發(fā)展,各種51兼容單片機(jī)應(yīng)運(yùn)而生,單片機(jī)片內(nèi)在原來僅包含RAM、ROM、I/O口、中斷系統(tǒng)及定時(shí)器/計(jì)數(shù)器等模塊的基礎(chǔ)上,擴(kuò)展多種I/O接口、驅(qū)動(dòng)電路、PWM電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器、定時(shí)器等功能模塊,成為較為完善的單片微型計(jì)算機(jī)硬件系統(tǒng)。目前,常用51單片機(jī)系列產(chǎn)品主要有Intel80C51單片機(jī)、ATMELAT89單片機(jī)、STC(國產(chǎn)宏晶)單片機(jī)等。51單片機(jī)系列及兼容單片機(jī)的典型產(chǎn)品STC單片機(jī)SCM——將通用微計(jì)算機(jī)基本功能部件集成在一塊芯片上構(gòu)成的一種專用微計(jì)算機(jī)系統(tǒng)SCM=CPU+OSC+ROM+RAM+T/C+INT+I/O+UART第2章51單片機(jī)及硬件結(jié)構(gòu)51單片機(jī)的結(jié)構(gòu)組成2.251單片機(jī)總體結(jié)構(gòu)87C52INTELMCS-51系列單片機(jī)一覽表第2章51單片機(jī)及硬件結(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個(gè)UART+5個(gè)INT+2個(gè)64KB51單片機(jī)主要內(nèi)部資源的學(xué)習(xí)安排
中央處理器CPU——第2章程序存儲(chǔ)器ROM——第2章數(shù)據(jù)存儲(chǔ)器RAM——第2章并行I/O口——第2章中斷源INT——第5章定時(shí)器/計(jì)數(shù)器T/C——第6章全雙工串行口UART——第7章第2章51單片機(jī)及硬件結(jié)構(gòu)教材結(jié)構(gòu)第1章單片機(jī)基礎(chǔ)知識(shí)概述第2章MCS-51單片機(jī)結(jié)構(gòu)及原理第3章單片機(jī)的匯編語言與程序設(shè)計(jì)第4章單片機(jī)的C51語言第5章單片機(jī)的中斷系統(tǒng)第6章單片機(jī)的定時(shí)器/計(jì)數(shù)器第7章單片機(jī)的串行通信技術(shù)第8章單片機(jī)接口技術(shù)第9章單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)與開發(fā)附錄實(shí)驗(yàn)指導(dǎo)CPUCPU=控制器
+運(yùn)算器第2章51單片機(jī)及硬件結(jié)構(gòu)(CentralProcessingUnit)控制器的用途:統(tǒng)一指揮和控制各單元協(xié)調(diào)工作控制器的任務(wù):從ROM中取出指令→譯碼→執(zhí)行指令控制器的組成:程序計(jì)數(shù)器PC、數(shù)據(jù)指針寄存器DPTR、…第2章51單片機(jī)及硬件結(jié)構(gòu)運(yùn)算器的用途:對數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算和邏輯操作運(yùn)算器的任務(wù):計(jì)算緩存器內(nèi)容→結(jié)果暫存→修改運(yùn)行標(biāo)志運(yùn)算器的組成:累加器ACC、程序狀態(tài)字寄存器PSW、…第2章51單片機(jī)及硬件結(jié)構(gòu)(1)程序計(jì)數(shù)器(ProgramCounter——PC)——指向ROM存儲(chǔ)單元的地址指針(引導(dǎo)程序運(yùn)行)
……XxxxxxxxXxxxxxxxXxxxxxxxXxxxxxxxXxxxxxxxROM0000H0001H0002H0003H0004HFFFFH16位寄存器→可尋址范圍216(=65536B=64KB)永遠(yuǎn)存放著下一條指令的首地址具有自動(dòng)加“1”
功能→順序運(yùn)行程序功能具有可被指令修改功能→跳轉(zhuǎn)運(yùn)行程序功能復(fù)位時(shí),PC初值=0→復(fù)位后程序從0開始運(yùn)行第2章51單片機(jī)及硬件結(jié)構(gòu)PC指針0000(2)數(shù)據(jù)指針寄存器(DataPointer——DPTR)16位寄存器,可尋址范圍216(64KB)可拆為2個(gè)8位的獨(dú)立寄存器DPL和DPH具有可被指令修改功能→可變更數(shù)據(jù)地址DPLDPH——指向ROM或RAM存儲(chǔ)單元的地址指針(引導(dǎo)數(shù)據(jù)傳送)
第2章51單片機(jī)及硬件結(jié)構(gòu)……0000H0001H0002H0003H0004HFFFFH35H77HF4H94H9EHDPTR指針……xxHxxHxxHxxHxxHROMRAM0000H0001H0002H0003H0004HFFFFH(3)累加器(ACCUMULATER——A或ACC)8位寄存器其值可由指令修改是最繁忙的寄存器——存放操作數(shù)或中間運(yùn)算結(jié)果的寄存器第2章51單片機(jī)及硬件結(jié)構(gòu)A(4)程序狀態(tài)字寄存器(ProgramStateWord——PSW)
8位寄存器各位都具有特殊含義狀態(tài)值可由硬件形成或由指令修改——存放程序運(yùn)行過程中的各種狀態(tài)信息的寄存器第2章51單片機(jī)及硬件結(jié)構(gòu)CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0CY(PSW.7)——進(jìn)位標(biāo)志在進(jìn)行加或減運(yùn)算時(shí),如果操作結(jié)果最高位有進(jìn)位或借位時(shí),CY由硬件置“1”,否則清“0”。CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0用途:1、可根據(jù)CY判斷有無進(jìn)位或借位;2、可作為位操作中的位累加器用。第2章51單片機(jī)及硬件結(jié)構(gòu)10010011+11110000
————————CY=110000011進(jìn)位標(biāo)志位CY舉例
AC(PSW.6)——輔助進(jìn)位標(biāo)志在進(jìn)行加或減運(yùn)算時(shí),如果操作結(jié)果的低四位數(shù)向高四位產(chǎn)生進(jìn)位或借位時(shí),將由硬件置“1”,否則清“0”。01001111+10100001
————————AC=111110000半進(jìn)位舉例用途:1、根據(jù)AC判斷加減運(yùn)算時(shí)有無半進(jìn)位或半借位;2、在BCD碼調(diào)整運(yùn)算中要用到AC標(biāo)志第2章51單片機(jī)及硬件結(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單片機(jī)及硬件結(jié)構(gòu)CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0RS1(PSW.4)和RS0(PSW.3)——工作寄存器組指針用途:用于指定CPU的當(dāng)前工作寄存器組第2章51單片機(jī)及硬件結(jié)構(gòu)CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0OV(PSW.2)——溢出標(biāo)志在有符號(hào)數(shù)加減運(yùn)算或無符號(hào)數(shù)乘除運(yùn)算中若有異常結(jié)果,OV硬件置1,否則硬件清0。用途:判斷運(yùn)算的結(jié)果是否正確,正確=0;出錯(cuò)=1第2章51單片機(jī)及硬件結(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ù)的補(bǔ)碼是它本身,負(fù)數(shù)的補(bǔ)碼是除符號(hào)位外每位求反,然后末尾加111111011(-5)
+11110000(-16)
——————————————CY=111101011→(-21)D7有進(jìn)位
D6有進(jìn)位OV=C6YC7Y=1
1=011101011→10010100→10010101→運(yùn)算出錯(cuò)→運(yùn)算正確舉例舉例第2章51單片機(jī)及硬件結(jié)構(gòu)P(PSW.0)——奇偶標(biāo)志位該位始終跟蹤累加器A中含“1”個(gè)數(shù)的奇偶性如果A中有奇數(shù)個(gè)“1”,則P置“1”,否則置“0”舉例若A=10011111,則P=0
若A=11000001,則P=1用途:串行通訊中的數(shù)據(jù)校驗(yàn),判斷是否存在傳輸錯(cuò)誤。第2章51單片機(jī)及硬件結(jié)構(gòu)CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.051系列單片機(jī)一般采用40只引腳的雙列直插式(DIP——DualIn-linePackage)封裝結(jié)構(gòu)第2章51單片機(jī)及硬件結(jié)構(gòu)除DIP封裝外,51單片機(jī)還采用44只引腳的方形扁平(QFP
——QuadFlatPackage)封裝方式(4只引腳無用)。第2章51單片機(jī)及硬件結(jié)構(gòu)DIP引腳分布電源及晶振引腳(共4只)控制引腳(共4只)端口引腳(共32只)三類第2章51單片機(jī)及硬件結(jié)構(gòu)(1)電源及晶振引腳VCC(40腳):+5V電源引腳VSS(20腳):接地引腳XTAL1(19腳);外接晶振引腳(內(nèi)置放大器輸入端)XTAL2(18腳):外接晶振引腳(內(nèi)置放大器輸出端)80C51Vcc80C512040Vss+5V80C51第2章51單片機(jī)及硬件結(jié)構(gòu)(2)控制引腳RST/VPD
(9):復(fù)位/備用電源引腳ALE/PROG
(30):地址鎖存使能輸出/編程脈沖輸入PSEN
(29):輸出訪問外部ROM讀選通信號(hào)
EA/VPP
(31):外部ROM允許訪問/編程電源輸入20μF8K10k80C51第2章51單片機(jī)及硬件結(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口是單片機(jī)對外聯(lián)絡(luò)的重要通道第2章51單片機(jī)及硬件結(jié)構(gòu)由于工作任務(wù)不同,4個(gè)端口的內(nèi)部結(jié)構(gòu)也不同。了解4類端口的內(nèi)部結(jié)構(gòu)對于正確使用這些I/O端口非常重要。第2章51單片機(jī)及硬件結(jié)構(gòu)以下按照先易后難的原則進(jìn)行學(xué)習(xí),即P1→P3→P0→P21.P1口
P1.n=1個(gè)鎖存器+1個(gè)場效應(yīng)管驅(qū)動(dòng)器V+2個(gè)三態(tài)門緩沖器P1口包含P1.0~P1.7共8個(gè)相同結(jié)構(gòu)的電路P1.0~P1.7中的8個(gè)鎖存器共同組成P1特殊功能寄存器(90H)第2章51單片機(jī)及硬件結(jié)構(gòu)P1.n的通用I/O口工作方式:第2章51單片機(jī)及硬件結(jié)構(gòu)讀鎖存器輸出讀引腳
(詳見P1口仿真課件)P1口的要點(diǎn):1、P1口具有通用I/O口方式,可實(shí)現(xiàn)輸出、讀引腳(輸入)和讀鎖存器三種功能;2、P1口為準(zhǔn)雙向通用口,作為通用輸入口時(shí)應(yīng)先使P1.n→1,作為通用輸出口時(shí)是無條件的。第2章51單片機(jī)及硬件結(jié)構(gòu)2.P3口
與P1.n
差別:第二功能控制單元→雙功能P3.0~P3.7中的8個(gè)鎖存器構(gòu)成了P3
SFR(B0H)第2章51單片機(jī)及硬件結(jié)構(gòu)P3.n的通用I/O口工作方式第2章51單片機(jī)及硬件結(jié)構(gòu):輸出、讀引腳、讀鎖存器輸出條件:第二輸出功能口→
“1”(與非門開鎖)輸入條件:Q端和第二輸出功能端→“1”(V管截止)*此時(shí)的第二功能口由CPU自動(dòng)置位,無需指令操作P3口的第二功能方式第二輸出功能的條件:Q端→“1”(與非門開鎖)1第2章51單片機(jī)及硬件結(jié)構(gòu):第二輸出功能、第二輸入功能
RXD第7章TXD第7章/INT0第5章/INT1第5章T0第6章T1第6章/WR第8章/RD第8章第二輸入功能的條件:Q端和第二輸出功能端→“1”(V管截止)(詳見P3口仿真課件)*此時(shí)上述條件由CPU自動(dòng)設(shè)置,無需指令操作P3口的要點(diǎn):1、P3口具有通用I/O口方式,可實(shí)現(xiàn)輸出、讀引腳(輸入)和讀鎖存器三種功能;2、P3口為準(zhǔn)雙向通用口,作為通用輸入口時(shí)應(yīng)先使P3.n→1,作為通用輸出口時(shí)應(yīng)先使第二輸出端→1;3、P3口具有第二功能方式,可實(shí)現(xiàn)第二輸出和第二輸入兩種功能。第2章51單片機(jī)及硬件結(jié)構(gòu)3.P0口
與P1.n差別:輸出控制電路、輸出驅(qū)動(dòng)電路→總線功能P0.0~P0.7中的8個(gè)鎖存器構(gòu)成了P0
SFR(80H)第2章51單片機(jī)及硬件結(jié)構(gòu)漏極開路與上拉電阻的概念
控制端=0→MUX下通→/Q與V1柵極直通→V2截止→V1漏極開路第2章51單片機(jī)及硬件結(jié)構(gòu)→封鎖與門A(→0)→地址/數(shù)據(jù)端與A輸出無關(guān)為使漏極開路的V1有效,必須通過外接上拉電阻與電源連通,上拉電阻的阻值一般為100Ω~10kΩ。注意:P1、P2、P3口無需外接上拉電阻(已有內(nèi)部上拉電阻)第2章51單片機(jī)及硬件結(jié)構(gòu)P0.n的通用I/O口工作方式第2章51單片機(jī)及硬件結(jié)構(gòu):輸出、讀引腳、讀鎖存器輸出條件:控制端→
“0”(V2管截止,MUX下通)輸入條件:Q端→
“1”(V1管截止)P0.n的地址/數(shù)據(jù)分時(shí)復(fù)用方式:地址/數(shù)據(jù)輸出時(shí)V1和V2交替導(dǎo)通,無需外接上拉電阻
第2章51單片機(jī)及硬件結(jié)構(gòu)地址/數(shù)據(jù)輸出的條件:控制端→1地址/數(shù)據(jù)輸出、數(shù)據(jù)輸入數(shù)據(jù)輸入時(shí),CPU自動(dòng)使Q端→1,控制端→0,故分時(shí)復(fù)用方式為無條件的真雙向口(詳見P0口仿真課件)P0口的要點(diǎn):1、P0口具有通用I/O口方式,可實(shí)現(xiàn)輸出、讀引腳(輸入)和讀鎖存器三種功能;2、P0口為準(zhǔn)雙向通用口,作為通用輸入口時(shí)應(yīng)先使P3.n→1,作為通用輸出口時(shí)應(yīng)先使第二輸出端→1;3、作為通用I/O口方式時(shí),需要外接上拉電阻;4、P0口具有地址/數(shù)據(jù)分時(shí)復(fù)用方式,可實(shí)現(xiàn)地址/數(shù)據(jù)輸出、數(shù)據(jù)輸入兩種功能;5、地址/數(shù)據(jù)分時(shí)復(fù)用方式時(shí)無需外接上拉電阻;6、分時(shí)復(fù)用方式的數(shù)據(jù)輸入時(shí)無需程序?qū)?操作。第2章51單片機(jī)及硬件結(jié)構(gòu)4.P2口
與P1.n差別:輸出控制單元,鎖存信號(hào)由Q端輸出P2.0~P2.7中的8個(gè)鎖存器構(gòu)成了P2
SFR(A0H)第2章51單片機(jī)及硬件結(jié)構(gòu)P2.n的通用IO口方式第2章51單片機(jī)及硬件結(jié)構(gòu):輸出、讀引腳、讀鎖存器輸出條件:控制端→
“0”(MUX下通)輸入條件:Q端→
“1”(V管截止)無需外接上拉電阻P2.n的地址輸出口方式第2章51單片機(jī)及硬件結(jié)構(gòu):地址輸出地址輸出條件:控制端→
“1”(MUX上通)(詳見P2口仿真課件)P2口的要點(diǎn):1、P2口具有通用I/O口方式,可實(shí)現(xiàn)輸出、讀引腳(輸入)和讀鎖存器三種功能;2、P2口為準(zhǔn)雙向通用口,作為通用輸入口時(shí)應(yīng)先使P2.n→1,作為通用輸出口時(shí)應(yīng)先使控制端→1;3、作為通用I/O口方式時(shí),無需外接上拉電阻;4、P2口具有地址輸出方式,可實(shí)現(xiàn)地址輸出功能。第2章51單片機(jī)及硬件結(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單片機(jī)及硬件結(jié)構(gòu)最簡單的單片機(jī)電路圖MCU的電源引腳被隱藏(ISIS仿真與Vcc和Vss無關(guān))1.
存儲(chǔ)器劃分方法計(jì)算機(jī)存儲(chǔ)器地址空間的兩種結(jié)構(gòu)形式:普林斯頓結(jié)構(gòu)和哈佛結(jié)構(gòu)。RAM和ROM統(tǒng)一編址
RAM和ROM分別編址
第2章51單片機(jī)及硬件結(jié)構(gòu)2.3單片機(jī)存儲(chǔ)結(jié)構(gòu)及編程資源程序存儲(chǔ)器ROM數(shù)據(jù)存儲(chǔ)器RAM第2章51單片機(jī)及硬件結(jié)構(gòu)51單片機(jī)采用哈佛結(jié)構(gòu),共有4個(gè)物理存儲(chǔ)空間:片內(nèi)RAM、片內(nèi)ROM、片外RAM、片外ROM各類存儲(chǔ)器分別編址片內(nèi)RAM片內(nèi)ROM片外RAM片外ROM00H000H0000H0000H
FFH
FFFHFFFFHFFFFH2.程序存儲(chǔ)器(ROM)作用:存放程序、表格或常數(shù),具有非易失性特點(diǎn):片內(nèi)ROM與片外ROM可有2種組合方案第2章51單片機(jī)及硬件結(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時(shí)為方案1,EA=0時(shí)為方案2EA引腳接低電平時(shí),僅使用片外ROM(片外ROM不可缺省)。由于片內(nèi)、外ROM是統(tǒng)一編址的,故只能算作1個(gè)邏輯存儲(chǔ)空間。第2章51單片機(jī)及硬件結(jié)構(gòu)EA引腳接高電平時(shí),可同時(shí)使用2種ROM(片外ROM可以缺省);第2章51單片機(jī)及硬件結(jié)構(gòu)51單片機(jī)的四個(gè)物理存儲(chǔ)空間僅相當(dāng)于三個(gè)邏輯存儲(chǔ)空間片內(nèi)RAM片內(nèi)ROM片外RAM片外ROM00H000H0000H0000H
FFH
FFFHFFFFHFFFFH物理存儲(chǔ)空間邏輯存儲(chǔ)空間第2章51單片機(jī)及硬件結(jié)構(gòu)中斷程序執(zhí)行過程:某一突發(fā)事件→相應(yīng)中斷入口地址自動(dòng)裝入PC→引導(dǎo)兩次跳轉(zhuǎn)→執(zhí)行相應(yīng)中斷服務(wù)程序主程序一般應(yīng)安排在0030H地址以后(有中斷需要時(shí))ROM有6個(gè)特殊存儲(chǔ)器單元——用于程序引導(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ù)存儲(chǔ)器(RAM)作用:存放程序運(yùn)行結(jié)果字長:8位數(shù)量:128B+128B(80C51)30H低128B(00H~7FH)為普通RAM區(qū)高128B(80H~FFH)為特殊功能寄存器區(qū)第2章51單片機(jī)及硬件結(jié)構(gòu)(1)低128字節(jié)的區(qū)域
①工作寄存器區(qū)(00H~1FH)
②可位尋址區(qū)(20H~2FH)
③用戶RAM區(qū)(30H~7FH)①②③30H第2章51單片機(jī)及硬件結(jié)構(gòu)①區(qū)共有32個(gè)存儲(chǔ)單元;每個(gè)單元都有1個(gè)8位地址(字節(jié)地址)每個(gè)單元都有1個(gè)寄存器名稱(R0~R7)32個(gè)單元分為4組(第0~
第3組)CPU只能選一組為當(dāng)前工作寄存器組當(dāng)前工作寄存器組取決于PSW的設(shè)置①30HCPU復(fù)位后RS1和RS0默認(rèn)值為0,即默認(rèn)第0組為當(dāng)前工作寄存器組。第2章51單片機(jī)及硬件結(jié)構(gòu)②30H②區(qū)共有16個(gè)存儲(chǔ)單元;每個(gè)單元都有一個(gè)字節(jié)地址每個(gè)單元都有8個(gè)不同的位地址
②區(qū)共有128個(gè)位地址②區(qū)可以字節(jié)地址和位地址兩種方式存取數(shù)據(jù)。第2章51單片機(jī)及硬件結(jié)構(gòu)③區(qū)共有80個(gè)存儲(chǔ)單元;每個(gè)單元都有一個(gè)字節(jié)地址,但沒有位地址,也沒有寄存器名。③30H此區(qū)可作為堆棧區(qū)和中間數(shù)據(jù)存儲(chǔ)區(qū)使用——用戶RAM區(qū)【注意】:①區(qū)和③區(qū)只能按字節(jié)進(jìn)行數(shù)據(jù)存取操作,②區(qū)則可按字節(jié)和位兩種方式存取操作。第2章51單片機(jī)及硬件結(jié)構(gòu)(2)高128字節(jié)RAM區(qū)
30HSFR承擔(dān)著51單片機(jī)內(nèi)部資源的管理工作每個(gè)存儲(chǔ)單元都有一個(gè)字節(jié)地址,但只有其中21個(gè)單元可以使用,并有相應(yīng)寄存器名稱。51單片機(jī)共有21個(gè)特殊功能寄存器(SpetialFunctionRegister)第2章51單片機(jī)及硬件結(jié)構(gòu)字節(jié)地址末位是0或8的SFR,都具有位地址。88H89H8AH8BH8CH8DH8EH8FH§2.1§2.1§2.3§2.3復(fù)位——使單片機(jī)恢復(fù)原始默認(rèn)狀態(tài)的操作。1.復(fù)位與復(fù)位電路
第2章51單片機(jī)及硬件結(jié)構(gòu)2.451單片機(jī)的工作方式復(fù)位條件在RST/VPD引腳端出現(xiàn):≥10ms時(shí)間的高電平(≥3V)狀態(tài)復(fù)位方式
上電復(fù)位第2章51單片機(jī)及硬件結(jié)構(gòu)復(fù)合復(fù)位按鍵復(fù)位10ms3V
程序執(zhí)行的方式1.連續(xù)執(zhí)行方式連續(xù)執(zhí)行方式就是單片機(jī)正常執(zhí)行控制程序的工作方式。2.單步執(zhí)行方式用戶在調(diào)試程序時(shí),常常要逐條地執(zhí)行程序中的每一條指令。單片機(jī)需要統(tǒng)一的時(shí)鐘控制,其時(shí)鐘系統(tǒng)可有兩種方案:2.551單片機(jī)的工作時(shí)序外部時(shí)鐘脈沖內(nèi)部OSC+外部時(shí)鐘電路,或內(nèi)部OSC
+外部時(shí)鐘脈沖第2章51單片機(jī)及硬件結(jié)構(gòu)MCS-51的時(shí)鐘頻率一般為6~12MHzC1、C2≈30pF外部時(shí)鐘電路石英晶體
時(shí)鐘電路
3.單片機(jī)時(shí)序
(1)時(shí)序的概念第2章51單片機(jī)及硬件結(jié)構(gòu)時(shí)序是對象(或引腳、事件、信息)間按照時(shí)間順序組成的序列關(guān)系。時(shí)序可以用狀態(tài)方程、狀態(tài)圖、狀態(tài)表和時(shí)序圖4種方法表示,其中時(shí)序圖最為常用。時(shí)序圖亦稱為波形圖或序列圖,縱坐標(biāo)表示不同對象的電平,橫坐標(biāo)表示時(shí)間(從左往右為時(shí)間正向軸),通常坐標(biāo)軸可省略。時(shí)鐘的度量單位:時(shí)鐘周期(或節(jié)拍)P、狀態(tài)周期S、機(jī)器周期、指令周期1個(gè)狀態(tài)周期(S)=2個(gè)節(jié)拍(P)1個(gè)機(jī)器周期=6個(gè)狀態(tài)(S)=12個(gè)節(jié)拍(P)1個(gè)指令周期約為1~4個(gè)機(jī)器周期第2章51單片機(jī)及硬件結(jié)構(gòu)第2章51單片機(jī)及硬件結(jié)構(gòu)單片機(jī)時(shí)序——CPU在執(zhí)行指令時(shí)所需控制信號(hào)的時(shí)間順序。1、用于片內(nèi)各功能部件的邏輯控制(不作介紹)2、用于片外RAM訪問或總線方式控制(§8.2.1介紹)51單片機(jī)訪問外部RAM時(shí)序
第2章51單片機(jī)及硬件結(jié)構(gòu)單片機(jī)最小系統(tǒng)一般是指單片機(jī)能夠用來實(shí)現(xiàn)簡單I/O端口控制的硬件電路組成,是單片機(jī)初學(xué)者的必備工具。2.6單片機(jī)最小系統(tǒng)本章小結(jié)1、單片機(jī)的CPU由控制器和運(yùn)算器組成,在時(shí)鐘電路和復(fù)位電路的支持下,按一定的時(shí)序工作。單片機(jī)的時(shí)序信號(hào)包括振蕩周期、時(shí)鐘周期、機(jī)器周期和指令周期。2、51單片機(jī)采用哈佛結(jié)構(gòu)存儲(chǔ)器,共有3個(gè)邏輯存儲(chǔ)空間和4個(gè)物理存儲(chǔ)空間。片內(nèi)低128字節(jié)RAM中包含4個(gè)工作寄存器組、128個(gè)位地址單元和80個(gè)字節(jié)地址單元。片內(nèi)高128字節(jié)RAM中離散分布有21個(gè)特殊功能寄存器。3、P0~P3口都可作為準(zhǔn)雙向通用I/O口,其中只有P0口需要外接上拉電阻;在需要擴(kuò)展片外設(shè)備時(shí),P2口可作為其地址線接口,P0口可作為其地址線/數(shù)據(jù)線復(fù)用接口,此時(shí)它是真正的雙向口。第2章51單片機(jī)及硬件結(jié)構(gòu)第3章指令系統(tǒng)、匯編語言及C51程序設(shè)計(jì)3.1單片機(jī)指令系統(tǒng)3.2匯編語言程序設(shè)計(jì)基礎(chǔ)3.3C51程序設(shè)計(jì)及應(yīng)用3.4Keil51單片機(jī)集成開發(fā)環(huán)境3.5單片機(jī)I/O端口應(yīng)用示例3.6KeilC與Proteus聯(lián)機(jī)調(diào)試示例第3章指令系統(tǒng)、匯編語言及C51程序匯編語言(AssemblyLanguage)——用助記(字)符代替操作碼,用地址符號(hào)代替地址碼的一種面向機(jī)器的程序設(shè)計(jì)語言;本章學(xué)習(xí)目標(biāo):了解匯編語言的一般規(guī)則,借助指令手冊能讀懂匯編程序。匯編語言特點(diǎn)——代碼精煉、執(zhí)行速度快,但不便于編寫較復(fù)雜的程序;匯編程序處理過程——輸入源程序→檢查語法正確性(如有語法錯(cuò)誤,輸出錯(cuò)誤信息)→翻譯成二進(jìn)制目標(biāo)程序。一條匯編語言指令中最多包含4個(gè)區(qū)段,其一般格式為:
[標(biāo)號(hào):]操作碼[操作數(shù)][;注釋]第3章指令系統(tǒng)、匯編語言及C51程序標(biāo)號(hào)(標(biāo)識(shí)符)當(dāng)前指令行的符號(hào)地址,其值為
該指令的機(jī)器碼首字節(jié)在ROM中的存放地址;標(biāo)號(hào)由英文字母開頭的1~6個(gè)字符組成,不區(qū)分大小寫;標(biāo)號(hào)與(英文)冒號(hào)可以同時(shí)省略?!?…….0122H0123H0124H…….xxHxxHxxH
74H
12HROMSTART→
[標(biāo)號(hào):]
操作碼[操作數(shù)][;注釋] ……START:MOVA,#12H;機(jī)器碼7412H ……例如:
[標(biāo)號(hào):]
操作碼
[操作數(shù)][;注釋]第3章指令系統(tǒng)、匯編語言及C51程序操作碼是指令的操作行為,由操作碼助記字符表征;51單片機(jī)共有42種操作碼助記符,不區(qū)分大小寫。MOVA,#12H;
move(傳送)SETBP1.0 ;setbit(置位)CJNEA,R0,START;compareandjumpifnotequal(比較跳轉(zhuǎn))舉例:
[標(biāo)號(hào):]操作碼
[操作數(shù)]
[;注釋]第3章指令系統(tǒng)、匯編語言及C51程序操作數(shù)是指令的操作對象,用操作數(shù)簡記符表示,不區(qū)分大小寫;操作數(shù)可以是3個(gè)、2個(gè)、1個(gè)或沒有操作數(shù);操作數(shù)大于1時(shí)要用(英文)逗號(hào)隔開。CJNEA,R0,START;若A≠R0,轉(zhuǎn)STARTADDA,#10H ;A+10H→ACRLA ;A←0RET ;子程序返回舉例:
[標(biāo)號(hào):]操作碼[操作數(shù)]
[;注釋]第3章指令系統(tǒng)、匯編語言及C51程序注釋是對指令的解釋性說明,用以提高程序的可讀性;可用任何文字或符號(hào)描述,可以省略;由(英文)分號(hào)開始,無需結(jié)束符號(hào)。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)號(hào)或匯編符號(hào)統(tǒng)稱為標(biāo)識(shí)符,由英文字母
開頭的1~6個(gè)字符組成。例如
EAH,或C6A16進(jìn)制地址——若存儲(chǔ)單元地址的最高位值>9時(shí),應(yīng)加
前綴“0”
,以區(qū)別標(biāo)識(shí)符。例如0EAH,或5AH立即數(shù)——出現(xiàn)在指令中的常數(shù)叫做立即數(shù),應(yīng)加前綴
“#”以區(qū)別于地址。例如#0EAH,或#5AH指令手冊中,每條指令的操作數(shù)卻是以簡記符號(hào)表示的。第3章指令系統(tǒng)、匯編語言及C51程序掌握簡記符號(hào)規(guī)則→便于閱讀源程序(查指令手冊)真實(shí)指令中一般都含有具體的操作數(shù),例如:MOVA,R3或MOVA,#35H第3章指令系統(tǒng)、匯編語言及C51程序序號(hào)簡記符號(hào)簡記符號(hào)的意義第3章指令系統(tǒng)、匯編語言及C51程序簡記符號(hào)的使用練習(xí)①M(fèi)OV20H,#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ī)律的歸納,一條指令究竟屬于哪種尋址方式往往并不重要,也不會(huì)影響它的使用,因而不必過意追究。51單片機(jī)共有七種尋址方式:直接尋址、寄存器尋址、寄存器間接尋址、立即尋址、變址尋址、位尋址、相對尋址。尋址方式越多,單片機(jī)的功能就越強(qiáng);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三個(gè)寄存器兼任第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)號(hào)的形式。偽指令
第3章指令系統(tǒng)、匯編語言及C51程序匯編語言指令的兩類指令:硬指令(指令性語句)——匯編后可以產(chǎn)生機(jī)器碼的指令,如前介紹的111條指令;偽指令(指示性語句)——用于指示匯編系統(tǒng)軟件要完成的操作,一般不產(chǎn)生機(jī)器碼常用的偽指令:
ORG、END、EQU、DATA、BIT、DB第3章指令系統(tǒng)、匯編語言及C51程序
MCS-51常用偽指令偽指令名稱格式功能描述ORG(Oringin)程序起始地址ORG16位地址用于定義匯編程序或數(shù)據(jù)在ROM中存放的起始地址EQU(Equate)等值指令標(biāo)識(shí)符EQU數(shù)或匯編符號(hào)用于將一個(gè)數(shù)值或匯編符號(hào)賦給該標(biāo)示符DATA(Data)數(shù)據(jù)地址賦值標(biāo)識(shí)符DATA內(nèi)存字節(jié)地址用于將一個(gè)內(nèi)部RAM的地址賦給該標(biāo)示符BIT(Bit)位地址賦值標(biāo)識(shí)符DATA位地址或位名稱用于將一個(gè)位地址或位名稱賦給該標(biāo)示符DB(DefineByte)定義字節(jié)[標(biāo)號(hào):]DB<項(xiàng)或項(xiàng)表>用于把項(xiàng)或項(xiàng)表中的字節(jié)(8位)數(shù)值依次存入標(biāo)號(hào)開始的存儲(chǔ)單元中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ù)值或匯編符號(hào)功能:用于將一個(gè)數(shù)值或匯編符號(hào)賦給該標(biāo)示符舉例:ADDREQU2000H;將2000H賦予ADDRADDREQUMEM2;將MEM2賦予ADDR說明:
第2條語句的匯編符號(hào)MEM2必須是已賦值過的(3)DATA(=data)格式:標(biāo)示符
DATA內(nèi)部RAM地址或表達(dá)式功能:用于將一個(gè)內(nèi)部RAM的地址賦給該標(biāo)示符舉例:
COUNTDATA50H;將50H賦予COUNTCOUNTEQU50H;將50H賦予COUNT※EQU與DATA區(qū)別:
1)EQU須先定義后使用,而DATA可無須如此。
2)EQU可用于匯編符號(hào),而DATA不能。
3)DATA可用于表達(dá)式,而EQU不行。(4)BIT(=bit)格式:標(biāo)示符
BIT
位地址或位名稱功能:用于將一個(gè)位地址或位名稱賦給該標(biāo)示符舉例:
KEY1BITP1.0;將P1.0賦予KEY1(5)DB(=definebyte)格式:[標(biāo)號(hào):]DB
n1,n2,…,ni功能:用于定義以字節(jié)為單位的常數(shù)表規(guī)則:①”ni”按順序存在標(biāo)號(hào)地址開始的單元中;②常數(shù)之間用英文逗號(hào)分開,最后一個(gè)不要逗號(hào)例如:JPH:DB12H,20H,35H,40H,58H
表示字節(jié)常數(shù)12H將放置在JPH語句標(biāo)號(hào)對應(yīng)的ROM地址處,其它常數(shù)依此順延排列(6)END(=end)格式:END功能:用于表示匯編程序到此結(jié)束說明:放在源程序的最后一行,并只允許有一個(gè)END指令系統(tǒng)——計(jì)算機(jī)中全部指令的集合51單片機(jī)共有111條指令,按功能可劃分為四大類:第3章指令系統(tǒng)、匯編語言及C51程序數(shù)據(jù)傳送與交換類(31條)算術(shù)運(yùn)算類(24條)邏輯運(yùn)算類(34條)轉(zhuǎn)移控制類(22條)*也可將分散于上述四類之中的位操作類指令匯總為第
五大類指令指令——CPU用于指揮功能部件完成某一指定動(dòng)作的指示
和命令——可實(shí)現(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用于訪問程序存儲(chǔ)器 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個(gè)操作數(shù)(弧線箭頭);⑤位數(shù)據(jù)傳送只能在C(即Cy標(biāo)志位)與bit間進(jìn)行。數(shù)據(jù)傳送目的和源的快捷記憶法關(guān)注:
MOVA,R1(機(jī)器碼E9H)
工作原理利用通用寄存器查找操作數(shù)的做法稱為寄存器尋址通用寄存器:Rn,A,B,CY和DPTR五種類型(一般不考慮A的作用,除非A是指令中唯一的操作數(shù))
根據(jù)機(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-3】將A的內(nèi)容傳送至30H單元;R7的內(nèi)容傳送至20H單元;立即數(shù)0FH傳送至27H單元;40H單元的內(nèi)容傳送至50H單元。第3章指令系統(tǒng)、匯編語言及C51程序關(guān)注:MOVA,@R0(機(jī)器碼E6H)
工作原理:根據(jù)機(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單片機(jī)僅有的三個(gè)間址寄存器第3章指令系統(tǒng)、匯編語言及C51程序第3章指令系統(tǒng)、匯編語言及C51程序?qū)儆诩拇嫫鏖g接尋址方式的傳送類指令第3章指令系統(tǒng)、匯編語言及C51程序第3章指令系統(tǒng)、匯編語言及C51程序【例3-4】將從20H開始的32個(gè)單元全部清0?!纠?-5】設(shè)片外RAM的2000H單元中的數(shù)為61H,讀該單元數(shù)據(jù),傳送到片外RAM的3FFFH單元中去。第3章指令系統(tǒng)、匯編語言及C51程序關(guān)注:MOVCA,@A+DPTR(機(jī)器碼93H)第3章指令系統(tǒng)、匯編語言及C51程序工作原理:根據(jù)機(jī)器碼93H先找出A中存放的內(nèi)容30H,再找出DPTR中存放的內(nèi)容2010H,然后以這兩項(xiàng)內(nèi)容之和2040H為ROM地址,將其存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 塑料薄膜生產(chǎn)線節(jié)能技術(shù)考核試卷
- 二零二五年度新能源電池技術(shù)保密合同3篇
- 2025年度生態(tài)環(huán)保圍墻建造與節(jié)能減排合同3篇
- 二零二五年度塔吊租賃及現(xiàn)場安全監(jiān)督合同樣本3篇
- 2025年度銷售業(yè)務(wù)員市場調(diào)研與分析支持合同3篇
- 2025年房屋產(chǎn)權(quán)轉(zhuǎn)移協(xié)議3篇
- 二零二五年度大渡口區(qū)吸污車租賃與廢棄物回收利用協(xié)議2篇
- 2025年房產(chǎn)廣告媒體采購協(xié)議2篇
- 2025年度藝人經(jīng)紀(jì)合同履行保證協(xié)議2篇
- 2025-2030全球炭黑填充母粒行業(yè)調(diào)研及趨勢分析報(bào)告
- 老干工作業(yè)務(wù)培訓(xùn)
- 基底節(jié)腦出血護(hù)理查房
- 高中語文《勸學(xué)》課件三套
- 100道20以內(nèi)的口算題共20份
- 人教版八年級(jí)物理-第二章:聲現(xiàn)象復(fù)習(xí)完整課件
- 直播代運(yùn)營服務(wù)合同范本版
- 2024年江蘇蘇州中考數(shù)學(xué)試卷及答案
- 2024年山東省高中自主招生數(shù)學(xué)模擬試卷試題(含答案)
- 算術(shù)平方根2課件
- 【人教版】九年級(jí)化學(xué)上冊期末試卷及答案【【人教版】】
- 四年級(jí)數(shù)學(xué)上冊期末試卷及答案【可打印】
評論
0/150
提交評論