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

📄 mktest.c

📁 显示及鼠标、键盘切换程序。使用STC单片机
💻 C
字号:
#include <STC12C5410AD.H>
#include <DATA.H>
#include <CODE.H>
#include <absacc.h>

extern unsigned char zcrmtime,zcrktime;


void mread_data1( void )
{

switch( mroption1 )
	{
	case 0:
		{
		if( mclkin1 == 0 && mdatain1 == 0)
			{
			mroption1 = 1;
			}
		break;
		}
	case 1:
		{
		if( mclkin1 == 1 )
			{
			mroption1 = 2;
			}
		break;
		}
	case 2:
		{
		if( mdatain1 == 0 )
			{
			mroption1 = 3;
			mrtime1 = 0;
			mrnum1  = 8;
			}
		else
			{
			mroption1 = 0;
			}
		break;
		}
	case 3:
		{
		if( mrtime1 >= Twe_us )
			{
			mrtime1 = 0;
			mclkin1 = 0;
			mroption1 = 4;
			}
		break;
		}
	case 4:
		{
		if( mrtime1 >= Foy_us )
			{
			mrtime1 = 0;
			mclkin1 = 1;
			mroption1 = 5;
			}
		break;
		}
	case 5:
		{
		if( mrtime1 >= Twe_us )
			{
			mrtime1 = 0;
			mrcode1 /= 2;
			if( mdatain1 == 1 )
				{
				mrcode1 |= 0x80;
				}
			mrnum1 --;
			if( mrnum1 == 0 )
				{
				mroption1 = 6;
				}
			else
				{
				mroption1 = 3;
				}
			}
		break;
		}
	case 6:
		{
		if( mrtime1 >= Twe_us )
			{
			mrtime1 = 0;
			mclkin1 = 0;
			mroption1 = 7;
			}
		break;
		}
	case 7:
		{
		if( mrtime1 >= Foy_us )
			{
			mrtime1 = 0;
			mclkin1 = 1;
			mroption1 = 8;
			}
		break;
		}
	case 8:
		{
		if( mrtime1 >= Twe_us )
			{
			mrtime1 = 0;
			mcheckbit1 = mdatain1;
			mroption1 = 9;
			}
		break;
		}
	case 9:
		{
		if( mrtime1 >= Twe_us )
			{
			mrtime1 = 0;
			mclkin1 = 0;
			mroption1 = 10;
			}
		break;
		}
	case 10:
		{
		if( mrtime1 >= Foy_us )
			{
			mrtime1 = 0;
			mclkin1 = 1;
			mroption1 = 11;
			}
		break;
		}
	case 11:
		{
		if( mrtime1 >= Twe_us )
			{
			mrtime1 = 0;
			mroption1 = 12;
			}
		break;
		}
	case 12:
		{
		if( mdatain1  == 1 )
			{
			mrtime1 = 0;
			mroption1 = 13;
			}
		break;
		}
	case 13:
		{
		if( mrtime1 >= Fin_us )
			{
			mrtime1 = 0;
			mdatain1 = 0;
			mroption1 = 14;
			}
		break;
		}
	case 14:
		{
		if( mrtime1 >= Fie_us )
			{
			mclkin1 = 0;
			mrtime1 = 0;
			mroption1 = 15;
			}
		break;
		}
	case 15:
		{
		if( mrtime1 >= Foy_us )
			{
			mrtime1 = 0;
			mclkin1 = 1;
			mroption1 = 16;
			}
		break;
		}
	case 16:
		{
		if( mrtime1 >= Fie_us )
			{
			mdatain1 = 1;
			mroption1 = 17;
			}
		break;
		}
	case 17:
		{
		ltime = 1;
		while(ltime > 0)
			{
			if( ltime & mrcode1 )
				{
				mcheckbit1 = !mcheckbit1;
				}
			ltime *= 2;
			}
		if( mcheckbit1 )
			{
			mrtime1 = 0;
			mroption1 = 18;
			}
		else
			{
			mroption1 = 0;
			}
		break;
		}
	case 18:
		{
		if( mrtime1 >= FoyFie_us )
			{
			mroption1 = 0;
			if(state == STATE_B)
				{
				cutime = 0;
				cmwcodenum = 1;
				cmwcodedata[0] = mrcode1;
				cmwcode_p = 0;
				}
			else
				{
				mcoderok1 = 1;
				}
			}
		break;
		}
	}
}

/*				键盘数据读取程序			*/
void kread_data1( void )
{

switch( kroption1 )
	{
	case 0:
		{
		if( kclkin1 == 0 && kdatain1 == 0)
			{
			kroption1 = 1;
			}
		break;
		}
	case 1:
		{
		if( kclkin1 == 1 )
			{
			kroption1 = 2;
			}
		break;
		}
	case 2:
		{
		if( kdatain1 == 0 )
			{
			kroption1 = 3;
			krtime1 = 0;
			krnum1  = 8;
			}
		else
			{
			kroption1 = 0;
			}
		break;
		}
	case 3:
		{
		if( krtime1 >= Twe_us )
			{
			krtime1 = 0;
			kclkin1 = 0;
			kroption1 = 4;
			}
		break;
		}
	case 4:
		{
		if( krtime1 >= Foy_us )
			{
			krtime1 = 0;
			kclkin1 = 1;
			kroption1 = 5;
			}
		break;
		}
	case 5:
		{
		if( krtime1 >= Twe_us )
			{
			krtime1 = 0;
			krcode1 /= 2;
			if( kdatain1 == 1 )
				{
				krcode1 |= 0x80;
				}
			krnum1 --;
			if( krnum1 == 0 )
				{
				kroption1 = 6;
				}
			else
				{
				kroption1 = 3;
				}
			}
		break;
		}
	case 6:
		{
		if( krtime1 >= Twe_us )
			{
			krtime1 = 0;
			kclkin1 = 0;
			kroption1 = 7;
			}
		break;
		}
	case 7:
		{
		if( krtime1 >= Foy_us )
			{
			krtime1 = 0;
			kclkin1 = 1;
			kroption1 = 8;
			}
		break;
		}
	case 8:
		{
		if( krtime1 >= Twe_us )
			{
			krtime1 = 0;
			kcheckbit1 = kdatain1;
			kroption1 = 9;
			}
		break;
		}
	case 9:
		{
		if( krtime1 >= Twe_us )
			{
			krtime1 = 0;
			kclkin1 = 0;
			kroption1 = 10;
			}
		break;
		}
	case 10:
		{
		if( krtime1 >= Foy_us )
			{
			krtime1 = 0;
			kclkin1 = 1;
			kroption1 = 11;
			}
		break;
		}
	case 11:
		{
		if( krtime1 >= Twe_us )
			{
			krtime1 = 0;
			kroption1 = 12;
			}
		break;
		}
	case 12:
		{
		if( kdatain1  == 1 )
			{
			krtime1 = 0;
			kroption1 = 13;
			}
		break;
		}
	case 13:
		{
		if( krtime1 >= Fin_us )
			{
			krtime1 = 0;
			kdatain1 = 0;
			kroption1 = 14;
			}
		break;
		}
	case 14:
		{
		if( krtime1 >= Fie_us )
			{
			kclkin1 = 0;
			krtime1 = 0;
			kroption1 = 15;
			}
		break;
		}
	case 15:
		{
		if( krtime1 >= Foy_us )
			{
			krtime1 = 0;
			kclkin1 = 1;
			kroption1 = 16;
			}
		break;
		}
	case 16:
		{
		if( krtime1 >= Fie_us )
			{
			kdatain1 = 1;
			kroption1 = 17;
			}
		break;
		}
	case 17:
		{
		ltime = 1;
		while(ltime > 0)
			{
			if( ltime & krcode1 )
				{
				kcheckbit1 = !kcheckbit1;
				}
			ltime *= 2;
			}
		if( kcheckbit1 )
			{
			krtime1 = 0;
			kroption1 = 18;
			}
		else
			{
			kroption1 = 0;
			}
		break;
		}
	case 18:
		{
		if( krtime1 >= FoyFie_us )
			{
			kroption1 = 0;
			if(state == STATE_B)
				{
				cuktime = 0;
				ckwcodenum = 1;
				ckwcodedata[0] = krcode1;
				ckwcode_p = 0;
				}
			else
				{
				kcoderok1 = 1;
				}
			}
		break;
		}
	}
}


void mwrite_data1( void )
{
BOOL	lbit1;

switch( msoption1 )
	{
	case 0:
		{
		msoption1 = 18;
		mclkin1 = 1;
		break;
		}
	case 18:
		{
		if( mclkin1 == 1 )
			{
			mrtime1 = 0;
			msoption1 = 1;
			m1s_now = 1;
			}
		break;
		}
	case 1:
		{
		if( mrtime1 >= Fiy_us )
			{
			if( mclkin1 == 1 )
				{
				msoption1 = 2;
				}
			else
				{
				msoption1 = 0;
				}
			}
		break;
		}
	case 2:
		{
		if( mdatain1 == 1 )
			{
			msoption1 = 15;
			mrtime1 = 0;
			msnum1 = 8;
			mscheckbit1 = 1;
			mscode1 = mcode1[ mcodenum1 - 1 ];
			}
		else
			{
			mroption1 = 2;
			mcodenum1 = 0;
			}
		break;
		}

	case 3:
		{
		if ( mrtime1 >= Twe_us )
			{
			lbit1 = mscode1 & 0x01;
			mdatain1 = lbit1; 
			mscheckbit1 ^= lbit1;
			mscode1 /= 2;
			mrtime1 = 0;
			msoption1 = 4;
			}
		break;
		}
	case 4:
		{
		if ( mrtime1 >= Twe_us )
			{
			mrtime1 = 0;
			mclkin1 = 0;
			msoption1 = 5;
			}
		break;
		}
	case 5:
		{
		if ( mrtime1 >= Foy_us )
			{
			mclkin1 = 1;
			mrtime1 = 0;
			msnum1 --;
			if( msnum1 == 0 )
				{
				msoption1 = 6;
				}
			else
				{
				msoption1 = 3;
				}
			}
		break;
		}
	case 6:
		{
		if ( mrtime1 >= Twe_us )
			{
			mdatain1 = mscheckbit1; 
			mrtime1 = 0;
			msoption1 = 7;
			}
		break;
		}
	case 7:
		{
		if ( mrtime1 >= Twe_us )
			{
			mrtime1 = 0;
			mclkin1 = 0;
			msoption1 = 8;
			}
		break;
		}
	case 8:
		{
		if ( mrtime1 >= Foy_us )
			{
			mclkin1 = 1;
			mrtime1 = 0;
			msoption1 = 10;
			}
		break;
		}
	case 10:
		{
		if ( mrtime1 >= Twe_us )
			{
			mdatain1 = 1; 
			mrtime1 = 0;
			msoption1 = 11;
			}
		break;
		}
	case 11:
		{
		if ( mrtime1 >= Twe_us )
			{
			mrtime1 = 0;
			mclkin1 = 0;
			msoption1 = 12;
			}
		break;
		}
	case 12:
		{
		if ( mrtime1 >= Foy_us )
			{
			mclkin1 = 1;
			mrtime1 = 0;
			msoption1 = 13;
			}
		break;
		}
	case 13:
		{
		if ( mrtime1 >= Twe_us )
			{
			mrtime1 = 0;
			msoption1 = 14;
			}
		break;
		}
	case 14:
		{
		if ( mrtime1 >= Thy_us )
			{
			msoption1 = 0;
			mrtime1 = 0;
			mcodenum1 --;
			/*if( cmrcodenum!= 0 && mcodenum1 == 0 && state == STATE_B)
				{
				mcodenum1 = 1;
				cmrcodenum = 0;
				mcode1[0]  = cmrcodedata[0];
				}*/
			
			if( mcodenum1 == 0 )
				{
				m1s_now = 0;
				}
			}
		break;
		}
	case 15:
		{
		if ( mrtime1 >= Twe_us )
			{
			mdatain1 = 0; 
			msoption1 = 16;
			}
		break;
		}
	case 16:
		{
		if ( mrtime1 >= Twe_us )
			{
			mrtime1 = 0;
			mclkin1 = 0;
			msoption1 = 17;
			}
		break;
		}
	case 17:
		{
		if ( mrtime1 >= Foy_us )
			{
			mclkin1 = 1;
			mrtime1 = 0;
			msoption1 = 3;
			}
		break;
		}
	}
}


void kwrite_data1( void )
{
BOOL	lbit1;

switch( ksoption1 )
	{
	case 0:
		{
		ksoption1 = 18;
		kclkin1 = 1; 
		break;
		}
	case 18:
		{
		if( kclkin1 == 1 )
			{
			krtime1 = 0;
			ksoption1 = 1;
			k1s_now = 1;
			}
		break;
		}
	case 1:
		{
		if( krtime1 >= Fiy_us )
			{
			if( kclkin1 == 1 )
				{
				ksoption1 = 2;
				}
			else
				{
				ksoption1 = 0;
				}
			}
		break;
		}
	case 2:
		{
		if( kdatain1 == 1 )
			{
			ksoption1 = 15;
			krtime1 = 0;
			ksnum1 = 8;
			kscheckbit1 = 1;
			kscode1 = kcode1[ kcodenum1 - 1 ];
			}
		else
			{
			kroption1 = 2;
			kcodenum1 = 0;
			}
		break;
		}

	case 3:
		{
		if ( krtime1 >= Twe_us )
			{
			lbit1 = kscode1 & 0x01;
			kdatain1 = lbit1; 
			kscheckbit1 ^= lbit1;
			kscode1 /= 2;
			krtime1 = 0;
			ksoption1 = 4;
			}
		break;
		}
	case 4:
		{
		if ( krtime1 >= Twe_us )
			{
			krtime1 = 0;
			kclkin1 = 0;
			ksoption1 = 5;
			}
		break;
		}
	case 5:
		{
		if ( krtime1 >= Foy_us )
			{
			kclkin1 = 1;
			krtime1 = 0;
			ksnum1 --;
			if( ksnum1 == 0 )
				{
				ksoption1 = 6;
				}
			else
				{
				ksoption1 = 3;
				}
			}
		break;
		}
	case 6:
		{
		if ( krtime1 >= Twe_us )
			{
			kdatain1 = kscheckbit1; 
			krtime1 = 0;
			ksoption1 = 7;
			}
		break;
		}
	case 7:
		{
		if ( krtime1 >= Twe_us )
			{
			krtime1 = 0;
			kclkin1 = 0;
			ksoption1 = 8;
			}
		break;
		}
	case 8:
		{
		if ( krtime1 >= Foy_us )
			{
			kclkin1 = 1;
			krtime1 = 0;
			ksoption1 = 10;
			}
		break;
		}
	case 10:
		{
		if ( krtime1 >= Twe_us )
			{
			kdatain1 = 1; 
			krtime1 = 0;
			ksoption1 = 11;
			}
		break;
		}
	case 11:
		{
		if ( krtime1 >= Twe_us )
			{
			krtime1 = 0;
			kclkin1 = 0;
			ksoption1 = 12;
			}
		break;
		}
	case 12:
		{
		if ( krtime1 >= Foy_us )
			{
			kclkin1 = 1;
			krtime1 = 0;
			ksoption1 = 13;
			}
		break;
		}
	case 13:
		{
		if ( krtime1 >= Twe_us )
			{
			krtime1 = 0;
			ksoption1 = 14;
			}
		break;
		}
	case 14:
		{
		if ( krtime1 >= Thy_us )
			{
			ksoption1 = 0;
			krtime1 = 0;
			kcodenum1 --;
			if( ckrcodenum!= 0 && kcodenum1 == 0 && state ==  STATE_B )
				{
				kcodenum1 = 1;
				ckrcodenum = 0;
				kcode1[0]  = ckrcodedata[0];
				}
			if( kcodenum1 == 0 )
				{
				k1s_now = 0;
				}
			}
		break;
		}
	case 15:
		{
		if ( krtime1 >= Twe_us )
			{
			kdatain1 = 0; 
			ksoption1 = 16;
			}
		break;
		}
	case 16:
		{
		if ( krtime1 >= Twe_us )
			{
			krtime1 = 0;
			kclkin1 = 0;
			ksoption1 = 17;
			}
		break;
		}
	case 17:
		{
		if ( krtime1 >= Foy_us )
			{
			kclkin1 = 1;
			krtime1 = 0;
			ksoption1 = 3;
			}
		break;
		}
	}
}

⌨️ 快捷键说明

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