Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Programování mikrokontrolerů PIC 16F84A
4-ŘSVS
2
Program - cíl Zapojení maticové klávesnice (4x4)
První stlačení - desítky pulzů Druhé stlačení jednotky pulzů Zapojení krokového motoru Tak aby vykonal tolik kroků, kolik jsme si navolili na klávesnici
3
KEYB zmacknuto 10/1 Test,0=0 jednotky Desitky Set test,0 krokovat krok1 Pulzy=0 Konec krokovani MOVLW 0 Test,0=0 Pulzy=0 krok1 Pulzy=0 krok1 Pulzy=0 krok1 END
4
Program - počáteční hodn.
Na začátku je nutné vynulovat výstupy a střadač. BCF TEST,0 (jen jednou na začátku programu) MOVLW 0 MOVWF PORTA MOVWF PORTB
5
Program - princip Klávesnice - matice spínačů BSF PORTB,4
Testujeme postupně jedn. Čísla Test Tl pustit signál na výstup RB4 Otestovat RB2 (pokud bylo stlačeno, signál prošel) - Uložení do paměti (temp) BSF PORTB,4 BTFSC PORTB,1 MOVLW 1 BTFSC PORTB,2 MOVLW 2 ... MOVWF temp
6
Program - princip Klávesnice - bylo zmáčknuto vůbec něco? BTFSC temp,0
Po proběhnutí cyklu zjišťování stisknutých tlačítek Max zapisovaná hodnota do temp - 9 Stačí kontrolovat jen poslední 4 bity Pokud jsou prázdné - znovu na kontrolu tlačítek (keyb) Pokud je na nějakém hodnota - pokračovat dál BTFSC temp,0 GOTO desetkrat BTFSC temp,1 ... GOTO keyb
7
Program - princip Klávesnice - zapsání hodnoty BTFSC test,0
Zapisujeme hodnoty 1 až 99 pulzů Zapsání desítek - (první stisk) Pokud bylo zmáčknuto - zapsat číslo a vynásobit 10 krát Protože bude následovat připsání desítek, je nutné vytvořit si příznak že desítky již byly zapsány BTFSC test,0 GOTO jednotky BSF test,0 ... Následuje zápis desetinásobku čísla
8
Program - princip Klávesnice - zapsání hodnoty MOVLW 0
Desetinásobek - n-krát přičíst desítku (n - zmáčknuté číslo uložené v temp) Poté pauza, aby se nenačetlo 2krát stejná hodnota při jednom stisku MOVLW 0 nasobky ADDLW DECFSZ temp, GOTO nasobky MOVWF pulzy CALL cekej GOTO keyb
9
Program - princip Klávesnice - zapsání hodnoty - jednotky
Desetinásobek je již zapsán (příznak) Přičtení jednotek (jsou ve střadači) jednotky ADDWF pulzy, GOTO Jednotky jsou zapsány, pokračujeme k obsluze motoru
10
Program - princip Motor - pulzování, odečítání pulzů
Jako při rozsvěcení LED Stále dokola až do odečtení všech pulzů (DECFSZ...). krokovat krok1 BCF PORTA,2 BSF PORTA,0 CALL cekej DECFSZ pulzy, GOTO krok2 GOTO koneckrok Krok
11
Program - princip Motor - konec vynulujem pulzy (taktéž CLRF pulzy)
vynulujem příznak zapsány desítky návrat na zjišťování zmáčknutých tlačítek koneckrok MOVLW MOVWF pulzy BCF test,0 GOTO keyb Časovač(e) end
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.