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

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

?? main.lst

?? 自定義的USB設備單片機固件程序
?? LST
字號:
C51 COMPILER V8.05a   MAIN                                                                 04/21/2009 19:44:20 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /******************************************************************
   2             本程序只供學習使用,未經作者許可,不得用于其它任何用途
   3                                  
   4                  歡迎訪問我的USB專區:http://group.ednchina.com/93/
   5                  歡迎訪問我的blog:   http://www.ednchina.com/blog/computer00
   6                                       http://computer00.21ic.org
   7          
   8                  感謝PCB贊助商——電子園: http://bbs.cepark.com/
   9          
  10          main.c file
  11          
  12          作者:電腦圈圈
  13          建立日期: 2008.06.27
  14          修改日期: 2008.08.22
  15          版本:V1.1
  16          版權所有,盜版必究。
  17          Copyright(C) 電腦圈圈 2008-2018
  18          All rights reserved            
  19          *******************************************************************/
  20          
  21          #include <AT89X52.H>  //頭文件
  22          #include "Key.h"
  23          #include "Led.h"
  24          #include "UART.h"
  25          #include "pdiusbd12.h"
  26          #include "UsbCore.h"
  27          #include "config.h"
  28          
  29          code uint8 HeadTable[][74]={
  30          "********************************************************************\r\n",
  31          "******         《圈圈教你玩USB》之 用戶自定義的USB設備        ******\r\n",
  32          "******                      AT89S52 CPU                       ******\r\n",
  33          "******                  建立日期:",__DATE__,"                 ******\r\n",
  34          "******                   建立時間:",__TIME__,"                   ******\r\n",
  35          "******                    作者:電腦圈圈                      ******\r\n",
  36          "******                    歡迎訪問作者的                      ******\r\n",
  37          "******           USB專區:http://group.ednchina.com/93/       ******\r\n",
  38          "******      BLOG1:http://www.ednchina.com/blog/computer00    ******\r\n",
  39          "******                BLOG2:http://computer00.21ic.org       ******\r\n",
  40          "******          打開上位機應用軟件,然后按K1-K8分別進行測試   ******\r\n",
  41          "********************************************************************\r\n",
  42          };
  43          
  44          /********************************************************************
  45          函數功能:根據按鍵情況返回數據的函數。
  46          入口參數:無。
  47          返    回:無。
  48          備    注:無。
  49          ********************************************************************/
  50          void SendKeyData(void)
  51          {
  52   1       //需要返回8字節數據的緩沖區,這里僅使用前5字節
  53   1       uint8 Buf[8]={0,0,0,0,0,0,0,0};
  54   1       
  55   1       //每發送一次數據,則將Count增加一。
C51 COMPILER V8.05a   MAIN                                                                 04/21/2009 19:44:20 PAGE 2   

  56   1       Count++;
  57   1       
  58   1       //根據不同的按鍵設置輸入數據。這里將8個按鍵情況放在第一字節。
  59   1       Buf[0]=KeyPress;
  60   1       
  61   1       //根據Count的值設置緩沖的第二到第四字節。
  62   1       Buf[1]=(Count&0xFF);       //最低字節
  63   1       Buf[2]=((Count>>8)&0xFF);  //次低字節
  64   1       Buf[3]=((Count>>16)&0xFF); //次高字節
  65   1       Buf[4]=((Count>>24)&0xFF); //最高字節
  66   1       
  67   1       //數據準備好了,通過端點1返回,長度為8字節。
  68   1       D12WriteEndpointBuffer(3,8,Buf);
  69   1       Ep1InIsBusy=1;  //設置端點忙標志。
  70   1       
  71   1       //記得清除KeyUp和KeyDown
  72   1       KeyUp=0;
  73   1       KeyDown=0;
  74   1      }
  75          ////////////////////////End of function//////////////////////////////
  76          
  77          /********************************************************************
  78          函數功能:將串口緩沖區中的數據發送到端點2的函數。
  79          入口參數:無。
  80          返    回:無。
  81          備    注:無。
  82          ********************************************************************/
  83          void SendUartDataToEp2(void)
  84          {
  85   1       uint8 Len;
  86   1       
  87   1       //暫時禁止串行中斷,防止UartByteCount在中斷中修改而導致不同步
  88   1       ES=0;
  89   1       //將串口緩沖區接收到的字節數復制出來
  90   1       Len=UartByteCount;
  91   1       //檢查長度是否為0,如果沒有收到,數據,則不需要處理,直接返回
  92   1       if(Len==0)
  93   1       {
  94   2        ES=1; //記得打開串口中斷
  95   2        return;
  96   2       }
  97   1       //檢查Len字節個數據是否跨越了緩沖區邊界,如果跨越了,那么本次只發送
  98   1       //跨越邊界之前的數據,剩余的數據留待下次發送。否則,可以一次發送全部。
  99   1       if((Len+UartBufferOutputPoint)>BUF_LEN)
 100   1       {
 101   2        Len=BUF_LEN-UartBufferOutputPoint;
 102   2       }
 103   1       //修改緩沖區數據字節數
 104   1       UartByteCount-=Len;
 105   1       
 106   1       //到這里可以打開串口中斷了
 107   1       ES=1;
 108   1       
 109   1       //將數據寫入到端點2輸入緩沖區
 110   1       D12WriteEndpointBuffer(5,Len,UartBuffer+UartBufferOutputPoint);
 111   1       //修改輸出數據的位置
 112   1       UartBufferOutputPoint+=Len;
 113   1       //如果已經到達緩沖區末尾,則設置回開頭
 114   1       if(UartBufferOutputPoint>=BUF_LEN)
 115   1       {
 116   2        UartBufferOutputPoint=0;
 117   2       }
C51 COMPILER V8.05a   MAIN                                                                 04/21/2009 19:44:20 PAGE 3   

 118   1       //只有兩個緩沖區都滿時,才設置端點2輸入忙
 119   1       if((D12ReadEndpointStatus(5)&0x60)==0x60)
 120   1       {
 121   2        Ep2InIsBusy=1;
 122   2       }
 123   1      }
 124          ////////////////////////End of function//////////////////////////////
 125          
 126          /********************************************************************
 127          函數功能:主函數。
 128          入口參數:無。
 129          返    回:無。
 130          備    注:無。
 131          ********************************************************************/
 132          void main(void)  //主函數
 133          {
 134   1       uint8 i;
 135   1       uint16 id;
 136   1       uint8 InterruptSource;
 137   1       
 138   1       EA=1; //打開中斷
 139   1       InitKeyboard(); //初始化按鍵
 140   1       InitUART();  //初始化串口
 141   1       
 142   1       for(i=0;i<16;i++)        //顯示信息
 143   1       {
 144   2        Prints(HeadTable[i]);
 145   2       }
 146   1       
 147   1       id=D12ReadID();
 148   1      
 149   1       Prints("Your D12 chip\'s ID is: ");
 150   1       PrintShortIntHex(id);
 151   1      
 152   1       if(id==0x1012)
 153   1       {
 154   2        Prints(". ID is correct! Congratulations!\r\n\r\n");
 155   2       }
 156   1       else
 157   1       {
 158   2        Prints(". ID is incorrect! What a pity!\r\n\r\n");
 159   2       }
 160   1       
 161   1       UsbDisconnect();  //先斷開USB連接
 162   1       UsbConnect();  //將USB連接上
 163   1       ConfigValue=0; //配置值初始化為0
 164   1       
 165   1       while(1)  //死循環
 166   1       {
 167   2        if(D12GetIntPin()==0) //如果有中斷發生
 168   2        {
 169   3         D12WriteCommand(READ_INTERRUPT_REGISTER);  //寫讀中斷寄存器的命令
 170   3         InterruptSource=D12ReadByte(); //讀回第一字節的中斷寄存器
 171   3         if(InterruptSource&0x80)UsbBusSuspend(); //總線掛起中斷處理
 172   3         if(InterruptSource&0x40)UsbBusReset();   //總線復位中斷處理
 173   3         if(InterruptSource&0x01)UsbEp0Out();     //端點0輸出中斷處理
 174   3         if(InterruptSource&0x02)UsbEp0In();      //端點0輸入中斷處理
 175   3         if(InterruptSource&0x04)UsbEp1Out();     //端點1輸出中斷處理
 176   3         if(InterruptSource&0x08)UsbEp1In();      //端點1輸入中斷處理
 177   3         if(InterruptSource&0x10)UsbEp2Out();     //端點2輸出中斷處理
 178   3         if(InterruptSource&0x20)UsbEp2In();      //端點2輸入中斷處理
 179   3        }
C51 COMPILER V8.05a   MAIN                                                                 04/21/2009 19:44:20 PAGE 4   

 180   2        if(ConfigValue!=0) //如果已經設置為非0的配置,則可以返回數據
 181   2        {
 182   3         //如果端點1輸入沒有處于忙狀態,則可以發送數據
 183   3         if(Ep1InIsBusy==0)
 184   3         {
 185   4          KeyCanChange=0;  //禁止按鍵掃描
 186   4          if(KeyUp||KeyDown) //如果有按鍵事件發生
 187   4          {
 188   5           SendKeyData();  //則返回鍵盤數據
 189   5          }
 190   4          KeyCanChange=1;  //允許按鍵掃描
 191   4         }
 192   3         
 193   3         //如果端點2空閑,則發送串口數據到端點2
 194   3         if(Ep2InIsBusy==0)
 195   3         {
 196   4          SendUartDataToEp2(); //調用函數將緩沖區數據發送到端點2
 197   4         }
 198   3         
 199   3         //端點2接收緩沖區中還有數據未發送,則發送到串口
 200   3         if(UsbEp2ByteCount!=0) 
 201   3         {
 202   4          //發送一字節到串口
 203   4          UartPutChar(UsbEp2Buffer[UsbEp2BufferOutputPoint]);
 204   4          UsbEp2BufferOutputPoint++; //發送位置后移1
 205   4          UsbEp2ByteCount--;   //計數值減1
 206   4         }
 207   3        }
 208   2       }
 209   1      }
 210          ////////////////////////End of function//////////////////////////////


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    440    ----
   CONSTANT SIZE    =   1290    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      13
   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一区二区三区免费野_久草精品视频
欧美一区二区三区视频在线| 国产永久精品大片wwwapp| 91丝袜呻吟高潮美腿白嫩在线观看| 日韩免费一区二区| 国产在线视频精品一区| 亚洲精品在线观| 成人综合在线观看| 亚洲欧美电影一区二区| 色婷婷av一区二区三区软件| 一区二区三区中文免费| 欧美色爱综合网| 久久国产婷婷国产香蕉| 久久网站最新地址| 91欧美激情一区二区三区成人| 亚洲精品一卡二卡| 91精品国产全国免费观看| 毛片av一区二区| 精品国产一区二区三区av性色| 在线欧美小视频| 国产精品福利一区二区三区| 久久―日本道色综合久久| 自拍偷拍国产精品| 91成人免费网站| 国产亚洲精品7777| 在线观看av不卡| 亚洲成人av中文| 欧美一区二区三区免费视频 | 久久精品国产精品青草| 欧美tickle裸体挠脚心vk| 韩国成人精品a∨在线观看| 国产亚洲精品bt天堂精选| 成人免费三级在线| 国产拍欧美日韩视频二区| 国内久久精品视频| 欧美高清在线精品一区| zzijzzij亚洲日本少妇熟睡| 综合精品久久久| 7777精品伊人久久久大香线蕉超级流畅| 亚洲伦理在线免费看| 欧美一级片免费看| 岛国精品在线观看| 亚洲成a人v欧美综合天堂下载 | 亚洲三级理论片| 欧美日韩成人综合| 国产乱码精品一区二区三区av| 综合激情成人伊人| 精品国产区一区| 9人人澡人人爽人人精品| 亚洲电影一级片| 欧美激情艳妇裸体舞| 欧美日韩国产经典色站一区二区三区| 裸体在线国模精品偷拍| 中文字幕在线不卡视频| 7777女厕盗摄久久久| 国产99久久久国产精品潘金| 亚洲图片自拍偷拍| 国产免费成人在线视频| 精品视频一区 二区 三区| 国产成人日日夜夜| 日韩精品一区第一页| 中文字幕高清一区| 日韩三级在线观看| 91国内精品野花午夜精品| 国产风韵犹存在线视精品| 日韩电影网1区2区| 一区二区视频免费在线观看| 久久久久国产精品麻豆| 欧美日韩国产在线观看| 不卡电影一区二区三区| 久久99蜜桃精品| 亚洲成av人片在www色猫咪| 国产精品入口麻豆九色| 亚洲精品在线观看视频| 91精品国产欧美一区二区18| 91亚洲精品一区二区乱码| 九九九久久久精品| 亚洲成av人片一区二区梦乃| 亚洲自拍偷拍麻豆| 中文字幕一区二区在线观看 | 久久久精品国产免大香伊 | 亚洲国产成人自拍| 日韩免费福利电影在线观看| 欧美日韩一区精品| 欧美性猛交一区二区三区精品 | 亚洲精品美腿丝袜| 国产精品久久久久三级| 久久一区二区三区四区| 久久综合五月天婷婷伊人| 日韩视频一区二区在线观看| 欧美日韩国产欧美日美国产精品| 色吧成人激情小说| 日本黄色一区二区| 色婷婷综合久色| 色综合 综合色| 欧美三级蜜桃2在线观看| 91福利在线导航| 欧美婷婷六月丁香综合色| 色婷婷av一区二区三区软件| 色综合天天视频在线观看 | 国产大片一区二区| 国产91丝袜在线播放0| 国产成人免费视频网站高清观看视频| 国内精品写真在线观看| 激情久久五月天| 国产一区二区精品久久99| 激情伊人五月天久久综合| 国产在线日韩欧美| 成人黄色av网站在线| 成人小视频在线| 国产99久久久国产精品| 成人免费视频国产在线观看| 成人黄色777网| 91色.com| 欧美日韩黄视频| 在线不卡的av| 久久久久久久久久久久久女国产乱| 久久久久国色av免费看影院| 精品国产乱子伦一区| 久久久久久久免费视频了| 国产清纯白嫩初高生在线观看91 | 久久精品人人爽人人爽| 日韩美女视频一区二区| 亚洲自拍欧美精品| 久久99久久久久久久久久久| 国产又粗又猛又爽又黄91精品| 粉嫩绯色av一区二区在线观看| 成人h动漫精品| 欧美日本在线播放| 国产婷婷色一区二区三区在线| 中文字幕亚洲在| 日韩 欧美一区二区三区| 国产一区二区三区综合| 91在线免费看| 日韩欧美一区在线观看| 国产欧美视频一区二区三区| 一区二区在线观看不卡| 免费成人av资源网| 91看片淫黄大片一级在线观看| 欧美日本精品一区二区三区| 国产无人区一区二区三区| 亚洲一区二区成人在线观看| 麻豆国产一区二区| 在线观看日韩av先锋影音电影院| 日韩一区二区在线观看视频| 中文av一区二区| 热久久免费视频| 91视频在线观看免费| 欧美一区二区三区四区视频| 国产精品国产自产拍高清av| 日本女优在线视频一区二区| 成人黄动漫网站免费app| 欧美大片一区二区三区| 亚洲免费av网站| 国产成人综合网站| 日韩一级片网址| 亚洲一区二区精品久久av| 成人中文字幕在线| 日韩精品一区二| 日韩在线a电影| 色婷婷激情综合| 国产精品久久久久aaaa樱花| 麻豆国产91在线播放| 欧美日韩一级大片网址| 亚洲婷婷综合色高清在线| 国产河南妇女毛片精品久久久| 欧美一区二区黄| 视频一区二区中文字幕| 成人午夜大片免费观看| 欧美不卡一二三| 午夜精品久久久久久久| 国产精品小仙女| 制服丝袜中文字幕一区| 石原莉奈在线亚洲二区| 成人免费视频免费观看| 国产午夜久久久久| 国产精品影音先锋| 日韩精品中文字幕一区| 日韩精品一卡二卡三卡四卡无卡| 欧美性一二三区| 亚洲成人自拍网| 欧美日韩综合一区| 亚洲福利国产精品| 欧美日韩国产高清一区二区三区 | 三级亚洲高清视频| 欧美色图第一页| 亚洲成人在线免费| 欧美精品一卡两卡| 全部av―极品视觉盛宴亚洲| 日韩一区二区三区视频在线观看| 丝袜美腿亚洲色图| 欧美亚洲综合在线| 亚洲自拍另类综合| 欧洲生活片亚洲生活在线观看| 国产精品动漫网站| www.视频一区| 亚洲人123区| 成人免费毛片app| 亚洲国产精品一区二区www在线| 欧美日韩一区二区三区免费看| 日韩中文字幕91|