меморијата на микроконтролерот PIC16F84 Организација на меморијата
PIC16F84има две одвоени
мемории: програмска и податочна Програмска меморија
Програмската меморија е изработена во флеш
технологија што овозможува програмирање на микроконтролерот повеќе пати, дури и кога е вграден во некој состав. Има големина од 1KB што значи има 1024 локации со ширина од 14 битови и се наоѓа на адреси од 00h до 3FFh. Нултата локација е резервирана за ресет, а четвртата локација за прекин (interrupt) Програмската магистрала е со широчина од 14 бити и таа во себе содржи 8-битен податок и 6-битна инструкција На сликата е прикажана мапата на програмската меморија заедно со програмскиот бројач и таканаречените стек-нивоа (ги има 8) Програмата во оваа меморија се внесува сериски, бит по бит. За внесување потребни се компјутер, програматор, кабел за поврзување на програматорот со паралелната порта на компјутерот, корисничка програма напишана во соодветен софтвер(MPLAB, FPP) Програмски бројач Овој регистер ја содржи адресата на инструкцијата што треба да се изврши. После секое извршување на инструкциите, се зголемува за еден. Тоа е 13-битен регистер, кој адресата ја добива од PCLATH и PCL регистрите Стог Ги чува повратните адреси при операции со прекин или при скок во потпрограма, за да процесорот знае од каде да продолжи со извршување на инструкциите 13-битен е, со 8 нивоа(8 мемориски локации) Податочна меморија Податочната мемoрија се состои од EEPROM и RAM меморија. EEPROM меморијата има 64 локации со ширина од 8 бита на кои се пристапува индиректно преку EEADR и EEDATA регистрите. EECON е 5-битен регистар кој содржи контролни битови поврзани со читањето и пишувањето. Нејзината содржина не се губи при прекин на напојувањето Во неа се чуваат податоци добиени како резултат од извршувањето на некоја корисничка програма пр. податок за бројот на паркирани возила на еден паркинг во текот на едно деноноќие пр. податоци добиени од некоја оддалечена метеролошка станица (температура, притисок, количество врнежи, зрачење на сонцето и сл.) EEPROM меморија RAM меморија RAM меморијата има 68 8-битни локации кои во мемориската мапа го завземаат просторот од 0x0C до 0x4F локации.Локациите на RAM меморијата се викаат регистри за општа намена (GPR-General purpose registers) SFR(Special function registers) се регистри со специјална намена и тие се директно врзани за работата на микроконтролерот. Тие ги завземаат првите 12 локации во банката 0 банката 1. Уште една поделба на податочната меморија Податочната меморија уште се дели на две банки, BANK0 и BANK1. Банките се одбираат преку RP0 битот во статус регистерот.Додека е избрана нултата банка, не може да се пристапува до локациите од првата банка. На пример:
Bcf STATUS, RP0 – избрана е банката 0
Bsf STATUS, RP0 – избрана е банката 1 Директно адресирање
Адресата за пристап до RAM локацијата
се содржи во самата инструкција Се добиваат 9-битни адреси. Со првите 2 бита се бира една од двете банки, а со другите 7, една локација од веќе селектираната банка Индиректно адресирање Адресата се наоѓа во специјалниот регистер FSR кој заедно со седмиот бит од статус регистарот IRP формираат адреса за селекција една локација од RAM-от. Податокот може да се прочита и од регистарот INDF пр.: нека општиот регистар со адреса 0FH го содржи податокот 20H. Во FSR регистарот ќе се запише адресата 0FH, а во INDF податокот 20H. Податокот може да се прочита и од адресата 0FH и од регистарот INDF.