0
Φίλες και φίλοι συνεχίζουμε..
Σ αυτό το μάθημα θα ήθελα να σας δείξω πώς μπορούμε με τον μικρεολεγκτή να παίξουμε με τα κουμπιά... Θα φτιάξουμε ένα πρόγραμμα μία εφαρμογή που θα λειτουργεί σαν συναγερμός. Έχουμε λυπών έναν διακόπτη ο οποίος είναι κλειστός και γειωμένος από την μία άκρη του. Η άλλη άκρη του καταλήγει στο pin B.0 του MC. Οπότε το Β.0 παίρνει 0 volt. Αν τώρα ανοίξουμε τον διακόπτη το pin B.0 δεν θα έχει ποια το απόλυτο 0 volt αλλά κάποια άλλη τάση (δεν μας ενδιαφέρει). Σημασία έχει ότι η συνθήκη while(PINB.0==1) θα είναι αληθής και θα εκτελεστεί το πρόγραμμα που βρίσκεται ανάμεσα στις αγκύλες {} του while. Δηλαδή θα αρχίσει να αναβοσβήνει το LED.
Πάμε λυπών να γράψουμε τον κώδικα
Να πούμε επίσης ότι ακόμα κ αν ξανακλείσει η επαφή του διακόπτη στο συγκεκριμένο πρόγραμμα, το λαμπάκι θα συνεχίσει να αναβοσβήνει.Κώδικας:#include <mega8.h> // vivliothiki gia ton atmega 8 #include <delay.h> // vivliothiki gia xronokathisteriseis void main(void) { // Port B rithmiseis PORTB=0xFF; // Energopoiume ta Pull-up resistors DDRB=0x00; // Orizume to port B san eisodo // Port D rithmiseis PORTD=0x00; // Apenergopoiume ta Pull-up resistors DDRD=0xFF; // Orizume to port D san exwdo while(PINB.0==0) // elegxos katastasis tu kumpiu { } while(PINB.0==1) // An to kumpi den einai patimeno ekteleitai o parakato vrogxos while(1) // atermon vrogxos { PORTD.0=1; delay_ms(100); PORTD.0=0; delay_ms(100); } } }
Καλό θα ήταν να βάλουμε μία αντίσταση το λιγότερο 150 Ohm σε σειρά με το LED για να μην κάψουμε τον MC.
Από εδώ και πέρα μπορείτε να βλέπετε τα μαθήματα MC και από το καινούριο μου site Greek Electronics που θα ανεβάζω διάφωρα τεχνικά άρθρα.