Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <REGX52.H>
- #define TRUE 1
- unsigned char code cyfry[] = {0x3F, 0x06, 0X5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
- unsigned char data jednostki = 0, dziesiatki = 0;
- unsigned char code zero[] = {0xEF, 0xDF, 0xBF, 0x7F};
- unsigned char data i;
- unsigned char data pamiec[] = {0, 0};
- bit flaga = 0;
- /////////////////-PRZYCISKI-//////////////////////////
- void on_of() interrupt 0
- {
- if (flaga == 0)
- flaga = 1;
- else
- flaga = 0;
- }
- void inkrementacja() interrupt 2
- {
- jednostki++;
- if (jednostki == 10)
- {
- dziesiatki++;
- jednostki = 0;
- }
- }
- ///////////////////-WYSWIETLANIE-////////////////////////
- void wyswietlanie()
- {
- if (flaga == 1)
- {
- P1 = cyfry[jednostki];
- P3 = 0x4C;
- P3 = 0xCC;
- P1 = cyfry[dziesiatki];
- P3 = 0x8C;
- P3 = 0xCC;
- }
- else
- {
- P3_6 = 1;
- P3_7 = 1;
- P1 = 0;
- }
- }
- ////////////////-PRZERWAINA_//////////////////////////
- void setup()
- {
- EA = 1;
- //przyciski
- EX0 = 1;
- EX1 = 1;
- IT0 = 1;
- IT1 = 1;
- //timery
- }
- //////////////////////////////////////////
- void kolumna_1();
- void kolumna_2();
- void kolumna_3();
- void detekcja();
- ///
- //////////////////////////////////////////
- ///
- int main()
- {
- setup();
- while (TRUE)
- {
- timer();
- detekcja();
- wyswietlanie();
- }
- return 0;
- }
- ///
- //////////////////DO OSBLUGI KLAWIATURY////////////////////////
- ///
- void kolumna_1()
- {
- if (i != 3)
- {
- pamiec[1] = pamiec[0];
- pamiec[0] = i * 3 + 1;
- }
- while (P2_1 == 0)
- wyswietlanie();
- }
- ///////////////////////////////////////////
- void kolumna_2()
- {
- pamiec[1] = pamiec[0];
- if (i == 3)
- {
- pamiec[0] = pamiec[0];
- }
- else
- {
- pamiec[0] = i * 3 + 2;
- }
- while (P2_2 == 0)
- wyswietlanie();
- }
- ///////////////////////////////////////////
- void kolumna_3()
- {
- if (i == 3)
- { // detekcja #
- jednostki = pamiec[0];
- dziesiatki = pamiec[1];
- }
- else
- {
- pamiec[1] = pamiec[0];
- pamiec[0] = i * 3 + 3;
- }
- while (P2_3 == 0)
- wyswietlanie();
- }
- ///////////////////////////////////////////
- void detekcja()
- {
- P2 = zero[i];
- if (P2_1 == 0)
- {
- kolumna_1();
- }
- else if (P2_2 == 0)
- {
- kolumna_2();
- }
- else if (P2_3 == 0)
- {
- kolumna_3();
- }
- if (i < 3)
- {
- i++;
- }
- else
- {
- i = 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement