Subversion Repositories svnkaklik

Compare Revisions

Ignore whitespace Rev 5 → Rev 6

/programy/ASM/řízení auta/chodba/main2.asm
0,0 → 1,147
#include 16C84.INC
 
#define debug 0
 
Dozadu EQU 1
Dopredu EQU 2
;--------------------------------------
Vpred_ON macro
bsf PORTA, Dopredu
endm
;--------------------------------------
Vpred_OFF macro
bcf PORTA, Dopredu
Delay 50
bsf PORTA, Dozadu ;zabrzdi
Delay 125
bcf PORTA, Dozadu
endm
 
;--- Macro na spozdeni 1ms az 255ms ---
Delay macro _ms
movlw _ms
movwf CT2
call Delay1ms
endm
;--------------------------------------
Vpred macro d
movlw d ; x dlazdicek
movwf CT3
call Vpred0
endm
 
;--------------------------------------
org 0
 
goto Start
;--------------------
org 4
;--------------------
Start:
page1
movlw 00000000B ; inicializace citace a prescaleru
movwf TMR0
movlw 00000000B ; konfigurace preruseni
movwf INTCON
 
page1
movlw 11110001B ; nastaveni portu na vstup nebo vystup
movwf PORTA ; 1=vstup 0=vystup
movlw 11110110B
movwf PORTB
 
bsf TMR0, 7 ; vypni pull-up na PORTB (OPTION registr)
 
page0
 
clrw ; vynulovani portu
movwf PORTA
movwf PORTB
 
bsf PORTB, 3 ; Pridrz napajeni
 
bsf PORTA, 3 ; Rozsvit LED
Delay 250
bcf PORTA, 3 ; Zhasni LED
 
MainLoop:
Vpred 3
Delay 50
call Vlevo
bcf PORTB, 3 ; Vypni napajeni
Smycka:
goto Smycka
;----------------
 
;--- Popojede o n dlazdic vpred ---
Vpred0:
Vpred_ON
Delay 175
bsf PORTB, 0
Delay 15
bcf PORTB, 0
Delay 175
Vpred_OFF
Delay 50
decfsz CT3, f
goto Vpred0
return
 
;--- Spozdeni v nasobcich 10ms ----
Delay1ms:
IF debug == 0
movlw 100 ; 1 ms
movwf CT1
call Delay10us
 
decfsz CT2, f
goto Delay1ms
ENDIF
return
 
;--- Spozdeni v nasobcich 10us ----
Delay10us: ; Prodleva (CT1 * 10us)+3us
nop
nop
nop
nop
nop
nop
nop
decfsz CT1, f
goto Delay10us
return
;-----------------------------------
Vpravo:
bsf PORTB, 0
Delay 250
Delay 50
bcf PORTB, 0
return
 
;---------------------------------------
Celemvzad:
call Vpravo
bsf PORTB, 0
Delay 125
bcf PORTB, 0
return
;---------------------------------------
Vlevo:
call Vpravo
bsf PORTB, 0
Delay 250
Delay 75
bcf PORTB, 0
return
;----------------------------
; Definice promenych
;----------------------------
cblock
 
CT1
CT2
CT3
endc
 
end