برنامه راه اندازی keypad به این صورت که اگر 0تا 15 را روی keypad لمس کرده و آن را بر روی lcd نمایش دهد.
#include <mega16.h>
#include<delay.h>
#asm
.equ_lcd_port=0x1B
#endasm
#include <lcd.h>
Flash char row[ ]={0xfe,0xfd,0xfb,0xf7};
Flash char data_key[ ]={
'1','2','3','4',
'5','6','7','8',
'9','10','11','12',
'13','14','15','0'};
Unsigned char ac,table;
Unsigned int r;
Void keypad() {
Lcd_gotoxy(0,1);
Lcd_putsf("~");
While(1) {
For (r=0;r<4;r++) {
ac=4;
portB=row[r];
DDRB=0x0f;
If (pinB.4==0) ac=0;
If (pinB.5==0) ac=0;
If (pinB.6==0) ac=0;
If (pinB.7==0) ac=0;
Tabale=data_kay[(r*4)+ac];
Lcd_putchar(table);
While (pinB.4==0) {}
While (pinB.5==0) {}
While (pinB.6==0) {}
While (pinB.7==0) {}
Delay_ms(50);
}
}
}
}
Void main(){
PORTB=0xff;
DDRB=0x0f;
Lcd_init(16)
Lcd_gotoxy(0,0);
Lcd_putsf("ebrahim tahmasebi");
Keypad();
}