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

📄 pdiusbd12.lst

📁 此源代码为USB鼠标的相关开发代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   PDIUSBD12                                                             11/16/2008 15:59:43 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE PDIUSBD12
OBJECT MODULE PLACED IN PDIUSBD12.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE PDIUSBD12.c BROWSE DEBUG OBJECTEXTEND TABS(1)

stmt level    source

   1          /******************************************************************
   2             本程序只供学习使用,未经作者许可,不得用于其它任何用途
   3          
   4                  欢迎访问我的USB专区:http://group.ednchina.com/93/
   5                  欢迎访问我的blog:   http://www.ednchina.com/blog/computer00
   6                                       http://computer00.21ic.org
   7          
   8                  感谢PCB赞助商——电子园: http://bbs.cepark.com/
   9          
  10          PDIUSBD12.C  file
  11          
  12          作者:电脑圈圈
  13          建立日期: 2008.06.27
  14          修改日期: 2008.07.10
  15          版本:V1.1
  16          版权所有,盗版必究。
  17          Copyright(C) 电脑圈圈 2008-2018
  18          All rights reserved            
  19          *******************************************************************/
  20          
  21          #include <AT89x52.H>
  22          #include "MyType.h"
  23          #include "PDIUSBD12.H"
  24          #include "config.h"
  25          #include "UART.h"
  26          
  27          /********************************************************************
  28          函数功能:D12写命令。
  29          入口参数:Command:一字节命令。
  30          返    回:无。
  31          备    注:无。
  32          ********************************************************************/
  33          void D12WriteCommand(uint8 Command)
  34          {
  35   1       D12SetCommandAddr();  //设置为命令地址
  36   1       D12ClrWr(); //WR置低 
  37   1       D12SetPortOut(); //将数据口设置为输出状态(注意这里为空宏,移植时可能有用)
  38   1       D12SetData(Command);  //输出命令到数据口上
  39   1       D12SetWr(); //WR置高
  40   1       D12SetPortIn(); //将数据口设置为输入状态,以备后面输入使用
  41   1      }
  42          ////////////////////////End of function//////////////////////////////
  43          
  44          /********************************************************************
  45          函数功能:读一字节D12数据。
  46          入口参数:无。
  47          返    回:读回的一字节。
  48          备    注:无。
  49          ********************************************************************/
  50          uint8 D12ReadByte(void)
  51          {
  52   1       uint8 temp;
  53   1       D12SetDataAddr(); //设置为数据地址
  54   1       D12ClrRd(); //RD置低
  55   1       temp=D12GetData(); //读回数据
C51 COMPILER V7.06   PDIUSBD12                                                             11/16/2008 15:59:43 PAGE 2   

  56   1       D12SetRd(); //RD置高
  57   1       return temp; //返回读到数据
  58   1      }
  59          ////////////////////////End of function//////////////////////////////
  60          
  61          /********************************************************************
  62          函数功能:读D12的ID。
  63          入口参数:无。
  64          返    回:D12的ID。
  65          备    注:无。
  66          ********************************************************************/
  67          uint16 D12ReadID(void)
  68          {
  69   1       uint16 id;
  70   1       D12WriteCommand(Read_ID); //写读ID命令
  71   1       id=D12ReadByte(); //读回ID号低字节
  72   1       id|=((uint16)D12ReadByte())<<8; //读回ID号高字节
  73   1       return id;
  74   1      }
  75          ////////////////////////End of function//////////////////////////////
  76          
  77          /********************************************************************
  78          函数功能:写一字节D12数据。
  79          入口参数:Value:要写的一字节数据。
  80          返    回:无。
  81          备    注:无。
  82          ********************************************************************/
  83          void D12WriteByte(uint8 Value)
  84          {
  85   1       D12SetDataAddr(); //设置为数据地址
  86   1       D12ClrWr(); //WR置低
  87   1       D12SetPortOut(); //将数据口设置为输出状态(注意这里为空宏,移植时可能有用)
  88   1       D12SetData(Value); //写出数据
  89   1       D12SetWr(); //WR置高
  90   1       D12SetPortIn(); //将数据口设置为输入状态,以备后面输入使用
  91   1      }
  92          ////////////////////////End of function//////////////////////////////
  93          
  94          /********************************************************************
  95          函数功能:读取D12最后传输状态寄存器的函数。
  96          入口参数:Endp:端点号。
  97          返    回:端点的最后传输状态。
  98          备    注:该操作将清除该端点的中断标志位。
  99          ********************************************************************/
 100          uint8 D12ReadEndpointLastStatus(uint8 Endp)
 101          {
 102   1       D12WriteCommand(0x40+Endp); //读取端点最后状态的命令
 103   1       return D12ReadByte();
 104   1      }
 105          ////////////////////////End of function//////////////////////////////
 106          
 107          /********************************************************************
 108          函数功能:选择端点的函数,选择一个端点后才能对它进行数据操作。
 109          入口参数:Endp:端点号。
 110          返    回:无。
 111          备    注:无。
 112          ********************************************************************/
 113          void D12SelectEndpoint(uint8 Endp)
 114          {
 115   1       D12WriteCommand(0x00+Endp); //选择端点的命令
 116   1      }
 117          ////////////////////////End of function//////////////////////////////
C51 COMPILER V7.06   PDIUSBD12                                                             11/16/2008 15:59:43 PAGE 3   

 118          
 119          /********************************************************************
 120          函数功能:清除接收端点缓冲区的函数。
 121          入口参数:无。
 122          返    回:无。
 123          备    注:只有使用该函数清除端点缓冲后,该接收端点才能接收新的数据包。
 124          ********************************************************************/
 125          void D12ClearBuffer(void)
 126          {
 127   1       D12WriteCommand(D12_CLEAR_BUFFER);
 128   1      }
 129          ////////////////////////End of function//////////////////////////////
 130          
 131          /********************************************************************
 132          函数功能:应答建立包的函数。
 133          入口参数:无。
 134          返    回:无。
 135          备    注:无。
 136          ********************************************************************/
 137          void D12AcknowledgeSetup(void)
 138          {
 139   1       D12SelectEndpoint(1); //选择端点0输入
 140   1       D12WriteCommand(D12_ACKNOWLEDGE_SETUP); //发送应答设置到端点0输入
 141   1       D12SelectEndpoint(0); //选择端点0输出
 142   1       D12WriteCommand(D12_ACKNOWLEDGE_SETUP); //发送应答设置到端点0输出
 143   1      }
 144          ////////////////////////End of function//////////////////////////////

⌨️ 快捷键说明

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