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

📄 init.lst

📁 嵌入式系统中一些外围设备驱动示例程序集
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   INIT                                                                  07/02/2003 10:27:48 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE INIT
OBJECT MODULE PLACED IN init.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE init.c OPTIMIZE(2,SPEED) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /****************************************Copyright (c)**************************************************
   2          **                               广州周立功单片机发展有限公司
   3          **                                     研    究    所
   4          **                                 http://www.zlgmcu.com
   5          **--------------当前版本修订------------------------------------------------------------------------------
   6          ** 修改人: 刘英斌
   7          ** 日 期:2003-03-13
   8          ** 描 述:ISP1581 V1.0
   9          **------------------------------------------------------------------------------------------------------
  10          ********************************************************************************************************/
  11          
  12          #include "standard.h"
  13          #include "Kernel.h"
  14          #include "D14.h"
  15          
  16          //***********************************************************************
  17          //*                                                                                                                                                            *
  18          //*                      External Variable Definition                                              *
  19          //*                                                                                                                                                            *
  20          //***********************************************************************
  21          
  22          extern void Start_mSEC_Timer(Data);
  23          extern void Start_SEC_Timer(Data);
  24          extern KERNEL Kernel_Flag;
  25          extern USB_INT_FLAG     USB_Int_Flag;
  26          extern USB_DEVICE USB_Device;
  27          extern UI Temp,PIO_Count;
  28          extern UC Device_Config_Value;
  29          extern UC idata Endpt_FIFO[MAX_BUF];
  30          extern void DMA_Init(void);
  31          extern ULI bytecount;
  32          extern UC Address_Count;
  33          extern UC xdata Address[20];
  34          
  35          //***********************************************************************
  36          //*                                                                                                                                                            *
  37          //*                      Prototype Routine Definition                                              *
  38          //*                                                                                                                                                            *
  39          //***********************************************************************
  40          
  41          void Init_D14_SFR(void);
  42          void Init_Endpoint(void);
  43          
  44          void Init_Main(void);
  45          void Init_8051(void);
  46          void Init_D14(void);
  47          
  48          //***********************************************************************
  49          //*                                                                                                                                                            *
  50          //*                          Variable Definition                                                              *
  51          //*                                                                                                                                                            *
  52          //***********************************************************************
  53          
  54          TIMER Timer;
  55          DATA_SWAP       idata   Data_Swap;
C51 COMPILER V7.06   INIT                                                                  07/02/2003 10:27:48 PAGE 2   

  56          DMA_INT_FLAG    DMA_Int_Flag;
  57          
  58          UI      count;
  59          UC      Device_Config_Value;
  60          UC      Type;
  61          
  62          UI      idata   Init_Count;
  63          
  64          volatile D14_CNTRL_REG  xdata   D14_Cntrl_Reg   _at_    0x7000;
  65          
  66          D14_CNTRL_REG xdata *D14_Cntrl_Ptr = &D14_Cntrl_Reg;
  67          
  68          
  69          //***********************************************************************
  70          //*                                                                                                                                                    *
  71          //*     Routine         : Init_Main                                                        *
  72          //*     Input           : None                                                                                              *
  73          //*     Output  : None                                                                        *
  74          //*     Function        : To initialize the D14 and the 8051                                  *
  75          //*                                                                                                                                                            *
  76          //***********************************************************************
  77          
  78          void Init_Main(void)
  79          {
  80   1              
  81   1              AUXR = 0x02;
  82   1              CKCON = 0x01;
  83   1                      
  84   1      
  85   1              //disable ISP1581 chip select
  86   1              ISP1581_CS = 1;         //关1581片选
  87   1              bytecount = 0;
  88   1              PIO_Count = 64;
  89   1              
  90   1          Type = 0;
  91   1              USB_Device.BITS.DMA_Test_Mode = PIO_Test;
  92   1              
  93   1              //初始化8051
  94   1              Init_8051();                                                    
  95   1              
  96   1              ISP1581_CS = 0;         //片选ISP1581
  97   1      
  98   1              D14_Cntrl_Reg.D14_MODE.BITS.SOFTCT = 0; 
  99   1              
 100   1              //检查是否连接了ISP1581
 101   1              do
 102   1              {
 103   2                      //reset ISP1581                  
 104   2                      ISP1581_RESET = 0;
 105   2                      Start_mSEC_Timer(100);
 106   2                      ISP1581_RESET = 1;
 107   2                      Start_mSEC_Timer(100);
 108   2                      
 109   2                      //读取接口器件是否ISP1581            
 110   2                      if(D14_Cntrl_Ptr->D14_CHIP_ID_MBYTE == 0x81 && D14_Cntrl_Ptr->D14_CHIP_ID_MSB == 0x15)
 111   2                              break;
 112   2              }while(1);
 113   1              
 114   1              //初始化标志寄存器
 115   1              USB_Int_Flag.VALUE = 0;//USB中断标志寄存器
 116   1              DMA_Int_Flag.VALUE = 0;//DMA中断标志寄存器
 117   1              Kernel_Flag.VALUE = 0;//ISP1581状态标志寄存器
C51 COMPILER V7.06   INIT                                                                  07/02/2003 10:27:48 PAGE 3   

 118   1              
 119   1              //设置为设备默认状态
 120   1              Kernel_Flag.BITS.HS_FS_State = FULL_SPEED;//设置为全速状态
 121   1              HS_FS_LED = FULL_SPEED_LED;
 122   1              
 123   1              //初始化ISP1581
 124   1              Init_D14();                             
 125   1      }
 126          
 127          
 128          
 129          
 130          //***********************************************************************
 131          //*                                                                                                                                                    *
 132          //*     Routine         : Init 8051                                                     *
 133          //*     Input           : 8051 Special Function Register                                            *
 134          //*     Output  : None                                                                             *
 135          //*     Function        : To initialize 8051                                                  *
 136          //*                                                                                                                                                            *
 137          //***********************************************************************
 138          
 139          void Init_8051(void)
 140          {
 141   1              
 142   1              //定义定时器方式
 143   1              TMOD = 0x01;
 144   1              
 145   1              //初始化定时器时间
 146   1              Timer.mSEC_Scale = 2000;
 147   1              Timer.Hundred_mSEC_Scale = 20000;
 148   1              
 149   1              //reset timer control
 150   1              TCON = 0;                   
 151   1              
 152   1              //disable all interrupt
 153   1              EA = 0;                           
 154   1              
 155   1              //disable UART interrupt
 156   1              //disable timer 1 overflow interrupt
 157   1              //disable external interrupt 1
 158   1              //enable timer 0 overflow interrupt
 159   1              //enable external interrupt 0
 160   1              IE = 0x02;                      
 161   1              
 162   1              //reset interrupt priority
 163   1              IP = 0;                         
 164   1              PT1 = 1;
 165   1              PT0 = 1;
 166   1      //      EX0 = 1;                //开ISP1581中断 
 167   1              //enable all interrupt
 168   1              EA = 1;                         
 169   1              
 170   1              
 171   1              //disable all power mode control
 172   1              //enable half/doble baud rate 
 173   1              PCON = 0x40;    
 174   1      }
 175          
 176          //***********************************************************************
 177          //*                                                                                                                                                    *
 178          //*     Routine         : Init D14                                                      *
 179          //*     Input           : ISP1581 SFR                                                               *
C51 COMPILER V7.06   INIT                                                                  07/02/2003 10:27:48 PAGE 4   

 180          //*     Output  : None                                                                             *
 181          //*     Function        : To initialize ISP1581                                               *
 182          //*                                                                                                                                                            *
 183          //***********************************************************************
 184          
 185          void Init_D14(void)
 186          {
 187   1              
 188   1              //初始化ISP1581寄存器
 189   1              Init_D14_SFR();
 190   1              
 191   1              //初始化ISP1581端点
 192   1              Init_Endpoint();                
 193   1              
 194   1              //初始化ISP1581工作标志寄存器
 195   1              USB_Device.BITS.State = USB_Default;
 196   1              Device_Config_Value = 0;
 197   1              USB_Device.BITS.Alter_Interface = 0;
 198   1              USB_Device.BITS.Big_Endian = On;
 199   1              Kernel_Flag.BITS.Tx_Done = 0;
 200   1              EX0 = 1;                //开ISP1581中断
 201   1              
 202   1      }
 203          
 204          //***********************************************************************
 205          //*                                                                                                                                                    *
 206          //*     Routine         : Init D14 SFR                                                  *
 207          //*     Input           : ISP1581 SFR                                                               *
 208          //*     Output  : None                                                                             *
 209          //*     Function        : To initialize ISP1581                                               *
 210          //*                                                                                                                                                            *
 211          //***********************************************************************
 212          
 213          void Init_D14_SFR(void)
 214          {
 215   1              //enable Global Interrupt enable
 216   1              //enable soft connect and other feature
 217   1              //enable wakeup on chip select
 218   1              //disable soft connect
 219   1              //设置模式:时钟始终有效,全局中断使能,片选唤醒
 220   1              D14_Cntrl_Reg.D14_MODE.VALUE |= 0x8C;
 221   1              
 222   1              //set all interrupt source to mode 1
 223   1              //设置全部中断为模式1,电平触发,低电平有效
 224   1              D14_Cntrl_Reg.D14_INT_CONFIG.VALUE = 0x54;                      
 225   1              
 226   1              //设置中断使能寄存器
 227   1              //注释: D14_Cntrl_Reg.D14_INT_ENABLE.VALUE = 0x790D0000;先发送高字节
 228   1              //0x14(xdata)=0x79
 229   1              //0x15(xdata)=0x0D
 230   1              //0x16(xdata)=00
 231   1              //0x17(xdata0=00
 232   1              //使用端点0和端点2

⌨️ 快捷键说明

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