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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? demo.lst

?? C51 ATAPI-CDROM 驅(qū)動(dòng)程序
?? LST
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
C51 COMPILER V7.09   DEMO                                                                  06/07/2004 00:25:23 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE DEMO
OBJECT MODULE PLACED IN Demo.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Demo.c ROM(SMALL) BROWSE DEBUG OBJECTEXTEND TABS(2)

line level    source

   1          //-------------------------------------------//
   2          //           ATAPI-CDROM 驅(qū)動(dòng)程序            //
   3          //                                           //
   4          // 這源碼為ATAPI基本驅(qū)動(dòng)程序,main()中只有   //
   5          // 幾個(gè)基本功能,為演示版,存在一些很多BUG   //
   6          //                                           //
   7          // 本程序?yàn)楣蚕戆姹荆坏糜糜谏虡I(yè)性質(zhì)。   //
   8          //                                           //
   9          // 不提供任何無償?shù)募夹g(shù)支持。         //
  10          // 使用或轉(zhuǎn)載時(shí)請(qǐng)保留些版權(quán)信息。            //
  11          // 更多升級(jí)版本請(qǐng)留意:                       //
  12          //      主頁(yè):http://www.cdle.net            //
  13          //      論壇:http://bbs.cdle.net            //
  14          //                                           //
  15          // 聯(lián)系方式:pnzwzw@cdle.net                 //
  16          //           pnzwzw@163.com                  //
  17          //                                           //
  18          //版權(quán)所有 http://www.cdle.net 2001-2004 明浩//
  19          //-------------------------------------------//
  20          #include <at89x51.h>
  21          
  22          #define A0  P0_0
  23          #define A1  P0_1
  24          #define A2  P0_2
  25          #define CS0 P0_3
  26          #define CS1 P0_4
  27          #define WR  P0_5
  28          #define RD  P0_6
  29          #define RST P0_7
  30          #define CDCOM P0 //CDROM控制線
  31          #define INTRQ P3_7 //INTRQ
  32          #define DBM P2 //CDROM數(shù)據(jù)線高8位
  33          #define DBL P1 //CDROM數(shù)據(jù)線低8位
  34          
  35          //------------------------------------------//
  36          //                                          //
  37          // P0.0--------------------------------P0.7 //
  38          // A0   A1   A2   CS0   CS1   WR   RD   ACT //
  39          //                                          //
  40          //------------------------------------------//
  41          //用變量設(shè)置P0的值,以方便對(duì)應(yīng)于各寄存器的地址值
  42          #define REG_Data        0xE0
  43          #define REG_Err         0xE1 //Features
  44          #define REG_Features    0xE1
  45          #define REG_Sector      0xE2
  46          #define REG_CyLow       0xE4
  47          #define REG_CyHig       0xE5
  48          #define REG_DriveHead   0xE6
  49          #define REG_Status      0xE7 //Command
  50          #define REG_Command     0xE7
  51          #define PLAYKey           P3_2
  52          #define EJECTKey          P3_3
  53          #define STOPKey           P3_5
  54          #define NEXTKey           P3_4
  55          #define PREVIOUSKey       P3_6
C51 COMPILER V7.09   DEMO                                                                  06/07/2004 00:25:23 PAGE 2   

  56          #define ERRLED            P3_7
  57          
  58          unsigned char code ReadSubP[]={0x42,0x02,0x40,0x01,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00}; //ReadSub命令
             -信息包
  59          unsigned char code ReadTOCP[]={0x43,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00}; //ReadTOC命令
             -信息包
  60          unsigned char code PlayMSFP[]={0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //MSF播放命令
             -信息包
  61          unsigned char data PacketTemp[24]; //信息包暫存RAM,用寫數(shù)據(jù)和讀數(shù)據(jù)的暫存
  62          
  63          unsigned char REGBL=0, REGBM=0; //用于暫存讀取寄存器的值
  64          unsigned char PacketSize; //用于保存CDROM定義的信息包長(zhǎng)度,有12,16
  65          unsigned char bdata CDStatusREG; //可位尋址變量保存CDROM的狀態(tài)寄存器值
  66          sbit ERR = CDStatusREG^0; //錯(cuò)誤
  67          sbit DRQ = CDStatusREG^3; //數(shù)據(jù)請(qǐng)求
  68          sbit DRDY = CDStatusREG^6; //設(shè)備就緒
  69          sbit BSY = CDStatusREG^7; //忙
  70          
  71          unsigned char bdata CDErr=0; //保存各種錯(cuò)誤標(biāo)識(shí)
  72          sbit INITERR = CDErr^0; //初始化錯(cuò)誤
  73          sbit TESTERR = CDErr^1; //CDROM自身診斷錯(cuò)誤
  74          sbit UKERR = CDErr^2; //未知錯(cuò)誤
  75          sbit EJECTING = CDErr^3; //彈出
  76          sbit CDOK = CDErr^4; //CD就緒
  77          sbit PLAYING = CDErr^5;
  78          sbit PAUSEING = CDErr^6;
  79          sbit STOPING = CDErr^7;
  80          
  81          unsigned char DEV; //選擇驅(qū)動(dòng)器時(shí)所用的參數(shù)
  82          unsigned char AudioStatus; //當(dāng)前的播放狀態(tài)
  83          unsigned char StartTrackNum; //開始曲目
  84          unsigned char EndTrackNum; //結(jié)束曲目
  85          unsigned char CurrentTrackNum; //當(dāng)前曲目
  86          unsigned char CurrentM, CurrentS, CurrentF; //當(dāng)前MSF值
  87          unsigned char StartM, StartS, StartF; //開始的MSF值
  88          unsigned char EndM, EndS, EndF; //結(jié)束的MSF值 
  89          
  90          void dmsec(unsigned int msec);
  91          void RedREG(unsigned char REG);
  92          void WriREG(unsigned char LSB, unsigned char MSB, unsigned char REG);
  93          void SendPacket(unsigned char SkipDRQ);
  94          void TestCD(void);
  95          void ReadSub(void);
  96          void ReadTOC(unsigned char Track);
  97          void ResData(unsigned char Count);
  98          void ReadStatus(void);
  99          void InitCDROM(void);
 100          void BSYWait(void);
 101          //void INTRQWait(void);
 102          void DRQWait(void);
 103          void NDRQWait(void);
 104          void LoadPacket(unsigned char code *RT);
 105          void TestUnitReady(void);
 106          void PlayMSF(void);
 107          void Eject(unsigned char EJ);
 108          void Pause(unsigned char PR);
 109          void Next(unsigned char NP);
 110          void Stop(void);
 111          
 112          void main(void)
 113          {
 114   1        InitCDROM();
C51 COMPILER V7.09   DEMO                                                                  06/07/2004 00:25:23 PAGE 3   

 115   1      
 116   1        do
 117   1          {
 118   2            if (!PLAYKey) //play or pause 要求CD就緒才響應(yīng)
 119   2              {
 120   3                if (CDOK)
 121   3                  {
 122   4                    dmsec(20); //延時(shí)20ms防抖動(dòng)
 123   4                    if (!PLAYKey)
 124   4                      {
 125   5                        if (PLAYING) //CD正在播放中的處理
 126   5                          {
 127   6                            if (PAUSEING) //繼續(xù)播放
 128   6                              {
 129   7                                Pause(0);
 130   7                                PAUSEING = 0;
 131   7                              }
 132   6                            else //暫停播放
 133   6                              {
 134   7                                Pause(1);
 135   7                                PAUSEING = 1;
 136   7                              }
 137   6                          }
 138   5                        else //CD就緒按play后播放
 139   5                          {
 140   6                            ReadTOC(CurrentTrackNum); //讀當(dāng)前TOC
 141   6                            ReadTOC(0xAA);
 142   6                            PlayMSF(); //播放
 143   6                            PLAYING = 1; //標(biāo)識(shí)
 144   6                          }
 145   5                      }
 146   4                  }
 147   3                dmsec(2000);
 148   3              }
 149   2      
 150   2            if (!STOPKey) //當(dāng)CD在播放中
 151   2              {
 152   3                if (PLAYING)
 153   3                  {
 154   4                    dmsec(20);
 155   4                    if (!STOPKey)
 156   4                      {
 157   5                        Pause(1); //暫停
 158   5                        Stop(); 
 159   5                        PLAYING = 0;
 160   5                        PAUSEING = 0;
 161   5                      }
 162   4                  }
 163   3                dmsec(2000);
 164   3              }
 165   2      
 166   2            if (!NEXTKey)
 167   2              {
 168   3                if (PLAYING)
 169   3                  {
 170   4                    dmsec(20);
 171   4                    if (!NEXTKey)
 172   4                      {
 173   5                        Next(1);
 174   5                      }
 175   4                  }
 176   3                dmsec(2000);
C51 COMPILER V7.09   DEMO                                                                  06/07/2004 00:25:23 PAGE 4   

 177   3              }
 178   2      
 179   2            if (!PREVIOUSKey)
 180   2              {
 181   3                if (PLAYING)
 182   3                  {
 183   4                    dmsec(20);
 184   4                    if (!PREVIOUSKey)
 185   4                      {
 186   5                        Next(0);
 187   5                      }
 188   4                  }
 189   3                dmsec(2000);
 190   3              }
 191   2      
 192   2            if (!EJECTKey)
 193   2              {
 194   3                dmsec(20);
 195   3                if (!EJECTKey)
 196   3                  {
 197   4                    if (EJECTING)
 198   4                      {
 199   5                        Eject(3); //裝載
 200   5                        EJECTING = 0;
 201   5                        dmsec(3000);
 202   5                        InitCDROM();
 203   5                      }
 204   4                    else
 205   4                      {
 206   5                        Eject(2);
 207   5                        EJECTING = 1;
 208   5                        CDOK = 0;
 209   5                        PAUSEING = 0;
 210   5                        PLAYING = 0;
 211   5                        STOPING = 0;
 212   5                      }
 213   4                  }
 214   3                dmsec(2000);
 215   3              }
 216   2      
 217   2          ReadStatus();//讀狀態(tài)
 218   2          ERRLED = ~ERR; //ERR指示
 219   2          }
 220   1        while(1);
 221   1      }
 222          
 223          //1ms延時(shí) 11.0592MHz /不是太精確
 224          void dmsec(unsigned int msec) 
 225          {
 226   1        unsigned int TempCyc;
 227   1        while(msec--)
 228   1          {
 229   2            for(TempCyc=0; TempCyc<125; TempCyc++);
 230   2          }
 231   1      }
 232          
 233          //寫寄存器
 234          void WriREG(unsigned char LSB, unsigned char MSB, unsigned char REG)
 235          {
 236   1        CDCOM = REG; //設(shè)要寫的REG
 237   1        //EA=0;//程序中有中斷程序時(shí)應(yīng)先關(guān)中斷
 238   1        CS1 = 1;
C51 COMPILER V7.09   DEMO                                                                  06/07/2004 00:25:23 PAGE 5   

 239   1        DBL = LSB;
 240   1        DBM = MSB; //寫數(shù)據(jù)
 241   1        WR = 0;
 242   1        WR = 1; 
 243   1        CS1 = 0; //WD,CS1置回
 244   1        DBL = 0xFF;
 245   1        DBM = 0xFF;
 246   1        dmsec(3); //延時(shí)
 247   1        //EA=1; 在這開中斷
 248   1      }
 249          
 250          //讀寄存器
 251          void RedREG(unsigned char REG)
 252          {
 253   1        CDCOM = REG; //設(shè)要讀的寄存器
 254   1        //EA=0;//程序中有中斷程序時(shí)應(yīng)先關(guān)中斷
 255   1        CS1 = 1; 
 256   1        RD = 0; //開始讀數(shù)據(jù)線
 257   1        REGBL = DBL; //從數(shù)據(jù)線上讀狀態(tài)寄存器值
 258   1        REGBM = DBM;
 259   1        RD = 1; 
 260   1        CS1 = 0; //RD,CS1置回
 261   1        dmsec(3); //延時(shí)
 262   1        //EA=1; 在這開中斷
 263   1      }
 264          
 265          //Count向CDROM發(fā)送信息包的大小
 266          void SendPacket(unsigned char SkipDRQ) 
 267          {
 268   1        unsigned char TempCyc;
 269   1      
 270   1        if (!SkipDRQ) 
 271   1          NDRQWait();
 272   1        WriREG(PacketSize, 0xFF, REG_CyLow); //設(shè)CyLow,CyHig的值不應(yīng)小于傳輸?shù)臄?shù)量否則PacketCommand時(shí)ERR出錯(cuò)
 273   1        WriREG(0x00, 0xFF, REG_CyHig); //
 274   1        WriREG(DEV, 0xFF, REG_DriveHead); //選擇Device 0
 275   1        WriREG(0xA0,0xFF,REG_Command); //發(fā)送A0H,Packet命令,準(zhǔn)備發(fā)送Packet
 276   1          DRQWait(); //注:有些命令可能返回沒有就緒的錯(cuò)誤,這里沒做考慮
 277   1        for (TempCyc=0; TempCyc<PacketSize; TempCyc++)
 278   1          {
 279   2            CDCOM = REG_Data; //設(shè)控制IO,CS0-1=0,A0-2=0,WR-RD=1,RST=1
 280   2            //EA=0;//程序中有中斷程序時(shí)應(yīng)先關(guān)中斷
 281   2            CS1 = 1;  //這時(shí)CS1=1,CS0=0,A0-2=0,為選擇數(shù)據(jù)寄存器Data Register
 282   2            DBL = PacketTemp[TempCyc*2];
 283   2            DBM = PacketTemp[TempCyc*2+1]; //寫信息包數(shù)據(jù)
 284   2            WR = 0;
 285   2            WR = 1; 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品视频网站| 国产女人18毛片水真多成人如厕| 精品国产免费久久| 国产精品毛片久久久久久久| 亚洲va韩国va欧美va| 国产精品自在欧美一区| 欧美日韩一区不卡| 欧美激情一区三区| 日韩电影免费一区| 色综合一个色综合| 久久精品亚洲乱码伦伦中文| 性感美女极品91精品| proumb性欧美在线观看| 91搞黄在线观看| 26uuu另类欧美| 亚洲福利视频一区二区| 国产激情精品久久久第一区二区| 97久久精品人人澡人人爽| 亚洲精品在线一区二区| 亚洲成av人片在线观看无码| 国产91综合一区在线观看| 欧美美女网站色| 亚洲精品成人少妇| 本田岬高潮一区二区三区| 亚洲精品在线网站| 国产精品视频免费看| 国产精品伦一区| 奇米精品一区二区三区在线观看一| 99精品国产91久久久久久| 国产亚洲人成网站| 精一区二区三区| 欧美日韩性生活| 一区二区三区色| 波多野结衣中文字幕一区| 337p粉嫩大胆噜噜噜噜噜91av | 丁香婷婷综合色啪| 日韩亚洲欧美高清| 午夜欧美一区二区三区在线播放| 91麻豆.com| 国产精品第五页| 国产成人精品一区二| 欧美大片免费久久精品三p| 亚洲精品美腿丝袜| 91亚洲精品乱码久久久久久蜜桃| 国产亚洲欧美色| 国产成人在线网站| 久久久www免费人成精品| 久久99精品国产麻豆婷婷洗澡| 欧美精品电影在线播放| 午夜精品久久久久久不卡8050| 91极品美女在线| 亚洲黄色尤物视频| 欧洲国内综合视频| 亚洲国产你懂的| 欧美亚洲高清一区| 亚洲免费看黄网站| 91免费看片在线观看| 欧美高清在线精品一区| 成人在线综合网站| 中文字幕亚洲不卡| 色菇凉天天综合网| 亚洲成a人在线观看| 91麻豆精品国产综合久久久久久| 图片区日韩欧美亚洲| 亚洲免费在线观看| 欧美国产欧美综合| 成人午夜视频在线| 最新日韩在线视频| 国产激情偷乱视频一区二区三区| 欧美岛国在线观看| 国产成人av影院| 日韩一区有码在线| 在线观看日韩高清av| 亚洲国产精品人人做人人爽| 欧美日韩精品一区二区三区蜜桃 | 欧美日韩免费观看一区二区三区 | 精品福利av导航| 国产精品资源在线| 国产精品美女视频| 色成人在线视频| 日日摸夜夜添夜夜添国产精品| 日韩欧美你懂的| 国产成人一级电影| 亚洲天堂网中文字| 91.com视频| 国产一级精品在线| 综合av第一页| 欧美日韩的一区二区| 美女视频免费一区| 久久奇米777| 国产一本一道久久香蕉| 亚洲欧洲日韩在线| 欧美女孩性生活视频| 国模少妇一区二区三区| 国产精品亲子乱子伦xxxx裸| 在线观看www91| 蜜臀av性久久久久蜜臀av麻豆 | 成人黄动漫网站免费app| 亚洲精品国产高清久久伦理二区| 欧美日本一区二区| 国产黄色精品视频| 亚洲电影第三页| 久久色视频免费观看| 91麻豆免费观看| 日韩高清不卡一区二区| 中文字幕va一区二区三区| 色偷偷久久人人79超碰人人澡| 亚洲午夜免费视频| 久久久无码精品亚洲日韩按摩| 一本色道综合亚洲| 精品一区二区在线观看| 亚洲色图欧美在线| 欧美va日韩va| 欧美在线|欧美| 国产精品18久久久久久久久 | 欧美一级黄色大片| 91在线播放网址| 久久国产精品99精品国产| 中文字幕日韩一区| 日韩一级成人av| 欧美www视频| 亚洲国产精品精华液2区45| 欧美人xxxx| 99久久综合精品| 国产美女精品一区二区三区| 亚洲自拍另类综合| 中文字幕av一区二区三区| 欧美一级午夜免费电影| 色综合天天综合狠狠| 激情文学综合网| 日韩 欧美一区二区三区| 1024国产精品| 亚洲精品一区在线观看| 欧美日韩精品免费| 91丨porny丨蝌蚪视频| 国产一区二区三区四区五区美女 | 日本久久一区二区| 高清不卡在线观看| 美腿丝袜亚洲综合| 亚洲一区在线观看免费| 中文字幕巨乱亚洲| 欧美高清视频在线高清观看mv色露露十八| 国产91露脸合集magnet| 久久丁香综合五月国产三级网站| 亚洲自拍偷拍欧美| 亚洲人成7777| 国产精品理论在线观看| 久久综合色婷婷| 日韩一区二区精品葵司在线| 欧美性大战久久| 色综合久久中文综合久久97| 成人综合激情网| 国产精品99久| 国内精品自线一区二区三区视频| 婷婷综合五月天| 亚洲欧美日本韩国| 亚洲欧美自拍偷拍| 国产精品无圣光一区二区| 91精品国产色综合久久不卡电影| 色欧美88888久久久久久影院| 成人丝袜高跟foot| 国产自产v一区二区三区c| 美女性感视频久久| 日韩精彩视频在线观看| 黄色小说综合网站| 久久精品国产精品亚洲精品| 亚洲欧美色图小说| 亚洲欧美影音先锋| 亚洲日本电影在线| 亚洲人成人一区二区在线观看| 国产日韩三级在线| 国产欧美日韩另类一区| 国产精品妹子av| 亚洲日本欧美天堂| 亚洲午夜久久久久久久久电影网| 一区二区三国产精华液| 五月天激情小说综合| 日韩黄色小视频| 精品一区二区久久久| 国产成人免费9x9x人网站视频| 成人久久18免费网站麻豆| 91丨porny丨户外露出| 中文字幕一区三区| 亚洲女子a中天字幕| 亚洲成av人片在线观看| 久久电影网站中文字幕 | 日韩激情中文字幕| 久久激五月天综合精品| 丁香婷婷综合网| 在线视频欧美精品| 日韩欧美国产成人一区二区| 欧美日韩精品欧美日韩精品| 日韩一区二区电影网| 亚洲国产电影在线观看| 亚洲一二三级电影| 精品在线播放免费| 91啪在线观看| 日韩精品一区二区三区中文不卡| 欧美国产日产图区| 午夜国产不卡在线观看视频|