Menu

Daxil olun Qeydiyyat

Mikrokontroller Texnikasi

MPLAB İDE mühitində zaman gecikmələri üçün Assembler proqramının qurulması və icrası

MPLAB İDE mühitində zaman gecikmələri üçün Assembler proqramının qurulması və icrası

MK-nin idarə etdiyi obyektlər üçün müxtəlif zaman parametrli siqnalların hasil edilməsi lazım gəldiyindən idarə alqoritmləri proqramlaşdırılarkən zaman gecikmələrinin gerçəkləşdirilməsi əsas məsələ hesab edilir.

Proqramda zaman gecikmələrinin hasil edilməsi iki yolla mümkündür:

MK-nin daxilindəki taymerin qurulması

Süni proqram dövrləri yaratmaq

Aşağıdakı misalda 2-ci üsuldan istifadə etməklə zaman gecikməsinin yaradılması göstərilir.Bunun üçün proqrama əlavə C1 dəyişəni daxil edilərək ona ilkin olaraq 0FH qiyməti mənimsədilir.Şərti dekrement əməliyyatından istifadə etməklə dövr yaradılır.C1-nin qiyməti “0” olana qədər dekrement edilərək nəticə C1-ə mənimsədilir.

Bu üsulla yaradılan zaman gecikməsinin müddəti dövr daxilində əmrlərin icrasına sərf edilən zaman qəbul edilir.MK-nin hər bir əmr dövründə 1 əmrin icra edildiyini nəzərə alsaq ,onda Tgec= Nx KxTins olur.Burada N- dövr daxilində əmrlərin sayı, K-dövrlərin sayı,Tins isə 1 əmr dörüdür.Baxılan misalda N=2,K=15 olduğunu nəzərə alsaq ,onda Tgec= 2x 15xTins olur.MK-nin xarci takt siqnalları tezliyini FCLK=4MHs qəbul etsək,onda Tins=1/Fins və Fins= FCLK/4=1MHs; Tins=1mks; Tgec= 2x 15x 1mks=30mks.Beləliklə, aşağıdakı proqramda 30mks zaman gecikməsi proqramdakı dövrlər hesabına təmin edilir.Bu üsuldan növbəti misalda LED-nin yanma müddətinin idarə edilməsi alqoritmində də istifadə edilir.

list p=16f84;

include p16f84.inc

c1 equ 0x0C

org 0x00

reset goto start

org 0x04

start movlw 0x0f

movwf c1

loop decfsz c1,1

goto loop

goto start

end

5.3.MPLAB İDE MÜHITINDƏ LED-LƏRIN IDARƏSI ÜÇÜN ASSEMBLER PROQRAMININ QURULMASI VƏ ICRASI

LIST P=16F84

INCLUDE P16F84.INC

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

COUNT1 EQU 0X0C

COUNT2 EQU 0X0D

LEDSET EQU 0X0E

W_TEMP EQU 0X0F

STATUS_TEMP EQU 0X10

ORG 0X000

GOTO MAIN

ORG 0X004

MOVWF W_TEMP

MOVF STATUS,0

MOVWF STATUS_TEMP

MOVF STATUS_TEMP,0

MOVWF STATUS

SWAPF W_TEMP,0

SWAPF W_TEMP,0

RETFIE ;

MAIN BCF STATUS,RP0

CLRF PORTA

CLRF PORTB

BSF STATUS,RP0

MOVLW 0X1D

MOVWF TRISA

MOVLW 0X05

MOVWF TRISB

BCF OPTION_REG,NOT_RBPU

BCF STATUS,RP0

CLRF LEDSET

LOOP MOVLW 0X02

XORWF LEDSET,1

MOVF LEDSET,0

MOVWF PORTA

MOVLW 0XFF

MOVWF COUNT1

CYCLE1 MOVLW 0XFF

MOVWF COUNT2

CYCLE2 DECFSZ COUNT2,1

GOTO CYCLE2

DECFSZ COUNT1,1

GOTO CYCLE1

GOTO LOOP

END

5.4.MPLAB İDE MÜHITINDƏ TAYMERDƏN ISTIFADƏ EDƏRƏK LED-LƏRIN IDARƏSI ÜÇÜN ASSEMBLER PROQRAMININ QURULMASI VƏ ICRASI

LIST P=16F84

INCLUDE P16F84.INC

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC; XT -;FCLK =4MHS,FINS =1MHS,T INS =1MKS,TTMR0CLK = T INS XPSV=1MKS ;X256=256MKS,TDEL = TTMR0CLK X32=256X32=8.2MS

ORG 0X000

GOTO MAIN

MAIN

BCF STATUS,RP0

CLRF TMR0

CLRW

BSF STATUS,RP0

CLRF TRISB

START

CLRWDT

MOVLW 01010111 ;RBPU=0,INTED=1,TOCS=0,TOSE=1PSA=0,PS(0-<;2)=111(256)

MOVWF OPTION_REG

BCFSTATUS,RP0

CLRF PORTB

LEDON

BSF PORTB,0

CALL TEST

LEDOF

BCF PORTB,0

CLRWDT

CLRF TMR0

CLRW

MOVLW 01010111 ;RBPU=0,INTED=1,TOCS=0,TOSE=1PSA=0,PS(0-;2)=111(256)

MOVWF OPTION_REG

CALL TEST

GOTO LEDON

TEST

BTFSS TMR0,5

GOTO TEST

RETURN

END

5.5.MPLAB İDE MÜHITINDƏ 8-SEQMENTLI LED-LƏRDƏ SIMVOLLARIN ƏKS ETDIRILMƏSI ÜÇÜN ASSEMBLER PROQRAMININ QURULMASI VƏ ICRASI

LIST P=16F84 ;

INCLUDE P16F84.INC

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC; XT -;FCLK =4MHS,FINS =1MHS,T INS =1MKS,TTMR0CLK = T INS XPSV=1MKS ;X256=256MKS,TDEL = TTMR0CLK X32=256X32=8.2MS

ORG 0X000

GOTO MAIN

MAIN

BSF STATUS,RP0

CLRF TRISB

BCF OPTION_REG,NOT_RBPU

BCF STATUS,RP0

CLRF PORTB

MOVLW 0X0A ; "A"

CALL TABLO

BCF STATUS,RP0

MOVWF PORTB

MOVLW 0X0B ; "B"

CALL TABLO

BCF STATUS,RP0

MOVWF PORTB

MOVLW 0X0D ; "D"

CALL TABLO

BCF STATUS,RP0

MOVWF PORTB

GOTO FINISH

TABLO

BSF STATUS,RP0

ADDWF PCL,1

RETLW 0X3F

RETLW 0X06

RETLW 0X5B

RETLW 0X4F

RETLW 0X66

RETLW 0X6D

RETLW 0X7D

RETLW 0X07

RETLW 0X7F

RETLW 0X6F

RETLW 0X77

RETLW 0X7C

RETLW 0X39

RETLW 0X5E

FINISH

END

5.6.MPLAB İDE MÜHITINDƏ EEPROM YADDAŞINA MÜRACIƏT ÜÇÜN ASSEMBLER PROQRAMININ QURULMASI VƏ ICRASI

IST P=16F84 ; EEPROM YAZI

INCLUDE P16F84.INC

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC; XT -;FCLK =4MHS,FINS =1MHS,T INS =1MKS,TTMR0CLK = T INS XPSV=1MKS ;X256=256MKS,TDEL = TTMR0CLK X32=256X32=8.2MS

ORG 0X000

GOTO MAIN

MAIN

BCF STATUS,RP0

CLRF PORTB

MOVLW 0X3E

MOVWF EEADR

MOVLW 0XCD

MOVWF EEDATA

BSF STATUS,RP0

BSF INTCON,GIE

BSF INTCON,EEIE

BCF OPTION_REG,NOT_RBPU

EEWRITE

BSF EECON1,WREN

MOVLW 0X55

MOVWF EECON2

MOVLW 0XAA

MOVWF EECON2

BSF EECON1,WR

TEST1:

BTFSS EECON1, EEIF

GOTO TEST1

BCF EECON1, WR

BSF EECON1,RD

TEST2: BTFSC EECON1,RD

GOTO TEST2

BCF STATUS,RP0

MOVF EEDATA,0

MOVWF PORTB

END

MPLAB İDE MÜHITINDƏ EEPROM YADDAŞINDAN OXU ÜÇÜN ASSEMBLER PROQRAMININ QURULMASI VƏ ICRASI

LIST P=16F84 ;

INCLUDE P16F84.INC

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC; XT -;FCLK =4MHS,FINS =1MHS,T INS =1MKS,TTMR0CLK = T INS XPSV=1MKS ;X256=256MKS,TDEL = TTMR0CLK X32=256X32=8.2MS

ORG 0X000

GOTO MAIN

MAIN

BCF STATUS,RP0

CLRF PORTB

MOVLW 0X3E

MOVWF EEADR

BSF STATUS,RP0

CLRF TRISB

BCF OPTION_REG,NOT_RBPU

BSF EECON1,RD

TEST

BTFSC EECON1,RD

GOTO TEST

BCF STATUS,RP0

MOVF EEDATA,0

MOVWF PORTB

END

 


Bizi dəstəkləyənlər