A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

CIRCUITOS ELETRÔNICOS EMBARCADOS PSI2612 AULA 03 ASSUNTO: CONJUNTO DE INSTRUÇÕES ROTEIRO 1. Introdução 2, Descrição das Instruções 3. Exemplos 4. Complementos.

Apresentações semelhantes


Apresentação em tema: "CIRCUITOS ELETRÔNICOS EMBARCADOS PSI2612 AULA 03 ASSUNTO: CONJUNTO DE INSTRUÇÕES ROTEIRO 1. Introdução 2, Descrição das Instruções 3. Exemplos 4. Complementos."— Transcrição da apresentação:

1 CIRCUITOS ELETRÔNICOS EMBARCADOS PSI2612 AULA 03 ASSUNTO: CONJUNTO DE INSTRUÇÕES ROTEIRO 1. Introdução 2, Descrição das Instruções 3. Exemplos 4. Complementos do hardware

2 1. INTRODUÇÃO NÚMERO DE INSTRUÇÕES : 35 GRUPOS > Operações envolvendo todo o byte dos registradores: 18 > Operações envolvendo apenas um bit dos registradores: 4 > Operações com valores literais ou de controle: 13 Transmitter (USART/SCI) with 9-bit address detection PIC16F877/874

3 TABELA 13-1:DESCRIÇÃO DOS CÖDIGOS UTILIZADOS NOS CAMPOS DAS INSTRUÇÕES

4 FIGURA 13.1: FORMATO GERAL PARA AS INSTRUÇÕES

5 TABELA 13-2 : CONJUNTO DE INSTRUÇÕES DO PIC

6

7

8 2. CONJUNTO DE INSTRUÇÕES DESCRIÇÃO

9 DESCRIÇÃO DA INSTRUÇÃO ADDLW ADDLWAdd Literal and W Syntax[label] ADDLW k Operands:0 k 255 Operation:(W) + k (W) Status Affected:C, DC, Z Description:The contents of the W register are added to the eight bit literal k and the result is placed in the W register.

10 DESCRIÇÃO DA INSTRUÇÃO ADDWF ADDWF Add W and F Syntax:[label] ADDWF f,d Operands:0 f 127 d [0,1] Operation:(W) + (f) (destination) Status Affected:C, DC, Z Description:Add the contents of the W register with register f. If d is 0, the resultis stored in the W register. If d is1, the result is stored back in register f.

11 DESCRIÇÃO DA INSTRUÇÃO ADDWF ANDLWAND Literal with W Syntax:[label] ANDLW k Operands:0 k 255 Operation:(W).AND. (k) (W) Status Affected: Z Description:The contents of W register are ANDed with the eight bit literal 'k'. The result is placed in the W register.

12 DESCRIÇÃO DA INSTRUÇÃO ANDWF ANDWFAND W with f Syntax:[label] ANDWF f,d Operands:0 f 127 d [0,1] Operation:(W).AND. (f) (destination) Status Affected:Z Description: AND the W register with register 'f'. If 'd is 0, the result is stored in the W register. If 'd' is 1, the result is stored back in register 'f'.

13 DESCRIÇÃO DA INSTRUÇÃO BCF BCFBit Clear f Syntax:[label] BCF f,b Operands:0 f b 7 Operation:0 (f ) Status Affected:None DescriptionBit 'b' in register 'f' is cleared.

14 DESCRIÇÃO DA INSTRUÇÃO BSF BSFBit Set f Syntax:[label] BSF f,b Operands:0 f b 7 Operation:1 (f ) Status Affected:None Description:Bit 'b' in register 'f' is set.

15 DESCRIÇÃO DA INSTRUÇÃO BTFSS BTFSSBit Test f, Skip if Set Syntax:[label] BTFSS f,b Operands:0 f b 7 Operation:skip if (f ) = 1 Status Affected:None Description:If bit 'b' in register 'f' is '0', the next instruction is executed.If bit 'b' is '1', then the next instructionis discarded and a NOP is executed instead, making this a 2TCY instruction.

16 DESCRIÇÃO DA INSTRUÇÃO BTFSC BTFSCBit Test, Skip if Clear Syntax:[label] BTFSC f,b Operands:0 f b 7 Operation:skip if (f ) = 0 Status Affected:None Description:If bit 'b' in register 'f' is '1', the next instruction is executed.If bit 'b', in register 'f', is '0', the next instruction is discarded, and a NOP is executed instead, making this a 2TCY instruction.

17 DESCRIÇÃO DA INSTRUÇÃO CALL CALLCall Subroutine Syntax:[ label ] CALL k Operands:0 k 2047 Operation:(PC)+ 1 TOS, k PC, (PCLATH ) PC Status Affected:None Description:Call Subroutine. First, return address (PC+1) is pushed onto the stack. The eleven-bit immediate address is loaded into PC bits. The upper bits of the PC are loaded from PCLATH. CALL is a two-cycle instruction.

18 DESCRIÇÃO DA INSTRUÇÃO CLRF CLRFClear f Syntax:[label] CLRF f Operands:0 f 127 Operation:00h (f) 1 Z Status Affected:Z Description:The contents of register f are cleared and the Z bit is set.

19 DESCRIÇÃO DA INSTRUÇÃO CLRW CLRWClear W Syntax:[ label ] CLRW Operands:None Operation:00h (W) 1 Z Status Affected Z Description:W register is cleared. Zero bit (Z) is set.

20 DESCRIÇÃO DA INSTRUÇÃO CLRWDT CLRWDTClear Watchdog Timer Syntax:[ label ] CLRWDT Operands:None Operation:00h WDT 0 WDT prescaler, 1 TO 1 PD Status Affected:TO, PD Description:CLRWDT instruction resets the Watchdog Timer. It also resets the prescaler of the WDT. Status bits TO and PD are set.

21 DESCRIÇÃO DA INSTRUÇÃO COMF COMFComplement f Syntax:[ label ] COMF f,d Operands:0 f 127 d. [0,1] Operation:(f) (destination) Status Affected:Z Description: The contents of register f are complemented. If d is 0, the result is stored in W. If d is 1, the result is stored back in register f.

22 DESCRIÇÃO DA INSTRUÇÃO DECF DECFDecrement f Syntax:[label] DECF f,d Operands:0 f 127 d [0,1] Operation:(f) - 1 (destination) Status Affected: Z Description:Decrement register f. If d is 0, the result is stored in the W register. If d is 1, the result is stored back in register f.

23 DESCRIÇÃO DA INSTRUÇÃO DECFSZ DECFSZDecrement f, Skip if Syntax:[ label ] DECFSZ f,d Operands:0 f 127 d [0,1] Operation:(f) - 1 (destination); skip if result = 0 Status Affected: None Description:The contents of register f are decremented. If d is 0, the result is placed in the W register. If d is 1, the result is placed back in register f.If the result is 1, the next instruction is executed. If the result is 0, then a NOP is executed instead making it a 2TCYinstruction.

24 DESCRIÇÃO DA INSTRUÇÃO GOTO GOTOUnconditional Branch Syntax:[ label ] GOTO k Operands:0 k 2047 Operation:k PC PCLATH PC StatusAffected: None Description:GOTO is an unconditional branch. The eleven-bit immediate value is loaded into PC bits. The upper bits of PC are loaded from PCLATH. GOTO is a twocycle instruction.

25 DESCRIÇÃO DA INSTRUÇÃO INCF INCFIncrement f Syntax:[ label ] INCF f,d Operands:0 f 127 d. [0,1 Operation:(f) + 1 (destination) Status Affected Z Description:The contents of register f are incremented. If d is 0, the result is placed in the W register. If d is 1, the result is placed back in register f.

26 DESCRIÇÃO DA INSTRUÇÃO INCFSZ INCFSZIncrement f, Skip if Syntax:[ label ] INCFSZ f,d Operands:0 f 127 d [0,1] Operation:(f) + 1 (destination), skip if result = 0 Status Affected:None Description:The contents of register f are incremented. If d is 0, the result is placed in the W register. If d is 1, the result is placed back in register f. If the result is 1, the next instruction is executed. If the result is 0, a NOP is executed instead, making

27 DESCRIÇÃO DA INSTRUÇÃO IORLW IORLWInclusive OR Literal with W Syntax:[ label ] IORLW k Operands:0 k 255 Operation:(W).OR. k (W) Status Affected:Z Description: The contents of the W register are ORed with the eight bit literal 'k'. The result is placed in the W register.

28 DESCRIÇÃO DA INSTRUÇÃO IORWF IORWFInclusive OR W with f Syntax:[ label ] IORWF f,d Operands:0 f 127 d [0,1] Operation:(W).OR. (f) (destination) Status Affected: Z Description:Inclusive OR the W register with register 'f'. If 'd' is 0 the result is placed in the W register. If 'd' is 1 the result is placed back in register 'f'.

29 DESCRIÇÃO DA INSTRUÇÃO MOVF MOVFMove f Syntax:[ label ] MOVF f,d Operands: 0 f 127 d [0,1] Operation:(f) (destination) Status Affected: Z Description:The contents of register f are moved to a destination dependant upon the status of d. If d = 0, destination is W register. If d = 1, the destination is file register f itself. d = 1 is useful to test a file register, since status flag Z is affected.

30 DESCRIÇÃO DA INSTRUÇÃO MOVLW MOVLWMove Literal to W Syntax:[ label ] MOVLW k Operands:0 k 255 Operation:k (W) Status Affected:None Description:The eight bit literal k is loaded into W register. The dont cares will assemble as 0s.

31 DESCRIÇÃO DA INSTRUÇÃO MOVWF MOVWFMove W to f Syntax:[ label ] MOVWF f Operands:0 f 127 Operation:(W) (f) Status Affected:None Description:Move data from W register to register 'f'.

32 DESCRIÇÃO DA INSTRUÇÃO NOP NO No Operation Syntax:[ label ] NOP Operands:None Operation:No operation Status Affected:None Description: No operation.

33 DESCRIÇÃO DA INSTRUÇÃO RETFIE RETFIEReturn from Interrupt Syntax:[ label ] RETFIE Operands:None Operation:TOS PC, 1 GIE Status Affected:None

34 DESCRIÇÃO DA INSTRUÇÃO RETLW RETLWReturn with Literal in W Syntax:[ label ] RETLW k Operands:0 k 255 Operation:k (W); TOS PC Status Affected:None Description:The W register is loaded with the eight bit literal 'k'. The program counter is loaded from the top of the stack (the return address). This is a two-cycle instruction.

35 DESCRIÇÃO DA INSTRUÇÃO RLF RLFRotate Left f through Carry Syntax:[ label ] RLF f,d Operands:0 f 127 d [0,1] Operation:See description below Status Affected:C Description:The contents of register f are rotated one bit to the left through the Carry Flag. If d is 0, the result is placed in the W register. If d is 1, the result is stored back in register f.

36 DESCRIÇÃO DA INSTRUÇÃO RETURN RETURNReturn from Subroutine Syntax:[ label ] RETURN Operands:None Operation:TOS PC Status Affected:None Description:Return from subroutine. The stack is POPed and the top of the stack (TOS) is loaded into the program counter. This is a two-cycle instruction.

37 DESCRIÇÃO DA INSTRUÇÃO RRF RRFRotate Right f through Carry Syntax:[ label ] RRF f,d Operands:0 f 127 d [0,1] Operation:See description below Status Affected:C Description:The contents of register f are rotated one bit to the right through the Carry Flag. If d is 0, the result is placed in the W register. If d is1, the result is placed back in register f.

38 DESCRIÇÃO DA INSTRUÇÃO SLEEP SLEEP Syntax:[ label ] SLEEP Operands:None Operation:00h WDT, 0 WDT prescaler, 1 TO, 0 PD Status Affected:TO, PD Description:The power-down status bit, PD is cleared. Time-out status bit, TO is set. Watchdog Timer and its prescaler are cleared.The processor is put into SLEEPmode with the oscillator stopped.

39 DESCRIÇÃO DA INSTRUÇÃO SUBLW SUBLWSubtract W from Literal Syntax:[ label ] SUBLW k Operands:0 k 255 Operation:k - (W) (W) Status Affected:C, DC, Z Description:The W register is subtracted (2s complement method) from the eight-bit literal 'k'. The result is placed in the W register.

40 DESCRIÇÃO DA INSTRUÇÃO SUBWF SUBWFSubtract W from f Syntax:[ label ] SUBWF f,d Operands:0 f 127 d [0,1] Operation:(f) - (W) (destination) Status Affected:C, DC, Z DescriptionSubtract (2s complement method) W register from register 'f'. If 'd' is 0, the result is stored in the W register. If 'd' is 1, the result is stored back in register 'f'.

41 DESCRIÇÃO DA INSTRUÇÃO SWAPF SWAPFSwap Nibbles in f Syntax:[ label ] SWAPF f,d Operands:0 f 127 d [0,1] Operation: (f ) (destination ), (f ) (destination ) Status Affected:None Description:The upper and lower nibbles of register f are exchanged. If d is 0, the result is placed in the W register. If d is 1, the result is placed in register f.

42 DESCRIÇÃO DA INSTRUÇÃO XORLW XORLWExclusive OR Literal with W Syntax:[label] XORLW k Operands:0 k 255 Operation:(W).XOR. k (W) Status Affected: Z Description:The contents of the W register are XORed with the eight-bit literal 'k'. The result is placed in the W register.

43 DESCRIÇÃO DA INSTRUÇÃO XORWF XORWFExclusive OR W with f Syntax:[label] XORWF f,d Operands:0 f 127 d [0,1] Operation:(W).XOR. (f) (destination) Status Affected Z Description:Exclusive OR the contents of the W register with register 'f'. If 'd' is 0, the result is stored in the W register. If 'd' is 1, the result is stored back in register 'f'.

44 3. EXEMPLOS

45 EXEMPLO 01 LEITURA DE DADOS DA EEPROM EEPROM(EEADR) EEDATA

46 ARQUITETURA DO PIC16F87X

47 MAPA DOS REGISTRADORES

48 REGISTRADOR DE STATUS

49 REGISTRADOR EECON1

50 EXEMPLO DE PROGRAMA

51 EXEMPLO 2 ESCRITA NA MEMÓRIA FLASH DE PROGRAMA

52 REGISTRADORES ASSOCIADOS À MEMÓRIA FLASH DE PROGRAMA

53 EXEMPLO 2

54 EXEMPLO 3 São dados dois Microcontroladores, A e B Desenvolver um programa para o microcontrolador A que receberá de B um bloco de no máximo 61 bytes. O programa deverá ser armazenado na Memória de Programa a partir da posição X. O primeiro dado recebido informa o número de bytes que virão a seguir(desconsiderar este ), e que será armazenado na posição 20h Os dados seguintes deverão ser guardados alternadamente na memória de dados a partir das posições 31h e 61h.

55 ADOTAR. O microcontrolador A receberá um byte de cada vez através dos pinos.. A utilizará RA0 como informação de entrada para controle e RA1 para saída. SEQUÊNCIA 1. A comunica B( que está receptivo ) que inicializou o programa colocando RA1 0,1,0,permanecendo neste último. 2. A consulta a disponibilidade de um byte em através de RA0. 3. Quando RA0 for 1 (inicialmente 0 ) o dado estará disponível. 4. A lê a informação,armazena e envia através de RA1(=1) informação que já registrou o dado,ficando operando 02 NOP e RA1 volta para zero( B está recptivo ) 5. B recebe a informação e zera RA0 e disponibiliza novo byte de dado,setando RA0, 6. Aoperação se repete aié o término dos dados.

56 PROGRAMA XBSFSTATUS,RP0 BCFSTATUS,RP1,banco 1 MOVLW01h,direciona MOVWFTRISA,portaA MOVLWFF,direciona MOVWFTRISB,portaB BCFSTATUS,RP0,banco 0 BCFPORTAA,1 NOP BSFPORTAA,1NOP BCFPORTAA,1 YMOVFPORTAA,PORTAA,d=1 lê BTFSSPORTAA,0 GOTOY

57 PROGRAMA ( continuação) MOVWFNUMDAD(20h) MOVLW31h MOVWFENDA(21h) MOVLW61h MOVWFENDB(22h) UMOVFENDA(21),W,d=0 CALLZ INCFENDA(21) MOVFENDB(22h),W,d=0 CALLZ INCFENDB(22h) DECFNUMDAD(20), DECFZNUMDAD(20) GOTOU END MOVFPORTAB,PORTAB,d=1lê MOVFPORTAB,W,d=0

58 SUBROTINA ZMOVWFFSR BSFPOTAA,1 NOP NOP BCFPORTAA,1 Z+5MOVFPORTA,PORTAA,d=1 lê BTFSSPORTAA,0 GOTOZ+5 MOVFPORTAB,PORTAB,d=1 lê MOVFPORTAB,W MOVWFINDEF,M(FSR) W RETURN


Carregar ppt "CIRCUITOS ELETRÔNICOS EMBARCADOS PSI2612 AULA 03 ASSUNTO: CONJUNTO DE INSTRUÇÕES ROTEIRO 1. Introdução 2, Descrição das Instruções 3. Exemplos 4. Complementos."

Apresentações semelhantes


Anúncios Google