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

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

?? uart.lst

?? c8051f330系統(tǒng)
?? LST
字號:
C51 COMPILER V7.50   UART                                                                  12/11/2007 10:19:45 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN Uart.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE Uart.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          //#include "ML-330.H"
   3          
   4          //#define SYSCLK      24500000
   5          
   6          #include <string.h>
   7          #include "c8051F330.h"
   8          //#include "const.h"
   9          #include "uart.h"
  10          
  11          
  12          //串口讀寫驅(qū)動程序
  13          
  14          #define  SYSCLK 22118400
  15          
  16          #define MAX_LEN      128
  17          #define MAX_SEND_LEN 256
  18          
  19          
  20          volatile bit  readFlag0 = 0;                           //Uart0中斷接收處理標志
  21          volatile bit  readFlag1 = 0;                           //Uart1中斷接收處理標志
  22          volatile bit  sendFlag0 = 0;                           //Uart0中斷發(fā)送處理標志
  23          volatile bit  sendFlag1 = 0;                           //Uart1中斷發(fā)送處理標志
  24          
  25          volatile unsigned char xdata PRead0 = 0;                   //uart0接收緩沖讀指針
  26          volatile unsigned char xdata PWrite0 = 0;                   //uart0接收緩沖寫指針
  27          volatile unsigned char xdata PRead1 = 0;                   //uart1接收緩沖讀指針
  28          volatile unsigned char xdata PWrite1 = 0;                   //uart1接收緩沖寫指針
  29          
  30          volatile unsigned char xdata PSendRead0 = 0;                   //uart0發(fā)送緩沖讀指針
  31          volatile unsigned char xdata PSendWrite0 = 0;                   //uart0發(fā)送緩沖寫指針
  32          volatile unsigned char xdata PSendRead1 = 0;                   //uart1發(fā)送緩沖讀指針
  33          volatile unsigned char xdata PSendWrite1 = 0;                   //uart1發(fā)送緩沖寫指針
  34          
  35          unsigned char xdata BufData0[MAX_LEN];  //uart0接收緩沖
  36          unsigned char xdata BufSend0[MAX_SEND_LEN];  //uart0發(fā)送緩沖
  37          unsigned char xdata BufData1[MAX_LEN];  //uart1接收緩沖
  38          unsigned char xdata BufSend1[MAX_SEND_LEN];  //uart1發(fā)送緩沖
  39          
  40          unsigned char xdata SendCount0 = 0;               //uart0發(fā)送字節(jié)數(shù)
  41          unsigned char xdata SendCount1 = 0;               //uart0發(fā)送字節(jié)數(shù)
  42          
  43          
  44          void Uart0_Init(unsigned long BAUDRATE)
  45          {
  46   1         SCON0 = 0x10;//允許接收
  47   1      
  48   1        if (SYSCLK/BAUDRATE/2/256 < 1) {
  49   2            TH1 = 255-(SYSCLK/BAUDRATE);
  50   2            CKCON &= ~0x0B;                  // T1M = 1; SCA1:0 = xx
  51   2            CKCON |=  0x08;
  52   2         } else if (SYSCLK/BAUDRATE/2/256 < 4) {
  53   2            TH1 = -(SYSCLK/BAUDRATE/2/4);
  54   2            CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 01                  
  55   2            CKCON |=  0x09;
C51 COMPILER V7.50   UART                                                                  12/11/2007 10:19:45 PAGE 2   

  56   2         } else if (SYSCLK/BAUDRATE/2/256 < 12) {
  57   2            TH1 = -(SYSCLK/BAUDRATE/2/12);
  58   2            CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 00
  59   2         } else {
  60   2            TH1 = -(SYSCLK/BAUDRATE/2/48);
  61   2            CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 10
  62   2            CKCON |=  0x02;
  63   2         }
  64   1         /*TH1 =  63;
  65   1         CKCON &= ~0x0B;
  66   1         CKCON |=  0x08;*/
  67   1      
  68   1         TL1 = TH1;
  69   1         TMOD &= ~0xf0;
  70   1         TMOD |=  0x20;
  71   1         TR1 = 1;
  72   1        // TI0 = 1;
  73   1      }
  74          
  75          
  76          //串口接收函數(shù)
  77          unsigned char UART_Read(const unsigned char ComPort,
  78                                  unsigned char *Buffer)
  79          {
  80   1        unsigned char xdata BufferStr[MAX_LEN];
  81   1        int xdata readCounts = 0; //已經(jīng)讀取的字符個數(shù),與MAX_LEN比較 
  82   1        unsigned char xdata temp = 0;
  83   1        unsigned char xdata BufLen = 0;
  84   1      
  85   1        if ((PRead0!=PWrite0) & (ComPort == 0))
  86   1        {
  87   2          temp = PWrite0;
  88   2          readCounts = (int)temp - (int)PRead0;  
  89   2      
  90   2          if (readCounts > 0)
  91   2          {
  92   3            memcpy( BufferStr, BufData0 + PRead0 , readCounts);   
  93   3            PRead0 = temp;   
  94   3      
  95   3            memcpy(Buffer,BufferStr,readCounts);
  96   3      
  97   3            BufLen = readCounts;
  98   3          }
  99   2          else if ( readCounts < 0)
 100   2          { 
 101   3            memcpy( BufferStr, BufData0 + PRead0 , MAX_LEN-PRead0);
 102   3      
 103   3            memcpy( BufferStr+MAX_LEN-PRead0, BufData0 , temp);
 104   3      
 105   3            PRead0 = temp;
 106   3      
 107   3            memcpy(Buffer,BufferStr,MAX_LEN+readCounts);
 108   3      
 109   3            BufLen = MAX_LEN+readCounts;
 110   3          }
 111   2          readFlag0 = 1;         
 112   2        }
 113   1        else if ((PRead1!=PWrite1) & (ComPort == 1))
 114   1        {
 115   2          temp = PWrite1;
 116   2          readCounts = (int)temp - (int)PRead1;  
 117   2          memset( BufferStr, 0, MAX_LEN );
C51 COMPILER V7.50   UART                                                                  12/11/2007 10:19:45 PAGE 3   

 118   2          if (readCounts > 0)
 119   2          {
 120   3            memcpy( BufferStr, BufData1 + PRead1 , readCounts);   
 121   3            PRead1 = temp;    
 122   3            memcpy(Buffer,BufferStr,readCounts);   
 123   3            BufLen = readCounts;
 124   3          }
 125   2          else if ( readCounts < 0)
 126   2          {
 127   3            memcpy( BufferStr, BufData1 + PRead1 , MAX_LEN-PRead1);
 128   3            memcpy( BufferStr+MAX_LEN-PRead1, BufData1 , temp);
 129   3            PRead1 = temp;
 130   3            memcpy(Buffer,BufferStr,MAX_LEN+readCounts);
 131   3            BufLen = MAX_LEN+readCounts;
 132   3          }
 133   2          readFlag1 = 1;         
 134   2        } 
 135   1        return BufLen;
 136   1      }
 137          
 138          void Send_Char(const unsigned char com,unsigned char ch)
 139          {
 140   1         
 141   1        switch (com)
 142   1        {
 143   2          case 0:
 144   2            //SFRPAGE = UART0_PAGE;
 145   2                SBUF0 = ch;
 146   2                break;
 147   2              case 1:
 148   2            //SFRPAGE = UART1_PAGE;
 149   2                //SBUF1 = ch;
 150   2                break;
 151   2          default:
 152   2                break;
 153   2        }
 154   1        
 155   1      }
 156          
 157          //串口發(fā)送函數(shù)
 158          void UART_Send(const unsigned char ComPort,
 159                         const unsigned char *Data,
 160                                     const unsigned char DataSize)
 161          {
 162   1      
 163   1        unsigned int k = 0;
 164   1        int i;
 165   1        
 166   1        if ((DataSize > 0)&(DataSize< MAX_SEND_LEN))
 167   1        {
 168   2          switch (ComPort)
 169   2                {
 170   3                  case 0:
 171   3                        //將需要發(fā)送的數(shù)據(jù)放入相應(yīng)的發(fā)送緩沖內(nèi)
 172   3                    for (i=0;i<DataSize;i++)
 173   3                        {
 174   4                          BufSend0[PSendWrite0] = Data[i];
 175   4                          PSendWrite0++;
 176   4                          if (PSendWrite0 == MAX_SEND_LEN)
 177   4                          {
 178   5                            PSendWrite0 = 0; 
 179   5                          }
C51 COMPILER V7.50   UART                                                                  12/11/2007 10:19:45 PAGE 4   

 180   4                        }
 181   3      
 182   3              //判斷中斷服務(wù)程序是否完成發(fā)送(發(fā)送標志位是否為0)
 183   3                        if (sendFlag0 == 0)
 184   3                        {             
 185   4                          sendFlag0 = 1;  //置發(fā)送標志位為1
 186   4                          Send_Char(ComPort,*Data);//調(diào)用發(fā)送字符函數(shù),發(fā)送第一個字節(jié),觸發(fā)發(fā)送中斷
 187   4                        }                     
 188   3                        break;
 189   3                        case 1:
 190   3                                //將需要發(fā)送的數(shù)據(jù)放入相應(yīng)的發(fā)送緩沖內(nèi)
 191   3                        for (i=0;i<DataSize;i++)
 192   3                        {
 193   4                          BufSend1[PSendWrite1] = Data[i];
 194   4                          PSendWrite1++;
 195   4                          if (PSendWrite1 == MAX_SEND_LEN)
 196   4                          {
 197   5                            PSendWrite1 = 0; 
 198   5                          }
 199   4                        }
 200   3              //判斷中斷服務(wù)程序是否完成發(fā)送(發(fā)送標志位是否為0)
 201   3                        if (sendFlag1 == 0)
 202   3                        {             
 203   4                          sendFlag1 = 1;  //置發(fā)送標志位為1
 204   4                          Send_Char(ComPort,*Data);//調(diào)用發(fā)送字符函數(shù),發(fā)送第一個字節(jié),觸發(fā)發(fā)送中斷
 205   4                        }                     
 206   3                        break;
 207   3                  default:
 208   3                    break;
 209   3          }  
 210   2        }
 211   1      }
 212          
 213          //UART0中斷服務(wù)程序. 接收字符
 214          void UART0_ISR(void) interrupt 4 
 215          {
 216   1        unsigned char rxch;
 217   1        
 218   1        
 219   1        readFlag0 = 0; //中斷處理標志
 220   1        //SFRPAGE = UART0_PAGE;
 221   1        if(RI0)                                   //中斷標志 RI0=1 數(shù)據(jù)完整接收
 222   1        {
 223   2          RI0 = 0;                              //軟件清零
 224   2          rxch = SBUF0;                         //讀緩沖
 225   2           
 226   2          if(PWrite0==MAX_LEN) 
 227   2          {
 228   3            PWrite0 = 0;
 229   3          }
 230   2          BufData0[PWrite0] = rxch;                    
 231   2          PWrite0++;    
 232   2          readFlag0 =1;    
 233   2        }
 234   1      
 235   1        if (TI0)
 236   1        {              // handle transmit function
 237   2          TI0 = 0;                         // 清除發(fā)送完成標志
 238   2          //將緩沖尾指針加1
 239   2                      PSendRead0++;
 240   2                      if (PSendRead0 == MAX_SEND_LEN)
 241   2                      {
C51 COMPILER V7.50   UART                                                                  12/11/2007 10:19:45 PAGE 5   

 242   3                        PSendRead0 = 0;
 243   3                      }
 244   2                      
 245   2                      if (PSendWrite0!=PSendRead0)     //判斷緩沖內(nèi)的首尾指針是否相同
 246   2                      {
 247   3                        SBUF0 = BufSend0[PSendRead0];  //如果不同,發(fā)送尾指針所在的字節(jié)
 248   3                      }
 249   2                      else 
 250   2                      {
 251   3                        sendFlag0 = 0;                 //如果相同,置發(fā)送標志為0
 252   3                      }
 253   2        }
 254   1      
 255   1      }
 256          
 257          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1277    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    778     132
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      17
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      4    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女诱惑一区二区| 3d动漫精品啪啪一区二区竹菊| 日韩精品一区二区在线观看| 天堂一区二区在线| 欧美精品九九99久久| 午夜视黄欧洲亚洲| 国产精品久久久久久久久久久免费看| 国产福利精品导航| 综合中文字幕亚洲| 欧美丝袜丝交足nylons| 日本欧美大码aⅴ在线播放| 日韩久久久精品| 国产大陆a不卡| 一区二区三区中文字幕精品精品| 欧美色老头old∨ideo| 老司机精品视频导航| 久久久亚洲国产美女国产盗摄 | 一级特黄大欧美久久久| 欧美性欧美巨大黑白大战| 日韩精品1区2区3区| 久久免费视频色| 91亚洲国产成人精品一区二区三 | 国产精品久久久久久妇女6080| av亚洲精华国产精华精华| 亚洲高清在线精品| 久久精品一区二区三区四区| 91免费观看视频在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产日产欧美一区| 欧美伊人久久大香线蕉综合69 | 欧美剧在线免费观看网站| 久久99久久99| 亚洲永久精品国产| 精品久久久久久久人人人人传媒| 99在线精品视频| 激情综合五月婷婷| 亚洲亚洲精品在线观看| 久久久国产午夜精品| 欧美日韩在线一区二区| 成人激情av网| 免费在线观看一区| 一区二区三区日韩精品视频| 久久综合九色综合97婷婷| 一本色道久久综合亚洲aⅴ蜜桃| 美女视频黄久久| 尤物av一区二区| 久久九九影视网| 欧美一区二区高清| 欧美手机在线视频| 91亚洲午夜精品久久久久久| 国产自产视频一区二区三区| 日韩电影免费在线| 亚洲另类在线视频| 国产精品免费丝袜| 久久一留热品黄| 日韩欧美一级片| 欧美日韩一区二区三区高清| 91美女视频网站| 成人精品一区二区三区中文字幕| 另类调教123区| 日韩二区三区四区| 视频在线观看国产精品| 一区二区三区成人| 亚洲人成小说网站色在线| 国产女同互慰高潮91漫画| 欧美成人女星排行榜| 91麻豆精品国产无毒不卡在线观看| 日本久久电影网| 一本一道波多野结衣一区二区| 成人黄色一级视频| 成人美女视频在线看| 国产精品 欧美精品| 极品少妇xxxx偷拍精品少妇| 久久精品久久99精品久久| 日韩av不卡在线观看| 视频一区欧美精品| 免费在线观看一区二区三区| 美女网站色91| 国产在线播放一区二区三区| 蜜乳av一区二区| 奇米777欧美一区二区| 美脚の诱脚舐め脚责91| 精品系列免费在线观看| 激情深爱一区二区| 国产精品一区二区无线| 国产 欧美在线| 成人激情文学综合网| 91网站最新地址| 91久久香蕉国产日韩欧美9色| 91福利视频久久久久| 欧美日韩国产天堂| 日韩精品一区二区三区中文不卡| 欧美电影免费观看高清完整版在线| 欧美成人精精品一区二区频| 国产女人水真多18毛片18精品视频| 国产精品福利av| 一区二区激情小说| 日韩av电影免费观看高清完整版 | 国产激情视频一区二区在线观看| 成人一区二区三区在线观看| 91天堂素人约啪| 欧美日韩一区二区三区在线| 日韩精品一区二区三区蜜臀 | |精品福利一区二区三区| 一区二区三区免费观看| 三级不卡在线观看| 久久99精品久久久| 不卡大黄网站免费看| 欧美三电影在线| 精品嫩草影院久久| 亚洲免费av观看| 蜜桃视频一区二区三区在线观看| 国产91丝袜在线观看| 色94色欧美sute亚洲13| 日韩欧美123| 国产精品九色蝌蚪自拍| 日韩福利电影在线| 99久久99久久综合| 欧美一二三四在线| 亚洲图片另类小说| 久久99国产乱子伦精品免费| 91亚洲国产成人精品一区二三| 日韩一区二区三区免费观看| 中文天堂在线一区| 全国精品久久少妇| 91欧美一区二区| 久久亚洲精品小早川怜子| 亚洲综合网站在线观看| 国产一区二区三区精品欧美日韩一区二区三区 | 视频在线观看91| av资源站一区| 精品理论电影在线观看 | 日韩极品在线观看| 不卡的av电影| 久久久蜜桃精品| 五月婷婷综合激情| 97国产一区二区| 国产亚洲精品aa| 久久精品国产亚洲5555| 欧美日本一区二区三区| 亚洲图片激情小说| 成人精品国产一区二区4080| 精品久久国产97色综合| 亚洲国产成人av好男人在线观看| 粉嫩在线一区二区三区视频| 日韩亚洲欧美在线| 日韩中文字幕一区二区三区| 91日韩在线专区| 国产精品视频线看| 国产一区二区在线影院| 欧美一卡在线观看| 天天色天天操综合| 欧美四级电影在线观看| 亚洲同性同志一二三专区| 成人激情综合网站| 中文字幕第一页久久| 国产一区二区不卡在线| 精品久久久久久久人人人人传媒 | 香蕉成人啪国产精品视频综合网| 92国产精品观看| 国产精品免费久久久久| 国产99精品国产| 国产婷婷一区二区| 国产精品一区二区久久不卡 | 欧美福利电影网| 亚洲gay无套男同| 欧美日韩极品在线观看一区| 亚洲综合自拍偷拍| 91激情五月电影| 亚洲综合久久久久| 欧美唯美清纯偷拍| 亚洲国产日韩一区二区| 678五月天丁香亚洲综合网| 午夜久久久久久久久久一区二区| 7777精品伊人久久久大香线蕉经典版下载 | 日韩一本二本av| 奇米影视一区二区三区小说| 精品久久国产字幕高潮| 国产乱码一区二区三区| 国产色产综合色产在线视频| 成人做爰69片免费看网站| 国产精品高潮呻吟| 欧美性受极品xxxx喷水| 亚洲成a人片在线观看中文| 欧美一区二区三区视频在线| 久久99精品网久久| 国产精品欧美综合在线| 色欲综合视频天天天| 偷拍一区二区三区四区| 欧美tickling挠脚心丨vk| 国产99久久久国产精品免费看| 中文字幕在线一区免费| 色婷婷综合久久久久中文| 亚洲成人自拍偷拍| 欧美大度的电影原声| 成人在线综合网| 亚洲午夜影视影院在线观看| 日韩一区二区三区四区| 国产91对白在线观看九色| 亚洲国产日韩综合久久精品|