Elektronikai szakportal- minden ami elektronikai. programok, elektronikai programok, elektronikai segedprogramok, elektronikus programok, hangfalak, hangfaltervezes, hangfaltervezo, hangfaltervek, kapcsolasok, kapcsolasok, kapcsolas, elektronikai kapcsolas, kapcsolas, kapcsolasi rajzok, kapcsolasi rajzok, bekotesek, kapcsolasi rajz gyujtemeny, bekotesi rajzok, forum, elektronikai forum, elektronikai szakforum, szakforum, cikkek, elektronikai cikkek, elektronikus cikkek, elektronikai leirasok, hirek, elektonikai hirek, hirek az elektronika vilagabol, elektronikai hirek
PIC PROGRAMOZÁS III. NYOMÓGOMB KEZELÉS
Olvasóink értékelése: / 53
ElégtelenKitűnő 
Írta: Fábián Kristóf   
2010. április 14. szerda, 17:13

 

Nyomógomb kezelés


A következő programban a PORTB 0-ik bitjét nyomógombként fogjuk használni. A nyomógomb megnyomása után a PORTB 1. bitje 1-be fog váltani, majd ha még egyszer megnyomjuk visszaáll 0-ba.

 

Íme a program:

 

 

Az első két sorról szerintem már nem kell beszélnem, szóval egyből ugorjunk a beállításokra.

1. Beállítások

 

A BANK váltás után a BSF TRISB,0 sorral a PORTB 0-ik bitjét bemenetnek állítjuk be, majd ezután a PORTB 1. bitjét, pedig kimenetnek.

 

2. Főprogramrész

 

A főprogramrész első felében a BTFSS utasítással figyeljük a PORTB 0-ik bitjét. A BTFSS utasítás úgy működik, hogy logikai 1-esre átugorja a következő sort. Tehát a mi esetünkben, a 9. és a 10. sor között fog körözni a programunk addig, míg a PORTB 0-ra 1-est nem adunk. (lenyomjuk a gombot) A gomb megnyomása után a 11. sorra fogunk ugrani.

Mivel a gomb most le van nyomva, ezért azt is figyelni kell, hogy mikor engedjük el. Ezt a BTFSC utasítással tudjuk megtenni, ami a BTFSS ellentettje, tehát a következő sort akkor ugorja át, ha a PORTB 0-ik bitje 0.

Ha ez megtörtént akkor a PORTB 1. bitje 1-esbe vált. (A LED világít)

 

 

Ezek után a főprogramrész második felében újra figyeljük a PORTB 0-át, és ugyanaz a történet fog lejátszódni, mint az első felében. Ha lenyomtuk és fel is engedtük a nyomógombot a PORTB 1. bitje a BCF PORTB,1 sor miatt 0-ba fog váltani. (A LED nem világít)

 

Szimulálás:

 

A program betöltése után a Tools menübe kattintsunk a Microcontroller view-re, ezután a mikrokontroller nézet ablak fog megjelenni. Indítsuk el a programot, váltsunk át a mikrokontroller nézetre. A PORTB 0-nál látni fogunk egy T betűt az lesz a nyomógombunk. Ha lenyomtuk és utána fel is engedtük a PORTB 1. bitje 1-be fog váltani. Ha ezt megismételjük akkor pedig visszaáll 0-ba.

 

Ha nagyon kedvet kaptunk a programozáshoz, akkor ki lehet próbálni azt, hogy a gomb megnyomása után a LED villogjon.

Jó szórakozást kívánok!

Hozzászólások
Hozzáadás Keresés
skylaci  - Milyen PIC-et használjak?   |78.131.93.xxx |2012-01-08 18:00:48
Sziasztok!
Nagyon kezdő vagyok! Ezért elnézést kérek, ha butaságot kérdezek!
Az egyes leírásoknál nincs
feltüntetve a PIC típusa. Minden típusú PIC le tud kezelni minden feladatot?Mire mit kell használni?
kristof  - .   |Author |2010-05-25 20:18:40
Picit szétcsúszott, de remélem érthető!
LED1 BSF PORTD,0 egy sor!
kristof  - .   |Author |2010-05-25 20:16:43
Hello!

Ha több gombot akarsz kezelni, akkor folyamatosan figyeled a többi gombot is, úgy hogy egymás
után ugrálsz a gombok között. Íme egy példa:
PORTB 0,1 gomb
PORTD 0,1 LED
Kód:

ELSOGOMB BTFSS PORTB,0
GOTO MASODIKGOMB
IDE1 BTFSC PORTB,0
  GOTO IDE1

CALL LED1
 GOTO MASODIKGOMB
MASODIKGOMB BTFSS PORTB,1
  GOTO ELSOGOMB
IDE2
BTFSC PORTB,1
  GOTO IDE2
CALL LED2
  GOTO ELSOGOMB
LED1 BSF
PORTD,0
  RETURN
LED2 BSF PORTD,1
  RETURN

Remélem így érthető és
tudtam segíteni! Ha esetleg van még kérdés, nyugodtan írd meg!
Josza   |Author |2010-05-24 20:43:09
hello
másképp nem lehet megoldani a nyomógombkezelést?
az a gondom hogy mindig a program az adott gomnál köröz
addig míg meg nem nyomom... de ha több gombot kell vezérelni akkor már nem jó ez a megoldás...
kristof   |Author |2010-04-16 14:24:13
Hát igazából azt még nem próbáltam. A gombok ott mátrixban vannak kötve és valószínüleg multiplexelni kell.
Szóval konkrétat nem tudok mondani, csak ha már írtam rá egy programot, de majd megnézem mindenképpen! Ha
megírtam akkor kirakom!
Névtelen   |87.97.38.xxx |2010-04-16 13:21:04
Hello
Azt hogyan lehet megoldani, hogy a Tools/Keypad Matrix-on lévő gombok közül 1-et vagy többet lenyomva
induljon a program!
Különben nagyon jók a cikkek, habár én MPLAB-ba tanulok programozni...
Hozzászólás
Név:
Email:
 
Tárgy:
UBBKód:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 

Rólunk. | .Impresszum. | .Használati feltételek. | .Kapcsolat. | .Támogatónk a SzerverPlex.hu