Sie sind auf Seite 1von 5

File: final.

c, Date: 20-Feb-2017, Time: 7:20:46 PM


#include <mega16.h>
#include <delay.h>
#include <string.h >
#define RS PORTB.0
#define E PORTB.1
#define dataport PORTC
unsigned char ADC;
interrupt [ADC_INT] void adc_isr(void)
{
// The LEDs will display the 8 most
// semnificative ADC bits
PORTB=ADCH;
// 20ms delay
delay_ms(20);
// Start a new AD conversion
ADCSRA|=0x40;
}

void adc_init()
{
ADCSRA = 0x8F;
ADMUX = 0xE0;
}

unsigned char read_key(unsigned char ch)


{
ch=ch&0b00000111;
ADMUX|=ch;
ADCSRA|=(1<<ADSC);
while(!(ADCSRA&(1<<ADIF)));
{
ADCSRA|=(1<<ADIF);
return(ADC);
}
}
void write_cmd(char Z)
{
RS=0;
dataport=Z;
E=1;
delay_ms(1);
- 1 -
File: final.c, Date: 20-Feb-2017, Time: 7:20:46 PM
E=0;
delay_ms(0);
}
void write_data(char Z)
{
RS=1;
dataport=Z;
E=1;
delay_ms(1);
E=0;
delay_ms(0);
}

void lcd_init()
{
write_cmd(0x30);
delay_ms(15);
write_cmd(0x30);
delay_ms(4);
delay_us(100);
write_cmd(0x30);
delay_us(100);
write_cmd(0x38);
write_cmd(0x05);
write_cmd(0x0c);
write_cmd(0x06);
}

void display_string(char *str )


{
unsigned char i=0;
while(str[i]!=0)
{
write_data(str[i]);
i++;
}
}

void password()
{
unsigned char count=0,key_value,password_status=0;
- 2 -
File: final.c, Date: 20-Feb-2017, Time: 7:20:46 PM
unsigned char password_set[5]="0204";
unsigned char password_enter[5];
display_string("KASHIF HASSAN && AHMED MALIK") ;
write_cmd(0xc0);
display_string("132 && 180") ;
delay_ms(1000);
delay_ms(1000);
write_cmd(0x01);
display_string("Enter 4 digits Password");
while(password_status==0x00);
{
write_cmd(0xc0);

while(count<4)
{
key_value=read_key(ADC);
if(key_value!=0xff)
{
password_enter[count]=key_value+48;
count++;
display_string("*");
}
else
{
;
}
delay_ms(300);
}
count=0;
password_enter[4]=0;
write_cmd(0x01) ;
if(!(strcmp(password_set,password_enter)))
{
display_string("correct password");
password_status=1;
}
else
{
display_string("wrong Password") ;
delay_ms(1000);
delay_ms(1000);
write_cmd(0x01);
- 3 -
File: final.c, Date: 20-Feb-2017, Time: 7:20:46 PM
display_string("Re enter Password");
}
}
}

void main()
{
unsigned char key1[8]="1FE50AF";
unsigned char key2[8]="1FED827";
unsigned char key3[8]="1FEF807";
unsigned char key4[8]="1FE30CF";
unsigned char key0[8]="1FE48B7";
unsigned char key10[8]="1FE58A7";
DDRA=0x0F;
DDRD=0xFF;
PORTD=0x00;
DDRC=0xFF;
PORTC=0x00;

lcd_init();
adc_init();
// Global enable interrupts
#asm("sei")
password();
while(1)
{
if(read_key(ADC)==key1)
{
PORTD.0^=PORTD.0;
}
if(read_key(ADC)==key2)
{
PORTD.1^=PORTD.1;
}
if(read_key(ADC)==key3)
{
PORTD.2^=PORTD.2;
}
if(read_key(ADC)==key4)
{
PORTD.3^=PORTD.3;
}
- 4 -
File: final.c, Date: 20-Feb-2017, Time: 7:20:46 PM
if(read_key(ADC)==key0)
{
PORTD.0=0;
PORTD.1=0;
PORTD.2=0;
PORTD.3=0;
}
if(read_key(ADC)==key10)
{
PORTD.0=1;
PORTD.1=1;
PORTD.2=1;
PORTD.3=1;
}
}
}

- 5 -

Das könnte Ihnen auch gefallen