interfacing Pic16f877 GSM modem keypad and stepper motor

Status
Not open for further replies.

atoivan

Newbie level 3
Joined
May 20, 2013
Messages
3
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Visit site
Activity points
1,331
hello all
i am wroking on ma school project and i need alittle of ur time and to help me solve the
some difficulties i am having in the coding i am using Mickro C and Proteus professional
i am building a keyless Door lock, my major components are
1.A keyPad 4x3 to input the password
2.A GSm Modem which i will send a txt code to open or close the door
3.A stepper Motor.

i am facing the follwing problems
1. the Keypad does not seem to be responding to the keys i press i do not know if it got to do with the Ascii codes
Example when 1 , the * appear 3 the # appear on the LCD

i need help with the code to interface GSM modem and the stepper motor to move to open and close
when txt is snt to the modem

thank you
this is my code so far and my circuit
Code:
unsigned short kp, cnt,oldstate = 0;
char txt[6];

//Keypad module connections
char  keypadPort at PORTD;
// End Keypad module connections
// LCD module connections
// Lcd pinout settings
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB2_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D7 at RB5_bit;

// Pin direction
sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;

void main()
{
 cnt = 0;                                 // Reset counter
Keypad_Init();                           // Initialize Keypad
ANSEL  = 0;                              // Configure AN pins as digital I/O
  //ANSELH = 0;

 Lcd_Init();                              // Initialize LCD
Lcd_Cmd(_LCD_CLEAR);                            // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF);                    // Cursor off
Lcd_Out(1, 3, "WELCOME TO");                 // Write message text on Lcd
Lcd_Out(2, 6, "USE");                         // Write message text on Lcd
delay_ms(2000) ;
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(2, 1, "KEYLESS DOORLOCK");                      // Write message text on Lcd
delay_ms(1000) ;
Lcd_Cmd(_LCD_CLEAR);
          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);
 

Attachments

  • KEYLESSDOORLOCK.PDF
    136.9 KB · Views: 123

give the Keypad_init(), Keypad_Key_Click(); function, then only we could give suggestion of your code.
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…