⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 7281.c

📁 7281键盘代码
💻 C
字号:
///////////////////////////////////
/////=======================

///sfr P4=0xE8;

///=======================

sbit C1=P3^4;
sbit C2=P3^5;
sbit D1=P4^0;
sbit D2=P4^1;
sbit K1=P4^2;
sbit K2=P4^3;

//////////key list decode
unsigned char code keytab[]={
0,3,6,9,0x44,// aotu
0x45,0x46,0x46,///
1,4,7,0,0x0b,0x0c,0x0d,0x0e,0x0f,
2,5,8,0,0x13,0x14,0x15,0x16,0x17,
0x18,0x19,
};
/////////////////////////////////
#define  kAPPart  12

#define  LEFT  14
#define  RIGHT 11



#define   UP     19
#define   DOWN   13


/////////暂时定义设置键=26
#define  kHzsz      22
#define  kSetUp     0x45
#define  kExit      20
#define  kZJ        0x44 
#define  kHandAuto  0x46
#define  kXY        25
#define  kCANCEL    23
#define  kRESET     24 
#define  kTime      21

#define  kSdStart   29
#define  kSdClose   16
#define  kAck       15
#define  kPrt       0x47
////      回车      25
//////////////////////////////////
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;
}
////////////////////////////////////////
#define clk C1
#define dat D1
void send_byte(unsigned char send_byte)
{
unsigned char bit_counter;
do {
clk=0; // clk dat
clk=1;

} while (dat); // BC728X dat
clk=0; // clk
clk=1;
while (!dat); // BC728X
for (bit_counter=0;bit_counter<8;bit_counter++)
{ // 8
if ((send_byte&0x80)==0)
{
dat=0;// bit 0, dat 0
}
else
{
dat=1; // 1
}
send_byte=send_byte*2; // send_byte
clk=0; // clk
clk=1;
delay(1); //
}
dat=1; // dat
delay(2); //
}

// ************************************************************
// ************************************************************
//  * BC728X *
// ************************************************************
unsigned char receive_byte(void)
{
unsigned char bit_counter, in_byte;
clk=0; // clk
clk=1;
while (dat); // BC728X
clk=0; // ,
clk=1;
for (bit_counter=0;bit_counter<8;bit_counter++)
{ // 8 bit
delay(1); //
in_byte=in_byte*2; // in_byte
if (dat) // dat '1'
{
in_byte=in_byte|0x01; // bit0=1
}
clk=0; // clk
clk=1;
}
//
delay(2); //
return(in_byte);
}
void write728x(unsigned char reg_add, unsigned char write_data)
{
	send_byte(reg_add);
	send_byte(write_data);
}
unsigned char read728x(unsigned char reg_add)
{
send_byte(reg_add|0x80); // (bit7=1)
return(receive_byte()); //
}
////////////////////////////////////////
/////set its mode 
void nt7281_init(void)///init7281
{
write728x(0x12,0x80);	
}
void nt7281(uchar kx,uchar ks)
{
write728x(kx,ks);	
}
void rd5285(void)
{
keybuf=NOKEY;
if (K1==0)///if fine key press here ,then read it
{
keybuf=read728x(0x13);
bgg_bit=0;
	     /////如果背光已关,仅仅开背光
	     /////取消此次按键
	     Beep(160);
	     if (bBggStat==1) 
	     {
	     keybuf=0; 
	     }
}
if (keybuf<=0x19) keybuf=keytab[keybuf]; else keybuf=NOKEY;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -