?? 5285.c
字號(hào):
unsigned char code keylist[]={
0xff, ///0:not use
10, ///1
3, ///2
6, ///3
9, ///4
14, ///5
26, ///6
28, ///7
24, ///8
23, ///9
0xff,//10
1, //11
4, ///12
7, ///13
17, ///14
35, ///15 ???屏蔽
12, ///16
18, ///17
25, ///18
21, ///19
0xff, ///20
2, ///21
5, ///22
8, ///23
11, ///24
13, ///25
20, ///26
27, ///27
19, ///28
};
void delay(int num)
{
while(num--) ;
}
void Beep(unsigned int nn)
{
P1=0x86;
bggxs.bggxs2.Buzzer=1;
XBYTE[0x0]=bggxs.bggxs1.bggxs0;
delay(nn);
P1=0x86;
bggxs.bggxs2.Buzzer=0;
XBYTE[0x0]=bggxs.bggxs1.bggxs0;
}
void outbyt(unsigned char data1)
{unsigned char xx;
xx=8;
_nop_();_nop_();
STB=0;
///lastd273.lastd2.CLK=1;
bggxs.bggxs2.CLK=1;
P1=6;
///XBYTE[1]=lastd273.lastd1.lastd0;
XBYTE[1]=bggxs.bggxs1.bggxs0;
while(xx)
{
///clk=0;
///lastd273.lastd2.CLK=0;
bggxs.bggxs2.CLK=0;
///XBYTE[1]=lastd273.lastd1.lastd0;
XBYTE[1]=bggxs.bggxs1.bggxs0;
/// _nop_();_nop_();
delay(2);
DIN=(data1 & 0x01);
delay(2);
/// _nop_();_nop_();
///lastd273.lastd2.CLK=1;
bggxs.bggxs2.CLK=1;
///XBYTE[1]=lastd273.lastd1.lastd0;
XBYTE[1]=bggxs.bggxs1.bggxs0;
///clk=1;
xx--;
data1=data1>>1;
}
DIN=0;
///STB=1;
}
unsigned char inbyt(void)
{unsigned char xx;
unsigned char datain;
///dou=1;
xx=8;
datain=0;
_nop_();_nop_();
STB=0;
///lastd273.lastd2.CLK=1;
bggxs.bggxs2.CLK=1;
P1=6;
///XBYTE[1]=lastd273.lastd1.lastd0;
XBYTE[1]=bggxs.bggxs1.bggxs0;
_nop_();_nop_();
///clk=1;
do
{
///clk=0;
///lastd273.lastd2.CLK=0;
///XBYTE[1]=lastd273.lastd1.lastd0;
bggxs.bggxs2.CLK=0;
XBYTE[1]=bggxs.bggxs1.bggxs0;
delay(2);
///_nop_();_nop_();
///lastd273.lastd2.CLK=1;
///XBYTE[1]=lastd273.lastd1.lastd0;
bggxs.bggxs2.CLK=1;
XBYTE[1]=bggxs.bggxs1.bggxs0;
//// clk=1;
delay(2);
///_nop_();_nop_();
P1=8;
_nop_();
if (XBYTE[0]&0x40)
///if(dou)
{
datain=datain|0x80;
}
else datain=datain|0x00;
xx--;
if(xx!=0)
datain=(datain>>1);
P1=6;
}
while(xx!=0);
return datain;
}
void nt5285_int()
{
/*選擇5285片選*/
STB=1;
outbyt(0x40);
STB=1;
outbyt(0xc0);
outbyt(0x00);outbyt(0x0);outbyt(0x0);
STB=1;
outbyt(0x02);
STB=1;
outbyt(0x80);
STB=1;
///outbyt(0x8f);
}
void nt5285(unsigned char disp,unsigned char adr)
{
/*選擇5285片選*/
STB=1;
outbyt(0xc0+adr*2);
STB=1;
outbyt(0x44);
outbyt(disp);
STB=1;
_nop_();_nop_();
///outbyt(0x02);
STB=1;
outbyt(0x8f);
_nop_();_nop_();
STB=1;
_nop_();
}
void rd5285()
{uchar data key[5],ss,j;
/////////////////////
STB=1;
outbyt(0x46);
key[0]=inbyt();
key[1]=inbyt();
key[2]=inbyt();
key[3]=inbyt();
key[4]=inbyt();
STB=1;
/////////////////////
////////scankey();
for (j=0;j<5;j++)
{
ss=key[j];
keybuf=0;
if (ss)
{
if (ss==1||ss==8)
{
keybuf=j*2+ss/8+1;
}
else
if (ss==2||ss==16)
{
keybuf=10+j*2+ss/16+1;
}
else
if (ss==4||ss==32)
{
keybuf=20+j*2+ss/32+1;
}
break;
}
}
//////////////////////////////////20051105
///////////update here
if (keybuf>0)
{
lastkey=keybuf;
keybuf=0;
}
else
{
keybuf=lastkey;
lastkey=0;
if (keybuf>0&&keybuf<29)
{
/// dkey=keybuf;
keybuf=keylist[keybuf];
if (keybuf>0&&keybuf<99)
{
bgg_bit=0;
/////如果背光已關(guān),開背光
Beep(160);
if (bBggStat==1)
{
keybuf=0;
}
}
}
else keybuf=0;
}
//////////////////////////////////
/////last code
/*
if (keybuf!=lastkey)
{
#ifdef AFX_Keybroad_______
if (keybuf>0&&keybuf<29)
{
/// dkey=keybuf;
keybuf=keylist[keybuf];
if (keybuf>0&&keybuf<99)
{
bgg_bit=0;
/////如果背光已關(guān),開背光
Beep(160);
if (bBggStat==1)
{
keybuf=0;
}
}
}
else keybuf=0;
#endif
lastkey=keybuf;
if (keybuf>0&&keybuf!=NOKEY) bgg_bit=0;
}
else
{
keybuf=0;
/////lastkey=keybuf;
}
*/
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -