pic mikrokontroller loeng 4
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 PresentationTRANSCRIPT
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