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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3003|回復: 8
打印 上一主題 下一主題
收起左側(cè)

用LCD顯示風向傳感器測得的風向,求大家?guī)兔纯磫纹瑱C程序哪里不對,一直沒有現(xiàn)象

[復制鏈接]
回帖獎勵 60 黑幣 回復本帖可獲得 15 黑幣獎勵! 每人限 1 次
跳轉(zhuǎn)到指定樓層
樓主
ID:796670 發(fā)表于 2020-12-3 19:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
使用單片機串口獲取風向傳感器的數(shù)據(jù),然后用LCD1602顯示,求求各位幫忙看看程序哪里有問題,改了好多遍了,但一直沒有現(xiàn)象
這是傳感器的說明:


以下為程序:

  1. #include <reg52.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5. #include <intrins.h>
  6. #define uchar unsigned char
  7. #define uint  unsigned int
  8.         
  9. sbit E=P2^2;    //LCD1602使能引腳
  10. sbit RW=P2^1;    //LCD1602讀寫引腳   
  11. sbit RS=P2^0;    //LCD1602數(shù)據(jù)/命令選擇引腳
  12. uchar table[24]= //用來存儲SBUF的數(shù)據(jù) {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  13. uchar wind_direction[8]={0x01,0x03,0x00,0x00,0x00,0x02,0xC4,0x0B};//風向傳感器問詢幀
  14. uchar wind_direction1;//單片機接收風向數(shù)據(jù)
  15. uchar strwind[];  //用來把得到的整形數(shù)據(jù)轉(zhuǎn)為字符串
  16. int flag1;
  17. void delay(uint z)//延時函數(shù)
  18. {
  19.         uint x,y;
  20.         for(x=z;x>0;x--);
  21.                 for(y=110;y>0;y--);
  22. }

  23. void wcmd(uchar del)//LCD寫命令函數(shù)
  24. {
  25.   RS=0;//命令選擇端
  26.         delay(10);
  27.         RW=0;//寫命令
  28.         delay(10);
  29.         P0=del;  //把命令字寫入
  30.         delay(10);
  31.         E=1;//使能
  32.         delay(10);
  33.         E=0;
  34. }

  35. void lcd1602_writedata(uchar dat)//LCD寫數(shù)據(jù)函數(shù)
  36. {
  37.   delay(10);
  38.         RS=1;//數(shù)據(jù)選擇端
  39.         delay(10);
  40.         RW=0;//寫命令
  41.         delay(10);
  42.         P0=dat;  //把要顯示的數(shù)據(jù)寫入
  43.         delay(10);
  44.         E=1;
  45.         delay(10);
  46.         E=0;
  47. }

  48. void lcd1602_init()//LCD初始化
  49. {
  50. wcmd(0x38);
  51. wcmd(0x0C);
  52. wcmd(0x06);
  53. wcmd(0x01);
  54. }

  55. void init()  //系統(tǒng)初始化
  56. {
  57. TMOD=0X20;//定時器T1,方式2,波特率由PCON寄存器的SMOD決定
  58. TH1=0xfa;//設置波特率
  59. TL1=0xfa;
  60. TR1=1;//定時器1中斷打開
  61. SCON=0x50;//方式1 SCON是串行口1的串行控制寄存器
  62. PCON=0x00;//各工作方式波特率加倍
  63. IP=0X10;//
  64. REN=1; //串口1接收使能
  65. EA=1;//cpu開放中斷
  66. ES=1;//允許串行口中斷

  67. }
  68. void main()
  69. {
  70.         uchar m=0;
  71.         flag1=0;//判斷風速風向傳感器
  72.         init();
  73.   while(1)
  74.         {
  75.                 int i;
  76.                 if(flag1==0)//flag1=0則發(fā)送風向數(shù)據(jù)
  77.         {
  78.         for(i=0;i<8;i++)
  79.                 {
  80.                 SBUF=wind_direction[i];   //發(fā)送問詢幀
  81.                         while(!TI);  //數(shù)據(jù)發(fā)送結束時TI置1
  82.                         TI=0;
  83.                 }
  84.                 delay(500);
  85.                 strwind[0]=(wind_direction1/10)+'0';   //這里是把整數(shù)型數(shù)據(jù)轉(zhuǎn)為字符
  86.                 strwind[1]=(wind_direction1%10)+'0';
  87.                 lcd1602_init();
  88.                 delay(100);
  89.                 wcmd(0x80);  //LCD第一行第一個位置
  90.                 delay(100);
  91.                 for(m=0;m<3;m++)
  92.                 {
  93.                 lcd1602_writedata(strwind[m]);
  94.                 }
  95.                 delay(500);
  96.   }
  97. }
  98. }

  99. void UART_1() interrupt 4
  100. {
  101.         int i=0;
  102.         //接收完緩沖數(shù)據(jù)后RI置1
  103.         if(RI)//如果RI為1,即如果收到
  104.         {
  105.           RI=0; //RI置0
  106.                 table[i++]=SBUF;  //  得到的風向數(shù)據(jù)存在SBUF,把數(shù)據(jù)給table[i++]
  107.                 if(i>8)  //一個應答幀是9個字節(jié),i>8表示一個風向數(shù)據(jù)傳輸完成
  108.                 {
  109.                 wind_direction1=table[6];//風向數(shù)據(jù)是第七個,即table[6],給wind_direction1[0]               
  110.                  }
  111.         }
  112. }
復制代碼


求各位幫忙看看以上程序哪里不太對,尤其是串口通信部分,改了好多遍但最后都沒有現(xiàn)象,求大家?guī)蛶兔Γx謝。

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

使用道具 舉報

沙發(fā)
ID:796670 發(fā)表于 2020-12-3 20:27 | 只看該作者
球球各位了,調(diào)了好多次一直不行,救救孩子吧
回復

使用道具 舉報

板凳
ID:592807 發(fā)表于 2020-12-4 08:25 | 只看該作者
LCD_Init()放在while(1)里面,LCD被初始化了多少次?
回復

使用道具 舉報

地板
ID:213173 發(fā)表于 2020-12-4 08:28 | 只看該作者
明日香 發(fā)表于 2020-12-3 20:27
球球各位了,調(diào)了好多次一直不行,救救孩子吧

樓主的程序有很多基礎知識錯誤。這是給壇友修改的一個甲醛檢測示例程序,硬件TX-1C實驗板。雖然不能直接解決樓主的問題,但可依照其程序構架、解題思路、書寫格式舉一反三,就可以輕易解決問題。 串口發(fā)收數(shù)據(jù)串甲醛檢測.zip (429.51 KB, 下載次數(shù): 7)

回復

使用道具 舉報

5#
ID:592807 發(fā)表于 2020-12-4 09:00 | 只看該作者
你說的現(xiàn)象是什么現(xiàn)象:LCD還是串口還是風向傳感器?

LCD和串口你可以修改代碼讓他們打印出其他東西,能打印就不是這兩者的問題、
風向傳感器,你先確定電路正常否?電壓正常否?然后在檢測風向變化時它有向單片機發(fā)送數(shù)據(jù)嗎?


看了你三個帖子,你一直在問代碼問題,你確保你電路沒問題嗎?
如果你確保電路沒問題,你要做的是去找買你傳感器的廠家要例程,然后燒錄,看喲沒有現(xiàn)象。
回復

使用道具 舉報

6#
ID:796670 發(fā)表于 2020-12-4 13:30 | 只看該作者
黃youhui 發(fā)表于 2020-12-4 09:00
你說的現(xiàn)象是什么現(xiàn)象:LCD還是串口還是風向傳感器?

LCD和串口你可以修改代碼讓他們打印出其他東西,能 ...

謝謝指點
回復

使用道具 舉報

7#
ID:796670 發(fā)表于 2020-12-4 13:30 | 只看該作者
wulin 發(fā)表于 2020-12-4 08:28
樓主的程序有很多基礎知識錯誤。這是給壇友修改的一個甲醛檢測示例程序,硬件TX-1C實驗板。雖然不能直接 ...

謝謝指點
回復

使用道具 舉報

8#
ID:592807 發(fā)表于 2020-12-4 14:06 | 只看該作者

不客氣,
請共同遵守求貼禮儀,問題解決后發(fā)帖置頂然后來者學習
回復

使用道具 舉報

9#
ID:796670 發(fā)表于 2020-12-4 15:22 | 只看該作者
wulin 發(fā)表于 2020-12-4 08:28
樓主的程序有很多基礎知識錯誤。這是給壇友修改的一個甲醛檢測示例程序,硬件TX-1C實驗板。雖然不能直接 ...

感謝指點
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产午夜精品理论片a大结局 | 亚洲国产成人精品女人久久久 | 午夜爽爽男女免费观看hd | 99久久精品免费看国产免费软件 | 国产免费一级片 | 日本一区二区高清不卡 | 精品一区二区三区入口 | 国产精品自产av一区二区三区 | 中文字幕在线免费观看 | 中文字幕一区在线 | 成人午夜免费视频 | 国产精品永久免费观看 | 亚洲天堂一区二区 | 精品欧美一区二区三区久久久 | 精品一区二区三区免费视频 | 好姑娘影视在线观看高清 | 亚洲精品888| 黄色激情毛片 | 成人性生交大片免费看中文带字幕 | 日韩不卡在线观看 | 黄色一级大片在线免费看产 | 日韩在线观看 | 欧美一级片在线观看 | 久久看看| 成人福利网站 | 在线免费看黄 | 免费在线观看一区二区 | www97影院 | 一级黄色夫妻生活 | 成人性生交大片 | 古装人性做爰av网站 | 超碰日本 | 国产一级在线视频 | 久久精品视频在线观看 | 欧美日韩在线综合 | 一级大黄色片 | 97视频成人 | 中文字幕国产高清 | 亚洲国产一区二区三区, | 国产精品久久久久久久久久久新郎 | 在线播放中文 |