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

📄 ps2mouse.lst

📁 USB鼠标,单片机的,可以
💻 LST
字号:
C51 COMPILER V6.23a  PS2MOUSE                                                              08/17/2006 16:45:42 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE PS2MOUSE
OBJECT MODULE PLACED IN .\Obj\Ps2Mouse.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE ..\..\Driver\PS2\PS2Mouse\Ps2Mouse.c LARGE OPTIMIZE(2,SPEED) MODP2 PRINT(.\
                    -Obj\Ps2Mouse.lst) OBJECT(.\Obj\Ps2Mouse.obj) 

stmt level    source

   1          /*------------------------------------------------------------------
   2          * CopyRight (C) 2005,江苏盛唐电子产品有限公司
   3          * All Rights Reserved.
   4          *
   5          * 文件名称:PS2Mouse.c
   6          * 文件标识:
   7          * 摘    要:从PS2接口操纵PS2鼠标的功能
   8          * 
   9          * 当前版本:1.0
  10          * 作    者:熊刚
  11          * 完成日期:2005年10月7日
  12          *
  13          * 取代版本: 
  14          * 原作者  :
  15          * 完成日期:
  16          --------------------------------------------------------------------*/
  17          
  18          //#include<conio.h>
  19          #include "..\..\inc\includes.h"
  20          
  21          /**************************************************
  22          功能介绍:初始化PS2鼠标操作
  23          入口参数: 无
  24          返回:    无
  25          备注:     PS2鼠标必须初始化后才能正常上报数据。
  26          ***************************************************/
  27          void InitMouse(void)
  28          {
  29   1              uchar ucPS2ReturnData;
  30   1      
  31   1              PS2_SendChar(0xF2);
  32   1              if(PS2_GetChar(&ucPS2ReturnData))
  33   1              {
  34   2                      ComShowString(COM_1,"CMD0xf2 Return Code is:");
  35   2                      ComSendText(COM_1,&ucPS2ReturnData,1);
  36   2              }
  37   1      
  38   1              PS2_SendChar(0xF4);
  39   1      
  40   1      }
  41          
  42          #define c_PS2MouseACKCode 0xFA
  43          
  44          /**************************************************
  45          功能介绍:获取PS2鼠标的状态编码值
  46          入口参数: 存放编码信息的缓冲区,必须大于3
  47          返回:    获取数据是否成功
  48          备注:     注意入口指针的大小,不可出现指针越界现象.
  49          ***************************************************/
  50          bool GetMouseData(uchar *ucDataBuff)
  51          {
  52   1              uchar ucPS2ReturnData;
  53   1              uchar uci;
  54   1                              
C51 COMPILER V6.23a  PS2MOUSE                                                              08/17/2006 16:45:42 PAGE 2   

  55   1              if(PS2_GetChar(&ucPS2ReturnData))
  56   1              {
  57   2                      if(ucPS2ReturnData == c_PS2MouseACKCode)
  58   2                      {
  59   3                              return false;
  60   3                      }
  61   2                      else
  62   2                      {
  63   3                              *ucDataBuff++ = ucPS2ReturnData;
  64   3      
  65   3                              for(uci=0; uci<2; uci++)
  66   3                              {
  67   4                                      if(PS2_GetChar(&ucPS2ReturnData))
  68   4                                      {
  69   5                                              *ucDataBuff++ = ucPS2ReturnData;
  70   5                                      }
  71   4                                      else
  72   4                                      {
  73   5                                              return false;
  74   5                                              
  75   5                                      }
  76   4              
  77   4                              }
  78   3                              return true;
  79   3                      }
  80   2              }
  81   1              else
  82   1              {
  83   2                      return false;
  84   2              }
  85   1      }
  86          
  87          /**************************************************
  88          功能介绍:PS2鼠标的编码信息转换成USB鼠标的编码信息
  89          入口参数: 存放编码信息的缓冲区,必须大于3
  90          返回:    无
  91          备注:     注意入口指针的大小,不可出现指针越界现象.
  92          ***************************************************/
  93          void TransferPS2DataToUSB(uchar *ucMouseDataBuff)
  94          {
  95   1              uchar ucMouseX;
  96   1              char ucMouseY;
  97   1              uchar ucMouseStatus;
  98   1      
  99   1              ucMouseX = ucMouseDataBuff[1];
 100   1              ucMouseY = ucMouseDataBuff[2];
 101   1              ucMouseStatus = ucMouseDataBuff[0];
 102   1      
 103   1              if((ucMouseStatus & 0x80) || (ucMouseStatus & 0x40))
 104   1              {
 105   2                      ucMouseX = 0;
 106   2                      ucMouseY = 0;
 107   2                      ucMouseStatus = 0;
 108   2                      return;
 109   2                      
 110   2              }
 111   1              if(ucMouseStatus & 0x10)
 112   1              {
 113   2                      ucMouseDataBuff[1] = (ucMouseX>>1)|0x80;
 114   2              }
 115   1              else
 116   1              {
C51 COMPILER V6.23a  PS2MOUSE                                                              08/17/2006 16:45:42 PAGE 3   

 117   2                      ucMouseDataBuff[1] = ucMouseX;
 118   2              }
 119   1      
 120   1              if(ucMouseStatus & 0x20)
 121   1              {
 122   2                      ucMouseDataBuff[2] = -((ucMouseY>>1)|0x80);
 123   2              }
 124   1              else
 125   1              {
 126   2                      ucMouseDataBuff[2] = -ucMouseY;
 127   2              }
 128   1      
 129   1              ucMouseDataBuff[0] = ucMouseStatus & 0x07;
 130   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    476    ----
   CONSTANT SIZE    =     24    ----
   XDATA SIZE       =   ----      12
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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