📄 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 + -