for(y=0;y<10;y++);
}
voidledxierushuju(charshuju)
{
RS=1;
RW=0;
P0=shuju;
delay
(1);
E=1;
delay
(1);
E=0;
}
voidledxiezhiling(ucharzhiling)
{
RS=0;
RW=0;
P0=zhiling;
delay
(1);
E=1;
delay
(1);
E=0;
}
voidledchushihua()
{
E=0;
ledxiezhiling(0x38);
ledxiezhiling(0x0c);
ledxiezhiling(0x06);
ledxiezhiling(0x01);
}
voidxiezhiling(ucharzhiling)//鼠标写指令函数
{
ucharx;
inti;
inta;
x=zhiling;
while(c==0||d==0);
d=0;
while(c==1);
for(i=1;i<12;i++)
{
a=x%2;
d=a;
while(c==0);
while(c==1);
x=x/2;
}
c=1;
d=1;
delay
(1);
}
uchardushuju()//鼠标读数据函数
{
ucharx=0;
inti;
inta;
intm=0;
while(d==0);
//时钟是由键盘给的,不需要单片机提供
//P0=0xfe;
for(i=0;i<11;i++)
{
//P0=0xaa;
if(i==1)
m=1;
else
m=m*2;
while(c!
=0);
//P0=0xaa;
while(c!
=1);
//P0=0xaa;
if(i<9)
{
a=d;
x=x+a*m;
}
}
c=1;
d=1;
delay
(1);
returnx;
}
voidshujuxianshi(ucharshuju,uintx,uinty,uinti)
{
if(x>0)
x--;
if(i==1)
return;
switch(y)
{
case0:
switch(shuju)
{
case0x70:
ledxiezhiling(0x80+x);//0
ledxierushuju(0x30);
break;
case0x69:
ledxiezhiling(0x80+x);//1
ledxierushuju(0x31);
break;
case0x72:
ledxiezhiling(0x80+x);//2
ledxierushuju(0x32);
break;
case0x7a:
ledxiezhiling(0x80+x);//3
ledxierushuju(0x33);
break;
case0x6b:
ledxiezhiling(0x80+x);//4
ledxierushuju(0x34);
break;
case0x73:
ledxiezhiling(0x80+x);//5
ledxierushuju(0x35);
break;
case0x74:
ledxiezhiling(0x80+x);//6
ledxierushuju(0x36);
break;
case0x6c:
ledxiezhiling(0x80+x);//7
ledxierushuju(0x37);
break;
case0x75:
ledxiezhiling(0x80+x);//8
ledxierushuju(0x38);
break;
case0x7d:
ledxiezhiling(0x80+x);//9
ledxierushuju(0x39);
break;
case0x77:
ledxiezhiling(0x80+x);//numlock
ledxierushuju(0xff);
break;
//case0x7f:
ledxiezhiling(0x80);///
//ledxierushuju(0x2f);
//break;
case0x7c:
ledxiezhiling(0x80+x);//*
ledxierushuju(0xff);
break;
case0x7b:
ledxiezhiling(0x80+x);//-
ledxierushuju(0x2d);
break;
case0x79:
ledxiezhiling(0x80+x);//+
ledxierushuju(0x2b);
break;
case0x15:
ledxiezhiling(0x80+x);//Q
ledxierushuju(0x51);
break;
case0x1d:
ledxiezhiling(0x80+x);//W
ledxierushuju(0x57);
break;
case0x24:
ledxiezhiling(0x80+x);//E
ledxierushuju(0x45);
break;
case0x2d:
ledxiezhiling(0x80+x);//R
ledxierushuju(0x52);
break;
case0x2c:
ledxiezhiling(0x80+x);//T
ledxierushuju(0x54);
break;
case0x35:
ledxiezhiling(0x80+x);//Y
ledxierushuju(0x59);
break;
case0x3c:
ledxiezhiling(0x80+x);//U
ledxierushuju(0x55);
break;
case0x43:
ledxiezhiling(0x80+x);//I
ledxierushuju(0x49);
break;
case0x44:
ledxiezhiling(0x80+x);//O
ledxierushuju(0x4f);
break;
case0x4d:
ledxiezhiling(0x80+x);//P
ledxierushuju(0x50);
break;
case0x54:
ledxiezhiling(0x80+x);//[
ledxierushuju(0x5b);
break;
case0x5b:
ledxiezhiling(0x80+x);//]
ledxierushuju(0x5d);
break;
//case0x5a:
ledxiezhiling(0x80+x);//enter
//ledxierushuju(0xff);
//break;
case0x52:
ledxiezhiling(0x80+x);//'
ledxierushuju(0x27);
break;
case0x4c:
ledxiezhiling(0x80+x);//;
ledxierushuju(0x3b);
break;
case0x4b:
ledxiezhiling(0x80+x);//L
ledxierushuju(0x4c);
break;
case0x42:
ledxiezhiling(0x80+x);//K
ledxierushuju(0x4b);
break;
case0x3b:
ledxiezhiling(0x80+x);//J
ledxierushuju(0x4a);
break;
case0x33:
ledxiezhiling(0x80+x);//H
ledxierushuju(0x48);
break;
case0x34:
ledxiezhiling(0x80+x);//G
ledxierushuju(0x47);
break;
case0x2b:
ledxiezhiling(0x80+x);//F
ledxierushuju(0x46);
break;
case0x23:
ledxiezhiling(0x80+x);//D
ledxierushuju(0x44);
break;
case0x1b:
ledxiezhiling(0x80+x);//S
ledxierushuju(0x53);
break;
case0x1c:
ledxiezhiling(0x80+x);//A
ledxierushuju(0x41);
break;
case0x1a:
ledxiezhiling(0x80+x);//Z
ledxierushuju(0x5a);
break;
case0x22:
ledxiezhiling(0x80+x);//X
ledxierushuju(0x58);
break;
case0x21:
ledxiezhiling(0x80+x);//C
ledxierushuju(0x43);
break;
case0x2a:
ledxiezhiling(0x80+x);//V
ledxierushuju(0x56);
break;
case0x32:
ledxiezhiling(0x80+x);//B
ledxierushuju(0x42);
break;
case0x31:
ledxiezhiling(0x80+x);//N
ledxierushuju(0x4e);
break;
case0x3a:
ledxiezhiling(0x80+x);//M
ledxierushuju(0x4d);
break;
case0x41:
ledxiezhiling(0x80+x);//,
ledxierushuju(0x2c);
break;
case0x49:
ledxiezhiling(0x80+x);//.
ledxierushuju(0x2e);
break;
case0x4a:
ledxiezhiling(0x80+x);///
ledxierushuju(0x2f);
break;
//case0x59:
ledxiezhiling(0x80+x);//SHIFT
//ledxierushuju(0x34);
//break;
default:
ledxiezhiling(0x80+x);
ledxierushuju(0xff)