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

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

?? uart.c

?? c8051f330系統(tǒng)
?? C
字號(hào):

//#include "ML-330.H"

//#define SYSCLK      24500000

#include <string.h>
#include "c8051F330.h"
//#include "const.h"
#include "uart.h"


//串口讀寫驅(qū)動(dòng)程序

#define  SYSCLK 22118400

#define MAX_LEN      128
#define MAX_SEND_LEN 256


volatile bit  readFlag0 = 0;                           //Uart0中斷接收處理標(biāo)志
volatile bit  readFlag1 = 0;                           //Uart1中斷接收處理標(biāo)志
volatile bit  sendFlag0 = 0;                           //Uart0中斷發(fā)送處理標(biāo)志
volatile bit  sendFlag1 = 0;                           //Uart1中斷發(fā)送處理標(biāo)志

volatile unsigned char xdata PRead0 = 0;                   //uart0接收緩沖讀指針
volatile unsigned char xdata PWrite0 = 0;                   //uart0接收緩沖寫指針
volatile unsigned char xdata PRead1 = 0;                   //uart1接收緩沖讀指針
volatile unsigned char xdata PWrite1 = 0;                   //uart1接收緩沖寫指針

volatile unsigned char xdata PSendRead0 = 0;                   //uart0發(fā)送緩沖讀指針
volatile unsigned char xdata PSendWrite0 = 0;                   //uart0發(fā)送緩沖寫指針
volatile unsigned char xdata PSendRead1 = 0;                   //uart1發(fā)送緩沖讀指針
volatile unsigned char xdata PSendWrite1 = 0;                   //uart1發(fā)送緩沖寫指針

unsigned char xdata BufData0[MAX_LEN];  //uart0接收緩沖
unsigned char xdata BufSend0[MAX_SEND_LEN];  //uart0發(fā)送緩沖
unsigned char xdata BufData1[MAX_LEN];  //uart1接收緩沖
unsigned char xdata BufSend1[MAX_SEND_LEN];  //uart1發(fā)送緩沖

unsigned char xdata SendCount0 = 0;               //uart0發(fā)送字節(jié)數(shù)
unsigned char xdata SendCount1 = 0;               //uart0發(fā)送字節(jié)數(shù)


void Uart0_Init(unsigned long BAUDRATE)
{
   SCON0 = 0x10;//允許接收

  if (SYSCLK/BAUDRATE/2/256 < 1) {
      TH1 = 255-(SYSCLK/BAUDRATE);
      CKCON &= ~0x0B;                  // T1M = 1; SCA1:0 = xx
      CKCON |=  0x08;
   } else if (SYSCLK/BAUDRATE/2/256 < 4) {
      TH1 = -(SYSCLK/BAUDRATE/2/4);
      CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 01                  
      CKCON |=  0x09;
   } else if (SYSCLK/BAUDRATE/2/256 < 12) {
      TH1 = -(SYSCLK/BAUDRATE/2/12);
      CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 00
   } else {
      TH1 = -(SYSCLK/BAUDRATE/2/48);
      CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 10
      CKCON |=  0x02;
   }
   /*TH1 =  63;
   CKCON &= ~0x0B;
   CKCON |=  0x08;*/

   TL1 = TH1;
   TMOD &= ~0xf0;
   TMOD |=  0x20;
   TR1 = 1;
  // TI0 = 1;
}


//串口接收函數(shù)
unsigned char UART_Read(const unsigned char ComPort,
                        unsigned char *Buffer)
{
  unsigned char xdata BufferStr[MAX_LEN];
  int xdata readCounts = 0; //已經(jīng)讀取的字符個(gè)數(shù),與MAX_LEN比較 
  unsigned char xdata temp = 0;
  unsigned char xdata BufLen = 0;

  if ((PRead0!=PWrite0) & (ComPort == 0))
  {
    temp = PWrite0;
    readCounts = (int)temp - (int)PRead0;  

    if (readCounts > 0)
    {
      memcpy( BufferStr, BufData0 + PRead0 , readCounts);   
      PRead0 = temp;   

      memcpy(Buffer,BufferStr,readCounts);

      BufLen = readCounts;
    }
    else if ( readCounts < 0)
    { 
      memcpy( BufferStr, BufData0 + PRead0 , MAX_LEN-PRead0);

      memcpy( BufferStr+MAX_LEN-PRead0, BufData0 , temp);

      PRead0 = temp;

      memcpy(Buffer,BufferStr,MAX_LEN+readCounts);

      BufLen = MAX_LEN+readCounts;
    }
    readFlag0 = 1;	   
  }
  else if ((PRead1!=PWrite1) & (ComPort == 1))
  {
    temp = PWrite1;
    readCounts = (int)temp - (int)PRead1;  
    memset( BufferStr, 0, MAX_LEN );
    if (readCounts > 0)
    {
      memcpy( BufferStr, BufData1 + PRead1 , readCounts);   
      PRead1 = temp;	
      memcpy(Buffer,BufferStr,readCounts);   
      BufLen = readCounts;
    }
    else if ( readCounts < 0)
    {
      memcpy( BufferStr, BufData1 + PRead1 , MAX_LEN-PRead1);
      memcpy( BufferStr+MAX_LEN-PRead1, BufData1 , temp);
      PRead1 = temp;
      memcpy(Buffer,BufferStr,MAX_LEN+readCounts);
      BufLen = MAX_LEN+readCounts;
    }
    readFlag1 = 1;	   
  } 
  return BufLen;
}

void Send_Char(const unsigned char com,unsigned char ch)
{
   
  switch (com)
  {
    case 0:
      //SFRPAGE = UART0_PAGE;
	  SBUF0 = ch;
	  break;
	case 1:
      //SFRPAGE = UART1_PAGE;
	  //SBUF1 = ch;
	  break;
    default:
	  break;
  }
  
}

//串口發(fā)送函數(shù)
void UART_Send(const unsigned char ComPort,
               const unsigned char *Data,
			   const unsigned char DataSize)
{

  unsigned int k = 0;
  int i;
  
  if ((DataSize > 0)&(DataSize< MAX_SEND_LEN))
  {
    switch (ComPort)
	  {
	    case 0:
		  //將需要發(fā)送的數(shù)據(jù)放入相應(yīng)的發(fā)送緩沖內(nèi)
	      for (i=0;i<DataSize;i++)
		  {
		    BufSend0[PSendWrite0] = Data[i];
		    PSendWrite0++;
		    if (PSendWrite0 == MAX_SEND_LEN)
		    {
		      PSendWrite0 = 0; 
		    }
		  }

        //判斷中斷服務(wù)程序是否完成發(fā)送(發(fā)送標(biāo)志位是否為0)
  		  if (sendFlag0 == 0)
		  {		
		    sendFlag0 = 1;  //置發(fā)送標(biāo)志位為1
		    Send_Char(ComPort,*Data);//調(diào)用發(fā)送字符函數(shù),發(fā)送第一個(gè)字節(jié),觸發(fā)發(fā)送中斷
		  }			
		  break;
		  case 1:
			  //將需要發(fā)送的數(shù)據(jù)放入相應(yīng)的發(fā)送緩沖內(nèi)
		  for (i=0;i<DataSize;i++)
		  {
		    BufSend1[PSendWrite1] = Data[i];
		    PSendWrite1++;
		    if (PSendWrite1 == MAX_SEND_LEN)
		    {
		      PSendWrite1 = 0; 
		    }
		  }
        //判斷中斷服務(wù)程序是否完成發(fā)送(發(fā)送標(biāo)志位是否為0)
  		  if (sendFlag1 == 0)
		  {		
		    sendFlag1 = 1;  //置發(fā)送標(biāo)志位為1
		    Send_Char(ComPort,*Data);//調(diào)用發(fā)送字符函數(shù),發(fā)送第一個(gè)字節(jié),觸發(fā)發(fā)送中斷
		  }			
		  break;
	    default:
	      break;
    }  
  }
}

//UART0中斷服務(wù)程序. 接收字符
void UART0_ISR(void) interrupt 4 
{
  unsigned char rxch;
  
  
  readFlag0 = 0; //中斷處理標(biāo)志
  //SFRPAGE = UART0_PAGE;
  if(RI0)                                   //中斷標(biāo)志 RI0=1 數(shù)據(jù)完整接收
  {
    RI0 = 0;                              //軟件清零
    rxch = SBUF0;                         //讀緩沖
     
    if(PWrite0==MAX_LEN) 
    {
      PWrite0 = 0;
    }
    BufData0[PWrite0] = rxch;                    
    PWrite0++; 	  
    readFlag0 =1;    
  }

  if (TI0)
  {              // handle transmit function
    TI0 = 0;                         // 清除發(fā)送完成標(biāo)志
    //將緩沖尾指針加1
		PSendRead0++;
		if (PSendRead0 == MAX_SEND_LEN)
		{
		  PSendRead0 = 0;
		}
		
		if (PSendWrite0!=PSendRead0)     //判斷緩沖內(nèi)的首尾指針是否相同
		{
		  SBUF0 = BufSend0[PSendRead0];  //如果不同,發(fā)送尾指針?biāo)诘淖止?jié)
		}
		else 
		{
		  sendFlag0 = 0;                 //如果相同,置發(fā)送標(biāo)志為0
		}
  }

}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久综合色一本| 亚洲特级片在线| 国产麻豆日韩欧美久久| 精品中文字幕一区二区| 精品美女一区二区三区| 国产一区二区精品久久99| 国产精品久久看| 欧美在线免费观看亚洲| 国产精品三级av在线播放| 一本色道a无线码一区v| 欧美一区国产二区| 九九视频精品免费| 国产精品久久久一区麻豆最新章节| av激情综合网| 天天综合天天综合色| www国产成人免费观看视频 深夜成人网| 成人福利电影精品一区二区在线观看| 亚洲人成7777| 欧美大尺度电影在线| 成人av小说网| 强制捆绑调教一区二区| 日本一区二区成人| 欧美精三区欧美精三区| 国产成人免费在线观看不卡| 亚洲精品v日韩精品| 欧美一级视频精品观看| 成人亚洲一区二区一| 香蕉久久夜色精品国产使用方法| 久久中文字幕电影| 欧美亚洲综合久久| 国产美女久久久久| 亚洲国产精品自拍| 久久久美女毛片| 91高清在线观看| 国产一区二区福利视频| 亚洲影院在线观看| 国产午夜精品美女毛片视频| 在线看不卡av| 国产99精品国产| 日本三级韩国三级欧美三级| 综合欧美亚洲日本| 日韩区在线观看| 色综合久久精品| 国产在线精品视频| 午夜精品在线看| 国产日本欧美一区二区| 51精品国自产在线| 91丝袜呻吟高潮美腿白嫩在线观看| 美女视频网站久久| 亚洲综合在线免费观看| 国产亚洲精品aa| 欧美一级午夜免费电影| 色爱区综合激月婷婷| 国产成人精品www牛牛影视| 首页国产欧美久久| 亚洲欧美一区二区久久| 国产亚洲欧美激情| 日韩欧美一级二级| 欧美午夜免费电影| 成人国产精品视频| 国产一区二三区| 奇米影视一区二区三区小说| 一区二区三区日韩在线观看| 国产嫩草影院久久久久| 精品日韩在线观看| 在线不卡中文字幕播放| 色婷婷久久综合| 成人a级免费电影| 狠狠网亚洲精品| 蜜桃在线一区二区三区| 亚洲国产精品一区二区久久| 亚洲欧洲日产国码二区| 久久久久综合网| 精品嫩草影院久久| 91精品国产乱码| 精品视频全国免费看| 日本道精品一区二区三区| 成人国产免费视频| 久久天天做天天爱综合色| 欧美一区三区四区| 欧美日韩一区二区三区高清| 色狠狠av一区二区三区| 色域天天综合网| av中文字幕一区| 成人av电影在线网| 国产成人av影院| 国产精品自拍一区| 精品一区二区日韩| 久色婷婷小香蕉久久| 男女激情视频一区| 热久久国产精品| 日本不卡123| 奇米色一区二区三区四区| 日韩精品乱码av一区二区| 亚洲大片在线观看| 亚洲成av人片在线| 天天色 色综合| 三级久久三级久久| 日本美女一区二区三区| 日韩二区在线观看| 日本欧美久久久久免费播放网| 五月天久久比比资源色| 亚洲va韩国va欧美va| 天堂蜜桃91精品| 免费久久99精品国产| 久久99精品国产91久久来源| 久热成人在线视频| 国产一区二区精品久久99| 国产高清在线观看免费不卡| 成人亚洲一区二区一| 成人一区二区三区视频在线观看| 亚洲视频资源在线| 久久久亚洲综合| 欧美疯狂性受xxxxx喷水图片| 欧美日韩国产中文| 日韩一区二区三区三四区视频在线观看| 日韩一区二区在线看| 精品入口麻豆88视频| 国产亚洲欧洲一区高清在线观看| 国产精品青草综合久久久久99| 国产精品久久网站| 亚洲综合小说图片| 日韩av一区二区三区| 国内精品伊人久久久久av一坑| 国产99久久久久| 色综合天天狠狠| 欧美日韩久久久| 欧美xxxxx牲另类人与| 国产三级精品视频| 亚洲精品日产精品乱码不卡| 丝袜诱惑制服诱惑色一区在线观看 | 91麻豆swag| 色哟哟一区二区在线观看| 欧美三级中文字幕| 日韩精品一区二区三区中文不卡| 久久综合久久综合久久| 国产精品嫩草影院av蜜臀| 亚洲一二三四在线观看| 免费人成在线不卡| 国产精品99久久久久久宅男| 99久久精品免费| 欧美日韩二区三区| 26uuu国产在线精品一区二区| 国产精品素人视频| 性久久久久久久久| 国产精品一区免费在线观看| 亚洲欧洲av在线| 首页国产欧美久久| 国产.欧美.日韩| 欧美亚洲自拍偷拍| 久久亚洲综合色一区二区三区| 亚洲免费观看在线视频| 日本va欧美va瓶| 成人精品在线视频观看| 欧美日韩在线播放三区四区| 久久久影院官网| 亚洲一区二区高清| 国产精品一区2区| 欧美色倩网站大全免费| 国产亚洲短视频| 亚洲图片欧美视频| 丰满放荡岳乱妇91ww| 欧美高清激情brazzers| 亚洲国产精品成人综合色在线婷婷| 亚洲与欧洲av电影| 国产精品18久久久久久vr| 欧美色电影在线| 国产激情视频一区二区在线观看 | 午夜a成v人精品| 欧美日韩一区二区三区视频| 岛国av在线一区| 国产精品美女久久久久aⅴ国产馆| 亚洲精品一区在线观看| 久久亚洲捆绑美女| 国产精品视频第一区| 亚洲人成网站色在线观看| 一区二区三区小说| 日韩不卡在线观看日韩不卡视频| 奇米精品一区二区三区在线观看 | 一区二区成人在线观看| 午夜不卡av免费| 国产专区综合网| 91在线无精精品入口| 欧美在线观看视频一区二区| 91麻豆精品国产自产在线观看一区 | 久久久久久久电影| 1000精品久久久久久久久| 综合色天天鬼久久鬼色| 亚洲mv在线观看| 国产精品综合av一区二区国产馆| 99精品视频在线播放观看| 欧美男同性恋视频网站| 久久影视一区二区| 亚洲欧美在线高清| 日韩黄色免费电影| 国产ts人妖一区二区| 色婷婷精品久久二区二区蜜臀av | 欧美午夜精品免费| 欧美成人一区二区三区在线观看| 中文字幕欧美区|