液晶1602显示矩阵键盘文档格式.doc
《液晶1602显示矩阵键盘文档格式.doc》由会员分享,可在线阅读,更多相关《液晶1602显示矩阵键盘文档格式.doc(3页珍藏版)》请在冰点文库上搜索。
uinti,j;
for(i=0;
i<
200;
i++)
for(j=0;
j<
z;
j++);
}
voidwrite_command(ucharcom)/*LCD写命令*/
{
lcd_RS=0;
lcd_RW=0;
P0=com;
delay(5);
lcd_en=1;
lcd_en=0;
voidlcd_init() /*LCD初始化*/
write_command(0X38);
write_command(0X0e);
write_command(0X06);
write_command(0X01);
voidwrite_data(number) /*LCD写数据操作*/
lcd_RS=1;
P0=number;
ucharKeyscan() /*扫描子程序*/
uchari,j,temp,buffer[4]={0xfe,0xfd,0xfb,0xf7};
for(j=0;
4;
j++)
{
P1=buffer[j];
/*以下三个_nop_();
作用为让P1口的状态稳定*/
_nop_();
_nop_();
temp=0x10;
for(i=0;
{
if(!
(P1&
temp))
{
return(i+j*4);
}
temp<
<
=1;
}
}
}
voidL1602_char(ucharhang,ucharlie,ucharsign)
uchara;
if(hang==1)a=0x80;
if(hang==2)a=0xc0;
a=a+lie-1;
write_command(a);
write_data(sign);
voidL1602_string(ucharhang,ucharlie,uchar*p)
while
(1)
{
if(*p=='
\0'
)break;
write_data(*p);
p++;
}
voidmain()
{
ucharkey_data;
lcd_init();
L1602_string(1,1,"
4*4KeyBoard"
);
L1602_string(2,1,"
YouPressThe"
{P1=0xf0;
if(P1!
=0xf0)
{
delay(5);
if(P1!
{
key_data=Keyscan();
}
}
L1602_char(2,15,key_data/10+48);
L1602_char(2,16,key_data%10+48);
}