PIC mikrokontroller Loeng 4

Preview:

DESCRIPTION

PIC mikrokontroller Loeng 4. Alar Ainla 5.oktoober.2004. Käsud (2). Kuidas k äsud paiknevad mälus ?. Käsukoodid. Pisikene ülesanne. Korrutada 00011001*00001010=? Vastus 11100001=225=25*9 Kuidas realiseerida korrutamist? Kuidas realiseerida jagamist?. Mäluarhitektuurid. - PowerPoint PPT Presentation

Citation preview

PIC mikrokontrollerLoeng 4

Alar Ainla

5.oktoober.2004

Käsud (2)

Kuidas käsud paiknevad mälus ?

Käsukoodid

Pisikene ülesanne• Korrutada 00011001*00001010=?• Vastus 11100001=225=25*9• Kuidas realiseerida korrutamist?• Kuidas realiseerida jagamist?

Mäluarhitektuurid• Vaatleme seda, kuidas protsessor näeb ja

kasutab mälu!• Muutuja mälu• Programmi mälu• Stack (pinu) mälu• Data EEPROM

Muutuja mälu• Muutuja mäluruumis on ka

erifunktsioonidega registrid• Käsu tasemel erifunktsioonidega registrid

ei eristu tavalisest mälupesast• Hetkel PIC16 seerias ülimalt 368baiti mälu • Ka meie PICil (PIC16F876A) on 368baiti

mälu• Kui sellele lisada veel registrid, siis on vaja

vähemalt 9 biti aadressiks ... :S

Muutuja mälu (2)• Lahendus!!!• Mälu on jagatud

bankadeks ja nende valimiseks on kuskil bitid

Muutuja mälu• SFR• GPR• CommonRAM

Muutuja mälu adresseerimine

• Otsene (direct)• Viidaga (indirect)

indirect adresseerimine• Aadress peab

olema kirjutatud spetsiaalsesse registrisse (FSR 0x04)

• Tulemuse lugemine toimub teisest spetsiaalsest registrist (INDF 0x00)

• IRP (1-2/2-3 bank)

Adresseerimise mehhanism

Pisikene ülesanne

Programmi mälu• Programmi mälus on programm!• Meie PICil on 14336 baiti = 8192x14bitti• Selleks et seda addresseerida on vaja 13bitti ...!• 13bitine loendur (PC)• Programmis (goto, call) ülimalt 11bitti• On 2k käsused blokid. (0-7FF,800-FFF,1000-17FF,1800-

1FFF)• PCLATH (Program Counter Latch High).• Järjestik programm läheb algusest kuni lõpuni• Kui vähem mälu siis liiga kaugele

adresseeriminewraparound

Programmi mälu (2)

Programmi mälu (3)• Reset vector 0x0000 (ja PCLATH=0)• Interrupt vector 0x0004 (PCLATH

muutumatu)• Kallibratsiooni informatsioon (retlw)

Programmi loendur (PC)• 13-bit• Madalam bait on PCL• Kõrgem on PCH (muudetav vaid läbi

PCLATH)

Programmi loendur (PC)(2)

GOTO arvutamine• Näiteks ADDWF PCL

Stack