Blame | Last modification | View Log | Download
#include 16C84.INC#define debug 0Dozadu EQU 1Dopredu EQU 2;--------------------------------------Vpred_ON macrobsf PORTA, Dopreduendm;--------------------------------------Vpred_OFF macrobcf PORTA, DopreduDelay 50bsf PORTA, Dozadu ;zabrzdiDelay 125bcf PORTA, Dozaduendm;--- Macro na spozdeni 1ms az 255ms ---Delay macro _msmovlw _msmovwf CT2call Delay1msendm;--------------------------------------Vpred macro dmovlw d ; x dlazdicekmovwf CT3call Vpred0endm;--------------------------------------org 0goto Start;--------------------org 4;--------------------Start:page1movlw 00000000B ; inicializace citace a prescalerumovwf TMR0movlw 00000000B ; konfigurace prerusenimovwf INTCONpage1movlw 11110001B ; nastaveni portu na vstup nebo vystupmovwf PORTA ; 1=vstup 0=vystupmovlw 11110110Bmovwf PORTBbsf TMR0, 7 ; vypni pull-up na PORTB (OPTION registr)page0clrw ; vynulovani portumovwf PORTAmovwf PORTBbsf PORTB, 3 ; Pridrz napajenibsf PORTA, 3 ; Rozsvit LEDDelay 250bcf PORTA, 3 ; Zhasni LEDMainLoop:Vpred 3Delay 50call Vlevobcf PORTB, 3 ; Vypni napajeniSmycka:goto Smycka;----------------;--- Popojede o n dlazdic vpred ---Vpred0:Vpred_ONDelay 175bsf PORTB, 0Delay 15bcf PORTB, 0Delay 175Vpred_OFFDelay 50decfsz CT3, fgoto Vpred0return;--- Spozdeni v nasobcich 10ms ----Delay1ms:IF debug == 0movlw 100 ; 1 msmovwf CT1call Delay10usdecfsz CT2, fgoto Delay1msENDIFreturn;--- Spozdeni v nasobcich 10us ----Delay10us: ; Prodleva (CT1 * 10us)+3usnopnopnopnopnopnopnopdecfsz CT1, fgoto Delay10usreturn;-----------------------------------Vpravo:bsf PORTB, 0Delay 250Delay 50bcf PORTB, 0return;---------------------------------------Celemvzad:call Vpravobsf PORTB, 0Delay 125bcf PORTB, 0return;---------------------------------------Vlevo:call Vpravobsf PORTB, 0Delay 250Delay 75bcf PORTB, 0return;----------------------------; Definice promenych;----------------------------cblockCT1CT2CT3endcend