36
PIC microcontrollers

PIC microcontrollers

Embed Size (px)

DESCRIPTION

PIC microcontrollers. PIC Microcontrollers. Families Eigenschappen De PIC16C84 Eigenschappen Pinnen Interne structuur Instructieset De PIC16F877 Eigenschappen Interne structuur. De PIC controller. 12 bit program word 14 bit program word 16 bit program word 16 bit program word. - PowerPoint PPT Presentation

Citation preview

PIC microcontrollers

PIC Microcontrollers• Families

• Eigenschappen

• De PIC16C84• Eigenschappen

• Pinnen

• Interne structuur

• Instructieset

• De PIC16F877• Eigenschappen

• Interne structuur

De PIC controller• Families

– PIC 16C5x reeks

– PIC 16Cxxx reeks

– PIC 17Cxxx reeks

– PIC 18Cxxx reeks

• Met welke hebben wij te maken ?– PIC 16C84

– PIC 16F877

– 12 bit program word

– 14 bit program word

– 16 bit program word

– 16 bit program word

PIC Microcontrollers• Families

• Eigenschappen

• De PIC16C84• Eigenschappen

• Pinnen

• Interne structuur

• Instructieset

• De PIC16F877• Eigenschappen

• Interne structuur

Eigenschappen• Harvard Architectuur

– Program en Data Memory gebruiken verschillende bus

• Long Word instructions• Single Word instructions• Single Cycle instructions• Instruction Pipelining• Reduced Instruction Set• Register File Architecture:

– bv. 16C84 heeft 36 8-bits registers

• Orthogonal (symmetric) instructions– Alle instructies kunnen op elk register gebruikt worden

RISC eigenschappen

Harvard structuur

PIC Microcontrollers• Families

• Eigenschappen

• De PIC16C84• Eigenschappen

• Pinnen

• Interne structuur

• Instructieset

• De PIC16F877• Eigenschappen

• Interne structuur

De PIC 16C84 - eigenschappen• Eigenschappen

– 35 instructies– 1K-woord EEPROM– 36 8-bit interne registers– 64 bytes 8-bit RAM– Hardware stack met 8 levels voor jumps– 4 interrupt levels

– External INT op pin RB0– TMR0 overflow– Port B (pins 7:4) change– EEPROM write

– 15 special functions hardware registers– Directe, indirecte en relatieve adressering

De PIC 16C84 - pinning• Pinning

• – 13 I/O pinnen

– 20 mA current sink LEDs direct aan te sturen

– External interrupt op RB0

– Timer en oscillator pinnen

De PIC 16C84 - memory• 2 memory blockken

– Program memory

– Data memory

• Program memory– 13 bit 8K woorden

– Slechts 1K ingevuld

– Reset vector op 0000h

– Interrupt vector op 0004h

De PIC 16C84 - memory

• Data memory verdeeld in– Special functions register (SFR)

– General purpose SRAM

– EEPROM memory

• Banked SFR– Keuze via het status register

De PIC 16C84 – program counter• Addressering in het program memory

• Program counter (13 bits) = PCH (5bit) + PCL (8bit)• PCL is read/write • PCL heeft memory boundary van 256 bytes• PCH comes from PCLATH register• Vb. 16C84 heeft 1K CALL en GOTO hebben 11 bit address• Controleer of PAGE BITS juist staan !

PIC 16C84 – PORT A• Twee poorten : PORTA en PORTB

• Selectie van Input of Output door TRIS register– TRISA en TRISB

– TRISA bit = 1 INPUT

– TRISA bit = 0 OUTPUT

• Soorten pinnen– RA3:RA0 push-pull

– RA4 open collector

PIC 16C84 – PORT B• Selectie van Input of Output door TRISB register

– TRISA en TRISB

– TRISB bit = 1 High Z

– TRISB bit = 0 OUTPUT

• Soorten pinnen– RB7:RB4 geven interrupt

PIC 16C84 – Timer• Instelling gestuurd door OPTION register• Functies:

• 8 bit read/write

• 8 bit prescaler

• Select : internal or external clock

• Interrupt on overflow

PIC 16C84 – Speciale functies• EEPROM programmeerbaar in normale werking• In-circuit serial programming• Watchdog timer• Power-up timer• Code protection• SLEEP mode voor low-current operation• Clock met crystal of goedkoop RC circuit

PIC 16C84 – programmatie• Definities

– f : register file address, gaat van 0x00 tot 0x7f

– b : bit address within an 8-bit file register

– W: Working register (Accumulator)

– d : destination• Als d=0 : result in W

• Als d=1 : result in file register (default)

– k : constant or label

PIC 16C84 – instruction set• Algemeen

• Bit-oriented

PIC 16C84 – instruction set• Literal and Control

• Voorbeeld: wis geheugen van 0x20 tot 0x2Fmovlw 0x20 ; initialize W register B0010 0000movwf FSR ; put in FSR register

LOOP clrf INDF ; clear indirect with FSRincf FSR ; increment FSR registerbtfss FSR,7 ; bit 7 test, skip if setgoto LOOP ; if NO, goto LOOP

CONTINUE: ; if YES, continue:

PIC 16C84 – Vb. instructies• MOVF

reg7 equ 07hW equ 0

movf reg7,W

PIC 16C84 – Vb. instructies• MOVWF

PIC 16C84 – Vb. instructies• MOVLW

PIC 16C84 – Vb. gebruik• Verwissel inhoud van w met de inhoud van reg

• Kortere methode

movwf temp1 ;save wmovf reg,W ;save regmovwf temp2movf temp1,W ;old (w) -> regmovwf regmovf temp2,W ;old (reg) -> w

; w = 1010 1010 AA; reg = 0101 0101 55

xorwf reg,F ;w = AA, reg = FFxorwf reg,W ;w = 55, reg = FFxorwf reg,F ;w = 55, reg = AA

PIC 16C84 – toepassing 1: seriële poort

PIC 16C84 – toepassing 2: LCD display

PIC Microcontrollers• Families

• Eigenschappen

• De PIC16C84• Eigenschappen

• Pinnen

• Interne structuur

• Instructieset

• De PIC16F877• Eigenschappen

• Interne structuur

De PIC 16F877• Complexer• 40 pins IC• 8 K Woord (14 bit)

Program memory• 368 Bytes data memory• 256 Bytes EEPROM• Ook hier slechts 35

instructies.• Speciale functies:

– 10 kanaals 8-bit analog input– SPI seriële poort– USART seriële

communicatie– Brown-out detection– In-circuit programmable

PIC 16F877 - geheugen• Program Memory

• Banked memory: instelbaar met het STATUS register

PIC 16F877 - geheugen• Data Memory

PIC 16F877 – I/O poorten• 3 Input/Output poorten

– PORT A : • push-pull op RA3:RA0 en RA5

• Open collector op RA4

PIC 16F877 – I/O poorten• PORT B :

• High Z inputs

• RB7:RB4 aangesloten op de interrupt

PIC 16F877 – I/O poorten• PORT C :

• TRIS C=1 : INPUT

• TRIS C=0 : OUTPUT

• Meerdere functies. O.a. Schmitt trigger

PIC 16F877 – I/O poorten• Andere poorten:

– PORT D/TRIS D: Schmitt-trigger input buffer

– PORT E/TRIS E : Schmitt-trigger input buffers

– Analoge ingangen: verspreid over andere poorten