maticova klavesnice v C

David Burda d.burda
Středa Březen 17 12:05:16 CET 2004


Prerusen se resi nasledovne :

/* Interrupts */

void door() interrupt 2 using 1                                 /* Preruseni
od dveri */
{       if(Armed)SIR=0;
}

void timer() interrupt 1 using 2                                /* Preteceni
T0 */
{       TH0=0x15;TL0=0x9F;                                 /* T0 pretika
kazdych 30 ms */
 Time++;
 Time2++;
 Timeauto++;
 Timerele++;
}

void central() interrupt 0 using 3                              /* Odemknuto
/ zamknuto */
{       IE&=0xFE;
 SIR=1;

if(~Lock){BLIK=1;for(i=0;i<4;i++)Delay2();if(Sounden){SIR=0;Delay2();SIR=1;}
    BLIK=0;Delay2();//SIR=0;Delay1();SIR=1;
    BLIK=1;for(i=0;i<4;i++)Delay2();if(Sounden){SIR=0;Delay2();SIR=1;}
    BLIK=0;Armed=1;
   }

else{BLIK=1;for(i=0;i<4;i++)Delay2();BLIK=0;if(Sounden){SIR=0;Delay2();SIR=1
;}Armed=0;}
 Test_d=1;
 Prosel=0;
 Time2=0;
}

Sou to priklady preruseni ot casovace T0 (timer() interrupt 1 using 2-tvuj
libovolnej nacev, poradi interruptu v procesoru, kterou banku registru bude
vyuzivat) a obou externich preruseni.

Co se tyce ty klavesnice tak bych doporucil zapojeni vyuzivajici ext.
preruseni procesoru. Na matici tlacitek 4x4 potrebujes jenom 4 piny (1/2
brany) + ext preruseni (INT0 | 1). Za pojeni je klasika s 8 diodama navic.
----- Original Message -----
From: Jakub Ladman <ladmanj@volny.cz>
To: Multiple recipients of list <hw-news@list.gin.cz>
Sent: Wednesday, February 14, 2001 10:46 PM
Subject: maticova klavesnice v C


> Delam takovy ovladaci panel s AT89C52 a delam to v C.
> Uz mam vyresenu komunikaci s LCD dvouradkovym displayem, a na I2C sbernici
s
> LM76, DS1307 a 24C16. (O vysledky se rad podelim)
> Ted se chystam na cteni maticove klavesnice 4x4 tlacitka pod prerusenim.
> Jeste jsem s prerusenimi v C nedelal a tak uvitam vase tipy.
> DS1307 (RTC obvod) ma vystup frekvce volitelne mezi 1Hz 4kHz 8kHz a 32kHz,
> ja chci vyuzit 4kHz kmitocet, privest ho do jednoho z citacu v 52 tam
delit
> a prerusovat asi po 10ms.
> Multiplex si predstavuji tak, aby se opakoval kazde 4 preruseni.
> Proto prosim o radu, jak se v C51 (keil) napise obsluha preruseni? a jak
> byste z te klavesnice predavali vysledky hlavnimu programu?
>
> Dekuji za nakopnuti spravnym smerem.
> Jakub Ladman
>
>






Další informace o konferenci Hw-list