SOC單片機(jī)的結(jié)構(gòu)與原理_第1頁
SOC單片機(jī)的結(jié)構(gòu)與原理_第2頁
SOC單片機(jī)的結(jié)構(gòu)與原理_第3頁
SOC單片機(jī)的結(jié)構(gòu)與原理_第4頁
SOC單片機(jī)的結(jié)構(gòu)與原理_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2.1C8051F系列單片機(jī)的總體結(jié)構(gòu)

2.2C8051F020存儲(chǔ)器組織2.3CIP-51指令系統(tǒng)2.4中斷系統(tǒng)2.5端口輸入/輸出2.6電源管理方式2.7復(fù)位與時(shí)鐘第2章SOC單片機(jī)的結(jié)構(gòu)與原理

2.1C8051F系列單片機(jī)總體結(jié)構(gòu)2.1.1C8051F系列單片機(jī)簡介2.1.2CIP-51內(nèi)核2.1.3C8051F020單片機(jī)的片上資源2.1.1C8051F系列單片機(jī)簡介(1)集成的混合信號(hào)片上系統(tǒng)SOC(Systemonchip)。具有完全兼容MCS-51內(nèi)核的微控制器(CIP-51)、除標(biāo)準(zhǔn)8051的數(shù)字外設(shè)部件外,還集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬外設(shè)、其它數(shù)字外設(shè)及功能部件。是真正能獨(dú)立工作的片上系統(tǒng)(SOC)。CPU有效地管理模擬和數(shù)字外設(shè),可以關(guān)閉單個(gè)或全部外設(shè)以節(jié)省功耗。FLASH存儲(chǔ)器還具有ISP的能力,既可用作程序存儲(chǔ)器又可用作于非易失性數(shù)據(jù)存儲(chǔ)。2.1.1C8051F系列單片機(jī)簡介(2)片內(nèi)JTAG(jointtestactiongroup)調(diào)試電路允許對(duì)安裝在最終應(yīng)用系統(tǒng)上的產(chǎn)品進(jìn)行非侵入式(不占用片內(nèi)資源)、全速、在系統(tǒng)調(diào)試。該調(diào)試系統(tǒng)支持觀察和修改存儲(chǔ)器和寄存器,支持?jǐn)帱c(diǎn)、觀察點(diǎn)、單步及運(yùn)行和停機(jī)命令。調(diào)試環(huán)境示意圖SiliconLabs提供一個(gè)集成開發(fā)環(huán)境(IDE),包括編輯器、宏匯編器、調(diào)試器和編程器。/USB2.1.2CIP-51內(nèi)核

C8051F系列單片機(jī)內(nèi)核采用與MCS-51兼容的CIP-51。標(biāo)準(zhǔn)8051中,除MUL和DIV以外所有指令都需要12或24個(gè)系統(tǒng)時(shí)鐘周期,最大系統(tǒng)時(shí)鐘頻率為12-24MHz。CIP-51內(nèi)核采用流水線結(jié)構(gòu),70%的指令執(zhí)行時(shí)間為1或2個(gè)系統(tǒng)時(shí)鐘周期,只有4條指令的執(zhí)行時(shí)間大于4個(gè)系統(tǒng)時(shí)鐘周期。執(zhí)行周期數(shù)122/333/444/558指令數(shù)265051673121微控制器內(nèi)核峰值執(zhí)行速度比較MIPS(MillionInstructionsPerSecond)

2.1.3C8051F020單片機(jī)的片上資源

高速、流水線結(jié)構(gòu)的與8051兼容的CIP-51內(nèi)核(可達(dá)25MIPS)全速、非侵入式的在系統(tǒng)調(diào)試接口JTAG(片內(nèi))真正12位、100ksps的8通道ADC,帶PGA和模擬多路開關(guān)真正8位、500ksps的ADC,帶PGA和8通道模擬多路開關(guān)兩個(gè)12位DAC,具有可編程數(shù)據(jù)更新方式64K字節(jié)可ISP的FLASH存儲(chǔ)器4352(4096+256)字節(jié)的片內(nèi)RAM可尋址64K字節(jié)地址空間的外部數(shù)據(jù)存儲(chǔ)器接口硬件實(shí)現(xiàn)的SPI、SMBus/I2C和兩個(gè)UART串行接口5個(gè)通用的16位定時(shí)器/計(jì)數(shù)器

具有5個(gè)捕捉/比較模塊的可編程計(jì)數(shù)器/定時(shí)器陣列(PCA)片內(nèi)看門狗定時(shí)器(Watchdog)、VDD監(jiān)視器和溫度傳感器C8051F020芯片示意圖

C8051F020原理框圖高速微控制器內(nèi)核數(shù)字I/O模擬外設(shè)2.2C8051F020存貯器組織MCS-51存貯器組織(哈佛結(jié)構(gòu))物理結(jié)構(gòu)上可分為:片內(nèi)程序存儲(chǔ)器片外程序存儲(chǔ)器片內(nèi)數(shù)據(jù)存儲(chǔ)器片外數(shù)據(jù)存儲(chǔ)器按功能和尋址(使用角度)可分為:程序存儲(chǔ)器、內(nèi)部數(shù)據(jù)存儲(chǔ)器、外部數(shù)據(jù)存儲(chǔ)器、特殊功能寄存器和位地址空間共5大部分

2.2C8051F020存貯器組織程序存儲(chǔ)器內(nèi)部數(shù)據(jù)存儲(chǔ)器、位地址空間、SFR外部數(shù)據(jù)存儲(chǔ)器2.2.1程序存貯器(1)容量:64KB,地址0x0000-0xFFFF。類型:FLASH存儲(chǔ)器。存儲(chǔ)器中有512字節(jié)(0xFE00–0xFFFF)保留給廠商使用,不能用于存儲(chǔ)用戶程序。有一個(gè)附加的128字節(jié)的扇區(qū),可用于非易失性數(shù)據(jù)的存儲(chǔ)。其地址范圍是0x00-0x7F。要訪問該扇區(qū),SFLE(PSCTL.2)位必須被設(shè)置為邏輯1。通常情況下為只讀的,設(shè)置程序存儲(chǔ)器寫允許位PSWE(PSCTL.0)后可寫(用MOVX指令)。2.2.1程序存貯器(2)對(duì)程序存儲(chǔ)器的操作類型讀:使用MOVC指令實(shí)現(xiàn),如查表操作。編程:使用編程工具通過JTAG接口進(jìn)行。寫:使用MOVX指令進(jìn)行,要先設(shè)置程序存儲(chǔ)器寫允許位PSWE(PSCTL.0)為1。編程/寫前要先執(zhí)行擦除操作,將PSEE(PSCTL.1)和PSWE(PSCTL.0)置1后,再往扇區(qū)的任一單元寫入任一數(shù)據(jù)即可擦除。擦除實(shí)際是將數(shù)據(jù)位全置1,禁止擦除后的寫操作只能寫入0。擦寫前還要將FLWE(FLSCL.0)置1,以允許用戶軟件擦/寫FLASH。為避免出錯(cuò),對(duì)FLASH寫操作之間要禁止中斷。軟件對(duì)FLASH編程的流程禁止中斷置位FLWE(FLSCL.0),允許用戶軟件擦/寫FLASH置位PSEE(PSCTL.1),允許FLASH扇區(qū)擦除置位PSWE(PSCTL.0),允許FLASH寫用MOVX向待擦扇區(qū)的任一地址寫任一數(shù)據(jù),即實(shí)現(xiàn)擦除清PSEE,禁止FLASH擦除用MOVX寫入需要的數(shù)據(jù)(實(shí)際是把不需要的1改為0)清PSWE,禁止寫程序存儲(chǔ)器清FLWE,禁止用戶軟件擦/寫FLASH開中斷2.2.2內(nèi)部數(shù)據(jù)存貯器

共256字節(jié)的RAM,地址0x00到0xFF。低128字節(jié):用于通用寄存器和臨時(shí)存儲(chǔ)器,采用直接或間接尋址方式。0x00-0x7F0x00-0x1F:4個(gè)通用寄存器區(qū),每個(gè)區(qū)有8個(gè)寄存器(R0~R7)。每次只能用其中一個(gè)區(qū)的通用寄存器,主、子程序間切換區(qū)號(hào),省去這部分現(xiàn)場保護(hù)。0x20-0x2F:既可以按字節(jié)尋址又按位尋址訪問。0x30-0x7F:作一般存儲(chǔ)器用、堆棧等高128字節(jié):0x80-0xFF,只能用間接尋址訪問。內(nèi)容回顧單片機(jī)概述單片微型計(jì)算機(jī)、單片微控制器、嵌入式微控制器、為控制單元按片內(nèi)ROM分類:無ROM型、ROM型、OTP型、EPROM型、EEPROM型、FLASH型發(fā)展與應(yīng)用:四代;工業(yè)測控C8051F020存儲(chǔ)器組織哈佛結(jié)構(gòu):程序、數(shù)據(jù)分開存放;有片內(nèi)、片外之分按用法:程序存儲(chǔ)器、片內(nèi)RAM、片外RAM、SFR、位尋址空間內(nèi)部數(shù)據(jù)存貯器圖示只能間址2.2.3特殊功能寄存器SFR

寄存器:CPU或接口電路中用于存儲(chǔ)數(shù)據(jù)的部件通用寄存器專用寄存器:51單片機(jī)中稱為特殊功能寄存器SFR(SpecialFunctionRegisters)離散分布在0x80-0xFF中,采用直接尋址方式。與內(nèi)部RAM高128B地址重疊,但在物理上是兩個(gè)獨(dú)立空間,靠尋址方式區(qū)分。字節(jié)地址是8的倍數(shù)(0x0、0x8結(jié)尾)的SFR可進(jìn)行位尋址。CIP-51有120多個(gè)SFR,具體見P23表2-3,MCS-51只有21/26個(gè)。常用的特殊功能寄存器ACC(Accumulator)累加器:存放運(yùn)算操作數(shù)和結(jié)果,在指令中常用A表示。B(BRegister)寄存器:乘/除法中與ACC配合使用。SP(StackPointer)8位堆棧指針:復(fù)位值為0x07,使用時(shí)根據(jù)需要可重新賦值。數(shù)據(jù)入棧,SP加1,與80X86相反。DPTR(DataPointer)16位數(shù)據(jù)指針:訪問外部存儲(chǔ)器的地址指針,用于寄存器間接尋址??煞譃镈PL和DPH兩個(gè)8位來用。PSW(ProgramStatusWord)8位程序狀態(tài)字,存放程序運(yùn)行的狀態(tài)信息。堆棧(補(bǔ)充)先進(jìn)后出(后進(jìn)先出)的特殊存儲(chǔ)區(qū)域有數(shù)據(jù)入棧(PUSH)和出棧(POP)兩種操作只有一個(gè)操作出入口,即棧頂,每次的PUSH、POP操作都在棧頂進(jìn)行有一個(gè)專用寄存器指向當(dāng)前棧頂,即堆棧指針SP,SP的初始值為07H,可以由程序設(shè)定每壓入一個(gè)字節(jié),SP加1,每彈出一個(gè)字節(jié),SP減1棧底出、入口棧頂SP棧頂SP棧頂SP棧頂SP20H32H45H45HPSW的各位定義(1)位7(CY):進(jìn)/借位標(biāo)志有進(jìn)/借位(減法)時(shí),置1。位6(AC):輔助(半)進(jìn)位標(biāo)志向高半字節(jié)有進(jìn)/借位時(shí),置1。位5、1(F0、F1):用戶標(biāo)志可供用戶編程使用的通用標(biāo)志位。R/WR/WR/WR/WR/WR/WR/WR復(fù)位值CYACF0RS1RS0OVF1PARITY00000000位7位6位5位4位3位2位1位0SFR地址:0xD0PSW的各位定義(2)位4-3(RS1-RS0):寄存器工作區(qū)選擇位RS1RS0寄存器區(qū)片內(nèi)RAM地址000區(qū)0x00-0x07011區(qū)0x08-0x0F102區(qū)0x10-0x17113區(qū)0x18-0x1F位2(OV):溢出標(biāo)志。ADD、ADDC或SUBB指令引起符號(hào)位變化溢出。MUL指令引起溢出(結(jié)果大于255)。DIV指令的除數(shù)為0。位0(PARITY):奇偶標(biāo)志。若ACC中有奇數(shù)個(gè)1時(shí)該位置1,有偶數(shù)個(gè)1時(shí)清0。2.2.4位尋址區(qū)包括兩部分:內(nèi)部RAM中的0x20-0x2F單元;P24表2-4

部分SFR(字節(jié)地址為8的倍數(shù)的)。P23表2-3CIP-51中的布爾處理器,能對(duì)位地址直接尋址,執(zhí)行置“1”、清“0”、取反、測試等操作。字節(jié)地址位地址D7D6D5D4D3D2D1D00x2F0x7F0x7E0x7D0x7C0x7B0x7A0x790x780x2E0x770x760x750x740x730x720x710x700x210x0F0x0E0x0D0x0C0x0B0x0A0x090x080x200x070x060x050x040x030x020x010x00名稱/地址位地址D7D6D5D4D3D2D1D0SPI0CN/0xF80xFF0xFE0xFD0xFC0xFB0xFA0xF90xF8B/0xF00xF70xF60xF50xF40xF30xF20xF10xF0ADC0CN/0xE80xEF0xEE0xED0xEC0xEB0xEA0xE90xE8ACC/0xE00xE70xE60xE50xE40xE30xE20xE10xE02.2.5外部RAM和片內(nèi)XRAM

MCS-51內(nèi)部只有128或256字節(jié)的數(shù)據(jù)存儲(chǔ)器,不夠時(shí)可以在芯片外部擴(kuò)展64KB的外部數(shù)據(jù)存儲(chǔ)器(XRAM)

。C8051F020同樣有64KB的外部數(shù)據(jù)空間。但在芯片內(nèi)部有屬于外部數(shù)據(jù)存儲(chǔ)器空間的4096字節(jié)RAM,還有一個(gè)外部數(shù)據(jù)存儲(chǔ)器接口(EMIF),可用于訪問片外存儲(chǔ)器和I/O接口。外部擴(kuò)展數(shù)據(jù)存儲(chǔ)器用EMIOCF寄存器進(jìn)行配置。外部存儲(chǔ)器空間用MOVX指令,通過DPTR、R0或R1間接尋址方式訪問。用R0或R1時(shí)高8位地址由EMIOCN提供。I/O端口和外部RAM統(tǒng)一編址(與80X86不同)。1.XRAM存儲(chǔ)器空間的訪問用MOVX指令通過DPTR、R0、R1間接尋址實(shí)現(xiàn)16位地址形式DPTR中存放待訪問存儲(chǔ)單元的地址。如:MOVDPTR,#1234h ;立即數(shù)0x1234→DPTRMOVXA,@DPTR ;(0x1234)→A

8位地址形式EMIOCN中存放待訪問地址的高8位,R0或R1存放待訪問地址的低8位。如:MOV EMIOCN,#12h;地址高字節(jié)0x12→EMIOCNMOV R0,#34h ;地址低字節(jié)→R0MOVXA,@R0 ;(0x1234)→A2.3CIP-51指令介紹

與標(biāo)準(zhǔn)MCS-51指令集完全兼容:指令共111條,在二進(jìn)制碼和功能上與MCS-51

產(chǎn)品完全等價(jià),包括操作碼、尋址方式和對(duì)PSW標(biāo)志的影響。指令時(shí)序與標(biāo)準(zhǔn)8051不同,CIP-51中機(jī)器周期與時(shí)鐘周期相等,MCS-51中機(jī)器周期=12×?xí)r鐘周期。采用流水線結(jié)構(gòu),大多數(shù)指令執(zhí)行所需的時(shí)鐘周期數(shù)與指令的字節(jié)數(shù)一致。條件轉(zhuǎn)移指令,不發(fā)生轉(zhuǎn)移時(shí)比發(fā)生轉(zhuǎn)移時(shí)少一個(gè)時(shí)鐘周期。2.3.1尋址方式(1)根據(jù)指令中給出的地址碼,尋找操作數(shù)真實(shí)有效地址的方式,共七種:1.寄存器尋址

指令中地址碼給出的是某一通用寄存器的編號(hào),寄存器的內(nèi)容為操作數(shù)。如:MOV A,R0 ;A←(R0)可為R0~R7、ACC、DPTR、B

2.直接尋址

直接尋址時(shí),指令中地址碼部分直接給出操作數(shù)的有效地址。如:

MOV A,4FH ;A←(0x4F)

2.3.1尋址方式(2)3.寄存器間接尋址 指令中給出的寄存器中的內(nèi)容為操作數(shù)的地址,而不是操作數(shù)本身,即寄存器內(nèi)容為地址指針。僅R0、R1、DPTR、PC可以。如:MOV A,@R1 ;A←((R1))注意:@為間接尋址的標(biāo)志4.立即尋址 指令中地址碼部分給出的就是操作數(shù)。如: MOVA,#6FH ;A←0x6F

注意:不要漏掉#號(hào)2.3.1尋址方式(3)5.變址尋址

操作數(shù)地址=變址寄存器的內(nèi)容+偏移量。如: MOVC A,@A+DPTR ;A←((A)+(DPTR))又稱基址+變址尋址,基址寄存器可以是DPTR或PC,變址寄存器只能是A。只能用于程序存儲(chǔ)器的讀操作(數(shù)據(jù)表)。6.相對(duì)尋址

轉(zhuǎn)移目標(biāo)地址=

PC(本條指令的地址)+2+偏移量rel。如:SJMP rel ;PC←(PC)+2+rel7.位尋址(位地址的直接尋址方式)操作數(shù)是二進(jìn)制數(shù)的某一位。位尋址區(qū)和部分SFR。SETB bit ;(bit)←1程序計(jì)數(shù)器PC(補(bǔ)充)存放下一條要執(zhí)行的指令的地址51單片機(jī)復(fù)位后,(PC)=0000H,所以從地址0處開始執(zhí)行程序每取出一個(gè)指令字節(jié)后會(huì)自動(dòng)加1,所以一條指令取出后,PC自動(dòng)指向下一條指令例如:1005HSJMP80H執(zhí)行后,程序轉(zhuǎn)到1005H+2-128=0F87H注:rel為8位補(bǔ)碼數(shù)據(jù)SJMPrel……PCPC+1PC+2PC+2+rel2.3.251指令集共111條,按其功能可分五大類:

算術(shù)運(yùn)算指令

邏輯運(yùn)算指令

數(shù)據(jù)傳送指令

布爾運(yùn)算指令

程序分支指令1.數(shù)據(jù)傳送指令(1)數(shù)據(jù)傳送指令訪問數(shù)據(jù)存儲(chǔ)器指令訪問程序存儲(chǔ)器指令(2條)訪問片內(nèi)數(shù)據(jù)存儲(chǔ)器指令訪問片外數(shù)據(jù)存儲(chǔ)器指令一般傳送指令8位(15條)16位(1條)特殊傳送指令堆棧指令(2條)數(shù)據(jù)交換指令字節(jié)交換(3條)半字節(jié)交換(1條)1.數(shù)據(jù)傳送指令(2)MOV(一般傳送指令),共有以下16種尋址格式:

MOV A,Rn ;A←(Rn) MOV A,direct ;A←(direct) MOV A,@Ri ;A←((Ri)) MOV A,#data ;A←data MOV Rn,A ;Rn←(A)

MOV Rn,direct ;Rn←(direct)MOV Rn,#data ;Rn←data以A為目的以Rn為目的1.數(shù)據(jù)傳送指令(3)MOV direct,A ;direct←(A) MOV direct,Rn ;direct←(Rn)

MOV direct,direct

;direct←(direct) MOV direct,@Ri ;direct←((Ri)) MOV direct,#data ;direct←data MOV @Ri,A ;(Ri)←(A) MOV @Ri,direct ;(Ri)←(direct) MOV @Ri,#data ;(Ri)←data

MOV DPTR,#data16

;DPTR←data16direct為目的@Ri為目的1.數(shù)據(jù)傳送指令(4)MOVC(查表指令)MOVCA,@A+DPTR ;A←((A)+(DPTR))MOVCA,@A+PC ;PC←(PC)+1 ;A←((A)+(PC))例:MOVA,#03H MOVDPTR,#TABLE

MOVCA,@A+DPTR …… TABLEDB‘0123456789’ 結(jié)果:(A)=33HTABLE30H+131H+232H+333H……+939H1.數(shù)據(jù)傳送指令(5)MOVX(外部數(shù)據(jù)存儲(chǔ)器讀、寫指令,也用于Flash編程):MOVXA,@DPTR ;A←((DPTR)) MOVXA,@Ri ;A←((Ri)) MOVX@DPTR,A ;(DPTR)←(A) MOVX@Ri,A;(Ri)←(A)注意:8位MOVX指令的高8位地址由EMIOCN提供讀寫例:XRAM(1000H)→(2000H)方法1:

MOVDPTR,#1000HMOVXA,@DPTRMOVDPTR,#2000HMOVX@DPTR,A方法2:

MOVEMIOCN,#10HMOVR0,#00HMOVXA,@R0MOVEMIOCN,#20HMOVX@R0,A數(shù)據(jù)傳送指令舉例(補(bǔ)充)1.數(shù)據(jù)傳送指令(5)PUSH(壓棧):將數(shù)據(jù)推進(jìn)堆棧 PUSH direct ;SP←(SP)+1;(SP)←(direct)POP(出棧):將數(shù)據(jù)由堆棧頂端取出 POP direct ;direct←(SP);SP←(SP)-1注意:堆棧只能按字節(jié)操作,壓棧指針加1(向上生成),出棧指針減1,與80x86相反。只能用直接尋址。PUSHACC√PUSHA×1.數(shù)據(jù)傳送指令(6)XCH(字節(jié)交換): XCH A,Rn ;(A)(Rn) XCH A,direct ;(A)(direct) XCH A,@Ri ;(A)((Ri))XCHD(半字節(jié)交換):XCHD A,@Ri

;(A)3~0

((Ri))3~0SWAP(累加器A高、低4位互換):SWAPA

;(A)3~0

(A)7~4內(nèi)容回顧位尋址空間內(nèi)部RAM中的0x20-0x2F單元部分SFR(字節(jié)地址為8的倍數(shù)的)外部數(shù)據(jù)存儲(chǔ)器(XRAM)片內(nèi)集成4KB提供一個(gè)擴(kuò)展接口(EMIF),可擴(kuò)到64KB可以用低端端口(P0~P3)、也可以用高端端口(P4~P7)復(fù)用/非復(fù)用四種使用方式:只用片內(nèi)、只用片外、兩種分片模式讀、寫指令:8位方式、16位方式的MOVX指令內(nèi)容回顧尋址方式立即尋址#寄存器尋址直接尋址寄存器間接尋址@R0、@R1、@DPTR基址+變址尋址MOVC、@A+PC、@A+DPTR相對(duì)尋址位尋址內(nèi)容回顧數(shù)據(jù)傳送指令MOVMOVCMOVXPUSH、POPXCH、XCHD、SWAP數(shù)據(jù)傳送指令舉例(補(bǔ)充)設(shè)內(nèi)部RAM40H、41H單元中連續(xù)存放4個(gè)壓縮的BCD碼數(shù)據(jù),編程將其倒序排列。

MOVA,41HSWAPAXCHA,40HSWAPAMOV41H,A40HBCD2BCD141HBCD4BCD340HBCD3BCD441HBCD1BCD22.算術(shù)運(yùn)算指令—加法

ADD(加法)指令,有4種尋址格式:

ADD A,Rn;A←(A)+(Rn)

(n:0~7) ADD A,direct;A←(A)+(direct) ADD A,@Ri ;A←(A)+((Ri))(i:0~1) ADD A,#data;A←(A)+dataADDC(帶進(jìn)位加法)指令,有4種尋址格式:ADDCA,Rn ;A←(A)+(Rn)+(CY) ADDCA,direct;A←(A)+(direct)+(CY) ADDCA,@Ri;A←(A)+((Ri))+(CY) ADDCA,#data;A←(A)+data+(CY)結(jié)果影響PSW的CY、AC、OV。2.算術(shù)運(yùn)算指令—加法DA(十進(jìn)制調(diào)整)指令:將A累加器內(nèi)容作BCD碼調(diào)整。

DA A ;若AC=1或A3~0>9,則A←(A)+0x06 ;若CY=1或A7~4>9,則A←(A)+0x60

INC(加1)指令: INC A ;A←(A)+1 INC direct ;direct←(direct)+1INC @Ri ;(Ri)←((Ri))+1 INC Rn ;Rn←(Rn)+1 INC DPTR ;DPTR←(DPTR)+1

加法指令舉例(補(bǔ)充)(61H、60H)+(63H、62H)→61H、60HMOVR0,#60HMOVR1,#62HMOVA,@R0

ADDA,@R1MOV@R0,AINCR0INCR1MOVA,@R0

ADDCA,@R1MOV@R0,A63HX2H62HX2L61HX1H(SUMH)60HX1L(SUML)+R0R1R1R02.算術(shù)運(yùn)算指令—減法SUBB(帶借位減法指令): SUBB A,Rn ;A←(A)-(Rn)-(CY) SUBB A,direct ;A←(A)-(direct)-(CY) SUBB A,@Ri ;A←(A)-((Ri))-(CY) SUBBA,#data ;A←(A)-data-(CY)結(jié)果影響PSW的CY、AC、OV。DEC(減1)指令DEC A ;A←(A)-1 DEC direct ;direct←(direct)-1 DEC @Ri ;(Ri)←((Ri))-1 DEC Rn ;Rn←(Rn)-1無不帶借位的減法指令SUB2.算術(shù)運(yùn)算指令—乘/除法MUL(乘法指令): MUL AB ;(A)×(B)→BA若運(yùn)算后B≠0,則置OV=1。DIV(除法)指令:將累加器A和寄存器B作無符號(hào)相除。DIV AB ;(A)/(B),A←商、B←余數(shù)除法指令舉例(補(bǔ)充)將A中的數(shù)轉(zhuǎn)換成3位BCD數(shù),百位存放在片內(nèi)RAM的20H單元,十、個(gè)位存放在21H單元中。分析:(A)÷100→商(百位)→20H余數(shù)÷10→商(十位)→21H;余數(shù)(個(gè)位)→21H MOVB,#100 DIVAB MOV20H,A MOVA,B MOVB,#10 DIVAB SWAPA ADDA,B MOV21H,AA:11111000B(248)20H0221H483.邏輯運(yùn)算指令—與ANL(邏輯與指令):共有以下6種尋址格式:

ANL A,Rn ;A←(A)∧(Rn) ANL A,direct ;A←(A)∧(direct) ANL A,@Ri ;A←(A)∧((Ri)) ANL A,#data ;A←(A)∧data ANL direct,A ;direct←(direct)∧(A) ANL direct,#data ;direct←(direct)∧data常用于將數(shù)據(jù)的某些位清03.邏輯運(yùn)算指令—或ORL(邏輯或指令):共有以下6種尋址格式:

ORL A,Rn ;A←(A)∨(Rn) ORL A,direct ;A←(A)∨(direct) ORL A,@Ri ;A←(A)∨((Ri)) ORL A,#data ;A←(A)∨data ORL direct,A ;direct←(direct)∨(A) ORL direct,#data ;direct←(direct)∨data常用于將數(shù)據(jù)的某些位置13.邏輯運(yùn)算指令—異或XRL(邏輯異或指令):共有以下6種尋址格式:

XRL A,Rn ;A←(A)⊕(Rn) XRL A,direct ;A←(A)⊕(direct) XRL A,@Ri ;A←(A)⊕((Ri)) XRL A,#data ;A←(A)⊕data XRL direct,A ;direct←(direct)⊕(A) XRL direct,#data ;direct←(direct)⊕data常用于將數(shù)據(jù)的某些位取反3.邏輯運(yùn)算指令—A清0、取反、移位CLR(累加器清零指令):將累加器A內(nèi)容清除為0。 CLR A ;A←0CPL(累加器取反指令):將累加器A內(nèi)容每位求反。CPL A ;A←(A)的每位求反,即0→1,1→0RL(累加器左移指令):將累加器A的內(nèi)容左環(huán)移一位。RL A

RLC(累加器帶進(jìn)位左移指令):將累加器A的內(nèi)容與進(jìn)位左環(huán)移一位。

RLC AA7

A0A7A0CY3.邏輯運(yùn)算指令—A移位、交換RR(累加器右移指令):將累加器A的內(nèi)容右環(huán)移一位。

RRAA7A0A7A0CYA7~A4A3~A0RRC(累加器帶進(jìn)位右移指令):將累加器A的內(nèi)容與進(jìn)位右環(huán)移一位。RRCASWAP(4位互換指令):將累加器A的高4位與低4位互換。SWAPA邏輯運(yùn)算指令舉例(補(bǔ)充)將累加器A中壓縮BCD碼拆成兩個(gè)非壓縮BCD碼,低位存入30H單元,高位存入31H單元。

PUSHACCANLA,#0FHMOV30H,APOPACCSWAPAANLA,#0FHMOV31H,AACC3530H31H05H03H4.布爾運(yùn)算指令(1)CLR(清除):可將CY或可位尋址的位清0。

CLR C ;CY←0 CLR bit ;bit←0SETB(置位):可將CY或可位尋址的位置1。

SETBC ;CY←1 SETBbit ;bit←1CPL(取反):可將CY標(biāo)志或可位尋址的位取反。

CPL C ;CY←/(CY) CPLbit ;bit←/(bit)

4.布爾運(yùn)算指令(2)ANL(與) ANL C,bit ;CY←(CY)∧(bit) ANL C,/bit ;CY←(CY)∧/(bit)ORL(或) ORL C,bit ;CY←(CY)∨(bit) ORL C,/bit ;CY←(CY)∨/(bit)MOV(位傳送指令) MOV C,bit ;CY←(bit) MOV bit,C ;bit←(CY)

5.程序分支指令(1)JC(有進(jìn)位跳轉(zhuǎn))JC rel;若CY=1則PC←(PC)+2+rel;否則PC←(PC)+2JNC(無進(jìn)位跳轉(zhuǎn))JNCrel;若CY=0則PC←(PC)+2+rel;否則PC←(PC)+2JB(為1跳轉(zhuǎn)) JB bit,rel ;若bit=1則PC←(PC)+3+rel;否則PC←(PC)+3JNB(為0跳轉(zhuǎn))

JNBbit,rel;若bit=0則PC←(PC)+3+rel;否則PC←(PC)+3JBC(為1跳轉(zhuǎn)并清除) JBCbit,rel;若bit=1則PC←(PC)+3+rel且bit←0;否則PC←(PC)+35.程序分支指令(2)JZ(A為0跳轉(zhuǎn)) JZ rel ;若(A)=0則PC←(PC)+2+rel

;若(A)≠0則PC←(PC)+2JNZ(A為非0跳轉(zhuǎn))

JNZ rel ;若(A)≠0則PC←(PC)+2+rel

;若(A)=0則PC←(PC)+2CJNE(比較不相等跳轉(zhuǎn))CJNE A,direct,rel ;若(A)≠(direct)則跳轉(zhuǎn)CJNE A,#data,rel ;若(A)≠data則跳轉(zhuǎn)CJNE Rn,#data,rel ;若(Rn)≠data則跳轉(zhuǎn)CJNE @Ri,#data,rel;若((Ri))≠data則跳轉(zhuǎn)5.程序分支指令(3)DJNZ(減1不為0跳轉(zhuǎn)) DJNZRn,rel ;Rn←(Rn)-1

;若(Rn)≠0則PC←(PC)+2+rel

;若(Rn)=0則PC←(PC)+2 DJNZ direct,rel ;direct←(direct)-1

;若(direct)≠0則PC←(PC)+3+rel

;若(direct)=0則PC←(PC)+35.程序分支指令(4)LJMP(長跳轉(zhuǎn)指令) LJMP addr16 ;PC←addr16AJMP(短跳轉(zhuǎn)指令) AJMP addr11 ;PC←(PC)+2,PC10~0←addr11SJMP(相對(duì)跳轉(zhuǎn)指令) SJMP rel ;PC←(PC)+2,PC←(PC)+relJMP(散轉(zhuǎn)指令) JMP @A+DPTR ;PC←(A)+(DPTR)5.程序分支指令(5)LCALL(長調(diào)用指令) LCALL addr16;PC←(PC)+3

;SP←(SP)+1,(SP)←PC7~0

;SP←(SP)+1,(SP)←PC15~8

;PC←addr16ACALL(短調(diào)用指令) ACALL addr11;PC←(PC)+2

;SP←(SP)+1,(SP)←PC7~0

;SP←(SP)+1,(SP)←PC15~8

;PC10~0←addr115.程序分支指令(6)RET(子程序返回): RET ;PC15~8←((SP)),SP←(SP)–1

;PC7~0←((SP)),SP←(SP)–1RETI(中斷返回):

RETI ;PC15~8←((SP)),SP←(SP)–1

;PC7~0←((SP)),SP←(SP)–1

;清除相應(yīng)中斷優(yōu)先級(jí)狀態(tài)位 NOP(空操作):NOP ;PC←(PC)+1作業(yè)一:P77習(xí)題2:2、3、5、62.4中斷系統(tǒng)2.4.1中斷概念

中斷服務(wù)程序1非預(yù)料事件1CPU執(zhí)行流程主程序中斷嵌套低級(jí)中斷服務(wù)程序主程序高級(jí)中斷服務(wù)程序低級(jí)請(qǐng)求高級(jí)請(qǐng)求2.4.1中斷的概念中斷、中斷系統(tǒng)中斷源中斷響應(yīng)、中斷服務(wù)、中斷返回、斷點(diǎn)、中斷向量中斷允許、中斷屏蔽中斷優(yōu)先級(jí)中斷嵌套單級(jí)中斷系統(tǒng)、多級(jí)中斷系統(tǒng)2.4.2C8051F的中斷系統(tǒng)中斷源(22個(gè))中斷允許寄存器中斷優(yōu)先級(jí)寄存器高優(yōu)先級(jí)EX0ET0低優(yōu)先級(jí)

高低IE0IE1TF0INT0INT1TF1TIRITF2EXF2EX1ET1ESET2EAPX0PT0PX1PT1PSPX2IE寄存器IP寄存器EIE1寄存器EIE2寄存器EIP1EIP2EXVLD0000同級(jí)查詢順序1.中斷源(1)共22個(gè),P41表2-5,分外部中斷、串口(UART0、UART1、SPI、SMBus等)、定時(shí)/計(jì)數(shù)器、電壓比較器、A/D轉(zhuǎn)換中斷等。

(1)外部中斷源

與MCS-51兼容的外部中斷0、1(/INT0、/INT1)。邊沿觸發(fā)(上升沿或下降沿)的外部中斷6、7。(2)定時(shí)/計(jì)數(shù)器中斷

由內(nèi)部定時(shí)器溢出產(chǎn)生,故它們屬于內(nèi)部中斷C8051F020有5個(gè)16位定時(shí)/計(jì)數(shù)器,其中3個(gè)(T0~T2)與MCS-51兼容。PCA(可編程計(jì)數(shù)器陣列)中斷1.中斷源(2)(3)串行口中斷

由內(nèi)部串行口產(chǎn)生,故也是一種內(nèi)部中斷。C8051F020中有2個(gè)UART串行口(UART0、UART1)。

發(fā)送和接收共用一個(gè)中斷源,通過判斷TI和RI標(biāo)志,區(qū)分是發(fā)送中斷還是接收中斷。SPI、SMBus中斷源(4)其它中斷源C8051F020還有電壓比較器、A/D轉(zhuǎn)換、晶振準(zhǔn)備好等中斷源。2.中斷控制(1)中斷使能控制

采用兩級(jí)中斷使能控制C8051F對(duì)所有的中斷源的開放和屏蔽(總控制位EA)每個(gè)中斷源都有單獨(dú)的二級(jí)中斷允許控制位受中斷允許寄存器IE、EIE1、EIE2控制。(2)中斷優(yōu)先級(jí)別的設(shè)定每個(gè)中斷源都可以設(shè)置為高優(yōu)先級(jí)和低優(yōu)先級(jí),由中斷優(yōu)先級(jí)寄存器IP、EIP1、EIP2統(tǒng)一管理。2.中斷控制高優(yōu)先級(jí)EX0ET0低優(yōu)先級(jí)

高低IE0IE1TF0INT0INT1TF1TIRITF2EXF2EX1ET1ESET2EAPX0PT0PX1PT1PSPX2IE寄存器IP寄存器EIE1寄存器EIE2寄存器EIP1EIP2EXVLD中斷允許寄存器IEEA:總控位;IEGF0:通用標(biāo)志位;其它為分允許位1:允許;0:禁止操作方法字節(jié)操作,如:MOVIE,#82H位操作,如:SETBEASETBET0R/WR/W

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論