Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

;

;
;
;
;
;
;
;
;
;
;
;
;
;

============================================================
Veleuili te u Vara dinu
Hallerova Aleja 5, 42000 Vara din www.velv.hr
Studij Elektrotehnika
Kolegij: Graa Raunala
Izradio: Mihael Kukec, dipl.in .ra.
06.03.2006.
============================================================
Primjeri 1
============================================================
============================================================
Pretprocesorske naredbe
============================================================
PROCESSOR 16F84A
#include "p16f84a.inc"
ERRORLEVEL -224
__CONFIG _CP_OFF & _XT_OSC & _PWRTE_ON & _WDT_OFF

org
0x0;
; ============================================================
; EQU - Pridjeljuje adresnoj lokaciji identifikator
; ============================================================
VARA
EQU
0x0C
; VARA je mem. lokacija 0x0C
; ============================================================
; Postavljanje portova (ulazni/izlazni)
; RB6 i RB7 ulazni, RB0-RB5 izlazni
; ============================================================
nop
bsf
STATUS, RP0
; Prebacivanje u BANK1
clrf
TRISB
; RB0-RB7 izlazni
bsf
TRISB,6
; RB0 ulazni
bsf
TRISB,7
; RB1 ulazni
bcf
OPTION_REG,7
;
bcf
STATUS, RP0
; Prebacivanje u BANK0
clrf
PORTB
; ============================================================
; Inicijalizacija
; Postavljanje poetne vrijednosti u broja VARA
; ============================================================
movlw 0x0
movwf VARA
; ============================================================
; Provjera tipkala
; RB6 - Tipkalo za +1
; RB7 - Tipkalo za -1
; ============================================================
pr1
btfsc PORTB,6
; Provjera tipkala na RB0
goto
pr2
goto
cek1
pr2
btfsc PORTB,7
; Provjera tipkala na RB1
goto
pr1
goto
cek2
; ============================================================
; Poveavanje/smanjivanje vrijednosti brojaa
; ============================================================
inc
incf
VARA,F
goto
cek3
dec

decf

VARA,F

goto
cek3
; ============================================================
; Postavljanje vrijednosti na PORTB
; ============================================================
out
movf
VARA,W
movwf PORTB
goto
pr1
; ============================================================
; Postavljanje vrijednosti na PORTB
; ============================================================
cek1
nop
COUNT1 equ
COUNT2 equ
movlw
movwf

0x0D
0x0E
D'255'
COUNT2

; definiraju se dva nova registra


;
;
K -> W
;
W -> COU

NT2
nop
D'255'
movwf
petlja2 decfsz COUNT1
goto
decfsz
goto
nop
=====
nop
nop
goto
petlja1 movlw

cek2

COUNT1
petlja2
COUNT2
petlja1

; 1C
; K * 1C
L -> W
; K * 1C
W -> COUNT1
; [(L-1) * 1C + 2C] * K
; [(L-1) * 2C] * K
; (K-1) * 1C + 2C
; (K-1) * 2C
;=======================
; K*L*3C + K*4C - 1C

inc

nop

COUNT3 equ
COUNT4 equ
movlw
movwf

0x0D
0x0E
D'255'
COUNT4

; definiraju se dva nova registra


;
;
K -> W
;
W -> COU

NT2
nop
D'255'
movwf
petlja4 decfsz COUNT3
goto
decfsz
goto
nop
=====
nop
nop
goto
petlja3 movlw

cek3

COUNT3
petlja4
COUNT4
petlja3

; 1C
; K * 1C
L -> W
; K * 1C
W -> COUNT1
; [(L-1) * 1C + 2C] * K
; [(L-1) * 2C] * K
; (K-1) * 1C + 2C
; (K-1) * 2C
;=======================
; K*L*3C + K*4C - 1C

dec

nop

COUNT5 equ
COUNT6 equ
movlw
movwf

0x0D
0x0E
D'200'
COUNT6

; definiraju se dva nova registra


;
;
K -> W
;
W -> COU

NT2
nop

; 1C

petlja5 movlw

D'100'
; K * 1C
L -> W
movwf COUNT5
; K * 1C
W -> COUNT1
petlja6 decfsz COUNT5
; [(L-1) * 1C + 2C] * K
goto
petlja6
; [(L-1) * 2C] * K
decfsz COUNT6
; (K-1) * 1C + 2C
goto
petlja5
; (K-1) * 2C
nop
;=======================
=====
nop
; K*L*3C + K*4C - 1C
nop
goto
out
; ============================================================
; Zavr etak
; ============================================================
end

You might also like