Subversion Repositories svnkaklik

Rev

Blame | Last modification | View Log | Download

#include 16C84.INC

#define debug   0

#include delaymac.inc

Dozadu  EQU     1
Dopredu EQU     2

;--- Macro na spozdeni 1ms az 255ms ---
Delay   macro   ms
        Delay1ms ms
;       movlw   ms
;       movwf   _delay_ms
;       call    _delay1ms
        endm
;--------------------------------------
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
;--------------------------------------
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   12
        Delay   50
        call    Celemvzat
        Delay   50
        Vpred   8
        Delay   50
        call    Vlevo
        Vpred   8
        Delay   50
        Vpred   1
        Delay   50
        call    Vpravo
        Delay   50
        Vpred   8
        Delay   50
        call    Vlevo
        Delay   50
        Vpred   3
        call    Celemvzat
        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

Vpravo:
        bsf     PORTB, 0
        Delay   250
        Delay   60
        bcf     PORTB, 0
        return

;---------------------------------------
Celemvzat:
        call    Vpravo
        bsf     PORTB, 0                        
        Delay   125                             
        bcf     PORTB, 0                        
        return
;---------------------------------------
Vlevo:
        call    Vpravo
        bsf     PORTB, 0                
        Delay   250
        Delay   70              
        bcf     PORTB, 0        
        return

#include delayfce.inc

;----------------------------
; Definice promenych 
;----------------------------
        cblock
        CT3             ;Citac poctu dlazdicek
        endc

        end