版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、701 PIC,PICmicro® MCU – 介紹PIC16系列產(chǎn)品的匯編編程,HANDS-ON,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,講述 90分鐘休息20 分鐘2 個(gè)實(shí)驗(yàn) 60 分鐘休息 60 分鐘 104個(gè)實(shí)驗(yàn)2 小時(shí)休息2
2、0 分鐘,日程,講述 部分,實(shí)驗(yàn)部分1,實(shí)驗(yàn)部分2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,架構(gòu)存儲器指令集開發(fā)軟件 (MPLAB® IDE),講述部分的內(nèi)容,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Labs在 MPLAB IDE創(chuàng)建項(xiàng)目調(diào)試和跳轉(zhuǎn)控制PWMA/D 中斷演示 (時(shí)間允許的話)PIC16F877A實(shí)現(xiàn)多任務(wù),實(shí)驗(yàn)和演示部分的內(nèi)容,架構(gòu),,
3、,Microchip PIC® MCU 金字塔,,,,,,,PIC16C5XPIC12C5XX,PIC16PIC12F,PIC18,dsPIC,8 bitMCU,程序存儲器寬度,數(shù)據(jù)存儲器寬度,,PICmicro ArchitectureRISC-like Features,內(nèi)部為哈佛結(jié)構(gòu)寄存器文檔大多數(shù)單指令周期,指令流水線操作長字型指令指令數(shù)很少指令實(shí)現(xiàn)的功能基本不重復(fù),PIC單片機(jī)之所以有很高的性能
4、是因?yàn)槠渚邆淙缦绿匦?,,PIC單片機(jī)架構(gòu) 哈佛結(jié)構(gòu),從同一存儲器空間取指令和取操作數(shù)據(jù).限制了數(shù)據(jù)流量,程序和數(shù)據(jù)存儲器,,馮-紐曼結(jié)構(gòu),8-位,,,,CPU,程序存儲器,數(shù)據(jù)存儲器,8-位,12/14/16-位,哈佛結(jié)構(gòu),,CPU,從兩個(gè)獨(dú)立的存儲空間分別取指令和存取操作數(shù).數(shù)據(jù)流量增加針對程序區(qū)和數(shù)據(jù)區(qū)可以設(shè)計(jì)不同的數(shù)據(jù)線寬度,,,Flush Fetch 4,,Fetch SUB_1,大部分單片機(jī), 其取指和執(zhí)行過
5、程是順序進(jìn)行的.指令流水線的引入允許取指和執(zhí)行可以同步進(jìn)行.使得指令可以在一個(gè)指令周期內(nèi)執(zhí)行.程序分支例外 (如 GOTO, CALL 或直接修改PC),這需兩個(gè)指令周期. Tcy0 Tcy1 Tcy2 Tcy3 Tcy4,,PIC單片機(jī)架構(gòu) 指令流水線,,,,,Execute 1,Fetch 3,1. MOVLW 55h,Fetch 1,Execute 3,,Fe
6、tch 2,,Execute 2,,Fetch 4,2. MOVWF PORTB,3. CALL SUB_1,4. BSF PORTA, BIT3,,PIC單片機(jī)架構(gòu) 寄存器文檔概念,General PurposeRegisters (RAM),,,,,,,,,Other SFRs,PORTA,FSR,STATUS,PCL,TMR0,INDF,,W Register,,,,數(shù)據(jù)存儲器,,直接數(shù)據(jù)地址 ,操作碼 ,14-位字長的指
7、令范例:,,RAM被看作是一組通用的寄存器. 周邊模塊(I/O)也作為寄存器. 所有的指令操作都可針對所有的寄存器. 長字指令使得在指令中直接尋址寄存器.,PICmicro 架構(gòu)指令實(shí)例,PIC MCU 指令編碼為操作碼和參數(shù)編碼用一個(gè)字完成,,OP CODE,k,立即數(shù)類指令,k,k,k,k,k,k,k,,PIC MCU 晶振,PIC MCU,,,,,,,,,,,,4 MHz(250 ns),1 MHz (1 us),
8、,fosc,Tcy,,,指令率是輸入時(shí)鐘的 1/4 輸入晶振頻率叫做fosc一個(gè)指令周期占用 1 Tcy,存儲器,PICmicro 架構(gòu)存儲器,兩種類型程序 (RAM 和EEPROM)組成Pages - 頁 (程序存儲器)Banks – 組 (數(shù)據(jù)存儲器),PICmicro架構(gòu)存儲器表,FLASH程序存儲器,RAM數(shù)據(jù)存儲器,大小 (words),GPR 大小 (bytes),1 K,64,PIC12F675
9、,PIC16F877A,8 K,368,PICmicro MCU,分頁的程序存儲器(14bit 核),OP CODE,,k,k,k,k,k,k,k,k,k,k,k,CALL or GOTO instruction,,,3 bits for instruction,11 bits for destination,在14-bit 核的器件中:11 位訪問 211 或 2048 (2k) 空間訪問更多的空間,需要更多的位程序存儲器
10、的分頁提供這些位,14-bit 核架構(gòu)程序存儲器,程序存儲器最大8K字四頁,每頁 2k 使用 PCLATH訪問頁復(fù)位地址 0000h中斷地址 0004h,Page 0,,,0000h,0004h,07FFh,,Interrupt,,,,Reset,Page 1,0800h,0FFFh,Page 2,1000h,17FFh,Page 3,1800h,1FFFh,PCLATH = 00,PCLATH = 01,PCLATH =
11、10,PCLATH = 11,,PICmicro架構(gòu)程序存儲器: PC絕對尋址,,OP CODE,,k,k,k,k,14-bit Instruction for call and goto,k,k,k,k,k,k,k,用CALL和GOTO指令修改PC,,k,,k,k,k,k,k,k,k,k,,,x,x,x,k,k,x,x,x,PCLATH Register,有效的 13-bit程序存儲器地址,11-bits From Instruct
12、ion,2-bits FromPCLATH,k,k,k,k,PICmicro架構(gòu)分頁的程序存儲器,當(dāng)執(zhí)行CALL or GOTO 指令時(shí),需考慮分頁當(dāng)跳轉(zhuǎn)到不同的頁時(shí),修改頁位調(diào)用頁位:GOTO CALL PCL,F; e.g. ADDWF PCL,F返回時(shí)不需考慮頁,PICmicro 架構(gòu)PC 相對尋址 (14-bit core),,,PCH ,PCL ,13-Bit Program Counter,,,
13、PCLATH ,,,Internal Data Bus ,5,5,8,,,,高字節(jié)寫入PCLATH. 然后低字節(jié)寫入 PCL, 將裝入13-bit 值到 PC.,movlwHIGH DelaymovwfPCLATHmovlwLOW DelaymovwfPCL,Note: PCH cannot be read,分組的 數(shù)據(jù)存儲器(14 bit core),Data Modifying Instruction,,,7位指
14、令編碼,7位目標(biāo)地址,在14-bit 核的器件中:7 位訪問 27 或 128 空間訪問更多的空間,需要更多的位程序存儲器的分組提供這些位,OP CODE,f,f,f,f,f,f,f,PICmicro 架構(gòu)數(shù)據(jù)存儲器: 直接尋址,低7位的數(shù)據(jù)地址直接在指令中描述高2位在STATUS寄存器中 (又稱寄存器組號BANK),指向目標(biāo)寄存器的9位有效地址,,,,,,,IRP,RP1,RP0,OP CODE,TO,PD,Z,DC,C,S
15、TATUS寄存器,14位長指令,f,f,f,f,f,f,f,RP1,RP0,f,f,f,f,f,f,f,7位來自指令,2位來自STATUS寄存器,,PICmicro 架構(gòu)數(shù)據(jù)存儲器組成,分成4個(gè)組SFR映射到最頂端32 位置通過RP0,1 和 IRP 選擇組,GPRs,,,,,,,SFRs,Bank0,000h,01Fh,020h,07Fh,GPRs,,,,,,,SFRs,Bank1,080h,09Fh,0A0h,0FFh,0
16、F0h,,GPRs,,,,,,,SFRs,Bank2,100h,11Fh,120h,17Fh,170h,,GPRs,,,,,,,SFRs,Bank3,180h,19Fh,1A0h,1FFh,1F0h,RP RP RP RP = 00 = 01 = 10
17、 = 11,File Address (hex),Bank 0,Unimplemented data memory location; read as '0'.,,,寄存器圖PIC12F675,PICmicro 架構(gòu)數(shù)據(jù)存儲器,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,PCLATH,PCLATH,INTCON,INTCON,FSR,FSR,GPIO,TRISI
18、O,PCL,PCL,STATUS,STATUS,Indirect addr. (1),Indirect addr. (1),TMR0,OPTION_REG,,,02,03,00,01,04,05,,,0A,0B,PIE1,,0C,PIR1,,,,0D,PCON,,0E,TMR1L,TMR1H,,,0F,OSCCAL,,10,T1CON,,,,WPU,,15,IOC,,16,,,,,,CMCON,VRCON,,EEDATA,,,19,1A
19、,EEADR,,1B,,,EECON1,,1C,EECON2(1),,1D,,ADRESH,ADRESL,,1E,ANSEL,,1F,ADCON0,,,82,83,80,81,84,85,,,8A,8B,,8C,,8D,,8E,,8F,,90,,95,,96,,,99,9A,,9B,,9C,,9D,,9E,,9F,File Address (hex),Bank 1,,,,,,,,,,,General PurposeRegister
20、s (64 Bytes),accesses20h-5Fh,,,,A0,,,,,,DF,,20,,,,,,5F,Special Function Registers (SFR).,,General Purpose Registers (GPR), user RAM.,,Not a Physical Register.,1,00000000,XXXXXXXX,PICmicro MCU架構(gòu) PC相對尋址,實(shí)現(xiàn)查找表范例,movlwHI
21、GH DecodemovwfPCLATHmovf DisplayValue,WcallDecodemovwfPORTBgotoContinueDecodeaddwfPCL,FretlwB’00111111’ ;decode 0retlwB’00000110’ ;decode 1retlwB’01011011’ ;decode 2retlwB’01001111’ ;decod
22、e 3retlwB’01100110’ ;decode 4retlwB’01101101’ ;decode 5retlwB’01111101’ ;decode 6retlwB’00000111’ ;decode 7retlwB’01111111’ ;decode 8retlwB’01101111’ ;decode 9Continue,,b,e,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
23、,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RB0,RB1,RB2,RB3,RB4,RB5,RB6,b,c,d,e,f,g,W Register,I/O Port B,01101101,00000101,movf DisplayValue,W,callDecode,addwfPCL,F,retlwB’01101101’ ;decode 5,movwfPORTB,01101101,,,,,a,,IRP
24、,,f,f,f,f,f,f,f,f,,,,f,PICmicro架構(gòu) 間接尋址,用FSR寄存器作為8位地址指針另外1位在STATUS中描述,,IRP,RP1,RP0,TO,PD,Z,DC,C,f,f,f,f,f,f,f,STATUS 寄存器r,8位 FSR 寄存器,有效的 9位地址,8位來自FSR,1 位來自STATUS寄存器,,,PICmicro架構(gòu) 間接尋址,FSR 和 INDF 用于間接尋址FSR 是地址指針I(yè)NDF
25、保存移動(dòng)的值,5,,22,,FSR,INDF,Writing,Reading,,5,,21222324,,,5,,22,,FSR,INDF,,5,,21222324,,,movlw22movwfFSRmovlw5movwfINDF,movlw22movwfFSRmovfINDF,Wmovwf5,,,PICmicro架構(gòu) 間接尋址,清除 0x20 to 0x7F的RAM.,movlw0x20
26、movwfFSRLOOPclrfINDFincfFSR,FbtfssFSR,7gotoLOOP,0000 0000,,,0000 0000,,,FSR = 20h,,,,INDF,00h,04h,20h,7Fh,,Data Memory,指令系統(tǒng),PICmicro MCU 指令集(14-bit core),35 條指令易學(xué)緊湊單字指令向上兼容,PICmicro指令集,14位內(nèi)核之字節(jié)操
27、作指令構(gòu)成,,,,,,,OP CODE,d,f,f,f,f,f,f,f,d = Destination Bitd = 0 for destination Wd = 1 for destination F,f = 7-bit Register Address,Example:ADDWF REG, WADDWF f, d,,NOP-MOVWFfCLRW-CLRFfSUBWFf
28、,dDECFf,dIORWFf,dANDWFf,dXORWFf,dADDWFf,dMOVFf,dCOMFf,dINCFf,dDECFSZf,dRRFf,dRLFf,dSWAPFf,dINCFSZf,d,字節(jié)操作,,1,2,,1,,,,,移動(dòng)數(shù)據(jù): 立即數(shù), W and F,MyVar,movfMyVar,W,incfMyVa
29、r,F,,W or WREG,File Registers,,,movwfMyVar,2,,1,立即數(shù),movlw1,,,,,PICmicro指令集匯總,ADDWFf,dAdd W and fANDWFf,dAND W and fCLRFfClear fCLRW-Clear WCOMFf,dComplement fDECFf,dDecrement fDECFSZf,dDecrement
30、f, skip if zeroINCFf,dIncrement fINCFSZf,dIncrement f, skip if zeroIORWFf,dInclusive OR W and fMOVFf,dMove fMOVWFfMove W to fNOP-No OperationRRFf,dRotate right f through carryRLFf,dRotate left f t
31、hrough carrySUBWFf,dSubtract W from fSWAPFf,dSwap nibbles of fXORWFf,dExclusive OR W and f,BCFf,bBit clear fBSFf,bBit set fBTFSCf,bBit test f, skip if clearBTFSSf,bBit test f, skip if set,SLEEP-Go i
32、nto standby modeCLRWDT-Clear watchdog timerRETLWkReturn, place literal in WRETFIE-Return from interruptRETURN-Return from subroutineCALLkCall subroutineGOTOkGo to address (k is 9-bit)MOVLWkMove liter
33、al to WIORLWkInclusive OR literal with WADDLWkAdd literal with WSUBLWkSubtract W from literalANDLWkAND literal with WXORLWkExclusive OR literal with W,Byte-Oriented Operations,Bit-Oriented Operations,Liter
34、al and Control Operations,f = File Register, k = literal value (8-bit), b = bit address , d = destination (W or file register),PICmicro指令集位操作,14位內(nèi)核之位操作指令構(gòu)成,,,,,,,OP CODE,b,f,f,f,f,f,f,f,b = 3-Bit Address(Bit Number),f
35、= 7-bit Register Address,b,b,例:BTFSCSTATUS, CBTFSCf, b,,BCFf,bBSFf,bBTFSCf,bBTFSSf,b,位操作,0000 0000,Bit 7,Bit 0,,,PICmicro指令集立即數(shù)和控制操作,,,k,14位內(nèi)核之立即數(shù)和控制指令構(gòu)成,,OP CODE,k,k,k,k,k,k,k,k = 8-bit Immediate Value,
36、例:MOVLW0x2FMOVLWk,,SLEEP-CLRWDT-RETLWkRETFIE-RETURN-CALLkGOTOkMOVLWkIORLWkADDLWkSUBLWkANDLWkXORLWk,立即數(shù)和控制操作,14-bit單片機(jī)指令集操作實(shí)例,NOPNo OperationSyntax:NOPOperands:NoneOp
37、eration:No operationStatus:NoneEncoding:00 0000 0000 0000Words:1Cycles:1,例:NOP,14-bit 核指令集字節(jié)操作,14位內(nèi)核之字節(jié)操作指令構(gòu)成,,,,,,,OP CODE,d,f,f,f,f,f,f,f,d = Destination Bitd = 0 for destination Wd = 1 for destination
38、F,f = 7-bit Register Address,Example:ADDWF REG, WADDWF f, d,,NOP-MOVWFfCLRW-CLRFfSUBWFf,dDECFf,dIORWFf,dANDWFf,dXORWFf,dADDWFf,dMOVFf,dCOMFf,dINCFf,dDECFSZ
39、f,dRRFf,dRLFf,dSWAPFf,dINCFSZf,d,Byte-OrientedOperations,PICmicro MCU指令集字節(jié)操作,MOVWFMove W to fSyntax:MOVWF fOperands:0 (f)Status:NoneEncoding:00 0000 1fff ffffWords:1Cycles:1,例:MOVWFFSR
40、執(zhí)行前FSR= 0xFFW= 0x4F執(zhí)行后FSR= 0x4FW= 0x4F,PICmicro MCU指令集字節(jié)操作,CLRWClear WSyntax:CLRWOperands:NoneOperation:00h -> (W)1 -> ZStatus:ZEncoding:00 0001 0000 0000Words:1Cycles:1,
41、例:CLRW執(zhí)行前W= 0x4F執(zhí)行后W= 0x00Z= 1,PICmicro MCU指令集字節(jié)操作,CLRFClear fSyntax:CLRF fOperands:0 (f)1 -> ZStatus:ZEncoding:00 0001 1fff ffffWords:1Cycles:1,例:CLRF FSR執(zhí)行前FSR= 0
42、x4F執(zhí)行后FSR= 0x00Z= 1,PICmicro MCU指令集字節(jié)操作,SUBWFSubtract W from fSyntax:SUBWF f,dOperands:0 destStatus:C,DC,ZEncoding:00 0010 dfff ffffWords:1Cycles:1,例:SUBWF FSR,W執(zhí)行前FSR= 0x03W= 0
43、x02C= ?Z= ?執(zhí)行后FSR= 0x03W= 0x01C= 1Z= 0,PICmicro MCU指令集字節(jié)操作,DECFDecrement fSyntax:DECF f,dOperands:0 destStatus:ZEncoding:00 0011 dfff ffffWords:1Cycles:1,例:DECF FSR,F執(zhí)行前
44、FSR= 0x01Z= 0執(zhí)行后FSR= 0x00Z= 1,PICmicro MCU指令集字節(jié)操作,MOVFMove fSyntax:MOVF f,dOperands:0 destStatus:ZEncoding:00 1000 dfff ffffWords:1Cycles:1,例:MOVF FSR,F執(zhí)行前FSR= 0x00Z= 0
45、執(zhí)行后FSR= 0x00Z= 1,PICmicro MCU指令集字節(jié)操作,DECFSZDec. f, Skip if 0Syntax:DECFSZ f,dOperands:0 destskip if result = 0Status:NoneEncoding:00 1011 dfff ffffWords:1Cycles:1(2),例:LoopDECFSZ CNT,F
46、GOTO LoopContinue執(zhí)行前 PC = address Loop執(zhí)行后 CNT= CNT - 1 if CNT = 0, PC = address Continue else CNT != 0, PC = address Loop+1,PICmicro MCU指令集字節(jié)操作,RRFRotate Right f -> CSyntax:
47、RRF f,dOperands:0 <= f <= 127d = {0,1}Operation:Status:CEncoding:00 1100 dfff ffffWords:1Cycles:1,例:RRFCNT,W執(zhí)行前CNT= 1110 0110C= 0執(zhí)行后CNT= 1110 0110W= 0111 0011C= 0,C,R
48、egister f,,,,,,,PICmicro MCU指令集,14位內(nèi)核之位操作指令構(gòu)成,,,,,,,OP CODE,b,f,f,f,f,f,f,f,b = 3-Bit Address(Bit Number),f = 7-bit Register Address,b,b,Example:BTFSCSTATUS, CBTFSCf, b,,BCFf,bBSFf,bBTFSCf,bBTFSSf,b,位操作,
49、PICmicro MCU指令集位操作,BCFBit Clear fSyntax:BCF f,bOperands:0 (f)Status:NoneEncoding:01 00bb bfff ffffWords:1Cycles:1,例:BCF FSR,4執(zhí)行前FSR= 0011 0000執(zhí)行后FSR= 0010 0000,PICmicro MCU指令集位操作,BTFSS
50、Bit Test f, Skip if 1Syntax:BTFSS f,bOperands:0 ) = 1Status:NoneEncoding:01 11bb bfff ffffWords:1Cycles:1(2),例:HereBTFSS CNT,2FalseGOTO ElsewhereTrue執(zhí)行前 PC = address Here執(zhí)行后 if CN
51、T = 1, PC = address True if CNT = 0, PC = address False,PICmicro MCU指令集立即數(shù)操作,,,k,14位內(nèi)核之立即數(shù)操作指令構(gòu)成,,OP CODE,k,k,k,k,k,k,k,k = 8-bit Immediate Value,例:MOVLW0x2FMOVLWk,,MOVLWkIORLWkADDLWkSUBLWkA
52、NDLWkXORLWk,立即數(shù)操作,PICmicro MCU指令集立即數(shù)操作,MOVLW立即數(shù)送給 WSyntax:MOVLW kOperands:0 (W) Status:NoneEncoding:11 0000 kkkk kkkkWords:1Cycles:1,例:MOVLW 0x5A執(zhí)行后W= 0x5A,PICmicro MCU指令集立即數(shù)操作,ADDLW W與立
53、即數(shù)相加Syntax:ADDLW kOperands:0 (W)Status:C,DC,ZEncoding:11 1110 kkkk kkkkWords:1Cycles:1,例:ADDLW 0x15執(zhí)行前W= 0x10執(zhí)行后W= 0x25,PICmicro MCU指令集立即數(shù)操作,ANDLWW 與立即數(shù)相與Syntax:ANDLW kOperands:0 (
54、W)Status:ZEncoding:11 1001 kkkk kkkkWords:1Cycles:1,例:ANDLW 0x5F執(zhí)行前W= 0xA3執(zhí)行后W= 0x03,PICmicro MCU指令集控制類操作,,,k,14位內(nèi)核之RETLW指令構(gòu)成,,OP CODE,k,k,k,k,k,k,k,k = 8-bit Immediate Value,,SLEEP-CLRWDT-
55、RETLWkRETFIE-RETURN-CALLkGOTOk,控制類操作,,,14位內(nèi)核之CALL /GOTO指令構(gòu)成,,OP CODE,k = 11-bit Immediate Value,k,k,k,k,k,k,k,k,k,k,k,PICmicro MCU指令集控制類操作,SLEEP進(jìn)入 SLEEP Syntax:SLEEPOperands:NoneOperation:00h -&
56、gt; WDT1 -> TO0 -> PDStatus:TO, PDEncoding:00 0000 0110 0011Words:1Cycles:1,例:SLEEP,,,,,CLRWDT清 WatchdogSyntax:CLRWDTOperands:NoneOperation:00h -> WDT0 -> WDT prescaler1 ->
57、 TO1 -> PDStatus:TO, PDEncoding:00 0000 0110 0100Words:1Cycles:1,PICmicro指令集控制類操作,例:CLRWDT,PICmicro MCU指令集控制類操作,RETLW返回Syntax:RETLW kOperands:0 (W)TOS -> PC Status:NoneEncoding:11 010
58、0 kkkk kkkkWords:1Cycles:2,例:RETLW 0x5A執(zhí)行后W= 0x5A,PICmicro MCU指令集控制類操作,RETFIE中斷返回Syntax:RETFIEOperands:NoneOperation:TOS -> PC1 -> GIE Status:NoneEncoding:00 0000 0000 1001Words:1Cy
59、cles:2,例:RETFIE,PICmicro MCU指令集控制類操作,CALL調(diào)用子程序Syntax:CALL kOperands:0 TOSk -> PCPCLATHPCStatus:NoneEncoding:10 0kkk kkkk kkkkWords:1Cycles:2,例:HereCALL There執(zhí)行前 PC = address Here
60、執(zhí)行后 PC = address There TOS = address Here+1,PICmicro MCU指令集控制類操作,GOTO無條件轉(zhuǎn)移Syntax:GOTO kOperands:0 PCPCLATH ->PCStatus:NoneEncoding:10 1kkk kkkk kkkkWords:1Cycles:2,例:GOTO There執(zhí)行
61、后 PC = address There,使用 MPLAB® 集成開發(fā)環(huán)境 (IDE) MPASM? 編譯器,匯編 指令,#INCLUDE語法: #include “文件名.*” 或 或無括號 或 引號:示例: #INCLUDE p12f675.inc,匯編 指令,#DEFINE用于定義變量和分配初始值用戶友好的名字被分配給常數(shù),寄存器 ,管腳名等. 使程序易讀例: #DEF
62、INE MYCONSTANTH’5A’_ _CONFIG設(shè)置配置位見 Lab 2,匯編 指令,ORG語法: ORG 例: ORG0x0000描述: 定義起始地址(0x0000).,匯編指令,EQU語法: equ 例: Seconds EQU 0x24描述: 定義常數(shù)或變量的替換名. …可用做常數(shù)movlwSECONDS; put 24 (hex) into W... 或當(dāng)作寄存
63、器地址 movwfSECONDS; put value in W into ; RAM location 24 (hex).,匯編指令,BANKSEL語法: BANKSEL []例: BANKSEL TRISA movwfTRISA設(shè)置相關(guān)的 bank 位,匯編指令,END 語法: END 例: 表示原代碼結(jié)束.你必須在想結(jié)
64、束匯編的地方有一條 END語句.,休息,Lab 1 在MPLAB 7.x中創(chuàng)建一個(gè)項(xiàng)目,Lab 1MPLAB® 7.xx 布局,狀態(tài)欄,圖標(biāo)欄,Workspace,項(xiàng)目窗口,輸出窗口,Buttons are added to the Toolbar as features are enabled,,,,,,創(chuàng)建項(xiàng)目,Lab 1 目標(biāo)使用Project Wizard編寫簡單的MPASM代碼編譯代碼介紹 輸出窗口
65、和Program Memory 窗口選擇Build選項(xiàng),創(chuàng)建項(xiàng)目,Project -> Project Wizard...打開 Project Wizard ,創(chuàng)建一個(gè)項(xiàng)目,Lab 1從任一項(xiàng)目開始,按照下列步驟創(chuàng)建項(xiàng)目:點(diǎn)擊“Next” 繼續(xù).選擇MCU型號使用最新的 MPLAB IDE 版本,,,Lab 1從任一項(xiàng)目開始,選擇語言工具:MPASM 匯編器 免費(fèi),本課將使用 .顯示安裝后子目錄, 你也可以
66、更改 .當(dāng)然你可以點(diǎn)出 “Help” 或 “Show all”查看所有的語言工具.,,,,,Lab 1從任一項(xiàng)目開始,選擇路徑:鍵入項(xiàng)目名字.鍵入項(xiàng)目路徑.注意路徑盡可能短.,,,Lab 1從任一項(xiàng)目開始,增加文件增加文件到項(xiàng)目中.,,,,Lab 1從任一項(xiàng)目開始,完成創(chuàng)建的項(xiàng)目的小結(jié)被顯示, 點(diǎn)擊“finish” 完成 .記住, Project Wizard 新版本將會增加一些新的功能.,,,,Lab 1從
67、任一項(xiàng)目開始,(*.mcp)和 (*.mcw)文件名將被顯示 .在窗口你可以添加任何類型相關(guān)的文件到項(xiàng)目中,Lab 1從任一項(xiàng)目開始,選擇File > New創(chuàng)建新文件鍵入右圖所示的代碼. “*” 表示文件已被改變.鍵入的代碼執(zhí)行nop’s 功能.,Lab 1從任一項(xiàng)目開始,選擇File > Save As保存文件..保存 例子文件 為 Lab1.asm.,Lab 1從任一項(xiàng)目開始,在source code
68、欄增加文件鼠標(biāo)右擊 “Source Files” 選擇 “Add Files”.增加 Lab1.asm文件.,Lab 1從任一項(xiàng)目開始,文件現(xiàn)在增加在Project中 注意“*” 表示文件已被改變未保存.,Lab 1,選擇File > Save Workspace保存項(xiàng)目,編譯代碼,選擇Project -> Build All編譯項(xiàng)目 “Build All” 表示 每一個(gè)文件被改變,因此重新編譯所有項(xiàng)目,La
69、b 1從任一項(xiàng)目開始,輸出窗口 顯示 build的過程.,Lab 1從任一項(xiàng)目開始,選擇View > Program Memory可以查看程序區(qū),,,,Your Code,,,,Unprogrammed locations (3FFF),MPLAB® IDE 設(shè)置信息,Workspace: 包含下列信息:MCU型號調(diào)試工具或編程器打開的窗口 IDE configuration 的設(shè)置值Proje
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- pic單片機(jī)c語言編程入門
- pic單片機(jī)
- 單片機(jī)入門
- pic單片機(jī)課程設(shè)計(jì)
- 單片機(jī)學(xué)習(xí)之pic單片機(jī)c語言編程教程
- pic單片機(jī)原理及應(yīng)用
- pic單片機(jī)c語言編程教程
- 開題報(bào)告--pic單片機(jī)的研究
- 單片機(jī)快速入門方法
- pic單片機(jī)原理復(fù)習(xí)提綱
- pic單片機(jī)原理及應(yīng)用(原稿)
- pic單片機(jī)原理及應(yīng)用考卷
- 單片機(jī)畢業(yè)設(shè)計(jì)外文翻譯-- pic系列單片機(jī)的特點(diǎn)
- 全球最小的單片機(jī)pic10fxxx系列中文資料
- pic單片機(jī)c語言教程[1]
- 常用pic系列單片機(jī)速查表
- 技能培訓(xùn)資料之電氣入門課件
- pic單片機(jī)匯編語言編程基礎(chǔ)
- pic單片機(jī)c語言編程實(shí)例五
- pic單片機(jī)自學(xué)手記之串口通信
評論
0/150
提交評論