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

📄 main.c

📁 显示及鼠标、键盘切换程序。使用STC单片机
💻 C
📖 第 1 页 / 共 2 页
字号:
			}
		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 + -