AndrzejDuda


Politechnika Lubelska

Wydział Elektrotechniki i Informatyki

0x01 graphic

Laboratorium układów mikroprocesorowych

Klawiatura matrycowa i wyświetlacz LCD (AVR Studio)

Duda Andrzej

ED 9.8 I3

Program odczytuje stan klawiatury, zapala kolejno diody oraz wyświetla
na wyświetlaczu LCD wartości odpowiadające wciskanym klawiszom.

#include <avr/io.h>

void czas(unsigned long k)

{int j;

for(k=255;k>0;k--)

{for(j=255;j!=0;j--);}

}

void czekaj(int czas)

{int i;

for (i=0;i<czas;i++);

};

void wyswietlacz(int kod) //funkcja obsługi wyświetlacza LCD

{if (kod!=0)

{czekaj(1000);

PORTD=0b00000011+(kod & 0b11110000);

czekaj(1000);

PORTD=(PORTD & 0b11111101);

czekaj(1000);

PORTD=0b00000011+kod*16;

czekaj(1000);

PORTD=(PORTD & 0b11111101);

czas(65);

}

};

int klawiatura() //funkcja czytająca stan klawiatury

{int kod=0,kod2=0,key;

PORTA=0b01111111;

key=PINA;

czekaj(1000);

switch (key)

{czekaj(1000); //zwłoka czasowa dodana aby działały

case 0b01111111:kod=0x00;break; // wszystkie linie klawiatury

case 0b01111110:kod=0x31;break;

case 0b01111101:kod=0x32;break;

case 0b01111011:kod=0x33;break;

case 0b01110111:kod=0x34;break;

default:kod=0x21;

};

if(kod!=0x21)

{PORTA=0b10111111;

key=PINA;

czekaj(1000);

switch (key)

{czekaj(1000);

case 0b10111111:kod2=0x00;break;

case 0b10111110:kod2=0x35;break;

case 0b10111101:kod2=0x36;break;

case 0b10111011:kod2=0x37;break;

case 0b10110111:kod2=0x38;break;

default:kod2=0x21;

};

if (kod*kod2==0)

{if (kod==0) kod=kod2;

}

else kod=0x21;

};

if(kod!=0x21)

{PORTA=0b11011111;

key=PINA;

czekaj(1000);

switch (key)

{czekaj(1000);

case 0b11011111:kod2=0x00;break;

case 0b11011110:kod2=0x39;break;

case 0b11011101:kod2=0x30;break;

case 0b11011011:kod2=0x41;break;

case 0b11010111:kod2=0x42;break;

default:kod=0x21;

}

if (kod*kod2==0)

{if (kod==0) kod=kod2;

}

else kod=0x21;

};

if(kod!=0x21)

{PORTA=0b11101111;

key=PINA;

czekaj(1000);

switch (key)

{czekaj(1000);

case 0b11101111:kod2=0x00;break;

case 0b11101110:kod2=0x43;break;

case 0b11101101:kod2=0x44;break;

case 0b11101011:kod2=0x45;break;

case 0b11100111:kod2=0x46;break;

default:kod=0x21;

}

if (kod*kod2==0)

{if (kod==0) kod=kod2;

}

else kod=0x21;

};

return kod;

};

void main()

{DDRB=0b11111111;

DDRD=0b11111111;

DDRA=0b11111111;

PORTA=0b11111111;

DDRA=0b11110000;

PORTD=0b00100010;

czekaj(1000);

PORTD=0b00100000;

czekaj(1000);

PORTD=0b00000010;

czekaj(1000);

PORTD=0b00000000;

czekaj(1000);

PORTD=0b11100010;

czekaj(1000);

PORTD=0b11100000;

czekaj(1000);

PORTD=0b00000010;

czekaj(1000);

PORTD=0b00000000;

czekaj(1000);

PORTD=0b00010010;

czekaj(1000);

PORTD=0b00010000;

czekaj(1000);

PORTD=0b00000010;

czekaj(1000);

PORTD=0b00000000;

czekaj(1000);

PORTD=0b01100010;

czekaj(1000);

PORTD=0b01100000;

while (1)

{int kod;

kod=klawiatura(); //wywołanie funkcji obsługujących klawiaturę

PORTB=kod; // oraz wyświetlacz

wyswietlacz(kod);

};

};

4



Wyszukiwarka

Podobne podstrony:
Scenariusz zabaw andrzejkowej dla przedszkolaków, pomoce do pracy z dziećmi
Święty Andrzeju, Przedszkole, Andrzejki
Andrzejki, PRZEDSZKOLE, Andrzejki Scenariusze,Wróżby
Andrzejki z rodzicami scenariusz
Andrzejk1, scenariusze zajęć
sprawko andrzeja, gik, semestr 3, fizyka, wysypisko
New Age, 01 ANDRZEJ WRONKA - TRÓJCA ŚWIĘTA - META JĘZYK, P. Andrzej Wronka
Wróżby andrzejkowe, Przedszkole, Dla dzieci, Andrzejki
Andrze
Andrzejkowe wróżby
praca licencjacka finansowanie msp za pomocą funduszy venture capital m andrzejewicz
SCENARIUSZ SZKOLNEJ IMPREZY ANDRZEJKOWEJ, karty tymka, UROCZYSTOŚCI Z OKAZJI (Andrzejki)
andrzejkigazetka(1)(1), Gazetka szkolna
ANDRZEJKI 1, PROWADZENIE ZAJĘĆ, ANDRZEJKI
PODZIAŁ I KLASYFIKACJA FIR II, Lotnictwo, ppl, Andrzej Niemojewski PPL, od szefowej, Prezentacje i o
SCENARIUSZ ANDRZEJKI, PRACA W SZKOLE, uroczystości
zabawa andrzejkowa, scenariusze zajęć
Zjadaj posiłki w przedszkolu, Przedszkole, Andrzejki

więcej podobnych podstron