亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 單片機與RS232進行通信 一直接收不到數據 [打印本頁]

作者: 至上力晨    時間: 2017-6-10 17:05
標題: 單片機與RS232進行通信 一直接收不到數據

各位大神請看下這個程序哪里出問題了,一直接收不到數據,需要實現下面這個功能


  1. #include <AT89X51.h>
  2. #define uchar unsigned  char
  3. #define uint unsigned int
  4. uchar trdata[]={0xaa,0x01,0x03,0x0f,0x00,0x05};
  5. uchar rece;
  6. uchar j;

  7. //uchar  code trdata1[]={'R','I','C','H','M','C','U',0x0d,0x0a,0x00};
  8. uchar flag=1;
  9. void delay1ms(uint i)
  10. {
  11. uchar j;
  12.          while(i--)
  13.          {
  14.                  for(j=0;j<115;j++)          //1ms基準延時程序
  15.                  {
  16.                   ;
  17.                  }
  18.          }
  19. }
  20. main()
  21. {
  22. uchar i;
  23. SCON= 0x50;                //串口方式允許接收
  24. //SM0=0;
  25. //SM1=1;
  26. //REN=0;
  27. PCON= 0x00;                     //SMOD=0
  28. TMOD= 0x20;                //定時器1定時方式2
  29. TH1= 0xfd;                //11.0592M 9600波特率
  30. TL1= 0xfd;
  31. TR1= 1;                  //啟動定時器
  32. EA=1;
  33.   while(1)
  34.         {
  35.           if(flag==1){
  36.             ES=0;        
  37.             i=0;
  38.         while(trdata[i]!=0x05)
  39.                     {
  40.                                 P0=trdata[i];
  41.                             SBUF=trdata[i];
  42.                           while(!TI);
  43.                           TI=0;
  44.                           i++;
  45.                                 delay1ms(1000);
  46.                 }
  47.                   if(i>4)
  48.                     {
  49.                         flag=0;
  50.                         ES=1;
  51.                      }
  52.                         }
  53.         }
  54. }
  55. void INT_UartRcv(void) interrupt 4
  56. {

  57.     if(RI==1){
  58.     RI=0;
  59.         rece=SBUF;
  60.         P0=0xff;
  61.         j++;
  62.         delay1ms(100);
  63. //        bulb=1;
  64. //        bulb1=1;        
  65.         if(j>12){
  66.           flag=1;
  67.           j=0;
  68.           ES=0;
  69.           }
  70.          }
  71. }
復制代碼

作者: 至上力晨    時間: 2017-6-10 17:07
請各位大神幫忙
作者: 至上力晨    時間: 2017-6-10 17:08
頂一下,求各位大神幫忙
作者: yzwzfyz    時間: 2017-6-10 17:57
把你的程序畫成流程框圖,你就知道問題在哪里了。
作者: cjjcjj1    時間: 2017-6-10 20:01
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 至上力晨    時間: 2017-6-10 21:28
本帖最后由 至上力晨 于 2017-6-10 21:38 編輯
cjjcjj1 發表于 2017-6-10 20:01
你好!是仿真實現的嗎?發一下原理圖看看,幫你改一下

這個傳感器的端口為RS232端口,通信協議是ASC2碼,一個4個線,電源、地、信號發送和接收。信號線分別接到下圖DB9的2腳和3腳。傳感器和電腦相連通過串口調試助手可以看到返回的數據,但是希望通過程序發送指令并接收返回的值。不知道程序出現什么問題了,這個程序的中斷進不去,應該就是沒有返回數據。
作者: 至上力晨    時間: 2017-6-10 21:30


作者: 至上力晨    時間: 2017-6-10 21:31
yzwzfyz 發表于 2017-6-10 17:57
把你的程序畫成流程框圖,你就知道問題在哪里了。

這可能是指令發送的問題吧,因為我有串口調試助手可以采集到數據
作者: zl2168    時間: 2017-6-10 23:26
本帖最后由 zl2168 于 2017-6-10 23:27 編輯

實例80  帶RS 232接口的雙機通信
Proteus仿真一下,確認有效。
實例80 帶RS232接口的雙機通信.rar (45.52 KB, 下載次數: 30)

以上摘自張志良編著80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行書中電路和程序設計有詳細說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。

作者: 至上力晨    時間: 2017-6-11 09:06
zl2168 發表于 2017-6-10 23:26
實例80  帶RS 232接口的雙機通信
先Proteus仿真一下,確認有效。

同樣感謝,但是我不知道傳感器內部是怎么進行收發的
作者: zl2168    時間: 2017-6-11 09:26
至上力晨 發表于 2017-6-11 09:06
同樣感謝,但是我不知道傳感器內部是怎么進行收發的

書上有詳細解讀分析。仿真電路和Hex文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。
作者: renh12    時間: 2017-6-11 10:12
在中斷函數里加一些打印信息,看看進沒進中斷函數




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1