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

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

?? serial.c

?? Keil Cx51 V7.0單片機高級語言編程與uVision2應用實踐
?? C
字號:

/*****************************************************************************/
/*       SERIAL.C:  應用RTX-51 tiny的串行口中斷控制器     */
/*****************************************************************************/
#include <reg52.h>                    /* 8052單片機特殊功能寄存器定義 */
#include <rtx51tny.h>                 /* RTX-51 tiny 功能函數定義 */

#define  OLEN  8                      /* 定義串行口通信發送緩沖區的大小 */
unsigned char  ostart;                /* 串行口發送緩沖區起點 */
unsigned char  oend;                  /* 串行口發送緩沖區終點 */
idata    char  outbuf[OLEN];          /* 串行口發送緩沖區 */
unsigned char  otask = 0xff;          /* 輸出任務的任務號 */

#define  ILEN  8                      /* 定義串行口通信接收緩沖區大小 */
unsigned char  istart;                /* 串行口接收緩沖區起點 */
unsigned char  iend;                  /* 串行口接收緩沖區終點 */
idata    char  inbuf[ILEN];           /* 串行口接收緩沖區 */
unsigned char  itask = 0xff;          /* 輸入任務的任務號 */

#define   CTRL_Q  0x11                /* 定義CTRL_Q代碼 */
#define   CTRL_S  0x13                /* 定義CTRL_S代碼 */

bit   sendfull;                       /* 發送緩沖區滿標志 */
bit   sendactive;                     /* 發送激活標志 */
bit   sendstop;                       /* XOFF 字符標志 */

/******************************************************************************/
/*       putbuf:  向SBUF 或發送緩沖區寫入字符函數                             */
/******************************************************************************/
putbuf (char c)  {
  if (!sendfull)  {                   /* 僅當緩沖區未滿時發送 */
    if (!sendactive && !sendstop)  {  /* 如果發送器未處于活動態:*/
      sendactive = 1;                 /* 直接發送第一個字符 */
      SBUF = c;                       /* 到SBUF,啟動發送 */
    }
    else  {                          /* 否則: */
      outbuf[oend++ & (OLEN-1)] = c;  /* 向發送緩沖區傳送字符 */
      if (((oend ^ ostart) & (OLEN-1)) == 0)  sendfull = 1;
    }                                 /* 置位緩沖區滿標志 */
  }
}

/******************************************************************************/
/*       putchar:  中斷控制器的putchar 函數                                  */
/******************************************************************************/
char putchar (char c)  {
  if (c == '\n')  {                   /* 擴展一行新字符: */
    while (sendfull)  {               /* 等待發送緩沖區空 */
      otask = os_running_task_id ();  /* 置位輸出任務號 */
      os_wait (K_SIG, 0, 0);          /* RTX-51 調用: 等待信號 */
      otask = 0xff;                   /* 清零輸出任務號 */
    }
    putbuf (0x0D);                    /* 在換行符LF之前發送回車符CR */
  }
  while (sendfull)  {                 /* 等待發送緩沖區空 */
    otask = os_running_task_id ();    /*  置位輸出任務號 */
    os_wait (K_SIG, 0, 0);            /* RTX-51 調用: 等待信號 */
    otask = 0xff;                     /* 清零輸出任務號 */
  }
  putbuf (c);                         /* 發送字符 */
  return (c);                         /* 返回字符 */
}

/******************************************************************************/
/*       _getkey:  中斷控制器函數 _getkey                                     */
/******************************************************************************/
char _getkey (void)  {
  while  (iend == istart)  {
    itask = os_running_task_id ();    /* 置位輸入任務號 */
    os_wait (K_SIG, 0, 0);            /* RTX-51 調用: 等待信號 */
    itask = 0xff;                     /* 清零輸入任務號 */
  }
  return (inbuf[istart++ & (ILEN-1)]);
}

/******************************************************************************/
/*       serial:  串行接收/發送中斷                                           */
/******************************************************************************/
serial () interrupt 4 using 2  {     /* 中斷使用工作寄存器2區 */
  unsigned char c;
  bit   start_trans = 0;

  if (RI)  {                         /* 如果是接收中斷 */
    c = SBUF;                        /* 讀字符 */
    RI = 0;                          /* 清零中斷請求標志 */
    switch (c)  {                    /* 字符處理 */
      case CTRL_S:
        sendstop = 1;                /* 如果是CTRL_S 則停止發送 */
        break;

      case CTRL_Q:
        start_trans = sendstop;      /* 如果是CTRL_Q 則開始發送 */
        sendstop = 0;
        break;

      default:                       /* 將其它字符讀入輸入緩沖區 */
        if (istart + ILEN != iend)  {
          inbuf[iend++ & (ILEN-1)] = c;
        }
                                     /* 如果是任務等待:信號就緒 */
        if (itask != 0xFF) isr_send_signal (itask);
        break;
    }
  }

  if (TI || start_trans)  {          /* 如果是發送中斷 */
    TI = 0;                          /* 清零中斷請求標志 */
    if (ostart != oend)  {           /* 如果輸入緩沖區接收到字符 */
      if (!sendstop)  {              /* 且不是CTRL_S */
        SBUF = outbuf[ostart++ & (OLEN-1)];      /* 發送字符 */
        sendfull = 0;                /* 清零sendfull 標志 */
                                     /* 如果是任務等待:信號就緒 */
        if (otask != 0xFF)  isr_send_signal (otask);
      }
    }
    else sendactive = 0;             /* 如果全部發送完則清零sendactive */
  }

}

/******************************************************************************/
/*       serial_init: 串行口初始化                                            */
/******************************************************************************/
serial_init ()  {
  SCON  = 0x50;                      /* 串行口方式1,8位 UART, 允許接收 */
  TMOD |= 0x20;                      /* 定時器方式2,8位自動重裝 */
  TH1   = 0xf3;                      /* 2400 波特率 */
  TR1   = 1;                         /* 啟動定時器1 */
  ES    = 1;                         /* 允許串行口中斷 */
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线视频免费| 亚洲精品日韩综合观看成人91| 成人av影院在线| 亚洲国产欧美另类丝袜| 久久奇米777| 91.成人天堂一区| 成人91在线观看| 国模娜娜一区二区三区| 亚洲韩国一区二区三区| 中文av一区特黄| 欧美大片日本大片免费观看| 在线免费一区三区| 成人高清视频在线| 国产裸体歌舞团一区二区| 午夜精品视频在线观看| 亚洲伦在线观看| 国产精品网站在线播放| 26uuu久久天堂性欧美| 91精品在线一区二区| 在线亚洲精品福利网址导航| 不卡视频在线看| 国产成人亚洲综合a∨猫咪| 看电影不卡的网站| 日韩av一二三| 日韩精品乱码免费| 亚洲一二三四在线观看| 亚洲免费av网站| 亚洲欧美欧美一区二区三区| 亚洲欧洲www| 国产精品乱子久久久久| 国产无人区一区二区三区| 亚洲精品一区二区三区蜜桃下载| 欧美一区二区三区视频在线观看 | 日韩一区在线看| 国产亚洲欧美一级| 日韩精品一区国产麻豆| 91精品欧美福利在线观看| 欧美在线观看禁18| 欧美在线色视频| 欧美色偷偷大香| 欧美日韩高清一区| 欧美撒尿777hd撒尿| 欧美中文一区二区三区| 欧美主播一区二区三区美女| 欧美午夜精品一区二区三区| 色综合天天综合在线视频| 91免费国产在线| 91视频com| 欧美撒尿777hd撒尿| 欧美高清视频一二三区 | 日韩毛片在线免费观看| 综合在线观看色| 亚洲精品日日夜夜| 亚洲www啪成人一区二区麻豆| 亚洲一区二区三区四区在线免费观看 | 亚洲成人一区在线| 午夜精品在线看| 久久精品国产99| 国产激情精品久久久第一区二区| 国产成人精品一区二| av午夜精品一区二区三区| 91一区二区在线| 欧美性三三影院| 日韩欧美国产电影| 久久久久久久网| 亚洲视频一区在线观看| 亚洲国产成人av好男人在线观看| 三级一区在线视频先锋| 久久 天天综合| 成人美女视频在线观看18| 91色|porny| 欧美电影免费观看高清完整版| 久久精品日产第一区二区三区高清版| 日本一区二区成人在线| 亚洲久本草在线中文字幕| 亚洲一区电影777| 国产一区二区三区日韩| 不卡视频一二三| 69堂精品视频| 国产精品美女久久久久久久久久久| 亚洲精品日产精品乱码不卡| 美女高潮久久久| 成人97人人超碰人人99| 欧美日本一区二区| 久久日韩精品一区二区五区| 亚洲麻豆国产自偷在线| 美腿丝袜亚洲一区| av高清不卡在线| 日韩一区二区在线观看视频播放| 中文一区二区在线观看| 香港成人在线视频| 国产伦精品一区二区三区视频青涩| 99re热这里只有精品视频| 日韩一区二区精品葵司在线| 精品综合免费视频观看| 91麻豆国产福利在线观看| 日韩视频一区二区在线观看| 亚洲日本丝袜连裤袜办公室| 久久99精品久久久久久动态图| 91啪亚洲精品| 久久婷婷色综合| 午夜婷婷国产麻豆精品| www.日韩精品| 精品精品欲导航| 亚洲午夜视频在线| 成人精品小蝌蚪| 欧美精品一区二区蜜臀亚洲| 一区二区三区精品在线观看| 国产激情视频一区二区三区欧美 | 亚洲午夜日本在线观看| 福利视频网站一区二区三区| 日韩视频中午一区| 一区二区三区视频在线观看| 国产成人在线影院 | 国产精品色哟哟网站| 美女一区二区视频| 欧美日韩一本到| 亚洲一区二区高清| 91丨porny丨国产入口| 国产亚洲视频系列| 黄色资源网久久资源365| 欧美日韩日本视频| 亚洲综合无码一区二区| 91在线高清观看| 国产精品国产自产拍高清av | 久久综合久久综合久久综合| 日本怡春院一区二区| 欧美日韩黄色一区二区| 亚洲男人的天堂在线观看| 成人开心网精品视频| 国产一区二区三区免费在线观看| 欧美一区二区三区在线看| 亚洲成人三级小说| 欧美性猛片xxxx免费看久爱| 亚洲精品久久久蜜桃| 91蜜桃传媒精品久久久一区二区| 国产精品久久久久久一区二区三区| 国产盗摄精品一区二区三区在线| 久久色中文字幕| 国产激情视频一区二区三区欧美| 久久免费电影网| 国产成人综合在线| 国产日韩欧美精品电影三级在线| 激情av综合网| 欧美激情一区二区三区不卡| 成人性生交大片免费| 亚洲视频综合在线| 91麻豆免费在线观看| 亚洲一区二区在线免费看| 欧美高清视频一二三区 | 中文字幕乱码日本亚洲一区二区 | 亚洲欧洲中文日韩久久av乱码| 91视频观看免费| 亚洲国产精品久久久久秋霞影院| 欧美日韩精品久久久| 青青草原综合久久大伊人精品优势| 91精品国产91综合久久蜜臀| 麻豆精品视频在线观看免费| 精品国产免费一区二区三区四区| 国产高清成人在线| 亚洲精品国产第一综合99久久| 一本久久精品一区二区| 亚洲成人你懂的| 亚洲精品一区二区三区精华液| 国产亚洲一区二区在线观看| 成人午夜av电影| 亚洲综合另类小说| 欧美一卡二卡在线| 国产成+人+日韩+欧美+亚洲| 亚洲女人的天堂| 欧美一级搡bbbb搡bbbb| 国产成人免费在线观看不卡| 亚洲天堂久久久久久久| 欧美日韩亚洲国产综合| 国产在线视频一区二区| 亚洲色图一区二区三区| 制服视频三区第一页精品| 国产黄色91视频| 亚洲第一二三四区| 国产午夜精品理论片a级大结局| 色成年激情久久综合| 日韩国产精品91| 国产精品夫妻自拍| 日韩一区二区三区在线视频| 不卡av在线网| 奇米影视一区二区三区| 国产精品不卡在线观看| 91精品国产手机| 91视频一区二区三区| 国内精品在线播放| 亚洲一区二区三区在线播放| 久久夜色精品国产噜噜av| 在线观看成人小视频| 国产精品一区二区在线播放 | 成人综合激情网| 日本成人超碰在线观看| 亚洲丝袜自拍清纯另类| 精品国产乱码久久久久久影片| 欧美在线观看视频一区二区 | 国产精品国产三级国产普通话蜜臀|