1) Keypad.c
#include "lcd.h"
sbit r1=P1^4;
sbit r2=P1^5;
sbit r3=P1^6;
sbit r4=P1^7;
sbit c1=P1^0;
sbit c2=P1^1;
sbit c3=P1^2;
void main()
{
c1=c2=c3=1;
r1=r2=r3=r4=0;
lcd_init();
while(1)
{
r1=0;r2=r3=r4=1;
if(c1==0) {lcd_disp('1');delay(10);}
if(c2==0) {lcd_disp('2');delay(10);}
if(c3==0) {lcd_disp('3');delay(10);}
r2=0;r1=r3=r4=1;
if(c1==0) {lcd_disp('4');delay(10);}
if(c2==0) {lcd_disp('5');delay(10);}
if(c3==0) {lcd_disp('6');delay(10);}
r3=0;r2=r1=r4=1;
if(c1==0) {lcd_disp('7');delay(10);}
if(c2==0) {lcd_disp('8');delay(10);}
if(c3==0) {lcd_disp('9');delay(10);}
r4=0;r2=r3=r1=1;
if(c1==0) {lcd_disp('*');delay(10);}
if(c2==0) {lcd_disp('0');delay(10);}
if(c3==0) {lcd_disp('#');delay(10);}
}
}
2) LCD Header File (lcd.h)
#include <reg51.h>
sbit rs=P3^4;
sbit rw=P3^5;
sbit en=P3^6;
void delay(int n)
{
int i=0;
for(;i<n*1000;i++);
}
void lcd_command(char c)
{
P0=c;
rs=0;
rw=0; // write
en=1;
delay(1);
en=0;
delay(1);
}
void lcd_disp(char d)
{
P0=d;
rs=1;
rw=0; // write
en=1;
delay(1);
en=0;
delay(1);
}
void lcd_init()
{
lcd_command(0x01);
lcd_command(0x38);
lcd_command(0x06);
lcd_command(0x0C);
lcd_command(0x80);
}
Proteus Simulation
No comments:
Post a Comment