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

📄 atmelusbci.lst

📁 基于ateml89c51为核心处理器的mp3播放器程序。
💻 LST
字号:
C51 COMPILER V7.07   ATMELUSBCI                                                            11/20/2006 17:50:26 PAGE 1   


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

stmt level    source

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

  56   1      
  57   1              UEPNUM = 0x02;//Ep2 as Bulk-out Endpoint
  58   1              UEPCONX = 0x82;
  59   1      
  60   1              UEPRST = 0x07;//rest FIFO 
  61   1              UEPRST = 0x00;
  62   1      
  63   1              UEPIEN = 0x07;//Endpoint Interrupt Enable
  64   1      
  65   1              USBIEN |= EEOFINT;
  66   1              USBADDR = FEN;//Function Enable
  67   1              
  68   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 + -