亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.lst

?? D12USB開發板下位機固件源代碼要下載的快!
?? LST
字號:
C51 COMPILER V7.50   MAIN                                                                  05/09/2007 17:53:59 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //#include <stdio.h>
   2          #include <string.h>
   3          #include <reg51.h>                /* special function register declarations   */
   4          
   5          #include "epphal.h"
   6          #include "d12ci.h"
   7          #include "mainloop.h"
   8          #include "usb100.h"
   9          #include "chap_9.h"
  10          #include "protodma.h"
  11          #include"address.h"
  12          #include"2-16.h"
  13          #include"24C00.H"
  14          
  15          
  16          /*
  17          //*************************************************************************
  18          // USB protocol function pointer arrays
  19          //*************************************************************************
  20          */
  21          
  22          #define uchar unsigned char 
  23          unsigned char code Tab[]=
  24          { //數碼管數據0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
  25          0x12,0x9F,0x31,0x15,0x9C,0x54,0x50,0x1F,
  26          0x10,0x14,0x18,0xD0,0x72,0x91,0x70,0x78
  27          };
  28          void send(uchar buf1,uchar buf2); //數碼管顯示程序
  29          void EndpointII();//處理  2*16LCD和IIC
  30          //USB標準請求
  31          code void (*StandardDeviceRequest[])(void) =
  32          {
  33                  get_status,
  34                  clear_feature,
  35                  reserved,
  36                  set_feature,
  37                  reserved,
  38                  set_address,
  39                  get_descriptor,
  40                  reserved,
  41                  get_configuration,
  42                  set_configuration,
  43                  get_interface,
  44                  set_interface,
  45                  reserved,
  46                  reserved,
  47                  reserved,
  48                  reserved
  49          };
  50          
  51          //用戶廠商請求
  52          code void (*VendorDeviceRequest[])(void) =
  53          {
  54                  reserved,
  55                  reserved,
C51 COMPILER V7.50   MAIN                                                                  05/09/2007 17:53:59 PAGE 2   

  56                  reserved,
  57                  reserved,
  58                  reserved,
  59                  reserved,
  60                  reserved,
  61                  reserved,
  62                  reserved,
  63                  reserved,
  64                  reserved,
  65                  reserved,
  66                  reserved,
  67                  reserved,
  68                  reserved,
  69                  reserved
  70          };
  71          
  72          /*
  73          //*************************************************************************
  74          //  Public static data
  75          //*************************************************************************
  76          */
  77          
  78          extern EPPFLAGS bEPPflags;
  79          extern unsigned long ClockTicks;
  80          extern unsigned char idata GenEpBuf[];
  81          extern IO_REQUEST idata ioRequest;
  82          
  83          extern unsigned char ioSize, ioCount;
  84          extern unsigned char idata EpBuf[];
  85          extern unsigned char idata mainbuflen;
  86          
  87          CONTROL_XFER ControlData;
  88          BOOL bNoRAM;
  89          
  90          //定時器0初始化程序
  91          //定時器用來定時檢測按鍵狀態
  92          void init_timer0(void)
  93          {
  94   1              TMOD &= 0XF0;                    /* clear Timer 0   */
  95   1              TMOD  |= 0X1;
  96   1              TL0 = 0X0;                   /* value set by user    */
  97   1              TH0 = 0X0;                  /* value set by user  */
  98   1              ET0 = 1;        /* IE.1*/
  99   1              TR0 = 1;                /* TCON.4 start timer  */
 100   1              PT0 = 1;
 101   1      
 102   1              EA = 1;
 103   1      }
 104          
 105          //中斷設置
 106          void init_special_interrupts(void)
 107          {
 108   1              IT1 = 0;
 109   1              EX1 = 1;
 110   1              PX1 = 0;
 111   1      }
 112          
 113          //I/O口初始化程序
 114          void init_port()
 115          {
 116   1              P0 = 0xFF;
 117   1              P1 = 0xFF;
C51 COMPILER V7.50   MAIN                                                                  05/09/2007 17:53:59 PAGE 3   

 118   1              P2 = 0xFF;
 119   1              P3 = 0xFF;
 120   1      }
 121          void init()
 122          {
 123   1       send(0xff,0xff);//數碼管關
 124   1       LEDDATA=0x00;//LED關
 125   1      
 126   1      }
 127          void main(void)
 128          {
 129   1              init_port();//初始化I/O口
 130   1              initlcd();
 131   1              printscreen("Hello!!" ,"Wellcome to USB");
 132   1              init_timer0();//初始化定時器0
 133   1              init_special_interrupts();//設置中斷
 134   1              init();
 135   1              bEPPflags.value = 0;
 136   1              reconnect_USB();//重新連接USB
 137   1              /* Main program loop */
 138   1      
 139   1              while( TRUE )
 140   1              {
 141   2      
 142   2                      if (bEPPflags.bits.timer)
 143   2                      {
 144   3                              DISABLE;//定時器溢出,檢測按鍵狀態
 145   3                              bEPPflags.bits.timer = 0;
 146   3                              ENABLE;
 147   3      
 148   3                              if(bEPPflags.bits.configuration)//設備未配置返回
 149   3                                      check_key_LED();                //檢測鍵盤
 150   3                      }
 151   2      
 152   2      
 153   2                      if (bEPPflags.bits.bus_reset) 
 154   2                      {//設備復位處理
 155   3                              DISABLE;
 156   3                              bEPPflags.bits.bus_reset = 0;
 157   3                              ENABLE;
 158   3                      
 159   3                      } // if bus reset
 160   2      
 161   2                      if(bEPPflags.bits.ep1_rxdone)  //端點1輸出
 162   2                      {  //控制LED/數碼管/
 163   3                      /*
 164   3                        GenEpBuf[0]    操作對象  
 165   3                                1                        LED
 166   3                                2                        數碼管
 167   3                                3                        鋒鳴器
 168   3                                0x55             讀IIC
 169   3                      */
 170   3                       DISABLE;
 171   3                       bEPPflags.bits.ep1_rxdone=0;
 172   3                       ENABLE;
 173   3                       if(GenEpBuf[0]==1)LEDDATA=GenEpBuf[1];
 174   3                       if(GenEpBuf[0]==2)send(Tab[GenEpBuf[1]],Tab[GenEpBuf[2]]);
 175   3                       if(GenEpBuf[0]==3)BEEB=GenEpBuf[1]&0x01;
 176   3                       if(GenEpBuf[0]==0x55)
 177   3                       {
 178   4                        Read24c02_nByte(GenEpBuf[1],10,EpBuf) ;
 179   4                        D12_WriteEndpoint(5, 10, EpBuf);
C51 COMPILER V7.50   MAIN                                                                  05/09/2007 17:53:59 PAGE 4   

 180   4                       }
 181   3                       GenEpBuf[0]=0;
 182   3      
 183   3                      }
 184   2              
 185   2      
 186   2                      if (bEPPflags.bits.setup_packet)
 187   2                      {//Setup包處理
 188   3                              DISABLE;
 189   3                              bEPPflags.bits.setup_packet = 0;
 190   3                              ENABLE;
 191   3                              control_handler();//調用請求處理子程序
 192   3                      } // if setup_packet
 193   2      
 194   2                      if(bEPPflags.bits.main_rxdone)                  //端點2輸出
 195   2                      {
 196   3                              DISABLE;
 197   3                              bEPPflags.bits.main_rxdone=0;
 198   3                              ENABLE;
 199   3                              EndpointII();//操作LCD和I2C
 200   3                      } //if main_rxdone
 201   2              } // Main Loop
 202   1      }
 203          
 204          //返回stall應答
 205          void stall_ep0(void)
 206          {
 207   1              D12_SetEndpointStatus(0, 1);
 208   1              D12_SetEndpointStatus(1, 1);
 209   1      }
 210          
 211          //斷開USB總線
 212          void disconnect_USB(void)
 213          {
 214   1              // Initialize D12 configuration
 215   1              D12_SetMode(D12_NOLAZYCLOCK, D12_SETTOONE | D12_CLOCK_12M);
 216   1      }
 217          
 218          //連接USB總線
 219          void connect_USB(void)
 220          {
 221   1              // reset event flags
 222   1              DISABLE;
 223   1              bEPPflags.value = 0;//清除所有狀態
 224   1              ENABLE;
 225   1      
 226   1              // V2.1 enable normal+sof interrupt
 227   1              D12_SetDMA(D12_ENDP4INTENABLE | D12_ENDP5INTENABLE);
 228   1      
 229   1              // Initialize D12 configuration
 230   1              D12_SetMode(D12_NOLAZYCLOCK|D12_SOFTCONNECT, D12_SETTOONE | D12_CLOCK_12M);
 231   1      }
 232          
 233          //重新連接到USB總線
 234          void reconnect_USB(void)
 235          {
 236   1              unsigned long clk_cnt;
 237   1              disconnect_USB();
 238   1              clk_cnt = ClockTicks;
 239   1              while(ClockTicks < clk_cnt + 20);
 240   1              connect_USB();
 241   1      }
C51 COMPILER V7.50   MAIN                                                                  05/09/2007 17:53:59 PAGE 5   

 242          
 243          //恢復到未配置狀態
 244          void init_unconfig(void)
 245          {
 246   1              D12_SetEndpointEnable(0);       /* Disable all endpoints but EPP0. */
 247   1      }
 248          
 249          //設置配置狀態
 250          void init_config(void)
 251          {
 252   1              D12_SetEndpointEnable(1);       /* Enable  generic/iso endpoints. */
 253   1      }
 254          
 255          //從端點號1發送數據
 256          void single_transmit(unsigned char * buf, unsigned char len)
 257          {
 258   1              if( len <= EP0_PACKET_SIZE) {
 259   2                      D12_WriteEndpoint(1, len, buf);
 260   2              }
 261   1      }
 262          
 263          //發送端點號1建立代碼
 264          void code_transmit(unsigned char code * pRomData, unsigned short len)
 265          {
 266   1              ControlData.wCount = 0;
 267   1              if(ControlData.wLength > len)
 268   1                      ControlData.wLength = len;
 269   1      
 270   1              ControlData.pData = pRomData;
 271   1              if( ControlData.wLength >= EP0_PACKET_SIZE) {
 272   2                      D12_WriteEndpoint(1, EP0_PACKET_SIZE, ControlData.pData);//發送16字節數據
 273   2                      ControlData.wCount += EP0_PACKET_SIZE;
 274   2                      DISABLE;
 275   2                      bEPPflags.bits.control_state = USB_TRANSMIT;
 276   2                      ENABLE;
 277   2              }
 278   1              else {
 279   2                      D12_WriteEndpoint(1, ControlData.wLength, pRomData);//發送16字節內數據
 280   2                      ControlData.wCount += ControlData.wLength;
 281   2                      DISABLE;
 282   2                      bEPPflags.bits.control_state = USB_IDLE;
 283   2                      ENABLE;
 284   2              }
 285   1      }
 286          
 287          //LED和按鍵處理子程序
 288          void check_key_LED(void)
 289          {
 290   1              static unsigned char c ;
 291   1              c =KEYDATA;
 292   1              D12_WriteEndpoint(3,1,&c);         //輸入鍵盤數據
 293   1      
 294   1      
 295   1      }
 296          //數碼管顯示程序,左buf1,右buf2
 297          void send(uchar buf1,uchar buf2)
 298          {
 299   1       uchar i;
 300   1       uchar temp=buf2;
 301   1       for(i=0;i!=8;i++)
 302   1       { 
 303   2       if(temp&0x01)SPIDATA=1;
C51 COMPILER V7.50   MAIN                                                                  05/09/2007 17:53:59 PAGE 6   

 304   2       else   SPIDATA=0;
 305   2       SPICLK=0;SPICLK=1;
 306   2       temp>>=1;
 307   2       }
 308   1        temp=buf1;
 309   1       for(i=0;i!=8;i++)
 310   1       { 
 311   2       if(temp&0x01)SPIDATA=1;
 312   2       else   SPIDATA=0;
 313   2       SPICLK=0;SPICLK=1;
 314   2       temp>>=1;
 315   2       }
 316   1       SPILatch=0;
 317   1       SPILatch=1;
 318   1      }
 319          
 320          void EndpointII()//2*16LCD/IIC
 321          {
 322   1      
 323   1       if(EpBuf[0]==1)  PrintUsb(EpBuf+2,EpBuf[1]); //LCD
 324   1       if(EpBuf[0]==2)  Write24c02_nByte(EpBuf[2],EpBuf[1],EpBuf+3);//IIC
 325   1       EpBuf[0]=0;
 326   1      }
 327          
 328          //請求處理子程序        處理Setup包
 329          void control_handler()
 330          {
 331   1              unsigned char type, req;
 332   1              type = ControlData.DeviceRequest.bmRequestType & USB_REQUEST_TYPE_MASK;
 333   1              req = ControlData.DeviceRequest.bRequest & USB_REQUEST_MASK;
 334   1              if (type == USB_STANDARD_REQUEST)
 335   1                      (*StandardDeviceRequest[req])();//調用標準請求
 336   1              else if (type == USB_VENDOR_REQUEST)
 337   1                      (*VendorDeviceRequest[req])();//調用廠商請求
 338   1              else
 339   1                      stall_ep0();
 340   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    701    ----
   CONSTANT SIZE    =    136    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     25       8
   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 + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品123| 在线一区二区三区四区五区| 国产91丝袜在线播放九色| 日本精品视频一区二区| 精品国产免费人成电影在线观看四季| 国产精品久久久久久亚洲毛片| 亚洲一二三四区不卡| 成人免费视频一区二区| 日韩丝袜情趣美女图片| 伊人婷婷欧美激情| www.视频一区| 国产亚洲精品福利| 精品一区二区三区免费| 欧美日韩在线一区二区| 一区二区三区中文字幕电影 | 亚洲蜜臀av乱码久久精品蜜桃| 黄色日韩三级电影| 91精品国产入口| 亚洲在线一区二区三区| 91在线观看成人| 国产精品久久久久国产精品日日| 九色综合狠狠综合久久| 日韩欧美一区二区视频| 三级在线观看一区二区| 欧美三级中文字幕在线观看| 一区二区三区中文字幕| 日本国产一区二区| 一区二区三区影院| 99久久免费精品高清特色大片| 久久久久久久精| 国产成人午夜精品影院观看视频 | 国产精品综合一区二区三区| 欧美不卡123| 久久97超碰色| 国产三级欧美三级| 丰满岳乱妇一区二区三区| 国产精品网站在线| 99精品视频在线播放观看| 成人欧美一区二区三区| 色悠久久久久综合欧美99| 亚洲一区在线观看免费观看电影高清 | 中文子幕无线码一区tr| 丁香天五香天堂综合| 欧美激情综合五月色丁香| 成人精品gif动图一区| 国产精品国产精品国产专区不片 | 亚洲免费观看高清完整版在线观看 | 欧美日韩一本到| 日日摸夜夜添夜夜添精品视频 | 亚洲精品国产一区二区精华液 | 国产一区二区三区黄视频 | 亚洲人成小说网站色在线| 99久久久精品| 亚洲国产欧美一区二区三区丁香婷| 欧美色视频在线| 免费观看久久久4p| 久久综合九色综合欧美98| 成人av一区二区三区| 一区二区三区欧美日韩| 欧美一卡二卡三卡| 成人精品视频一区二区三区尤物| 亚洲美女视频在线| 日韩精品一区二区三区视频在线观看| 免费成人av资源网| 《视频一区视频二区| 欧美日韩在线亚洲一区蜜芽| 国产一区中文字幕| 亚洲最新视频在线观看| 欧美成人高清电影在线| 91丨九色丨黑人外教| 麻豆一区二区三区| 蜜臀精品一区二区三区在线观看| 国产午夜亚洲精品理论片色戒| 91黄色免费版| 国产精品99久久久久久宅男| 一区二区三区免费网站| 久久久久久黄色| 337p亚洲精品色噜噜狠狠| 粉嫩av一区二区三区| 日本sm残虐另类| 亚洲欧美电影一区二区| 久久久精品tv| 日韩一级片在线播放| 一本色道久久综合狠狠躁的推荐| 国模无码大尺度一区二区三区| 亚洲免费在线视频一区 二区| www久久精品| 欧美老肥妇做.爰bbww视频| 99久久婷婷国产综合精品| 国产在线精品免费av| 五月天中文字幕一区二区| 亚洲人精品一区| 国产女人18毛片水真多成人如厕| 日韩一区二区三区四区五区六区| 欧美在线观看18| 99精品欧美一区二区三区小说| 国产在线视频一区二区| 美女mm1313爽爽久久久蜜臀| 亚洲福利视频一区| 一区二区成人在线观看| 国产精品国产自产拍高清av | 99国产精品久久久久久久久久久| 精品在线观看免费| 免费看欧美美女黄的网站| 亚洲已满18点击进入久久| 亚洲乱码国产乱码精品精小说| 亚洲国产高清aⅴ视频| 久久久久久黄色| 中文字幕精品一区| 国产日本欧洲亚洲| 国产亚洲一区二区在线观看| 亚洲精品一区二区三区99| 日韩一区二区三区精品视频 | 日韩一区欧美一区| 中文字幕亚洲视频| 亚洲欧美精品午睡沙发| 亚洲靠逼com| 亚洲一区二区高清| 亚洲电影第三页| 免费精品视频最新在线| 日韩电影在线一区二区| 麻豆久久一区二区| 国产麻豆一精品一av一免费| 国产成人av一区二区| 波多野结衣精品在线| 99精品一区二区| 欧美综合亚洲图片综合区| 欧美色涩在线第一页| 欧美一区中文字幕| 久久久噜噜噜久久中文字幕色伊伊| 精品成人a区在线观看| 国产欧美日本一区视频| 国产精品婷婷午夜在线观看| 亚洲免费看黄网站| 日本中文在线一区| 精品一区二区日韩| 成人精品免费视频| 在线观看亚洲精品视频| 欧美精品免费视频| 精品国产3级a| 亚洲日本护士毛茸茸| 亚洲一二三区视频在线观看| 久久电影网站中文字幕| 国v精品久久久网| 欧美性videosxxxxx| 欧美tk—视频vk| 成人免费在线播放视频| 天天色综合成人网| 成年人网站91| 日韩一区二区三区三四区视频在线观看| 久久久久国产精品人| 亚洲一区二区三区四区的| 韩国v欧美v亚洲v日本v| 欧美在线不卡一区| 久久亚洲精品国产精品紫薇| 一区二区三区在线观看视频| 精品无码三级在线观看视频| 91在线观看一区二区| 久久综合色综合88| 亚洲一二三四久久| 成人av在线网站| 日韩精品专区在线影院重磅| 亚洲免费高清视频在线| 韩日欧美一区二区三区| 在线观看日韩电影| 国产日韩欧美在线一区| 午夜欧美视频在线观看| 99re视频这里只有精品| 精品免费国产二区三区| 亚洲国产日韩av| 99这里只有精品| 久久久91精品国产一区二区三区| 亚洲va在线va天堂| 91小视频免费看| 国产日韩精品久久久| 久久精品99国产精品日本| 色综合久久88色综合天天6| 欧美精品一区二区三区在线| 午夜电影网亚洲视频| 91亚洲精品乱码久久久久久蜜桃| 久久综合九色综合欧美98| 日本aⅴ免费视频一区二区三区| 欧美影院一区二区| 亚洲欧美激情在线| 色哟哟国产精品| 最好看的中文字幕久久| av不卡在线观看| 国产精品久久久久久久蜜臀| 激情欧美一区二区| 日韩女优视频免费观看| 奇米影视一区二区三区| 91精品国产一区二区三区 | 粉嫩在线一区二区三区视频| 精品va天堂亚洲国产| 毛片基地黄久久久久久天堂| 欧美一区二区三区视频免费播放| 日韩电影在线观看电影| 9191久久久久久久久久久| 丝袜美腿亚洲色图| 69p69国产精品|