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

📄 atmelusbci.lst

📁 这个是一个完整的MP3项目
💻 LST
字号:
C51 COMPILER V7.20   ATMELUSBCI                                                            03/21/2007 13:33:19 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE ATMELUSBCI
OBJECT MODULE PLACED IN atmelusbci.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE atmelusbci.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2          * Copyright (c) 2004,北京博创兴业科技有限公司
   3          * All rights reserved.
   4          * 
   5          * 文件名称:atmelusbci.c
   6          * 文件标识:atmelusbci
   7          * 摘    要:USB操作相应函数定义
   8          * 
   9          * 当前版本:2.0
  10          * 作    者:Kent
  11          * 完成日期:2004年5月20日
  12          *
  13          * 取代版本:1.1 
  14          * 原作者  :Frank
  15          * 完成日期:2003年8月10日
  16          */
  17          
  18          #include "REGSND1.H"
  19          #include "atmelusbci.h"
  20          
  21          #define OSCclk  20//采用20M时钟,后续的许多编程内容与此时钟频率有关
  22          
  23          //设置PLL的时钟,并得到USB工作所需要的48M时钟
  24          int AtmelUSBInit(unsigned char NDIV, unsigned int RDIV, unsigned char USBCD)
  25          {
  26   1              int i;
  27   1              //USB 时钟的频率计算方法
  28   1              //      PLLclk=(OSCclk*(RDIV+1))/(int)(NDIV+1);
  29   1              //      USBclk=PLLclk/(int)(USBCD+1);
  30   1              
  31   1              CKCON |= X2;//Set to select 6 clock periods per machine cycle即X2模式启动
  32   1              //set PLL CLK
  33   1              PLLNDIV =       0x7f & NDIV;//set NDIV
  34   1              PLLCON  |= (0x3 & RDIV) << 6;//set RDIV
  35   1              PLLRDIV = (0x3ff & RDIV) >> 2;
  36   1      
  37   1              USBCLK = USBCD & 0x03;//设置USBCLK
  38   1      
  39   1              PLLCON &= (~PLLRES);//Enable PLL
  40   1              PLLCON |= PLLEN;
  41   1      
  42   1              //USBCON Register
  43   1              USBCON &= (~USBE);//禁止USB控制器
  44   1      
  45   1              for (i=0; i<3000; i++);//延时
  46   1      
  47   1              USBCON |= USBE;//使能USB控制器
  48   1              return (0);
  49   1      }
  50          
  51          //设置端点的工作模式
  52          void EpEnable(void)
  53          {
  54   1              UEPNUM = 0x00;//Ep0 as control Endpoint
  55   1              UEPCONX = 0x80;
C51 COMPILER V7.20   ATMELUSBCI                                                            03/21/2007 13:33:19 PAGE 2   

  56   1      
  57   1              UEPNUM = 0x01;//Ep1 as Bulk-in Endpoint
  58   1              UEPCONX = 0x86;
  59   1      
  60   1              UEPNUM = 0x02;//Ep2 as Bulk-out Endpoint
  61   1              UEPCONX = 0x82;
  62   1      
  63   1              UEPRST = 0x07;//rest FIFO 
  64   1              UEPRST = 0x00;
  65   1      
  66   1              UEPIEN = 0x07;//Endpoint Interrupt Enable
  67   1      
  68   1              USBIEN |= EEOFINT;
  69   1              USBADDR = FEN;//Function Enable
  70   1              
  71   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    108    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   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 + -