پاسخ : سوالات مربوط به زبان C و کدویژن(در میکرو AVR)
روشی ک مهندس کی نژاد در مثال های آموزشی برای اسکن صفحه کلید انجام دادن مناسب هست. با کمک روتین وقفه و تنظیمات در مد ctc و ایجاد زمان 1 میلی ثانیه و به کمک روتین وقفه زیر میتونید کد های لازم از صفحه کلید رو بدست بیارید
ضمنا آرایه keyboard_codes هم باید در ابتدا تعریف بشه
اگر توضیحی در مورد این برنامه هم میخوایید بهتره که جلسه 17-18 از مجموعه فیلمهای اموزشی ایشونو رو ببینید
http://www.knowledgeplus.ir/default.aspx?lang=Fa
نوشته اصلی توسط p2daaaaa
کد:
interrupt [TIM0_COMP] void timer0_compare_isr(void)
{
static unsigned char x20=0;
unsigned char temp , i;
if (++x20==20)
{
x20=0;
DDRB=(1<<DDB2)|(1<<DDB1)|(1<<DDB0);
PORTB=(1<<PORTB6)|(1<<PORTB5)|(1<<PORTB4)|(1<<PORTB3);
delay_us(5); // delay for signal stablization
temp=(PINB & 0X78);
DDRB=(1<<DDB6)|(1<<DDB5)|(1<<DDB4)|(1<<DDB3);
PORTB=(1<<PORTB2)|(1<<PORTB1)|(1<<PORTB0);
delay_us(5); // delay for signal stablization
temp |=(PINB & 0X07);
for(i=0;i<12;i++)
{
if(temp==keyboard_codes[i])
{
key_code=i;
break;
}
else key_code=nokey_code;
}
}
}
کد:
//keyboard codes
flash unsigned char keyboard_codes[]={0x76,0x6E,0x5E,0x3E,0x75,0x6D,0x5D,0x3D,0x73,0x6B,0x5B,0x3B};
http://www.knowledgeplus.ir/default.aspx?lang=Fa










دیدگاه