📄 main.c
字号:
}
break;
}
case 13:
{
if( mrtime >= Fin_us )
{
mrtime = 0;
mdatain = 0;
mroption = 14;
}
break;
}
case 14:
{
if( mrtime >= Fie_us )
{
mclkin = 0;
mrtime = 0;
mroption = 15;
}
break;
}
case 15:
{
if( mrtime >= Foy_us )
{
mrtime = 0;
mclkin = 1;
mroption = 16;
}
break;
}
case 16:
{
if( mrtime >= Fie_us )
{
mdatain = 1;
mroption = 17;
}
break;
}
case 17:
{
ltime = 1;
while(ltime > 0)
{
if( ltime & mrcode )
{
mcheckbit = !mcheckbit;
}
ltime *= 2;
}
if( mcheckbit )
{
mrtime = 0;
mroption = 18;
}
else
{
mroption = 0;
}
break;
}
case 18:
{
if( mrtime >= FoyFie_us )
{
mroption = 0;
if(state == STATE_A)
{
cutime = 0;
cmwcodenum = 1;
cmwcodedata[0] = mrcode;
cmwcode_p = 0;
}
else
{
mcoderok = 1;
}
}
break;
}
}
}
/* 键盘数据读取程序 */
void kread_data( void )
{
switch( kroption )
{
case 0:
{
if( kclkin == 0 && kdatain == 0)
{
kroption = 1;
}
break;
}
case 1:
{
if( kclkin == 1 )
{
kroption = 2;
}
break;
}
case 2:
{
if( kdatain == 0 )
{
kroption = 3;
krtime = 0;
krnum = 8;
}
else
{
kroption = 0;
}
break;
}
case 3:
{
if( krtime >= Twe_us )
{
krtime = 0;
kclkin = 0;
kroption = 4;
}
break;
}
case 4:
{
if( krtime >= Foy_us )
{
krtime = 0;
kclkin = 1;
kroption = 5;
}
break;
}
case 5:
{
if( krtime >= Twe_us )
{
krtime = 0;
krcode /= 2;
if( kdatain == 1 )
{
krcode |= 0x80;
}
krnum --;
if( krnum == 0 )
{
kroption = 6;
}
else
{
kroption = 3;
}
}
break;
}
case 6:
{
if( krtime >= Twe_us )
{
krtime = 0;
kclkin = 0;
kroption = 7;
}
break;
}
case 7:
{
if( krtime >= Foy_us )
{
krtime = 0;
kclkin = 1;
kroption = 8;
}
break;
}
case 8:
{
if( krtime >= Twe_us )
{
krtime = 0;
kcheckbit = kdatain;
kroption = 9;
}
break;
}
case 9:
{
if( krtime >= Twe_us )
{
krtime = 0;
kclkin = 0;
kroption = 10;
}
break;
}
case 10:
{
if( krtime >= Foy_us )
{
krtime = 0;
kclkin = 1;
kroption = 11;
}
break;
}
case 11:
{
if( krtime >= Twe_us )
{
krtime = 0;
kroption = 12;
}
break;
}
case 12:
{
if( kdatain == 1 )
{
krtime = 0;
kroption = 13;
}
break;
}
case 13:
{
if( krtime >= Fin_us )
{
krtime = 0;
kdatain = 0;
kroption = 14;
}
break;
}
case 14:
{
if( krtime >= Fie_us )
{
kclkin = 0;
krtime = 0;
kroption = 15;
}
break;
}
case 15:
{
if( krtime >= Foy_us )
{
krtime = 0;
kclkin = 1;
kroption = 16;
}
break;
}
case 16:
{
if( krtime >= Fie_us )
{
kdatain = 1;
kroption = 17;
}
break;
}
case 17:
{
ltime = 1;
while(ltime > 0)
{
if( ltime & krcode )
{
kcheckbit = !kcheckbit;
}
ltime *= 2;
}
if( kcheckbit )
{
krtime = 0;
kroption = 18;
}
else
{
kroption = 0;
}
break;
}
case 18:
{
if( krtime >= FoyFie_us )
{
kroption = 0;
if(state == STATE_A)
{
cuktime = 0;
ckwcodenum = 1;
ckwcodedata[0] = krcode;
ckwcode_p = 0;
}
else
{
kcoderok = 1;
}
}
break;
}
}
}
void mwrite_data( void )
{
BOOL lbit;
switch( msoption )
{
case 0:
{
mclkin = 1;
msoption = 18;
break;
}
case 18:
{
if( mclkin == 1 )
{
mrtime = 0;
msoption = 1;
ms_now = 1;
}
}
case 1:
{
if( mrtime >= Fiy_us )
{
if( mclkin == 1 )
{
msoption = 2;
}
else
{
msoption = 0;
}
}
break;
}
case 2:
{
if( mdatain == 1 )
{
msoption = 15;
mrtime = 0;
msnum = 8;
mscheckbit = 1;
mscode = mcode[ mcodenum - 1 ];
}
else
{
mroption = 2;
mcodenum = 0;
}
break;
}
case 3:
{
if ( mrtime >= Twe_us )
{
lbit = mscode & 0x01;
mdatain = lbit;
mscheckbit ^= lbit;
mscode /= 2;
mrtime = 0;
msoption = 4;
}
break;
}
case 4:
{
if ( mrtime >= Twe_us )
{
mrtime = 0;
mclkin = 0;
msoption = 5;
}
break;
}
case 5:
{
if ( mrtime >= Foy_us )
{
mclkin = 1;
mrtime = 0;
msnum --;
if( msnum == 0 )
{
msoption = 6;
}
else
{
msoption = 3;
}
}
break;
}
case 6:
{
if ( mrtime >= Twe_us )
{
mdatain = mscheckbit;
mrtime = 0;
msoption = 7;
}
break;
}
case 7:
{
if ( mrtime >= Twe_us )
{
mrtime = 0;
mclkin = 0;
msoption = 8;
}
break;
}
case 8:
{
if ( mrtime >= Foy_us )
{
mclkin = 1;
mrtime = 0;
msoption = 10;
}
break;
}
case 10:
{
if ( mrtime >= Twe_us )
{
mdatain = 1;
mrtime = 0;
msoption = 11;
}
break;
}
case 11:
{
if ( mrtime >= Twe_us )
{
mrtime = 0;
mclkin = 0;
msoption = 12;
}
break;
}
case 12:
{
if ( mrtime >= Foy_us )
{
mclkin = 1;
mrtime = 0;
msoption = 13;
}
break;
}
case 13:
{
if ( mrtime >= Twe_us )
{
mrtime = 0;
msoption = 14;
}
break;
}
case 14:
{
if ( mrtime >= Thy_us )
{
msoption = 0;
mrtime = 0;
mcodenum --;
/*if( cmrcodenum!= 0 && mcodenum == 0 && state == STATE_A )
{
mcodenum = 1;
cmrcodenum = 0;
mcode[0] = cmrcodedata[0];
}*/
if( mcodenum == 0 )
{
ms_now = 0;
}
}
break;
}
case 15:
{
if ( mrtime >= Twe_us )
{
mdatain = 0;
msoption = 16;
}
break;
}
case 16:
{
if ( mrtime >= Twe_us )
{
mrtime = 0;
mclkin = 0;
msoption = 17;
}
break;
}
case 17:
{
if ( mrtime >= Foy_us )
{
mclkin = 1;
mrtime = 0;
msoption = 3;
}
break;
}
}
}
void kwrite_data( void )
{
BOOL lbit;
switch( ksoption )
{
case 0:
{
ksoption = 18;
kclkin = 1;
break;
}
case 18:
{
if( kclkin == 1 )
{
krtime = 0;
ksoption = 1;
ks_now = 1;
}
break;
}
case 1:
{
if( krtime >= Fiy_us )
{
if( kclkin == 1 )
{
ksoption = 2;
}
else
{
ksoption = 0;
}
}
break;
}
case 2:
{
if( kdatain == 1 )
{
ksoption = 15;
krtime = 0;
ksnum = 8;
kscheckbit = 1;
kscode = kcode[ kcodenum - 1 ];
}
else
{
kroption = 2;
kcodenum = 0;
}
break;
}
case 3:
{
if ( krtime >= Twe_us )
{
lbit = kscode & 0x01;
kdatain = lbit;
kscheckbit ^= lbit;
kscode /= 2;
krtime = 0;
ksoption = 4;
}
break;
}
case 4:
{
if ( krtime >= Twe_us )
{
krtime = 0;
kclkin = 0;
ksoption = 5;
}
break;
}
case 5:
{
if ( krtime >= Foy_us )
{
kclkin = 1;
krtime = 0;
ksnum --;
if( ksnum == 0 )
{
ksoption = 6;
}
else
{
ksoption = 3;
}
}
break;
}
case 6:
{
if ( krtime >= Twe_us )
{
kdatain = kscheckbit;
krtime = 0;
ksoption = 7;
}
break;
}
case 7:
{
if ( krtime >= Twe_us )
{
krtime = 0;
kclkin = 0;
ksoption = 8;
}
break;
}
case 8:
{
if ( krtime >= Foy_us )
{
kclkin = 1;
krtime = 0;
ksoption = 10;
}
break;
}
case 10:
{
if ( krtime >= Twe_us )
{
kdatain = 1;
krtime = 0;
ksoption = 11;
}
break;
}
case 11:
{
if ( krtime >= Twe_us )
{
krtime = 0;
kclkin = 0;
ksoption = 12;
}
break;
}
case 12:
{
if ( krtime >= Foy_us )
{
kclkin = 1;
krtime = 0;
ksoption = 13;
}
break;
}
case 13:
{
if ( krtime >= Twe_us )
{
krtime = 0;
ksoption = 14;
}
break;
}
case 14:
{
if ( krtime >= Thy_us )
{
ksoption = 0;
krtime = 0;
kcodenum --;
if( ckrcodenum!= 0 && kcodenum == 0 && state == STATE_A )
{
kcodenum = 1;
ckrcodenum = 0;
kcode[0] = ckrcodedata[0];
}
if( kcodenum == 0 )
{
ks_now = 0;
}
}
break;
}
case 15:
{
if ( krtime >= Twe_us )
{
kdatain = 0;
ksoption = 16;
}
break;
}
case 16:
{
if ( krtime >= Twe_us )
{
krtime = 0;
kclkin = 0;
ksoption = 17;
}
break;
}
case 17:
{
if ( krtime >= Foy_us )
{
kclkin = 1;
krtime = 0;
ksoption = 3;
}
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -