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

📄 init.lst

📁 周立功dp1581usb2.0实验仪
💻 LST
📖 第 1 页 / 共 3 页
字号:
 162          //***********************************************************************
 163          
 164          void Init_8051(void)
 165          {
 166   1              
 167   1              //定义定时器方式
 168   1              TMOD = 0x11;
 169   1              
 170   1              //初始化定时器时间
 171   1              Timer.mSEC_Scale = 2000;
 172   1              Timer.Hundred_mSEC_Scale = 20000;
 173   1              TL1=80;
 174   1              TH1=60;
 175   1              //reset timer control
 176   1              TCON = 0;                   
 177   1              
 178   1              //disable all interrupt
 179   1              EA = 0;                           
C51 COMPILER V7.01  INIT                                                                   03/28/2003 14:38:29 PAGE 4   

 180   1              
 181   1              //disable UART interrupt
 182   1              //disable timer 1 overflow interrupt
 183   1              //disable external interrupt 1
 184   1              //enable timer 0 overflow interrupt
 185   1              //enable external interrupt 0
 186   1              IE = 0x03;                      
 187   1              ET1=1;
 188   1              //reset interrupt priority
 189   1              IP = 0;                         
 190   1              PT1 = 1;
 191   1              PT0 = 1;
 192   1      //      EX0 = 1;                //开ISP1581中断 
 193   1              //enable all interrupt
 194   1              EA = 1;                         
 195   1              TR1=1;
 196   1              
 197   1              //disable all power mode control
 198   1              //enable half/doble baud rate 
 199   1              PCON = 0x40;    
 200   1      }
 201          
 202          //***********************************************************************
 203          //*                                                                                                                                                    *
 204          //*     Routine         : Init D14                                                      *
 205          //*     Input           : ISP1581 SFR                                                               *
 206          //*     Output  : None                                                                             *
 207          //*     Function        : To initialize ISP1581                                               *
 208          //*                                                                                                                                                            *
 209          //***********************************************************************
 210          
 211          void Init_D14(void)
 212          {
 213   1              
 214   1              //初始化ISP1581寄存器
 215   1              Init_D14_SFR();
 216   1              
 217   1              //初始化ISP1581端点
 218   1              Init_Endpoint();                
 219   1              
 220   1              //初始化ISP1581工作标志寄存器
 221   1              USB_Device.BITS.State = USB_Default;
 222   1              Device_Config_Value = 0;
 223   1              USB_Device.BITS.Alter_Interface = 0;
 224   1              USB_Device.BITS.Big_Endian = On;
 225   1              Kernel_Flag.BITS.Tx_Done = 0;
 226   1              EX0 = 1;                //开ISP1581中断
 227   1              
 228   1      }
 229          
 230          //***********************************************************************
 231          //*                                                                                                                                                    *
 232          //*     Routine         : Init D14 SFR                                                  *
 233          //*     Input           : ISP1581 SFR                                                               *
 234          //*     Output  : None                                                                             *
 235          //*     Function        : To initialize ISP1581                                               *
 236          //*                                                                                                                                                            *
 237          //***********************************************************************
 238          
 239          void Init_D14_SFR(void)
 240          {
 241   1              //enable Global Interrupt enable
C51 COMPILER V7.01  INIT                                                                   03/28/2003 14:38:29 PAGE 5   

 242   1              //enable soft connect and other feature
 243   1              //enable wakeup on chip select
 244   1              //disable soft connect
 245   1              //设置模式:时钟始终有效,全局中断使能,片选唤醒
 246   1              D14_Cntrl_Reg.D14_MODE.VALUE |= 0x8C;
 247   1              
 248   1              //set all interrupt source to mode 1
 249   1              //设置全部中断为模式1,电平触发,低电平有效
 250   1              D14_Cntrl_Reg.D14_INT_CONFIG.VALUE = 0x54;                      
 251   1              
 252   1              //设置中断使能寄存器
 253   1              //注释: D14_Cntrl_Reg.D14_INT_ENABLE.VALUE = 0x790D0000;先发送高字节
 254   1              //0x14(xdata)=0x79
 255   1              //0x15(xdata)=0x0D
 256   1              //0x16(xdata)=00
 257   1              //0x17(xdata0=00
 258   1              //使用端点0和端点2
 259   1              D14_Cntrl_Reg.D14_INT_ENABLE.VALUE = 0x39fd0000;        
 260   1      
 261   1      }
 262          
 263          
 264          //***********************************************************************
 265          //*                                                                                                                                                    *
 266          //*     Routine         : Init Endpoint                                                 *
 267          //*     Input           : ISP1581 FIFO                                                              *
 268          //*     Output  : None                                                                             *
 269          //*     Function        : To initialize ISP1581 endpoint FIFO                                 *
 270          //*                                                                                                                                                            *
 271          //***********************************************************************
 272          
 273          void Init_Endpoint(void)
 274          {
 275   1              //设置全速端点
 276   1              if(Kernel_Flag.BITS.HS_FS_State == FULL_SPEED)
 277   1              {
 278   2                      //设置全速端点FIFO大小
 279   2      
 280   2                      //Interrupt Out MaxPacketSize Endpoint
 281   2                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 2;//选择端点
 282   2                      D14_Cntrl_Reg.D14_ENDPT_MAXPKTSIZE.VALUE = 0x4000;      //FIFO=64bytes
 283   2                      
 284   2                      //Interrupt In MaxPacketSize Endpoint
 285   2                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 3;//选择端点
 286   2                      D14_Cntrl_Reg.D14_ENDPT_MAXPKTSIZE.VALUE = 0x4000;//FIFO=64bytes
 287   2                      
 288   2                      //Bulk Out MaxPacketSize Endpoint
 289   2                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 4;//选择端点
 290   2                      D14_Cntrl_Reg.D14_ENDPT_MAXPKTSIZE.VALUE = 0x4000;//FIFO=64bytes
 291   2                      
 292   2                      
 293   2                      //Bulk In MaxPacketSize Endpoint
 294   2                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 5;//选择端点
 295   2                      D14_Cntrl_Reg.D14_ENDPT_MAXPKTSIZE.VALUE = 0x4000;//FIFO=64bytes
 296   2                      
 297   2                      
 298   2                      //Iso Out MaxPacketSize Endpoint
 299   2                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 6;//选择端点
 300   2                      D14_Cntrl_Reg.D14_ENDPT_MAXPKTSIZE.VALUE = 0x4000;//FIFO=64bytes
 301   2                      
 302   2                      //Iso In MaxPacketSize Endpoint
 303   2                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 7;//选择端点
C51 COMPILER V7.01  INIT                                                                   03/28/2003 14:38:29 PAGE 6   

 304   2                      D14_Cntrl_Reg.D14_ENDPT_MAXPKTSIZE.VALUE = 0x4000;//FIFO=64bytes
 305   2                      
 306   2                      //设置全速端点类型
 307   2      
 308   2                      //Interrupt In Endpoint Type
 309   2                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 2;//选择端点
 310   2                      D14_Cntrl_Reg.D14_ENDPT_TYPE.VALUE = 0x1700;//设置为中断,使用双缓冲,禁止FIFO,禁止无空包
 311   2                      
 312   2                      
 313   2                      //Interrupt Out Endpoint Type
 314   2                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 3;//选择端点
 315   2                      D14_Cntrl_Reg.D14_ENDPT_TYPE.VALUE = 0x1700;//设置为中断,使用双缓冲,禁止FIFO,禁止无空包
 316   2                      
 317   2                      
 318   2                      //Bulk Out Endpoint Type
 319   2                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 4;//选择端点
 320   2                      D14_Cntrl_Reg.D14_ENDPT_TYPE.VALUE = 0x1600;//设置为批量,使用双缓冲,禁止FIFO,禁止无空包
 321   2                      
 322   2                      
 323   2                      //Bulk In Endpoint Type
 324   2                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 5;//选择端点
 325   2                      D14_Cntrl_Reg.D14_ENDPT_TYPE.VALUE = 0x1600;//设置为批量,使用双缓冲,禁止FIFO,禁止无空包
 326   2                      
 327   2                      
 328   2                      //Iso Out Endpoint Type
 329   2                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 6;//选择端点

⌨️ 快捷键说明

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