国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

 找回密碼
 注冊
搜索

基于51單片機(jī)仿真485通信,單片機(jī)轉(zhuǎn)發(fā)上位機(jī)虛擬串口發(fā)送字符

[復(fù)制鏈接]
樓主
coolice 發(fā)表于 2020-1-29 23:22:33 | 只看該作者 |只看大圖 |倒序?yàn)g覽 |閱讀模式
基于51單片機(jī)仿真485通信,單片機(jī)接收上位機(jī)單個(gè)字符后,轉(zhuǎn)發(fā)給上位機(jī)虛擬串口接收。 485-PC-單片機(jī)轉(zhuǎn)發(fā)上位機(jī)字符.zip (305.83 KB, 售價(jià): 1 E幣)
基于51單片機(jī)仿真485通信,單片機(jī)轉(zhuǎn)發(fā)上位機(jī)虛擬串口發(fā)送字符 150536iu8zedee4bdec94o.png
  1. #include <reg52.h>

  2. unsigned char T0RH = 0;  //T0重載值的高字節(jié)
  3. unsigned char T0RL = 0;  //T0重載值的低字節(jié)

  4. void ConfigTimer0(unsigned int ms);
  5. extern void UartDriver();
  6. extern void ConfigUART(unsigned int baud);
  7. extern void UartRxMonitor(unsigned char ms);
  8. extern void UartWrite(unsigned char *buf, unsigned char len);

  9. void main()
  10. {
  11.     EA = 1;            //開總中斷
  12.     ConfigTimer0(1);   //配置T0定時(shí)1ms
  13.     ConfigUART(9600);  //配置波特率為9600
  14.    
  15.     while (1)
  16.     {
  17.         UartDriver();  //調(diào)用串口驅(qū)動(dòng)
  18.     }
  19. }
  20. /* 串口動(dòng)作函數(shù),根據(jù)接收到的命令幀執(zhí)行響應(yīng)的動(dòng)作
  21.    buf-接收到的命令幀指針,len-命令幀長度 */
  22. void UartAction(unsigned char *buf, unsigned char len)
  23. {
  24.     //在接收到的數(shù)據(jù)幀后添加換車換行符后發(fā)回
  25.     buf[len++] = '\r';
  26.     buf[len++] = '\n';
  27.     UartWrite(buf, len);
  28. }
  29. /* 配置并啟動(dòng)T0,ms-T0定時(shí)時(shí)間 */
  30. void ConfigTimer0(unsigned int ms)
  31. {
  32.     unsigned long tmp;  //臨時(shí)變量
  33.    
  34.     tmp = 11059200 / 12;      //定時(shí)器計(jì)數(shù)頻率
  35.     tmp = (tmp * ms) / 1000;  //計(jì)算所需的計(jì)數(shù)值
  36.     tmp = 65536 - tmp;        //計(jì)算定時(shí)器重載值
  37.     tmp = tmp + 33;           //補(bǔ)償中斷響應(yīng)延時(shí)造成的誤差
  38.     T0RH = (unsigned char)(tmp>>8);  //定時(shí)器重載值拆分為高低字節(jié)
  39.     T0RL = (unsigned char)tmp;
  40.     TMOD &= 0xF0;   //清零T0的控制位
  41.     TMOD |= 0x01;   //配置T0為模式1
  42.     TH0 = T0RH;     //加載T0重載值
  43.     TL0 = T0RL;
  44.     ET0 = 1;        //使能T0中斷
  45.     TR0 = 1;        //啟動(dòng)T0
  46. }
  47. /* T0中斷服務(wù)函數(shù),執(zhí)行串口接收監(jiān)控 */
  48. void InterruptTimer0() interrupt 1
  49. {
  50.     TH0 = T0RH;  //重新加載重載值
  51.     TL0 = T0RL;
  52.     UartRxMonitor(1);  //串口接收監(jiān)控
  53. }
復(fù)制代碼
基于51單片機(jī)仿真485通信,單片機(jī)轉(zhuǎn)發(fā)上位機(jī)虛擬串口發(fā)送字符 PC串口COMPIM設(shè)置.JPG 基于51單片機(jī)仿真485通信,單片機(jī)轉(zhuǎn)發(fā)上位機(jī)虛擬串口發(fā)送字符 串口調(diào)試結(jié)果(發(fā)送數(shù)據(jù)).JPG 基于51單片機(jī)仿真485通信,單片機(jī)轉(zhuǎn)發(fā)上位機(jī)虛擬串口發(fā)送字符 單片機(jī)-485-PC串口通信.jpg 基于51單片機(jī)仿真485通信,單片機(jī)轉(zhuǎn)發(fā)上位機(jī)虛擬串口發(fā)送字符 虛擬串口設(shè)置.JPG 基于51單片機(jī)仿真485通信,單片機(jī)轉(zhuǎn)發(fā)上位機(jī)虛擬串口發(fā)送字符 單片機(jī)-485-PC串口通信proteus仿真 程序資料.JPG

沙發(fā)
微鑫科技 發(fā)表于 2020-2-6 21:01:02 | 只看該作者
這個(gè)不是單片機(jī)的基礎(chǔ)全程嗎?有什么特殊的嗎?
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

手機(jī)版|小黑屋|ELEOK |網(wǎng)站地圖

GMT+8, 2026-5-26 01:08

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回復(fù) 返回頂部 返回列表