Subversion Repositories svnkaklik

Compare Revisions

Regard whitespace Rev 5 → Rev 6

/programy/ASM/prenos/servo.asm
0,0 → 1,163
#include 16C84.INC
 
org 0
 
goto Start
;--------------------
org 4
;--------------------
 
Start:
page1
movlw 00000000B ; inicializace citace a prescaleru
movwf TMR0
movlw 00000000B ; konfigurace preruseni
movwf INTCON
 
page1
movlw 11110111B ; nastaveni portu na vstup nebo vystup
movwf PORTA ; 1=vstup 0=vystup
movlw 11110001B
movwf PORTB
 
bsf TMR0, 7 ; vypni pull-up na PORTB (OPTION registr)
 
page0
 
clrw ; vynulovani portu
movwf PORTA
movwf PORTB
 
bsf PORTA, 3 ; Pull-Up na tlacitka
 
bcf PORTB, 1 ; zhasnuti LED
bcf PORTB, 2
bcf PORTB, 3
 
MainLoop:
movlw 2
movwf volani ; Nastavi pocet volani procedury vibito
;bsf PORT ; Nabiti kondenzatoru1
;bsf PORT ; Nabiti kondenzatoru2
dal:
btfss PORTA, 1 ; Test kondenzatoru1
call vibito
bsf PORTB, 2
call Delay10ms
call Delay10ms
call Delay10ms
call Delay10ms
call Delay10ms
bcf PORTB, 2
call Delay10ms
call Delay10ms
call Delay10ms
call Delay10ms
call Delay10ms
 
bsf PORTB, 2
call Delay10ms
call Delay10ms
call Delay10ms
call Delay10ms
call Delay10ms
bcf PORTB, 2
 
 
 
 
btfss PORTB, 6 ; Test kondenzatoru2
call vibito
incf Ramec, f
goto dal
;---------------
 
Delay10us: ; Prodleva (DELAY10 * 10us)+3us
nop
nop
nop
nop
nop
nop
nop
decfsz CT1, 1
goto Delay10us
return
;-------------------------
Sinchro:
bsf PORTB, 1
call Delay10ms
call Delay10ms
call Delay10ms
bcf PORTB, 1 ; 1 impuls (30ms)
call Delay10ms
call Delay10ms
call Delay10ms
bsf PORTB, 1
call Delay10ms
call Delay10ms
bcf PORTB, 1 ; 2 impuls (20ms)
call Delay10ms
call Delay10ms
bsf PORTB, 1
call Delay10ms
bcf PORTB, 1 ; 3 impuls (10ms)
call Delay10ms
return
;-------------------------
Delay10ms:
movlw 100
movwf CT2
call Delay10us
decfsz CT2, f
goto Delay10ms
return
;-------------------------
Protokol:
movlw 8
movwf Bity ; nastaveni slova
call Sinchro
VysBit:
btfss Ramec, 0
call frek0
call frek1
rrf Ramec, f
decfsz Bity, f
goto VysBit
return
 
;-------------------------
frek0:
;-------------------------
frek1:
;-------------------------
vibito:
movlw 4
movwf CT1 ; uvolneni mista
zapis:
rlf Ramec, f
decfsz CT1, f
goto zapis
decfsz volani, f
return
call Protokol
call MainLoop
;----------------------------
; Definice promenych
;----------------------------
 
cblock
 
CT1
CT2
Bity
Ramec
volani
XXX
 
endc
 
end