📄 74164.c
字号:
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define lcd_bus P0
sbit sdata=lcd_bus^0;
sbit sclk=lcd_bus^1;
sbit e =lcd_bus^2;
sbit rw=lcd_bus^3;
sbit rs=lcd_bus^4;
sbit kk=lcd_bus^5;
delay(uchar d)
{
while(--d);
}
send_char(uchar da)
{
uchar i;
for(i=0;i<8;i++)
{
sclk=0;
_nop_();
if(da&0x80) sdata=1;
else sdata=0;
_nop_();
sclk=1;
_nop_();
da=da<<1;
}
sclk=0;
}
/*********写命令****************/
void lcd_wrcmd(uchar cmd)
{
delay(250);
delay(250);
send_char(cmd);
rs=0;
rw=0;
_nop_();
e=1;
_nop_();
_nop_();
e=0;
//rs=1;rw=1;
}
/************向液晶片写数据***************/
void lcd_wrdata( uchar lcddata)
{
delay(250);
delay(250);
send_char(lcddata);
rs=1;
rw=0;
_nop_();
e=1;
_nop_();
_nop_();
_nop_();
e=0;
//rs=1;rw=1;
}
void lcd_ini(void)
{
send_char(0);
lcd_wrcmd(0x38);
delay(100);
lcd_wrcmd(0x38);
delay(100);
lcd_wrcmd(0x0c);
delay(100);
lcd_wrcmd(0x06);
delay(100);
lcd_wrcmd(0x01);
delay(100);
//lcd_wrcmd(0x38);
}
uchar key()
{
uchar keycode=0;
uchar i;
uchar temp=0xfe,t=0;
e=0;
//rw=1;rs=1;
send_char(0);
kk=1;
if(kk==0)
{
delay(250);
send_char(0);
kk=1;
if(kk==0)
{
for(i=1;i<=8;i++)
{
send_char(temp);
if (kk==0)
{
keycode=i;
break;
}
temp=_crol_(temp,1);
}
}
while(kk==0)
{
send_char(0);
kk=1;
}
}
//Change it yourself!
if(keycode==1)
{
t=1;
}
else if(keycode==2)
{
t=5;
}
else if(keycode==3)
{
t=2;
}
else if(keycode==4)
{
t=6;
}
else if(keycode==5)
{
t=8;
}
else if(keycode==6)
{
t=4;
}
else if(keycode==7)
{
t=7;
}
else if(keycode==8)
{
t=3;
}
return t;
}
void display(uchar cmd,uchar code *str)
{
uchar i=0;
lcd_wrcmd(cmd);
while(str[i]!='\0')
{
lcd_wrdata(str[i]);
i++;
}
}
main()
{
uchar ii,i;
uchar code str1[]="Lcd_Key [H.C.H]";
uchar code str2[]="Key=";
SCON=0x50;
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
TR1=1;
lcd_ini();
lcd_ini();
display(0x80,str1);
display(0xc0,str2);
while(1)
{
ii=key();
if(ii!=0)
{
lcd_wrcmd(0xc4);
lcd_wrdata(0x30+ii);
for(i=0;i<16;i++)
{
SBUF=0x30+ii;
while(TI==0); //发送字节
TI=0;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -