Спойлер
Код: Выделить всё
#include <mega8.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
int i=0,j=0;
char portStateC[4]= {0xEF,0xDF,0xBF,0x7F};
char inputStateD[4]={0x01,0x02,0x04,0x08};
char mass2[4][4]={{'1','2','3','4'},
{'5','6','7','8'},
{'9','A','B','C'},
{'D','E','F','D'}};
interrupt [TIM2_COMP] void timer2_comp_isr(void)
{
for(i=0; i<4; i++)
{
PORTD=portStateC[i];
for(j=0; j<4; j++)
{
if(((PIND&inputStateD[j])==0) && (PINC&inputStateD[j]))
{
while((PIND&inputStateD[j])!=inputStateD[j]){};
lcd_putchar(mass2[i][j]);
}
}
}
}
void main(void)
{
PORTC=0xFF;
DDRC=0x0F;
PORTD=0xFF;
DDRD=0xF0;
ASSR=0x00;
TCCR2=0x0F;
TCNT2=0x00;
OCR2=0xC3;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x80;
lcd_init(8);
// Global enable interrupts
#asm("sei")
while (1)
{
};
}

Добавил файлы проекта.
- Вложения
-
- key4x4.zip
- (18.74 КБ) 94 скачивания



