久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2442|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

51單片機模擬串口源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:397211 發(fā)表于 2021-1-2 04:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機模擬串口實驗,在沒有串口的單片機上想使用串口功能這就需要模擬一個串口了

單片機源程序如下:
  1. #include "reg51.h"
  2. typedef unsigned char BYTE;
  3. typedef unsigned WORD;
  4. typedef bit BOOL;
  5. #define BAUD  0xFE80         /* 9600bps@11.0592MHz           */
  6. sfr AUXR = 0x8E;
  7. sbit RXB = P3^0;          /* 定義串口TX RX端口           */
  8. sbit TXB = P3^1;

  9. BYTE TBUF,RBUF;
  10. BYTE TDAT,RDAT;
  11. BYTE TCNT,RCNT;
  12. BYTE TBIT,RBIT;
  13. BOOL TING,RING;
  14. BOOL TEND,REND;

  15. BYTE t,r;
  16. BYTE buf[16];
  17. sbit led=P3^3;
  18. void UART_INIT()
  19. {
  20. TING = 0;
  21. RING = 0;
  22. TEND = 1;
  23. REND = 0;
  24. TCNT = 0;
  25. RCNT = 0;
  26. }
  27. void main()
  28. {
  29. TMOD = 0x00;       /* 定時器0 16位自動裝置模式         */
  30. AUXR = 0x80;       /* 定時器0工作在1T模式          */
  31. TL0 = BAUD;
  32. TH0 = BAUD >> 8;         /* 初始化定時器0,并設(shè)置自動裝置的值      */
  33. TR0 = 1;            /* 定時器0開始啟動           */
  34. ET0 = 1;            /* 使能定時器0中斷           */
  35. PT0 = 1;            /* 設(shè)置定時器0中斷優(yōu)先級         */
  36. EA = 1;             /* 開全局中斷            */
  37. UART_INIT();            /* 串口初始化            */
  38. while(1)
  39. {

  40. if(buf[0]=='0')
  41. {
  42. led=0;
  43.         }
  44.         else
  45.         {
  46.        
  47.         led=1;
  48.         }
  49.   if(REND)
  50.   {
  51.      REND = 0;
  52.    buf[r++ & 0x0f] = RBUF;
  53.   }
  54.   if(TEND)
  55.   {
  56.    if(t != r)
  57.    {
  58.     TEND = 0;
  59.     TBUF = buf[t++ & 0x0f];
  60.     TING = 1;
  61.    }
  62.   }

  63. }
  64. }

  65. void tm0() interrupt 1 using 1
  66. {
  67. if(RING)
  68. {
  69.   if(--RCNT == 0)
  70.   {
  71.    RCNT =3;
  72.    if(--RBIT == 0)
  73.    {
  74.     RBUF = RDAT;
  75.     RING = 0;
  76.     REND = 1;
  77.    }
  78.    else
  79.    {
  80.     RDAT >>=1;
  81.     if(RXB)RDAT |= 0x80;
  82.    }
  83.   }
  84. }
  85. else if(!RXB)
  86. {
  87.   RING = 1;
  88.   RCNT = 4;
  89.   RBIT = 9;
  90. }
  91. if(--TCNT == 0)
  92. {
  93.   TCNT = 3;
  94.   if(TING)
  95.   {
  96.    if(TBIT == 0)
  97.    {
  98.     TXB = 0;
  99.     TDAT = TBUF;
  100.     TBIT = 9;
  101.    }
  102.    else
  103.    {
  104.     TDAT >>= 1;
  105.     if(--TBIT ==0)
  106.     {
  107.      TXB = 1;
  108.      TING = 0;
  109.      TEND = 1;
  110.     }
  111.     else
  112.     {
  113.      TXB =CY;
  114.     }
  115.    }
  116.   }

  117. }
  118. }
復(fù)制代碼

如果您有需要可以下載以上代碼的Keil工程文件: 模擬串口實驗.zip (22.27 KB, 下載次數(shù): 32)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:849826 發(fā)表于 2021-1-2 16:01 | 只看該作者
我把藍牙遙控開關(guān)程序給你,把串口程序和藍牙遙控開關(guān)程序合并在一起,移植到STC15F104W里面,還沒入門,不會合并
回復(fù)

使用道具 舉報

板凳
ID:872412 發(fā)表于 2021-1-3 00:35 來自觸屏版 | 只看該作者
買個有串口的不香么
回復(fù)

使用道具 舉報

地板
ID:397211 發(fā)表于 2021-1-4 09:37 | 只看該作者
6313 發(fā)表于 2021-1-2 16:01
我把藍牙遙控開關(guān)程序給你,把串口程序和藍牙遙控開關(guān)程序合并在一起,移植到STC15F104W里面,還沒入門,不 ...

藍牙的就是把有線變成了無線,僅此而已
回復(fù)

使用道具 舉報

5#
ID:397211 發(fā)表于 2021-1-4 09:39 | 只看該作者
op5726170 發(fā)表于 2021-1-3 00:35
買個有串口的不香么

有些單片機不帶串口,單片機可以更加的靈活我們想要的操作
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品一二区 | 日韩激情在线 | 四虎影院在线观看av | cao视频| 一级特黄色毛片 | 91精品国产高清久久久久久久久 | 亚洲国产成人精品久久久国产成人一区 | 欧美二区三区 | 日韩一级电影免费观看 | 国产日韩欧美在线观看 | 日韩久久久久久 | 亚洲人精品午夜 | 亚洲在线免费观看 | 亚洲天堂av一区 | 中文字幕 视频一区 | 亚洲精品在线观看视频 | 中文字幕亚洲区一区二 | 暖暖日本在线视频 | 久久久久久久久99 | 国产精品久久久久久久7777 | 国产日韩欧美在线观看 | 日韩三级在线 | 99爱国产| 日韩不卡视频在线 | 亚洲欧洲成人av每日更新 | 久久伊人精品 | 免费成人av网站 | 18av在线播放 | 国产欧美精品一区二区色综合朱莉 | 日韩精品在线视频 | 色婷婷av一区二区三区软件 | 羞羞色视频| 一区二区国产在线观看 | 久久久精品综合 | 日韩中文在线视频 | 毛片a级毛片免费播放100 | 一区二区在线免费观看 | 久久91av| 国产精品揄拍一区二区久久国内亚洲精 | 欧美一区二区三区小说 | 国产成人精品免费视频 |