interface_ps2.c

来自「利用SMALL RTOS51做的一个项目」· C语言 代码 · 共 183 行

C
183
字号
#include"config.h"



//*******************************************************************************************************
//*****************************         GLOBAL   PERAMETER          *************************************
//*******************************************************************************************************







/*********************************************************************************************************
** 函数名称: SendCmd2KeyBoard							 注意,对系统会有较大影响
** 功能描述: 发送控制命令到键盘
**
** 输 入: cmd
** 输 出: test
** 全局变量: 无
** 调用模块: 
**
** 作 者: 龚树强
** 日 期: 2004年10月15日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
/*		uint8 SendCmd2KeyBoard(unsigned char cmd)
{
	unsigned char i,temp;
	unsigned char timer;
    bit test;

    test=1;
 	PS2_CLK=1;
    PS2_DATA=1;

	for(i=100;i--;);


	PS2_CLK=0;

	for(i=100;i--;);
        
	PS2_DATA=0;
    PS2_CLK=1;

	temp=cmd;

	for(i=0;i<8;i++)
	{
		for(timer=OVERTIME_THREAD;timer--;)
		{
			if(!PS2_CLK){break;}
	    } 
        if(!timer)return 0;
                
        temp=cmd&0x01;

		if(temp)
        {
			PS2_DATA=1;
       	 	test=!test;
        }
		else
			PS2_DATA=0;

		for(timer=OVERTIME_THREAD;timer--;)
		{
			if(PS2_CLK){break;}
		}
        if(!timer)return 0;
                
                
		cmd>>=1;
	}

	for(timer=OVERTIME_THREAD;timer--;)
	{
		if(!PS2_CLK){break;}
	}
    if(!timer)return 0;
                
    PS2_DATA=test;

	for(timer=OVERTIME_THREAD;timer--;)
	{
		if(PS2_CLK){break;}
	}
    if(!timer)return 0;
                
        
    for(timer=OVERTIME_THREAD;timer--;)
	{
		if(!PS2_CLK){break;}
	}
    if(!timer)return 0;
                
    PS2_DATA=1;

	for(timer=OVERTIME_THREAD;timer--;)
	{
		if(PS2_CLK){break;}
	}
    if(!timer)return 0;
                
        
	PS2_CLK=1;
    PS2_DATA=1;
        
    return 1;

}
			 */
/*********************************************************************************************************
** 函数名称: LedNumOn
** 功能描述: 发送控制命令到键盘
**
** 输 入: cmd
** 输 出: test
** 全局变量: 无
** 调用模块: 
**
** 作 者: 龚树强
** 日 期: 2004年10月15日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

		void LedNumOn(void)
{
//	EA=0;						
//	SendCmd2KeyBoard(0xed);	
//	SendCmd2KeyBoard(0x02);		
//	SendCmd2KeyBoard(0xed);		
//	SendCmd2KeyBoard(0x02);		

	
//	EA=1;

	_Flag_StateLed=1;
	Write728x(0x18,0x77);	
}
	

/*********************************************************************************************************
** 函数名称: LedNumOff
** 功能描述: 发送控制命令到键盘
**
** 输 入: cmd
** 输 出: test
** 全局变量: 无
** 调用模块: 
**
** 作 者: 龚树强
** 日 期: 2004年10月15日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

		void LedNumOff(void)
{
//	EA=0;						
//	SendCmd2KeyBoard(0xed);	
//	SendCmd2KeyBoard(0x00);		
//	SendCmd2KeyBoard(0xed);		
//	SendCmd2KeyBoard(0x00);		

	_Flag_StateLed=0;
	Write728x(0x18,0x77|0x80);
//	EA=1;		
}
	


⌨️ 快捷键说明

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