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

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

?? sio.c

?? 遙控避障尋線開發(fā)板
?? C
字號(hào):
/*------------------------------------------------------------------------------
SIO.C:  Serial Communication Routines.

Copyright 1995-2002 KEIL Software, Inc.
------------------------------------------------------------------------------*/

#include <reg51.h>
#include <string.h>
#include "sio.h"

/*------------------------------------------------------------------------------
Notes:

The length of the receive and transmit buffers must be a power of 2.

Each buffer has a next_in and a next_out index.

If next_in = next_out, the buffer is empty.

(next_in - next_out) % buffer_size = the number of characters in the buffer.
------------------------------------------------------------------------------*/
#define TBUF_SIZE   64           /*** Must be one of these powers of 2 (2,4,8,16,32,64,128) ***/
#define RBUF_SIZE   8           /*** Must be one of these powers of 2 (2,4,8,16,32,64,128) ***/

#define TBUF_SPACE  idata       /*** Memory space where the transmit buffer resides ***/
#define RBUF_SPACE  idata       /*** Memory space where the receive buffer resides ***/

#define CTRL_SPACE  data        /*** Memory space for the buffer indexes ***/

/*------------------------------------------------------------------------------
------------------------------------------------------------------------------*/
#if TBUF_SIZE < 2
#error TBUF_SIZE is too small.  It must be larger than 1.
#elif TBUF_SIZE > 128
#error TBUF_SIZE is too large.  It must be smaller than 129.
#elif ((TBUF_SIZE & (TBUF_SIZE-1)) != 0)
#error TBUF_SIZE must be a power of 2.
#endif

#if RBUF_SIZE < 2
#error RBUF_SIZE is too small.  It must be larger than 1.
#elif RBUF_SIZE > 128
#error RBUF_SIZE is too large.  It must be smaller than 129.
#elif ((RBUF_SIZE & (RBUF_SIZE-1)) != 0)
#error RBUF_SIZE must be a power of 2.
#endif

/*------------------------------------------------------------------------------
------------------------------------------------------------------------------*/
static TBUF_SPACE unsigned char tbuf [TBUF_SIZE];
static RBUF_SPACE unsigned char rbuf [RBUF_SIZE];

static CTRL_SPACE unsigned char t_in = 0;
static CTRL_SPACE unsigned char t_out = 0;

static CTRL_SPACE unsigned char r_in = 0;
static CTRL_SPACE unsigned char r_out = 0;

static bit ti_restart = 0;  /* NZ if TI=1 is required */


/*------------------------------------------------------------------------------
------------------------------------------------------------------------------*/
static void com_isr (void) interrupt 4
{
/*------------------------------------------------
Received data interrupt.
------------------------------------------------*/
if (RI != 0)
  {
  RI = 0;

  if (((r_in - r_out) & ~(RBUF_SIZE-1)) == 0)
    {
    rbuf [r_in & (RBUF_SIZE-1)] = SBUF;
    r_in++;
    }
  }

/*------------------------------------------------
Transmitted data interrupt.
------------------------------------------------*/
if (TI != 0)
  {
  TI = 0;

  if (t_in != t_out)
    {
    SBUF = tbuf [t_out & (TBUF_SIZE-1)];
    t_out++;
    ti_restart = 0;
    }
  else
    {
    ti_restart = 1;
    }
  }

}

/*------------------------------------------------------------------------------
------------------------------------------------------------------------------*/
#pragma disable

void com_initialize (void)
{
/*------------------------------------------------
Setup TIMER1 to generate the proper baud rate.
------------------------------------------------*/
com_baudrate (1200);

/*------------------------------------------------
Clear com buffer indexes.
------------------------------------------------*/
t_in = 0;
t_out = 0;

r_in = 0;
r_out = 0;

/*------------------------------------------------
Setup serial port registers.
------------------------------------------------*/
SM0 = 0; SM1 = 1;   /* serial port MODE 1 */
SM2 = 0;
REN = 1;            /* enable serial receiver */

RI = 0;             /* clear receiver interrupt */
TI = 0;             /* clear transmit interrupt */
ti_restart = 1;

ES = 1;             /* enable serial interrupts */
PS = 0;             /* set serial interrupts to low priority */
}

/*------------------------------------------------------------------------------
------------------------------------------------------------------------------*/
#pragma disable

void com_baudrate (
  unsigned baudrate)
{
/*------------------------------------------------
Clear transmit interrupt and buffer.
------------------------------------------------*/
TI = 0;             /* clear transmit interrupt */
t_in = 0;           /* empty transmit buffer */
t_out = 0;

/*------------------------------------------------
Set timer 1 up as a baud rate generator.
------------------------------------------------*/
TR1 = 0;            /* stop timer 1 */
ET1 = 0;            /* disable timer 1 interrupt */

PCON |= 0x80;       /* 0x80=SMOD: set serial baudrate doubler */

TMOD &= ~0xF0;      /* clear timer 1 mode bits */
TMOD |= 0x20;       /* put timer 1 into MODE 2 */

TH1 = (unsigned char) (256 - (XTAL / (16L * 12L * baudrate)));

TR1 = 1;            /* start timer 1 */
}

/*------------------------------------------------------------------------------
------------------------------------------------------------------------------*/
#pragma disable

char com_putchar (
  unsigned char c)
{
/*------------------------------------------------
If the buffer is full, return an error value.
------------------------------------------------*/
if (com_tbuflen () >= TBUF_SIZE)
  return (-1);

/*------------------------------------------------
Add the data to the transmit buffer.  If the
transmit interrupt is disabled, then enable it.
------------------------------------------------*/
tbuf [t_in & (TBUF_SIZE - 1)] = c;
t_in++;

if (ti_restart)
  {
  ti_restart = 0;
  TI = 1;               /* generate transmit interrupt */
  }

return (0);
}

/*------------------------------------------------------------------------------
------------------------------------------------------------------------------*/
#pragma disable

int com_getchar (void)
{
if (com_rbuflen () == 0)
  return (-1);

return (rbuf [(r_out++) & (RBUF_SIZE - 1)]);
}

/*------------------------------------------------------------------------------
------------------------------------------------------------------------------*/
#pragma disable

unsigned char com_rbuflen (void)
{
return (r_in - r_out);
}

/*------------------------------------------------------------------------------
------------------------------------------------------------------------------*/
#pragma disable

unsigned char com_tbuflen (void)
{
return (t_in - t_out);
}

/*------------------------------------------------------------------------------
------------------------------------------------------------------------------*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆精品在线观看| 国产日韩欧美精品电影三级在线| 色欲综合视频天天天| 不卡av电影在线播放| 91免费版在线看| 色综合久久久久久久| 在线视频综合导航| 欧美吻胸吃奶大尺度电影 | 8v天堂国产在线一区二区| 在线视频观看一区| 欧美日韩视频在线观看一区二区三区| 欧美性大战久久| 7777精品伊人久久久大香线蕉经典版下载| 欧美三级在线播放| 欧美一卡二卡在线| 久久亚洲影视婷婷| 国产精品久久久久一区二区三区共 | 国产婷婷一区二区| 国产精品美女久久久久久| 亚洲婷婷国产精品电影人久久| 综合欧美亚洲日本| 香蕉加勒比综合久久| 久久精品99国产精品| 国产成人综合亚洲网站| 波多野结衣中文一区| 欧洲精品视频在线观看| 91麻豆精品国产91久久久久久久久| 日韩欧美在线1卡| 欧美激情一区二区三区四区 | 国产精品77777竹菊影视小说| 成人avav影音| 欧美日韩中文一区| 精品成人一区二区三区| 亚洲欧美在线另类| 五月综合激情网| 国产美女娇喘av呻吟久久| av电影天堂一区二区在线| 欧美午夜片在线看| 久久久久久一二三区| 一区二区激情小说| 狠狠v欧美v日韩v亚洲ⅴ| 99精品国产视频| 日韩一区二区三区电影在线观看 | 日韩国产在线一| 国产成人8x视频一区二区| 色菇凉天天综合网| 精品国产91乱码一区二区三区| 亚洲欧洲三级电影| 蜜桃在线一区二区三区| 9色porny自拍视频一区二区| 91麻豆精品国产91久久久| 中文字幕电影一区| 日韩精品成人一区二区在线| 成人黄色av电影| 欧美电视剧在线观看完整版| 亚洲一区在线视频| 成人国产精品免费| 欧美成人猛片aaaaaaa| 樱花影视一区二区| 国产成人啪免费观看软件| 欧美日韩国产高清一区二区三区 | 男人的j进女人的j一区| av不卡免费在线观看| 日韩欧美电影在线| 亚洲午夜国产一区99re久久| 丁香激情综合五月| 欧美电影免费提供在线观看| 亚洲图片自拍偷拍| av午夜精品一区二区三区| 精品奇米国产一区二区三区| 亚洲国产婷婷综合在线精品| 成人精品免费视频| 久久久久久久av麻豆果冻| 秋霞国产午夜精品免费视频| 欧美日韩精品专区| 依依成人综合视频| 99久久国产免费看| 国产婷婷一区二区| 国模大尺度一区二区三区| 日韩一区二区电影网| 性久久久久久久久久久久| 91免费视频网址| 综合在线观看色| 94-欧美-setu| 国产精品久久久久久久久免费桃花 | 欧美激情中文字幕| 韩国女主播一区| 91精品国产色综合久久不卡蜜臀| 亚洲一本大道在线| 色女孩综合影院| 亚洲欧美区自拍先锋| 成人免费毛片片v| 国产农村妇女毛片精品久久麻豆 | 国产一区二三区好的| 欧美精品一二三区| 亚洲一区在线观看网站| 在线视频你懂得一区| 一区二区三区日韩在线观看| 91国偷自产一区二区开放时间 | 欧洲在线/亚洲| 国产精品国产三级国产普通话蜜臀 | 久久精品日韩一区二区三区| 国产一区二区三区四区五区美女| 日韩欧美亚洲另类制服综合在线| 日韩和欧美一区二区| 日韩一区二区影院| 免费在线成人网| 欧美一级午夜免费电影| 免费在线看一区| 欧美不卡一二三| 国产高清亚洲一区| 国产日本欧美一区二区| 成人永久aaa| 亚洲欧洲精品一区二区三区 | 欧美国产视频在线| 波多野结衣在线aⅴ中文字幕不卡| 国产精品日产欧美久久久久| 成人av资源下载| 一片黄亚洲嫩模| 7777精品伊人久久久大香线蕉超级流畅 | av一区二区三区| 一区二区三区在线视频观看58| 欧美日韩在线播放一区| 日韩国产精品久久久久久亚洲| 精品捆绑美女sm三区| 国产成人免费av在线| 亚洲精品日韩专区silk| 91精品国产综合久久久久久漫画 | 青青草原综合久久大伊人精品优势| 日韩精品一区二区三区视频在线观看| 精品一区二区成人精品| 欧美国产激情一区二区三区蜜月| 91在线视频18| 成人激情校园春色| 亚洲成av人影院在线观看网| 日韩一区二区在线免费观看| 国产高清久久久久| 亚洲精品乱码久久久久久| 51精品久久久久久久蜜臀| 国产二区国产一区在线观看| 樱桃国产成人精品视频| 欧美成人女星排名| 色香色香欲天天天影视综合网| 日本欧洲一区二区| 中文字幕日韩一区| 欧美一区二区三区视频| 成人午夜精品在线| 日韩高清欧美激情| 国产精品乱人伦一区二区| 欧美日本在线播放| 成人美女视频在线观看| 亚洲成人午夜影院| 亚洲国产高清aⅴ视频| 7777精品久久久大香线蕉| 成人午夜视频福利| 日韩av高清在线观看| **性色生活片久久毛片| 日韩欧美国产一区二区在线播放| 99精品视频一区二区三区| 蜜桃视频一区二区| 一区二区三区欧美激情| 久久蜜桃av一区精品变态类天堂 | 久久综合色播五月| 欧美视频中文字幕| 风流少妇一区二区| 免费在线观看不卡| 色狠狠桃花综合| 国产.欧美.日韩| 青青草一区二区三区| 亚洲主播在线播放| 中文字幕av一区 二区| 日韩三级免费观看| 欧美日韩一级视频| a美女胸又www黄视频久久| 极品瑜伽女神91| 肉色丝袜一区二区| 亚洲一区欧美一区| 亚洲色图欧美激情| 欧美国产精品中文字幕| 精品乱人伦小说| 欧美一区日韩一区| 欧美精选午夜久久久乱码6080| 91丨国产丨九色丨pron| 国产成人精品1024| 经典三级一区二区| 日韩黄色小视频| 日韩精品欧美精品| 图片区小说区区亚洲影院| 亚洲精品美国一| 1024精品合集| 国产精品视频一二三| 久久精品一区二区三区不卡牛牛 | 亚洲欧美视频在线观看| 国产色91在线| 久久精品一区蜜桃臀影院| 国产午夜亚洲精品不卡| 精品成人一区二区三区四区| 精品国产一区二区精华| 日韩美一区二区三区| 日韩免费观看高清完整版|