




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2.1C8051F系列單片機的總體結構
2.2C8051F020存儲器組織2.3CIP-51指令系統2.4中斷系統2.5端口輸入/輸出2.6電源管理方式2.7復位與時鐘第2章SOC單片機的結構與原理
2.1C8051F系列單片機總體結構2.1.1C8051F系列單片機簡介2.1.2CIP-51內核2.1.3C8051F020單片機的片上資源2.1.1C8051F系列單片機簡介(1)集成的混合信號片上系統SOC(Systemonchip)。具有完全兼容MCS-51內核的微控制器(CIP-51)、除標準8051的數字外設部件外,還集成了數據采集和控制系統中常用的模擬外設、其它數字外設及功能部件。是真正能獨立工作的片上系統(SOC)。CPU有效地管理模擬和數字外設,可以關閉單個或全部外設以節省功耗。FLASH存儲器還具有ISP的能力,既可用作程序存儲器又可用作于非易失性數據存儲。2.1.1C8051F系列單片機簡介(2)片內JTAG(jointtestactiongroup)調試電路允許對安裝在最終應用系統上的產品進行非侵入式(不占用片內資源)、全速、在系統調試。該調試系統支持觀察和修改存儲器和寄存器,支持斷點、觀察點、單步及運行和停機命令。調試環境示意圖SiliconLabs提供一個集成開發環境(IDE),包括編輯器、宏匯編器、調試器和編程器。/USB2.1.2CIP-51內核
C8051F系列單片機內核采用與MCS-51兼容的CIP-51。標準8051中,除MUL和DIV以外所有指令都需要12或24個系統時鐘周期,最大系統時鐘頻率為12-24MHz。CIP-51內核采用流水線結構,70%的指令執行時間為1或2個系統時鐘周期,只有4條指令的執行時間大于4個系統時鐘周期。執行周期數122/333/444/558指令數265051673121微控制器內核峰值執行速度比較MIPS(MillionInstructionsPerSecond)
2.1.3C8051F020單片機的片上資源
高速、流水線結構的與8051兼容的CIP-51內核(可達25MIPS)全速、非侵入式的在系統調試接口JTAG(片內)真正12位、100ksps的8通道ADC,帶PGA和模擬多路開關真正8位、500ksps的ADC,帶PGA和8通道模擬多路開關兩個12位DAC,具有可編程數據更新方式64K字節可ISP的FLASH存儲器4352(4096+256)字節的片內RAM可尋址64K字節地址空間的外部數據存儲器接口硬件實現的SPI、SMBus/I2C和兩個UART串行接口5個通用的16位定時器/計數器
具有5個捕捉/比較模塊的可編程計數器/定時器陣列(PCA)片內看門狗定時器(Watchdog)、VDD監視器和溫度傳感器C8051F020芯片示意圖
C8051F020原理框圖高速微控制器內核數字I/O模擬外設2.2C8051F020存貯器組織MCS-51存貯器組織(哈佛結構)物理結構上可分為:片內程序存儲器片外程序存儲器片內數據存儲器片外數據存儲器按功能和尋址(使用角度)可分為:程序存儲器、內部數據存儲器、外部數據存儲器、特殊功能寄存器和位地址空間共5大部分
2.2C8051F020存貯器組織程序存儲器內部數據存儲器、位地址空間、SFR外部數據存儲器2.2.1程序存貯器(1)容量:64KB,地址0x0000-0xFFFF。類型:FLASH存儲器。存儲器中有512字節(0xFE00–0xFFFF)保留給廠商使用,不能用于存儲用戶程序。有一個附加的128字節的扇區,可用于非易失性數據的存儲。其地址范圍是0x00-0x7F。要訪問該扇區,SFLE(PSCTL.2)位必須被設置為邏輯1。通常情況下為只讀的,設置程序存儲器寫允許位PSWE(PSCTL.0)后可寫(用MOVX指令)。2.2.1程序存貯器(2)對程序存儲器的操作類型讀:使用MOVC指令實現,如查表操作。編程:使用編程工具通過JTAG接口進行。寫:使用MOVX指令進行,要先設置程序存儲器寫允許位PSWE(PSCTL.0)為1。編程/寫前要先執行擦除操作,將PSEE(PSCTL.1)和PSWE(PSCTL.0)置1后,再往扇區的任一單元寫入任一數據即可擦除。擦除實際是將數據位全置1,禁止擦除后的寫操作只能寫入0。擦寫前還要將FLWE(FLSCL.0)置1,以允許用戶軟件擦/寫FLASH。為避免出錯,對FLASH寫操作之間要禁止中斷。軟件對FLASH編程的流程禁止中斷置位FLWE(FLSCL.0),允許用戶軟件擦/寫FLASH置位PSEE(PSCTL.1),允許FLASH扇區擦除置位PSWE(PSCTL.0),允許FLASH寫用MOVX向待擦扇區的任一地址寫任一數據,即實現擦除清PSEE,禁止FLASH擦除用MOVX寫入需要的數據(實際是把不需要的1改為0)清PSWE,禁止寫程序存儲器清FLWE,禁止用戶軟件擦/寫FLASH開中斷2.2.2內部數據存貯器
共256字節的RAM,地址0x00到0xFF。低128字節:用于通用寄存器和臨時存儲器,采用直接或間接尋址方式。0x00-0x7F0x00-0x1F:4個通用寄存器區,每個區有8個寄存器(R0~R7)。每次只能用其中一個區的通用寄存器,主、子程序間切換區號,省去這部分現場保護。0x20-0x2F:既可以按字節尋址又按位尋址訪問。0x30-0x7F:作一般存儲器用、堆棧等高128字節:0x80-0xFF,只能用間接尋址訪問。內容回顧單片機概述單片微型計算機、單片微控制器、嵌入式微控制器、為控制單元按片內ROM分類:無ROM型、ROM型、OTP型、EPROM型、EEPROM型、FLASH型發展與應用:四代;工業測控C8051F020存儲器組織哈佛結構:程序、數據分開存放;有片內、片外之分按用法:程序存儲器、片內RAM、片外RAM、SFR、位尋址空間內部數據存貯器圖示只能間址2.2.3特殊功能寄存器SFR
寄存器:CPU或接口電路中用于存儲數據的部件通用寄存器專用寄存器:51單片機中稱為特殊功能寄存器SFR(SpecialFunctionRegisters)離散分布在0x80-0xFF中,采用直接尋址方式。與內部RAM高128B地址重疊,但在物理上是兩個獨立空間,靠尋址方式區分。字節地址是8的倍數(0x0、0x8結尾)的SFR可進行位尋址。CIP-51有120多個SFR,具體見P23表2-3,MCS-51只有21/26個。常用的特殊功能寄存器ACC(Accumulator)累加器:存放運算操作數和結果,在指令中常用A表示。B(BRegister)寄存器:乘/除法中與ACC配合使用。SP(StackPointer)8位堆棧指針:復位值為0x07,使用時根據需要可重新賦值。數據入棧,SP加1,與80X86相反。DPTR(DataPointer)16位數據指針:訪問外部存儲器的地址指針,用于寄存器間接尋址。可分為DPL和DPH兩個8位來用。PSW(ProgramStatusWord)8位程序狀態字,存放程序運行的狀態信息。堆棧(補充)先進后出(后進先出)的特殊存儲區域有數據入棧(PUSH)和出棧(POP)兩種操作只有一個操作出入口,即棧頂,每次的PUSH、POP操作都在棧頂進行有一個專用寄存器指向當前棧頂,即堆棧指針SP,SP的初始值為07H,可以由程序設定每壓入一個字節,SP加1,每彈出一個字節,SP減1棧底出、入口棧頂SP棧頂SP棧頂SP棧頂SP20H32H45H45HPSW的各位定義(1)位7(CY):進/借位標志有進/借位(減法)時,置1。位6(AC):輔助(半)進位標志向高半字節有進/借位時,置1。位5、1(F0、F1):用戶標志可供用戶編程使用的通用標志位。R/WR/WR/WR/WR/WR/WR/WR復位值CYACF0RS1RS0OVF1PARITY00000000位7位6位5位4位3位2位1位0SFR地址:0xD0PSW的各位定義(2)位4-3(RS1-RS0):寄存器工作區選擇位RS1RS0寄存器區片內RAM地址000區0x00-0x07011區0x08-0x0F102區0x10-0x17113區0x18-0x1F位2(OV):溢出標志。ADD、ADDC或SUBB指令引起符號位變化溢出。MUL指令引起溢出(結果大于255)。DIV指令的除數為0。位0(PARITY):奇偶標志。若ACC中有奇數個1時該位置1,有偶數個1時清0。2.2.4位尋址區包括兩部分:內部RAM中的0x20-0x2F單元;P24表2-4
部分SFR(字節地址為8的倍數的)。P23表2-3CIP-51中的布爾處理器,能對位地址直接尋址,執行置“1”、清“0”、取反、測試等操作。字節地址位地址D7D6D5D4D3D2D1D00x2F0x7F0x7E0x7D0x7C0x7B0x7A0x790x780x2E0x770x760x750x740x730x720x710x700x210x0F0x0E0x0D0x0C0x0B0x0A0x090x080x200x070x060x050x040x030x020x010x00名稱/地址位地址D7D6D5D4D3D2D1D0SPI0CN/0xF80xFF0xFE0xFD0xFC0xFB0xFA0xF90xF8B/0xF00xF70xF60xF50xF40xF30xF20xF10xF0ADC0CN/0xE80xEF0xEE0xED0xEC0xEB0xEA0xE90xE8ACC/0xE00xE70xE60xE50xE40xE30xE20xE10xE02.2.5外部RAM和片內XRAM
MCS-51內部只有128或256字節的數據存儲器,不夠時可以在芯片外部擴展64KB的外部數據存儲器(XRAM)
。C8051F020同樣有64KB的外部數據空間。但在芯片內部有屬于外部數據存儲器空間的4096字節RAM,還有一個外部數據存儲器接口(EMIF),可用于訪問片外存儲器和I/O接口。外部擴展數據存儲器用EMIOCF寄存器進行配置。外部存儲器空間用MOVX指令,通過DPTR、R0或R1間接尋址方式訪問。用R0或R1時高8位地址由EMIOCN提供。I/O端口和外部RAM統一編址(與80X86不同)。1.XRAM存儲器空間的訪問用MOVX指令通過DPTR、R0、R1間接尋址實現16位地址形式DPTR中存放待訪問存儲單元的地址。如:MOVDPTR,#1234h ;立即數0x1234→DPTRMOVXA,@DPTR ;(0x1234)→A
8位地址形式EMIOCN中存放待訪問地址的高8位,R0或R1存放待訪問地址的低8位。如:MOV EMIOCN,#12h;地址高字節0x12→EMIOCNMOV R0,#34h ;地址低字節→R0MOVXA,@R0 ;(0x1234)→A2.3CIP-51指令介紹
與標準MCS-51指令集完全兼容:指令共111條,在二進制碼和功能上與MCS-51
產品完全等價,包括操作碼、尋址方式和對PSW標志的影響。指令時序與標準8051不同,CIP-51中機器周期與時鐘周期相等,MCS-51中機器周期=12×時鐘周期。采用流水線結構,大多數指令執行所需的時鐘周期數與指令的字節數一致。條件轉移指令,不發生轉移時比發生轉移時少一個時鐘周期。2.3.1尋址方式(1)根據指令中給出的地址碼,尋找操作數真實有效地址的方式,共七種:1.寄存器尋址
指令中地址碼給出的是某一通用寄存器的編號,寄存器的內容為操作數。如:MOV A,R0 ;A←(R0)可為R0~R7、ACC、DPTR、B
2.直接尋址
直接尋址時,指令中地址碼部分直接給出操作數的有效地址。如:
MOV A,4FH ;A←(0x4F)
2.3.1尋址方式(2)3.寄存器間接尋址 指令中給出的寄存器中的內容為操作數的地址,而不是操作數本身,即寄存器內容為地址指針。僅R0、R1、DPTR、PC可以。如:MOV A,@R1 ;A←((R1))注意:@為間接尋址的標志4.立即尋址 指令中地址碼部分給出的就是操作數。如: MOVA,#6FH ;A←0x6F
注意:不要漏掉#號2.3.1尋址方式(3)5.變址尋址
操作數地址=變址寄存器的內容+偏移量。如: MOVC A,@A+DPTR ;A←((A)+(DPTR))又稱基址+變址尋址,基址寄存器可以是DPTR或PC,變址寄存器只能是A。只能用于程序存儲器的讀操作(數據表)。6.相對尋址
轉移目標地址=
PC(本條指令的地址)+2+偏移量rel。如:SJMP rel ;PC←(PC)+2+rel7.位尋址(位地址的直接尋址方式)操作數是二進制數的某一位。位尋址區和部分SFR。SETB bit ;(bit)←1程序計數器PC(補充)存放下一條要執行的指令的地址51單片機復位后,(PC)=0000H,所以從地址0處開始執行程序每取出一個指令字節后會自動加1,所以一條指令取出后,PC自動指向下一條指令例如:1005HSJMP80H執行后,程序轉到1005H+2-128=0F87H注:rel為8位補碼數據SJMPrel……PCPC+1PC+2PC+2+rel2.3.251指令集共111條,按其功能可分五大類:
算術運算指令
邏輯運算指令
數據傳送指令
布爾運算指令
程序分支指令1.數據傳送指令(1)數據傳送指令訪問數據存儲器指令訪問程序存儲器指令(2條)訪問片內數據存儲器指令訪問片外數據存儲器指令一般傳送指令8位(15條)16位(1條)特殊傳送指令堆棧指令(2條)數據交換指令字節交換(3條)半字節交換(1條)1.數據傳送指令(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.數據傳送指令(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.數據傳送指令(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’ 結果:(A)=33HTABLE30H+131H+232H+333H……+939H1.數據傳送指令(5)MOVX(外部數據存儲器讀、寫指令,也用于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數據傳送指令舉例(補充)1.數據傳送指令(5)PUSH(壓棧):將數據推進堆棧 PUSH direct ;SP←(SP)+1;(SP)←(direct)POP(出棧):將數據由堆棧頂端取出 POP direct ;direct←(SP);SP←(SP)-1注意:堆棧只能按字節操作,壓棧指針加1(向上生成),出棧指針減1,與80x86相反。只能用直接尋址。PUSHACC√PUSHA×1.數據傳送指令(6)XCH(字節交換): XCH A,Rn ;(A)(Rn) XCH A,direct ;(A)(direct) XCH A,@Ri ;(A)((Ri))XCHD(半字節交換):XCHD A,@Ri
;(A)3~0
((Ri))3~0SWAP(累加器A高、低4位互換):SWAPA
;(A)3~0
(A)7~4內容回顧位尋址空間內部RAM中的0x20-0x2F單元部分SFR(字節地址為8的倍數的)外部數據存儲器(XRAM)片內集成4KB提供一個擴展接口(EMIF),可擴到64KB可以用低端端口(P0~P3)、也可以用高端端口(P4~P7)復用/非復用四種使用方式:只用片內、只用片外、兩種分片模式讀、寫指令:8位方式、16位方式的MOVX指令內容回顧尋址方式立即尋址#寄存器尋址直接尋址寄存器間接尋址@R0、@R1、@DPTR基址+變址尋址MOVC、@A+PC、@A+DPTR相對尋址位尋址內容回顧數據傳送指令MOVMOVCMOVXPUSH、POPXCH、XCHD、SWAP數據傳送指令舉例(補充)設內部RAM40H、41H單元中連續存放4個壓縮的BCD碼數據,編程將其倒序排列。
MOVA,41HSWAPAXCHA,40HSWAPAMOV41H,A40HBCD2BCD141HBCD4BCD340HBCD3BCD441HBCD1BCD22.算術運算指令—加法
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(帶進位加法)指令,有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)結果影響PSW的CY、AC、OV。2.算術運算指令—加法DA(十進制調整)指令:將A累加器內容作BCD碼調整。
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
加法指令舉例(補充)(61H、60H)+(63H、62H)→61H、60HMOVR0,#60HMOVR1,#62HMOVA,@R0
ADDA,@R1MOV@R0,AINCR0INCR1MOVA,@R0
ADDCA,@R1MOV@R0,A63HX2H62HX2L61HX1H(SUMH)60HX1L(SUML)+R0R1R1R02.算術運算指令—減法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)結果影響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.算術運算指令—乘/除法MUL(乘法指令): MUL AB ;(A)×(B)→BA若運算后B≠0,則置OV=1。DIV(除法)指令:將累加器A和寄存器B作無符號相除。DIV AB ;(A)/(B),A←商、B←余數除法指令舉例(補充)將A中的數轉換成3位BCD數,百位存放在片內RAM的20H單元,十、個位存放在21H單元中。分析:(A)÷100→商(百位)→20H余數÷10→商(十位)→21H;余數(個位)→21H MOVB,#100 DIVAB MOV20H,A MOVA,B MOVB,#10 DIVAB SWAPA ADDA,B MOV21H,AA:11111000B(248)20H0221H483.邏輯運算指令—與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常用于將數據的某些位清03.邏輯運算指令—或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常用于將數據的某些位置13.邏輯運算指令—異或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常用于將數據的某些位取反3.邏輯運算指令—A清0、取反、移位CLR(累加器清零指令):將累加器A內容清除為0。 CLR A ;A←0CPL(累加器取反指令):將累加器A內容每位求反。CPL A ;A←(A)的每位求反,即0→1,1→0RL(累加器左移指令):將累加器A的內容左環移一位。RL A
RLC(累加器帶進位左移指令):將累加器A的內容與進位左環移一位。
RLC AA7
A0A7A0CY3.邏輯運算指令—A移位、交換RR(累加器右移指令):將累加器A的內容右環移一位。
RRAA7A0A7A0CYA7~A4A3~A0RRC(累加器帶進位右移指令):將累加器A的內容與進位右環移一位。RRCASWAP(4位互換指令):將累加器A的高4位與低4位互換。SWAPA邏輯運算指令舉例(補充)將累加器A中壓縮BCD碼拆成兩個非壓縮BCD碼,低位存入30H單元,高位存入31H單元。
PUSHACCANLA,#0FHMOV30H,APOPACCSWAPAANLA,#0FHMOV31H,AACC3530H31H05H03H4.布爾運算指令(1)CLR(清除):可將CY或可位尋址的位清0。
CLR C ;CY←0 CLR bit ;bit←0SETB(置位):可將CY或可位尋址的位置1。
SETBC ;CY←1 SETBbit ;bit←1CPL(取反):可將CY標志或可位尋址的位取反。
CPL C ;CY←/(CY) CPLbit ;bit←/(bit)
4.布爾運算指令(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(有進位跳轉)JC rel;若CY=1則PC←(PC)+2+rel;否則PC←(PC)+2JNC(無進位跳轉)JNCrel;若CY=0則PC←(PC)+2+rel;否則PC←(PC)+2JB(為1跳轉) JB bit,rel ;若bit=1則PC←(PC)+3+rel;否則PC←(PC)+3JNB(為0跳轉)
JNBbit,rel;若bit=0則PC←(PC)+3+rel;否則PC←(PC)+3JBC(為1跳轉并清除) JBCbit,rel;若bit=1則PC←(PC)+3+rel且bit←0;否則PC←(PC)+35.程序分支指令(2)JZ(A為0跳轉) JZ rel ;若(A)=0則PC←(PC)+2+rel
;若(A)≠0則PC←(PC)+2JNZ(A為非0跳轉)
JNZ rel ;若(A)≠0則PC←(PC)+2+rel
;若(A)=0則PC←(PC)+2CJNE(比較不相等跳轉)CJNE A,direct,rel ;若(A)≠(direct)則跳轉CJNE A,#data,rel ;若(A)≠data則跳轉CJNE Rn,#data,rel ;若(Rn)≠data則跳轉CJNE @Ri,#data,rel;若((Ri))≠data則跳轉5.程序分支指令(3)DJNZ(減1不為0跳轉) 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(長跳轉指令) LJMP addr16 ;PC←addr16AJMP(短跳轉指令) AJMP addr11 ;PC←(PC)+2,PC10~0←addr11SJMP(相對跳轉指令) SJMP rel ;PC←(PC)+2,PC←(PC)+relJMP(散轉指令) JMP @A+DPTR ;PC←(A)+(DPTR)5.程序分支指令(5)LCALL(長調用指令) LCALL addr16;PC←(PC)+3
;SP←(SP)+1,(SP)←PC7~0
;SP←(SP)+1,(SP)←PC15~8
;PC←addr16ACALL(短調用指令) 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
;清除相應中斷優先級狀態位 NOP(空操作):NOP ;PC←(PC)+1作業一:P77習題2:2、3、5、62.4中斷系統2.4.1中斷概念
中斷服務程序1非預料事件1CPU執行流程主程序中斷嵌套低級中斷服務程序主程序高級中斷服務程序低級請求高級請求2.4.1中斷的概念中斷、中斷系統中斷源中斷響應、中斷服務、中斷返回、斷點、中斷向量中斷允許、中斷屏蔽中斷優先級中斷嵌套單級中斷系統、多級中斷系統2.4.2C8051F的中斷系統中斷源(22個)中斷允許寄存器中斷優先級寄存器高優先級EX0ET0低優先級
高低IE0IE1TF0INT0INT1TF1TIRITF2EXF2EX1ET1ESET2EAPX0PT0PX1PT1PSPX2IE寄存器IP寄存器EIE1寄存器EIE2寄存器EIP1EIP2EXVLD0000同級查詢順序1.中斷源(1)共22個,P41表2-5,分外部中斷、串口(UART0、UART1、SPI、SMBus等)、定時/計數器、電壓比較器、A/D轉換中斷等。
(1)外部中斷源
與MCS-51兼容的外部中斷0、1(/INT0、/INT1)。邊沿觸發(上升沿或下降沿)的外部中斷6、7。(2)定時/計數器中斷
由內部定時器溢出產生,故它們屬于內部中斷C8051F020有5個16位定時/計數器,其中3個(T0~T2)與MCS-51兼容。PCA(可編程計數器陣列)中斷1.中斷源(2)(3)串行口中斷
由內部串行口產生,故也是一種內部中斷。C8051F020中有2個UART串行口(UART0、UART1)。
發送和接收共用一個中斷源,通過判斷TI和RI標志,區分是發送中斷還是接收中斷。SPI、SMBus中斷源(4)其它中斷源C8051F020還有電壓比較器、A/D轉換、晶振準備好等中斷源。2.中斷控制(1)中斷使能控制
采用兩級中斷使能控制C8051F對所有的中斷源的開放和屏蔽(總控制位EA)每個中斷源都有單獨的二級中斷允許控制位受中斷允許寄存器IE、EIE1、EIE2控制。(2)中斷優先級別的設定每個中斷源都可以設置為高優先級和低優先級,由中斷優先級寄存器IP、EIP1、EIP2統一管理。2.中斷控制高優先級EX0ET0低優先級
高低IE0IE1TF0INT0INT1TF1TIRITF2EXF2EX1ET1ESET2EAPX0PT0PX1PT1PSPX2IE寄存器IP寄存器EIE1寄存器EIE2寄存器EIP1EIP2EXVLD中斷允許寄存器IEEA:總控位;IEGF0:通用標志位;其它為分允許位1:允許;0:禁止操作方法字節操作,如:MOVIE,#82H位操作,如:SETBEASETBET0R/WR/W
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB31/T 953-2015動物無害化收集場所通用技術規范
- DB31/T 795-2014綜合建筑合理用能指南
- DB31/T 769-2013園林綠化工程種植土壤質量驗收規范
- DB31/T 203-2016皮鞋、皮箱、皮包商品標識
- DB31/T 1147-2019“青春上海”大型賽會活動志愿服務管理規范
- DB31/ 757-2020工業氣體空分單位產品能源消耗限額
- DB31/ 540.5-2014重點單位消防安全管理要求第5部分:醫院
- DB31/ 329.18-2014重點單位重要部位安全技術防范系統要求第18部分:渡輪、游覽船
- 金屬衛生器具的納米技術應用研究考核試卷
- 金屬絲繩的應用領域考核試卷
- 《陸上風電場工程概算定額》NBT 31010-2019
- 干部人事檔案轉遞單表樣
- 單基因遺傳病的分子生物學檢驗-醫學院課件
- Unit2+Extended+Reading+Beethoven-+a+remarkable+life課件【核心素養提升+備課精講精研】 牛津譯林版(2020)選擇性必修第一冊
- GB/T 28730-2012固體生物質燃料樣品制備方法
- 太陽能光伏儲能技術課件
- 威尼斯畫派課件
- 心肌病-PPT課件
- 施工安全常識教育-鋼筋工
- 五年級期中考試家長會課件39846
- 培養基模擬灌裝方案
評論
0/150
提交評論