Discussion in "Project Doubts" started by    onyot    Nov 23, 2010.
Tue Nov 23 2010, 06:56 AM
yes you can make it using ordinary push bottons......

see tutorial section of this site it also have a keypad circuit using simple switches and you can also google for it.....
Tue Nov 23 2010, 06:59 AM
yes. Thats the original concept of keypad. Did u see the code that i attached?

Ang also see this video im using ordinary tact switch here.

where do u having ur ojt onyot?
Tue Nov 23 2010, 07:04 AM
see this schematic this is simple 4*4 matrix keypad using simple switches...

Tue Nov 23 2010, 07:27 AM
what about 8 seven segment? do you have a link that I can use as a reference?
Tue Nov 23 2010, 09:05 AM
hi onyot.josephian
7-seg is an easy task not difficult
ru using 8 pieces of 7 segments
8051 has 4 ports and 1 segment piece need one port if we drive it by one port
it mean u only can attach a 4 segments to 8051 but not
there r multiplexing techniques that we can attach many 7- segments to only one port
Tue Nov 23 2010, 09:34 AM
hi onyot, there is also multiplexing technique in which u can save ports. There is a multiplexing tutorial here and u must read 8. I suggest u to start in one area like 4 example keypad interfacing an etc. Before u go to more complex things. Good luck to u yar!
Wed Nov 24 2010, 03:41 AM
Romel.. about that program you've given to me... what is the sample password? is it 12345?
Wed Nov 24 2010, 05:51 AM
hi onyot.josephian
i think code was 12345
romel can verify it
Wed Nov 24 2010, 05:56 AM
Majoka, in my project what is best to monitor, especially using a keypad? is it high or low? Is it okay to connect my keypad directly to the pins of 8051?

[ Edited Wed Nov 24 2010, 05:58 AM ]
Wed Nov 24 2010, 06:18 AM
#include <REG51.h>
#define display P3

sbit doorclose = P1^7;
sbit correct = P3^5;
sbit wrong= P3^4;
sbit key = P3^7;
void DelayMs(unsigned int);
void save (unsigned char);
void compare (void);

unsigned char keypad[4][3]= { '1', '2', '3',
'4', '5', '6',
'7', '8', '9',
'*', '0', '#'};

unsigned char displayb[4][3]= { 1 , 2 , 3 ,
4 , 5 , 6 ,
7 , 8 , 9 ,
0, 0 , 0};

unsigned char user[30]; //user is allowed to press 30 keys without entering
unsigned char q,a=0,z=0;
char t=1;
bit true;
char d;

void main(void)
{
unsigned char colloc,rowloc;

while(1)
{

do
{
}
while(colloc ==0xF0); // if any key pressed
DelayMs(1); // some delay
do
{
colloc &=0xF0;
}while(colloc==0xF0); // to verify is really key pressed

if(colloc !=0xF0)
{
rowloc=0;
goto next;
}

if(colloc !=0xF0)
{
rowloc=1;
goto next;
}
if(colloc !=0xF0)
{
rowloc=2;
goto next;
}

rowloc=3;
goto next;

next:
if (colloc==0xE0)
{
key=0; // verifying that key is pressed
DelayMs(145);
key=1;
display=((display & 0xf0) | (displayb[rowloc][0])); // display to 7 seg
}
else if(colloc==0xD0)
{
key=0; // verifying that key is pressed
DelayMs(145);
key=1;
display=((display & 0xf0) | (displayb[rowloc][1]));
}
else if(colloc==0xb0)
{
key=0; // verifying that key is pressed
DelayMs(145);
key=1;
display=((display & 0xf0) | (displayb[rowloc][2]));
}
DelayMs(100); // here this delay is important if this is less than 100ms then
// controller understand 1 key as press 2 or 3 times becoz that
//is fast as compaer o our pressing if u want to remove delay from here
// then increse the above 1ms to 100 ms
}
}

void save (unsigned char c)
{
if(c=='*')
{
if(a!=0)
a--;
return;
}

if(a==5 && c=='#')
{
a=0;
compare();

if(t==1)
{
if(true==1) // if match ok
{
DelayMs(800);
correct=0;
t=2;
for(d=0; d<7; d++) // on and after 10 sec off nw keypad can't get data
DelayMs(1000); // max delay u can get is DelayMs(65535) otherwise need looping for big delay
correct=1;
z=0;
a=0; // start agian from 0 location of array

}
else if(true==0)
goto error;

}
else if(t==2)
{
DelayMs(800);
doorclose=0;
t=1;
for(d=0; d<5; d++)
DelayMs(1000);
doorclose=1;
}
}

else if((a>5 && c=='#') || (a<5 && c=='#'))
{
error:
for(q=0; q<5; q++)
{
wrong=0;
DelayMs(420);
wrong=1;
DelayMs(420);
a=0;
}
z=z+1;

if(z==4)
{
for(q=0; q<10; q++)
{
wrong=0;
DelayMs(20000);
wrong=1;
z=0;
DelayMs(420);
}
}
a=0;
}
else
{
user[a]=c;
a++;

if(a==30) // if the user press 31 keys without entering it will automatically indicate an error
{
display=((display & 0xf0) | (displayb[3][1])); //brings a zero display on the seven segment
goto error; //redirect to error code
}
}

} //end of save

void compare (void)
{
unsigned char b;
for(b=0;b<5;b++)
{

true=1;
else
{
true=0;
break;
}
}
}

//---------------------------------------
// Delay mS function
//---------------------------------------
void DelayMs(unsigned int count)
{ // mSec Delay 11.0592 Mhz
unsigned int i;
while(count) {
i = 115;
while(i>0) i--;
count--;
}
}

What type of display is it? seven segment or lcd?

### Information

#### Conversation

Sat Jan 18 2020, 03:45 PM
Eric Jones
Eric
Sat Jan 18 2020, 08:49 AM
Elma
norsk porno blogg free african dating sites maria halvorsen porno dating naked brianna porno dating ukraine prywatne porno porno dame iselin porno sex porno no eldre porno gratis porno pa youtube stare filmy porno filme porno cu eleve porno foto finsk porno mamyciu porno porno gratis hd porno maroc world dating teen porno free famely porno fjlmy porno dating norwegian women free svensk porno fri porno film porno gay free porno poland porno suomi porno the best harstad porno senior dating sites canal porno norwegian gay porno porno gradis porno deutsch be2 dating porno bi sex drunk mom porno porno porn porno for kvinner bethany joy lenz dating porno folmy porno gay sex gutte porno tee porno nonne porno emma watson dating porno first time anal retro porno pee porno
Sat Jan 18 2020, 07:24 AM
Charles Halfey
Kind Regards,
Tue Jan 14 2020, 07:08 AM
when i am trying to simulate the program in Proteus 8 professional, I am getting some errors as cannot find module file dhtxx.md can u help me
Tue Dec 17 2019, 01:44 PM
Devangi
hello..i am programming industrial timer using 8051 with 24lc64 eeprom. i have query in storing the 3 diff value in eeprom with enter button. can anyone share c code ?
Tue Dec 17 2019, 10:30 AM
Andrius
Hello. Can anyone share the code in Bascon and scheme in Proteus?
Thu Nov 21 2019, 12:30 PM
raj2555
how to interface 8051 microcontroller with NRF24L01+ module
Sat Oct 12 2019, 10:23 PM
Sat Oct 12 2019, 10:18 AM
i am doing a countdown timer with 8051 for my project, unfortunately our professor had to take a leave of absence before he could teach us most of it.. can someone explain the .asm code of it for me?
Mon Sep 23 2019, 07:37 AM
Nathaniel
I am doing a project for my schools wireless security system with cameras,sensors and spot lights using 8051 micro controller, could you help me out with the design and its source code.

### Recent

usb5962
Sat Jan 11 2020, 10:42 AM
elt
Tue Jan 07 2020, 06:53 PM
mg3914697
Tue Jan 07 2020, 12:42 PM
afds43
Sun Dec 29 2019, 05:54 AM
Rupeshpatil
Fri Dec 27 2019, 06:14 PM
pyxus
Sat Dec 14 2019, 12:31 PM
Istika
Thu Dec 12 2019, 12:04 PM
nabiha_anaya
Sun Dec 08 2019, 09:16 AM

#### Online

Guests: 50, Members: 0 ...

most ever online: 182184
(Members: , Guests: 182184) on 06 Aug 2010: 05:37 AM

Members: 38115
Forum Activity
##### Posted By ExperimenterUK
Fri Jan 17 2020, 10:24 PM
We will need the circuit diagram.A Proteus simulat...
##### Posted By Billz
Sat Jan 11 2020, 05:43 PM
hi everyone please attached files are my c code fo...
##### Posted By ExperimenterUK
Tue Jan 07 2020, 08:18 PM
Not a stupid question.Setting up "Eclipse" can be...
##### Posted By elt
Tue Jan 07 2020, 07:06 PM
So i have just began learning programming micros a...
##### Posted By Billz
Mon Jan 06 2020, 09:22 PM
I think it would be better if you guys try to come...
##### Posted By ExperimenterUK
Mon Jan 06 2020, 12:22 AM
Can you post a circuit diagram and any code you ha...
##### Posted By Billz
Sun Jan 05 2020, 08:17 PM
Need help regarding C code (specifically for PIC 1...
##### Posted By ExperimenterUK
Mon Dec 30 2019, 06:42 PM
Can you give more details of your problem.
##### Posted By Rupeshpatil
Fri Dec 27 2019, 06:21 PM
How to copy program my old microcontroller to new ...
##### Posted By ilylily07
Thu Dec 12 2019, 02:26 PM