PIC16F84 MK-də SPR registrlərin tipləri və verilənlər yaddaşının strukturu.Taymerlərin programlaşdırılması.

Презентация:



Advertisements
Похожие презентации
Microchip firmasından PIC16F84 tipli MK-nin daxili strukturu.
Advertisements

PIC16F84 MC üçün Assembler əmrləri. PIC16F84 MC üçün Assembler proqramlarının strukturu və daxili əmr kodunun strukturu Hexadecimal koda çevrilməsinin.
PIC16F84 MK-də SPR registrlərin tipləri və verilənlər yaddaşının strukturu.Taymerlərin programlaşdırılması.
PIC16F84 MK-də kəsilmənin təşkili. PIC16F84 MK-də kəsilmənin təyinatı və yerinə yetirilməsi PIC16F84 MK təməlində yaradılmış qurğularda baş verən daxili.
Транксрипт:

PIC16F84 MK-də SPR registrlərin tipləri və verilənlər yaddaşının strukturu.Taymerlərin programlaşdırılması

PIC16f84 M K-də daxili verilənlər yaddaşının strukturu verilənlər yaddaşı 2 bank a ayrılır və strukturu aşağıdakı hissələrdən ibarətdir : SPR -lər 0x0B və ox8B ünvanlarına qədər ; qalan hissələrdə GPR- lər 68B;EEPROM -32B hər bankda olmaqla copy TMR0 timer-sayğac 8 bit Flags(C,DC,Z,TO,RP,IRP) TO(time-out) – TMR0dolması, RP-bank seçimi portA buffer,8bit portB buffer,8bit SPR 0x00 0x03 0x4 F 8 bit Bank0 TMR0 STATUS PORTA PORTB 0x0B EEPROM 32B 0x01 0x05 0x06 0x0C 68 GPR (SRAM ) INTCON... 0x50 0x7F... 0x80 0x81 0x8B 8 bit Bank1 OPTION TRISA TRISB INTCON EEPROM 32B 0xCF 0x85 0x86 68 GPRs (SRAM) TMR0 və WDT taymerlər üçün idarə register,8 bit portA-nın istiqamətinin seçimi,8bit Kəsilmənin idarəsi register,8bit 0x8C... STATUS 0x83 FSR INDF EEADR EECON1 EECON2 INDF FSR PCL EEPROM idarə register,8bit Dolayı(indirect) ünvanlaşma üçün portB-nın istiqamətinin seçimi,8bit fEEPROM üçün ver./ünvan registr,8 bit PCL Proqram sayğacın kiçik baytı Dolayı(indirect) ünvanlaşmagöstəricisi 0x02 0x04 0x08 EEDADA 0x09 Kəsilmənin idarəsi register,8bit 0x89 0x88 0xFF

STATUS registrinin daxili strukturu STATUS registr i bank0 and bank1 -də yerləşir ki,proqramin hər bir yerindən ona asanlıqla müraciət etmək olsun STATUS registr inin bitləri aşağıdakıları göstərir : Istifadə edilən bankların sayı və cari bankın seçimi - IRP( indirect bank address),RP1/0-program da cari bank nömrəsi kodu.. Başlanğıc vəziyyət : IRP=0,RP1=0,RP0=0 WDT Taymerdən Time-out (dolma) vəziyyəti-TO Hesabi əməliyyatlardan sonrakı vəziyyətlər–C-carry,DC-decimal carry,Z- sıfır nəticə.Bunlar hesabi əməliyyatlardan sonra avtomatik dəyişir,lakin user tərəfindən yalnız oxuna bilər WDT-den Time-out 1- qida verilende ve CLWDT,SLEEP emrlerile 0- WDT-de FFH-dan 00H-a keçəndə Aşağı gərginlik 1-CLRWDT 0-SLEEP 0 7 C DC ZPD TO RP0 RP1IRP Dolayı ünvan halında bank seçimi 0-bank0,1 1-bank2,3 Birbaşa ünvan halında Ban k seçimi 00-bank0 01-bank1 10-bank2 11-bank3 STATUS User dəyişmir Toplama əməliyyatında yüksək bitdən köçürmə Onluq Toplama əməliyyatında tetrada arası köçürmə 0 qiymətli nəticə

OPTION registrinin daxili strukturu OPTION register-də bitlərin təyinatı PS0-PS2- tezlik bölücüsü (PSV) qiymətinin kodlaşması PSA- PSV-nin (TMR0/WDT)-a aid edilməsi TOCS- TMR0 üçün daxili və xarici clok siqnalları seçimi 0 7 PS0 PSA TOSETOCS PortB-nin 1- OFF 0-on RBPU PSV ədədi TMR0,WDT üçün PS1PS2 0-PSV –nin aid edilməsi TMR0-a 1-WDT RA4/TOCK.-dən Xar.clok sign aktiv cəbhə – 1 INTDEG PB0/INT pinində sign. aktiv cəbhə – 1 OPTION TMR0-da clok mənbəyi 1-xarici. R A4/TOCK-dan. 0-daxili əmrlər dövründən

TRISA/TRISB registrlərin strukturu TRISA/TRISB –(PORTA/PORTB)port xətlərinin istiqamətini təyin edir: 1-giriş,0-çıxış TRISA/TRISB çıxış portA/B Giriş portA/B

TMR0/WDT taymerləri üçün PSV (tezlik bölücüsü) qiymətləri Prescaler value(PSV) PS0-PS2 Tezlik bölücüsü 1/PSV TMR0 timer Üçün Tezlik bölücüsü 1/PSV WDT timer Üçün 000 1/2 1/ /4 1/ /8 1/ /16 1/ /32 1/ /64 1/ /128 1/ /256 1/128

TMR0 və WDT taymerlərin clock mənbəyinə bağlanması, PSV-nin TMR0 və ya WDT -ə aid edilməsi sxemi TMR0 register INTCON(2) TOIF flag=1 Wait 2 *T instr For sinshron. PSV TMR0/WDT üçün PSA=1 PS(0-2) WDT sayğac 8/16 bit PSA=1 WDT-nin dolması STATUS(4) TO bit =1 T gec =18ms-2.3s Daxili əmrlər dövrü F inst =F CLK /4 Clockdaxil edən məntiqi sxem Xarici clock sign. RA4/T0CK1 TOSE=1 TOCS= 1 WDT üçün daxili clok generatoru PSA=0 TOCS=0 PS(0-2)

PIC16F84 MK-də clok siqnalları,daxili əmrlər dövrü,TMR0-da sayma dövrünün təyini F OSCLK =4MHs OSCLK clock sign. T OSCLK =0.25mks-clocking period T instr =1mks- daxili əmrlər dövrü periodu Daxili əmrlər dövrü signalları F instr = F OSCLK /4 =1MHs;T instr =1mks TMR0 CLK = T instr x PSV-sayma periodu ; PSV=4; TMR0 CLK =1mks x4=4mks TMR0 CLK =4mks

TMR0 taymerini dolması(TO) müddətinin təyini TMR0-da daxili əmrlər dövrü siqnalları sayılarkən : TMR0 delay = TMR0 CLK xCW; CW(count word)=256 – TMR0 primary ; When TMR0 primary =00H then: TMR0 delaymax = TMR0 CLKmax xCW max ; TMR0 CLKmax = T instr xPSV max = 1mks x256=256mks; TMR0 delaymax =256 x (256-0)=65.5ms; TMR0 delaymin = TMR0 CLKmin xCW min ; TMR0 CLKmin = T instr xPSV min = 1mksx2=2mks; CW min = =1;TMR0 delaymin =2mks.

WDT –dan TMR0-a rpoqramlı keçid PSV ədədiniun TMR0- a aid edilməsi üçün ardıcıllıq TMR0-a müraciətdən öncə data memory-də Bank0 keçid – BCF STATUS,RP0- STATUS-da RP0 bitini 0 et CLR TMR0 START PSV=111(256) qiymətini TMR0 taymerinə aid et MOVWL 0x07 ; 0f= ; PSA=0; MOVWF OPTION ; Data memor-də Bank0 keçid – BCF STATUS,RP0; STATUS-da RP0 bitini 0 et OPTİON registrinə müraciətdən öncə data memory-də Bank1-ə keçid – BSF STATUS,RP 0-STATUS-da RP0 bitini 1 et

TMR0–dan WDT -a rpoqramlı keçid PSV ədədiniun - WDT a aid edilməsi üçün ardıcıllıq PSV=111(128) kodunu OPTION reg.-nə yüklə və onu WDT-ə aid et MOVWL ox0F; 0F= , PSA=1 ; MOVWF OPTION ; CLR WDT Data memory-d bank0-a ke,id – BCF STATUS,RP0 START OPTİON reg-nə müraciətdən öncə data memory-də Bank1-ə keçid– BSF STATUS,RP0