instruction set

Post on 16-Jan-2016

23 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

INSTRUCTION SET. INSTRUCTION 5. INSTRUCTION 6. INSTRUCTION 7. INSTRUCTION 8. INSTRUCTION 9. INSTRUCTION 10. INSTRUCTION 11. INSTRUCTION 12. INSTRUCTION 13. INSTRUCTION 14. INSTRUCTION 15. INSTRUCTION 16. INSTRUCTION 17. INSTRUCTION 18. INSTRUCTION 19. INSTRUCTION 20. - PowerPoint PPT Presentation

TRANSCRIPT

INSTRUCTION SETINSTRUCTION SET

INSTRUCTION 5INSTRUCTION 5

INSTRUCTION 6INSTRUCTION 6

INSTRUCTION 7INSTRUCTION 7

INSTRUCTION 8INSTRUCTION 8

INSTRUCTION 9INSTRUCTION 9

INSTRUCTION 10INSTRUCTION 10

INSTRUCTION 11INSTRUCTION 11

INSTRUCTION 12INSTRUCTION 12

INSTRUCTION 13INSTRUCTION 13

INSTRUCTION 14INSTRUCTION 14

INSTRUCTION 15INSTRUCTION 15

INSTRUCTION 16INSTRUCTION 16

INSTRUCTION 17INSTRUCTION 17

INSTRUCTION 18INSTRUCTION 18

INSTRUCTION 19INSTRUCTION 19

INSTRUCTION 20INSTRUCTION 20

INSTRUCTION 21INSTRUCTION 21

INSTRUCTION 22INSTRUCTION 22

INSTRUCTION 23INSTRUCTION 23

INSTRUCTION 24INSTRUCTION 24

INSTRUCTION 25INSTRUCTION 25

INSTRUCTION 26INSTRUCTION 26

INSTRUCTION 27INSTRUCTION 27

INSTRUCTION 28INSTRUCTION 28

INSTRUCTION 29INSTRUCTION 29

INSTRUCTION 30INSTRUCTION 30

INSTRUCTION 31INSTRUCTION 31

INSTRUCTION 32INSTRUCTION 32

INSTRUCTIONS 33-35INSTRUCTIONS 33-35

SLEEPSLEEP CLRWDTCLRWDT NOPNOP

Direct/Indirect AddressingDirect/Indirect Addressing

Direct AddressingDirect Addressing

Use only 7 bits of instruction to identify a register file Use only 7 bits of instruction to identify a register file address.address.

The other two bits of register address come from RP0 and The other two bits of register address come from RP0 and RP1 bits in the STATUS registerRP1 bits in the STATUS register

Example: Bank switching (Note: case of 4 banks)Example: Bank switching (Note: case of 4 banks) CLRF STATUS ; Clear STATUS register (Bank0)CLRF STATUS ; Clear STATUS register (Bank0) : ;: ; BSF STATUS, RP0 ; Bank1BSF STATUS, RP0 ; Bank1 : ;: ; BCF STATUS, RP0 ; Bank0BCF STATUS, RP0 ; Bank0 : ;: ; MOVLW 0x60 ; Set RP0 and RP1 in STATUS register, otherMOVLW 0x60 ; Set RP0 and RP1 in STATUS register, other XORWF STATUS, F ; bits unchanged (Bank3)XORWF STATUS, F ; bits unchanged (Bank3) : ;: ; BCF STATUS, RP0 ; Bank2BCF STATUS, RP0 ; Bank2 : ;: ; BCF STATUS, RP1 ; Bank0BCF STATUS, RP1 ; Bank0

Indirect AddressingIndirect Addressing The INDF register is not a physical register. Addressing the The INDF register is not a physical register. Addressing the

INDF register will cause indirect addressing.INDF register will cause indirect addressing. Any instruction using the INDF register actually access the Any instruction using the INDF register actually access the

registerregister pointed to by the File Select Register (FSR).pointed to by the File Select Register (FSR). The effective 9-bit address is obtained by concatenating the The effective 9-bit address is obtained by concatenating the

8-bit8-bit FSR register and the IRP bit in STATUS register.FSR register and the IRP bit in STATUS register. ExampleExample

MOVLW 0x20 ;initialize pointerMOVLW 0x20 ;initialize pointer MOVWF FSR ;to RAMMOVWF FSR ;to RAM NEXT: CLRF INDF ;clear INDF registerNEXT: CLRF INDF ;clear INDF register INCF FSR,F ;inc pointerINCF FSR,F ;inc pointer BTFSS FSR,4 ;all done? (to 0x2F)BTFSS FSR,4 ;all done? (to 0x2F) GOTO NEXT ;no clear nextGOTO NEXT ;no clear next CONTINUE:CONTINUE:

;yes continue;yes continue

I/O PortsI/O Ports General I/O pins are the simplest of peripherals General I/O pins are the simplest of peripherals

used to monitor and control other devices.used to monitor and control other devices. For most ports, the I/O pin’s direction (input or For most ports, the I/O pin’s direction (input or

output) is controlled by the data direction output) is controlled by the data direction register register TRISx TRISx (x=A,B,C,D,E).(x=A,B,C,D,E).

A ‘1’ in the TRIS bit corresponds to that pin being A ‘1’ in the TRIS bit corresponds to that pin being an input, while a ‘0’ corresponds to that pin an input, while a ‘0’ corresponds to that pin being an outputbeing an output

The The PORTx PORTx register is the latch for the data to register is the latch for the data to be output. Reading PORTx register read the be output. Reading PORTx register read the status of the pins, whereas writing to it will write status of the pins, whereas writing to it will write to the port latch.to the port latch.

Example: Initializing PORTDExample: Initializing PORTD

bcf STATUS, RP0 ; bank0bcf STATUS, RP0 ; bank0 bcf STATUS, RP1bcf STATUS, RP1 clrf PORTD ; initializing PORTD by clearing output clrf PORTD ; initializing PORTD by clearing output

data latchesdata latches bsf STATUS, RP0 ; select bank1bsf STATUS, RP0 ; select bank1 movlw 0xCF ; value used to initialize data movlw 0xCF ; value used to initialize data

direction (1100 1111)direction (1100 1111) movwf TRISD ; movwf TRISD ;

PORTD<7:6>=inputs, ;PORTD<5:4>=outputs, PORTD<7:6>=inputs, ;PORTD<5:4>=outputs, PORTD<3:0>=inputsPORTD<3:0>=inputs

top related