akhn_666
Newbie level 2
- Joined
- Aug 19, 2013
- Messages
- 2
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1
- Activity points
- 30
kello im trying to display something on lcd when i press some specific button on keypad..the program i wrote compiles correctly but it doesnt work when i load it in Proteus plz help...
my program is as under
my program is as under
Code C - [expand] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 char keypadPort at PORTC; sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D4 at RB0_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D7 at RB3_bit; sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D4_Direction at TRISB0_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D7_Direction at TRISB3_bit; void main() { unsigned char kp; keypad_Init(); //keypad initializing ADCON1 = 0x0F; // Set AN pins to Digital I/O CMCON = 0X01; // Disable comparators Lcd_Init(); // Initialize LCD Lcd_Cmd(_LCD_CLEAR); // Clear display Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off do { kp = 0; // Reset key code variable // Wait for key to be pressed and released do { //kp = Keypad_Key_Press(); // Store key code in kp variable kp = Keypad_Key_Click(); // Store key code in kp variable } while (!kp); // Prepare value for output, transform key to it's ASCII value switch (kp) { //case 10: kp = 42; break; // '*' // Uncomment this block for keypad4x3 //case 11: kp = 48; break; // '0' //case 12: kp = 35; break; // '#' //default: kp += 48; case 1:kp=49; break; // 1 case 2:kp=50; break; // 2 case 3:kp=51; break; // 3 case 4:kp=52; break; // 4 case 5:kp=53; break; // 5 case 6:kp=54; break; // 6 case 7:kp=55; break; // 7 case 8:kp=56; break; // 8 case 9:kp=57; break; // 9 case 10:kp=48; break; // 0 case 11:kp=42; break; // * case 12:kp=35; break; // # case 13:kp=65; break; // A case 14:kp=66; break; // B case 15:kp=67; break; // C case 16:kp=68; break; // D } if (kp = 48 ) { lcd_out(1,1,"waiting"); } //delay_ms(100); // displ[] = "waiting"; //oldstate = kp; if (kp = 42 ) { lcd_out(1,1,"calling"); } //displ[] = "calling"; if (kp = 35 ) { lcd_out(1,1,"end call"); } Lcd_Cmd(_LCD_CLEAR); // Clear display Lcd_Cmd(_LCD_CURSOR_OFF); } while(1); }
Last edited by a moderator: