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

📄 d12ci.lst

📁 选用89C52+PHLIPHS USBD12开发的控制VISTA或者MCE XP的媒体中心软件。
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   D12CI                                                                 01/03/2007 10:44:28 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE D12CI
OBJECT MODULE PLACED IN D12CI.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D12CI.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /****************************************Copyright (c)**************************************************
   2          **                               广州周立功单片机发展有限公司
   3          **                                     研    究    所
   4          **                                        产品一部 
   5          **
   6          **                                 http://www.zlgmcu.com
   7          **
   8          ** 文   件   名: D12CI.c
   9          ** 最后修改日期: 2004年11月15日
  10          ** 描        述: USB驱动程序软件包: PDIUSBD12 设备端驱动程序 接口控制驱动层
  11          ** 版        本: V5.0
  12          **********************************************************************************************************
             -/
  13          
  14          #include <reg52.h>
  15          #include "D12Config.h"
  16          #include "D12HAL.h"
  17          #include "D12CI.h"
  18          #include "Chap_9.h"
  19          
  20                          /*****************************************
  21                                  与CPU 无关, 与 USB相关的函数
  22                          *****************************************/
  23          
  24          /************************************************************
  25          ** 函数名称: D12_ReadChipID()
  26          ** 功能描述: 读取芯片ID
  27          ** 输   入: 无
  28          ** 输   出: 芯片的ID号
  29          ************************************************************/
  30          INT16U D12_ReadChipID(void)
  31          {
  32   1              INT16U i,j;
  33   1      
  34   1              if(bEPPflags.bits.in_isr == 0)
  35   1                      DISABLE();
  36   1      
  37   1              outportb(D12_COMMAND, 0xFD);            //发送读PDIUSBD12芯片ID号命令   
  38   1              i=inportb(D12_DATA);                            //读取ID号低字节
  39   1              j=inportb(D12_DATA);                            //读取ID号高位字节
  40   1              i += (j<<8);                                            //组成16位的PDIUSBD12芯片ID号
  41   1      
  42   1              if(bEPPflags.bits.in_isr == 0)
  43   1                      ENABLE();
  44   1      
  45   1              return i;
  46   1      }
  47          
  48          /************************************************************
  49          ** 函数名称: D12_SetAddressEnable()
  50          ** 功能描述: 设置地址/使能
  51          ** 输   入: INT8U bAddress:  地址
  52                           INT8U bEnable :  0 --- 禁止
  53                                                    1 --- 使能
  54          ** 输   出: 无
C51 COMPILER V7.06   D12CI                                                                 01/03/2007 10:44:28 PAGE 2   

  55          ************************************************************/
  56          void D12_SetAddressEnable(INT8U bAddress, INT8U bEnable)
  57          {
  58   1              if(bEPPflags.bits.in_isr == 0)
  59   1                      DISABLE();
  60   1      
  61   1              outportb(D12_COMMAND, 0xD0);    //输出设置地址/使能指令
  62   1              if(bEnable)
  63   1                      bAddress |= 0x80;                       //bit7置1,使能
  64   1              outportb(D12_DATA, bAddress);   //输出设置值
  65   1      
  66   1              if(bEPPflags.bits.in_isr == 0)
  67   1                      ENABLE();
  68   1      }
  69          
  70          
  71          /************************************************************
  72          ** 函数名称: D12_SetEndpointEnable()
  73          ** 功能描述: 设置端点使能
  74          ** 输   入: INT8U bEnable :  0 --- 禁止
  75                                                    1 --- 允许
  76          ** 输   出: 无
  77          ************************************************************/
  78          void D12_SetEndpointEnable(INT8U bEnable)
  79          {
  80   1              if(bEPPflags.bits.in_isr == 0)
  81   1                      DISABLE();
  82   1      
  83   1              outportb(D12_COMMAND, 0xD8);    //输出设置端点使能指令
  84   1              if(bEnable)
  85   1                      outportb(D12_DATA, 1);          //设置端点允许
  86   1              else
  87   1                      outportb(D12_DATA, 0);          //设置端点禁止
  88   1      
  89   1              if(bEPPflags.bits.in_isr == 0)
  90   1                      ENABLE();
  91   1      }
  92          
  93          /************************************************************
  94          ** 函数名称: void D12_SetMode()
  95          ** 功能描述: 模式设置
  96          ** 输   入: INT8U bConfig:  配置字节信息
  97                           INT8U bClkDiv:  分频系数
  98          ** 输   出: 无
  99          ************************************************************/
 100          void D12_SetMode(INT8U bConfig,INT8U bClkDiv)
 101          {
 102   1              if(bEPPflags.bits.in_isr == 0)
 103   1                      DISABLE();
 104   1      
 105   1              outportb(D12_COMMAND, 0xF3);            //输出设置模式指令
 106   1              outportb(D12_DATA, bConfig);            //输出配置字节信息
 107   1              outportb(D12_DATA, bClkDiv);            //输出时钟分频因数字节
 108   1      
 109   1              if(bEPPflags.bits.in_isr == 0)
 110   1                      ENABLE();       
 111   1      }
 112          
 113          /************************************************************
 114          ** 函数名称: void D12_SetDMA()
 115          ** 功能描述: 设置DMA工作方式设置
 116          ** 输   入: INT8U bMode:       设置值
C51 COMPILER V7.06   D12CI                                                                 01/03/2007 10:44:28 PAGE 3   

 117          ** 输   出: 无
 118          ************************************************************/
 119          void D12_SetDMA(INT8U bMode)
 120          {
 121   1              if(bEPPflags.bits.in_isr == 0)
 122   1                      DISABLE();
 123   1      
 124   1              outportb(D12_COMMAND, 0xFB);    //设置DMA工作方命令
 125   1              outportb(D12_DATA, bMode);              //输出设置值
 126   1      
 127   1              if(bEPPflags.bits.in_isr == 0)
 128   1                      ENABLE();                       
 129   1      }
 130          
 131          /************************************************************
 132          ** 函数名称: D12_ReadInterruptRegister()
 133          ** 功能描述: 读取中断寄存器值
 134          ** 输   入: 无
 135          ** 输   出: 中断寄存器值
 136          ************************************************************/
 137          INT16U D12_ReadInterruptRegister(void)
 138          {
 139   1              INT8U b1;
 140   1              INT16U j;
 141   1      
 142   1              outportb(D12_COMMAND, 0xF4);    //读取中断寄存器命令
 143   1              b1 = inportb(D12_DATA);                 //读取低8位字节
 144   1              j = inportb(D12_DATA);                  //读取高8位字节
 145   1      
 146   1              j <<= 8;
 147   1              j += b1;                                                //组合为16位
 148   1      
 149   1              return j;
 150   1      }
 151          
 152          /************************************************************
 153          ** 函数名称: D12_SelectEndpoint()
 154          ** 功能描述: 端点选择,将内部指针初始化到选择的缓冲区起始位置
 155          ** 输   入: INT8U bEndp:   端点索引号,取值0 ~ 5
 156          ** 输   出: 读出的字节
 157          ************************************************************/
 158          INT8U D12_SelectEndpoint(INT8U bEndp)
 159          {
 160   1              INT8U c;
 161   1      
 162   1              if(bEPPflags.bits.in_isr == 0)
 163   1                      DISABLE();
 164   1      
 165   1              outportb(D12_COMMAND, bEndp);   //端点选择
 166   1              c = inportb(D12_DATA);                  //读出一个字节
 167   1      
 168   1              if(bEPPflags.bits.in_isr == 0)
 169   1                      ENABLE();
 170   1      
 171   1              return c;
 172   1      }
 173          
 174          /************************************************************
 175          ** 函数名称: D12_ReadEndpointStatus()
 176          ** 功能描述: 读取端点状态
 177          ** 输   入: INT8U bEndp:   端点索引号,取值0 ~ 5
 178          ** 输   出: 端点状态
C51 COMPILER V7.06   D12CI                                                                 01/03/2007 10:44:28 PAGE 4   

 179          ************************************************************/
 180          #if D12_ReadEndpointStatus_EN
              INT8U D12_ReadEndpointStatus(INT8U bEndp)
              {
                      INT8U c;
              
                      if(bEPPflags.bits.in_isr == 0)
                              DISABLE();
              
                      outportb(D12_COMMAND, 0x80 + bEndp);    //读取端点状态命令
                      c = inportb(D12_DATA);                                  //读取端点状态
              

⌨️ 快捷键说明

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