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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2963|回復: 3
打印 上一主題 下一主題
收起左側

51單片機雙機串口通信,上位機接收不到數據

[復制鏈接]
跳轉到指定樓層
樓主
ID:895926 發表于 2021-4-25 22:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發送機程序
  1. #include <send.h>
  2. #include <adc0808.h>
  3. volatile unsigned char sending;       

  4. uchar len;



  5. void cdelay(unsigned char i)
  6. {
  7.         unsigned char j,k;
  8.         for(j=i;j>0;j--)
  9.                 for(k=90;k>0;k--);
  10. }
  11. void sendinit(void)                                //串口初始化
  12. {
  13. EA=0; //暫時關閉中斷
  14. TMOD&=0x0F;  //定時器1模式控制在高4位
  15. TMOD|=0x20;    //定時器1工作在模式2,自動重裝模式
  16. SCON=0x50;     //串口工作在模式1
  17. TH1=256-jingzhen/(botelv*12*16);  //計算定時器重裝值
  18. TL1=256-jingzhen/(botelv*12*16);
  19. PCON|=0x80;    //串口波特率加倍
  20. ES=1;         //串行中斷允許
  21. TR1=1;        //啟動定時器1
  22. REN=1;        //允許接收
  23. EA=1;         //允許中斷
  24. }

  25. void send(unsigned char d)                  //發送一個字節的數據,形參d即為待發送數據。
  26. {

  27. SBUF=d; //將數據寫入到串口緩沖
  28. sending=1;         //設置發送標志
  29. while(sending); //等待發送完畢
  30. }

  31. void sendc(unsigned char * pd)
  32. {
  33. while((*pd)!='\0') //發送字符串,直到遇到0才結束
  34. {
  35.   send(*pd); //發送一個字符
  36.   pd++;  //移動到下一個字符
  37. }
  38. }

  39. void uart(void) interrupt 4                 //串口發送中斷
  40. {
  41. if(RI)    //收到數據
  42. {
  43.   RI=0;   //清中斷請求
  44. }
  45. else      //發送完一字節數據
  46. {
  47.   TI=0;
  48.   sending=0;  //清正在發送標志
  49. }
  50. }
復制代碼




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

使用道具 舉報

沙發
ID:895926 發表于 2021-4-25 22:16 | 只看該作者
接收機程序:
  1. #include <jieshou.h>
  2. #include <1602.h>
  3. uint m=0;
  4. uchar weight[4]={0,0,0,0};



  5. void jieshoumain(void)
  6. {
  7.     SCON=0x50;           //設定串口工作方式
  8.     PCON=0x80;           //波特率不倍增
  9.                        
  10.     TMOD=0x20;           //定時器1工作于8位自動重載模式, 用于產生波特率
  11.     EA=1;
  12.     ES = 1;              //允許串口中斷
  13.     TL1=0xfd;
  14.     TH1=0xfd;             //波特率9600
  15.     TR1=1;
  16.            
  17. }
  18. /*********************************************************

  19.   串行中斷服務函數

  20. *********************************************************/
  21. void  serial() interrupt 4
  22. {
  23.    ES = 0;                //關閉串行中斷
  24.    RI = 0;                //清除串行接受標志位
  25.        
  26.    weight[m++]= SBUF;            //從串口緩沖區取得數據  
  27.          schar(0x04+m,4,0x30+weight[m]);
  28.         if(m==4)
  29.         {
  30.                 m=0;
  31.         }
  32.        
  33.    ES = 1;    //允許串口中斷
  34. }
復制代碼
回復

使用道具 舉報

板凳
ID:895926 發表于 2021-4-25 22:37 | 只看該作者
有大佬來看看嗎?
回復

使用道具 舉報

地板
ID:275826 發表于 2021-4-26 14:08 | 只看該作者
void send(unsigned char d)                  //發送一個字節的數據,形參d即為待發送數據。
{

SBUF=d; //將數據寫入到串口緩沖
sending=1;         //設置發送標志
while(sending); //等待發送完畢
}這是什么東西?
應該是
void send(unsigned char d)                  //發送一個字節的數據,形參d即為待發送數據。
{

SBUF=d; //將數據寫入到串口緩沖
while(!TI);
TI=0; //等待發送完畢
}

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.日韩av.com | 欧美精品一区二区在线观看 | 午夜精品久久久久久久99黑人 | 噜久寡妇噜噜久久寡妇 | 国产91在线 | 中日 | 一区二区成人 | 在线一区观看 | 日韩精品一区二区三区中文在线 | www97影院 | 亚洲精品在线看 | 一区二区在线不卡 | 国产精品国产三级国产播12软件 | 国产一级视频在线观看 | 国产探花在线精品一区二区 | 国产精品av久久久久久久久久 | 国产中文| 男人的天堂亚洲 | 亚洲人成人一区二区在线观看 | 久久久一区二区三区 | 不卡视频在线 | 天天插天天搞 | 欧美激情久久久 | 欧美成人手机视频 | 中文字幕 欧美 日韩 | 国产黄视频在线播放 | 国产精品无码永久免费888 | 伊人影院99 | 综合网伊人 | 国产精品a久久久久 | 欧美日韩中文字幕 | 精品在线一区二区三区 | 精品久久av | 天天综合操 | 中文天堂在线一区 | 在线免费观看黄色 | 国产成人精品午夜视频免费 | 久久久久久久久久久久久91 | 日韩欧美电影在线 | 精品久久香蕉国产线看观看亚洲 | 九九久久精品 | 一区二区在线 |