Blame | Last modification | View Log | Download
#include 16C84.INCorg 0goto Start;--------------------org 4;--------------------goto Start#include Delay.asmStart:page1movlw 00000000B ; inicializace citace a prescalerumovwf TMR0movlw 00000000B ; konfigurace prerusenimovwf INTCONpage1movlw 11110011B ; nastaveni portu na vstup nebo vystupmovwf PORTA ; 1=vstup 0=vystupmovlw 11110001Bmovwf PORTBbsf TMR0, 7 ; vypni pull-up na PORTB (OPTION registr)page0clrw ; vynulovani portumovwf PORTAmovwf PORTBbsf PORTA, 3 ; Pull-Up na tlacitkabcf PORTB, 1 ; zhasnuti LEDbcf PORTB, 2bcf PORTB, 3MainLoop:;movlw 2;movwf volani ; Nastavi pocet volani procedury vybito;bsf PORT ; Nabiti kondenzatoru1;bsf PORT ; Nabiti kondenzatoru2dal:;btfss PORTA, 1 ; Test kondenzatoru1;call vibitobsf PORTB, 3bsf PORTB, 4Delay 100;bsf PORTA, 3;Delay 250;bcf PORTA, 3bsf PORTA, 2Delay 250bcf PORTA, 2Delay 250Delay 250Delay 250Delay 250Delay 250bsf PORTA, 2Delay 250bcf PORTA, 2;bsf PORTA, 3;Delay 250bcf PORTA, 3bcf PORTB, 3bcf PORTB, 4Delay 250;btfss PORTB, 6 ; Test kondenzatoru2;call vibito;incf Ramec, f;goto dalgoto MainLoop;---------------Sinchro:;bsf PORTB, 1;call Delay10us;call Delay10us;call Delay10us;bcf PORTB, 1 ; 1. impuls (30ms);call Delay10us;call Delay10us;call Delay10us;bsf PORTB, 1;call Delay10us;call Delay10us;bcf PORTB, 1 ; 2. impuls (20ms);call Delay10us;call Delay10us;bsf PORTB, 1;call Delay10us;bcf PORTB, 1 ; 3. impuls (10ms);call Delay10us;return;-------------------------Protokol:movlw 8movwf Bity ; nastaveni slovacall SinchroVysBit:btfss Ramec, 0call frek0call frek1Rotace:rrf Ramec, fdecfsz Bity, fgoto VysBitreturn;-------------------------frek0:; 2000 Hz 45 impulsu;-------------------------frek1:; 1500 Hz 60 impulsu;-------------------------vibito:movlw 4movwf CT1 ; uvolneni mistazapis:rlf Ramec, fdecfsz CT1, fgoto zapisdecfsz volani, freturncall Protokolcall MainLoop;----------------------------; Definice promenych;----------------------------cblockBityRamecvolaniXXXendcend