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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)數(shù)字孿生農(nóng)業(yè)智能一體化管理系統(tǒng)程序與仿真 LabVIEW上位機(jī)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
分享一下零基礎(chǔ)菜雞一個(gè)寒假的作品

制作出來(lái)的實(shí)物圖如下:

由于手邊沒(méi)有攝像頭,就用電腦前置代替了,哈哈哈



51,面包板,繼電器

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)




labview軟件

單片機(jī)源程序如下:
  1. #include <reg52.h>
  2. #include "1602.h"
  3. #include "uart.h"
  4. #include "AM2301.h"
  5. #include "adc0832.h"

  6. #define RUN_CNT_MAX                        2
  7. #define MENU_NUM_LIMIT                        3

  8. uchar menu = 0;
  9. uchar Dat1,Dat2;
  10. uint Dat3;

  11. void Get_Dat();
  12. void SendData(void);//串口發(fā)送函數(shù)聲明
  13. void LCD_display(void);//LCD1602顯示函數(shù)聲明

  14. void delay_ms(int xms)//延時(shí)演示,1ms
  15. {
  16.     unsigned char i;
  17.     for( ; xms > 0; xms--)
  18.         for(i = 110; i > 0; i--);
  19. }

  20. unsigned int Humidity = 0;//定義濕度變量
  21. unsigned int Temperature = 0;//定義溫度變量

  22. void main()
  23. {   
  24.         
  25.     RY1 = 0; RY2 = 0; RY3 = 0; RY4 = 0; RY5 = 0; RY6 = 0; RY7 = 0; //繼電器初始狀態(tài)為關(guān)閉
  26.    
  27.     LCD1602_Init();//LCD1602初始化
  28.     uart_init(); //串口初始化
  29.    
  30.     //LCD1602左側(cè)顯示溫濕度對(duì)應(yīng)字母
  31.     LCD1602_Write_String(0, 0, "SD:");
  32.     LCD1602_Write_String(0, 1, "WD:");
  33.     LCD1602_Write_String(8, 0, "CO2:");
  34.     LCD1602_Write_String(8, 1, "GZ:");        
  35.     while(1)
  36.     {
  37.         Read_Sensor();//讀取溫濕度
  38.          
  39.         if(Sensor_Data[2]&0x80)//如果溫度為負(fù)值
  40.         {
  41.             DHT_Negative_Flag = 1;//負(fù)值標(biāo)志位為1
  42.             Sensor_Data[2]&=0x7F;//將不正宗的負(fù)數(shù)變?yōu)橐粋(gè)正常的正數(shù),后續(xù)通過(guò)標(biāo)志位來(lái)判斷
  43.         }
  44.         else
  45.         {
  46.             DHT_Negative_Flag = 0;
  47.         }
  48.       
  49.         //將傳感器數(shù)據(jù)數(shù)組中的數(shù)據(jù)重新組合得到溫濕度的值,參見(jiàn)數(shù)據(jù)手冊(cè)        
  50.         Humidity = Sensor_Data[0]*256 + Sensor_Data[1];
  51.         Temperature = Sensor_Data[2]*256 + Sensor_Data[3];
  52.         Get_Dat();
  53.         SendData();//從串口發(fā)送數(shù)據(jù)
  54.         LCD_display();//LCD顯示
  55.                
  56.         delay_ms(2000);//延時(shí)2s,數(shù)據(jù)手冊(cè)規(guī)定2秒查詢(xún)一次
  57.     }
  58. }
  59. void Get_Dat()
  60. {
  61.         static uint Run_Get_Cnt = RUN_CNT_MAX;
  62.         if(Run_Get_Cnt++ > RUN_CNT_MAX)
  63.         {
  64.                 Run_Get_Cnt = 0;
  65.                 Dat1 = adc0832(0);
  66.                 Dat2 = adc0832(1);
  67.    
  68.                 Dat1 = Parse_Dat(Dat1,Adc_Pares_Percentage);
  69.    
  70.                 Dat2 = Parse_Dat(Dat2,Adc_Pares_Percentage);
  71.    
  72.                 LCD_display();
  73.         }
  74. }

  75. //串口發(fā)送數(shù)據(jù)函數(shù)
  76. void SendData(void)
  77. {   
  78.     unsigned char i;
  79.    
  80.     SendByte(0xFF);//發(fā)送幀頭
  81.    
  82.     SendByte(DHT_Negative_Flag);//發(fā)送負(fù)數(shù)標(biāo)志
  83.     for(i = 0; i < 4; i++)//發(fā)送傳感器數(shù)據(jù)
  84.     {
  85.         SendByte(Sensor_Data[i]);
  86.     }
  87.     SendByte(Dat1);
  88.                 SendByte(Dat2);

  89.     SendByte(0xEE);//發(fā)送幀尾
  90. }

  91. //LCD1602顯示函數(shù)
  92. void LCD_display(void)
  93. {
  94.     //顯示濕度
  95.     lcd_pos(3,0);//定位到第1行左數(shù)第7個(gè)位置
  96.     LCD1602_Write_Dat(Humidity/100 + 0x30);//顯示xx百位
  97.     LCD1602_Write_Dat(Humidity%100/10 + 0x30);//顯示xx十位
  98.     LCD1602_Write_Dat('.');//顯示小數(shù)點(diǎn)
  99.     LCD1602_Write_Dat(Humidity%10+ 0x30);//顯示xx個(gè)位
  100.         
  101.           lcd_pos(12,0);
  102.     LCD1602_Write_Dat(Dat1/10 + 0x30);//顯示xx百位
  103.     LCD1602_Write_Dat(Dat1%10 + 0x30);//顯示xx十位
  104.     LCD1602_Write_Dat('%');//顯示小數(shù)點(diǎn)
  105.         
  106.           lcd_pos(12,1);
  107.     LCD1602_Write_Dat(Dat2/10 + 0x30);//顯示xx百位
  108.     LCD1602_Write_Dat(Dat2%10 + 0x30);//顯示xx十位
  109.     LCD1602_Write_Dat('%');//顯示小數(shù)點(diǎn)
  110.         
  111.     if(DHT_Negative_Flag == 1)
  112.     {      
  113.         if(Temperature/100 == 0) //判斷是否為三位數(shù),不是則不顯示百位
  114.         {
  115.             lcd_pos(3,1);//定位到第2行左數(shù)第7個(gè)位置

  116.             LCD1602_Write_Dat(Temperature%100/10 + 0x30);
  117.             LCD1602_Write_Dat('.');
  118.             LCD1602_Write_Dat(Temperature%10+ 0x30);
  119.         }
  120.         else
  121.         {
  122.             lcd_pos(2,1);//定位到第2行左數(shù)第6個(gè)位置
  123.         
  124.             LCD1602_Write_Dat(Temperature/100 + 0x30);
  125.             LCD1602_Write_Dat(Temperature%100/10 + 0x30);
  126.             LCD1602_Write_Dat('.');
  127.             LCD1602_Write_Dat(Temperature%10+ 0x30);
  128.         }
  129.     }
  130.     else
  131.     {
  132.         if(Temperature/100 == 0)
  133.         {
  134.             lcd_pos(4,1);//定位到第2行左數(shù)第8個(gè)位置
  135.             LCD1602_Write_Dat(Temperature%100/10 + 0x30);
  136.             LCD1602_Write_Dat('.');
  137.             LCD1602_Write_Dat(Temperature%10+ 0x30);
  138.         }
  139.         else
  140.         {
  141.             lcd_pos(3,1);//定位到第2行左數(shù)第7個(gè)位置         
  142.             LCD1602_Write_Dat(Temperature/100 + 0x30);
  143.             LCD1602_Write_Dat(Temperature%100/10 + 0x30);
  144.             LCD1602_Write_Dat('.');
  145.             LCD1602_Write_Dat(Temperature%10+ 0x30);
  146.         }
  147.     }
  148. }
復(fù)制代碼

Keil代碼與Proteus8.13仿真下載: stc89c52.zip (118.11 KB, 下載次數(shù): 26)
LabVIEW: labveiw.rar (1.94 MB, 下載次數(shù): 27)

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级免费看 | 九九热九九 | 精品视频一二区 | 国产片淫级awww | 成人亚洲在线 | 久久精品二区 | 久久91| 国产在线精品区 | 999精品视频在线观看 | 国产精品综合久久 | 九九九久久国产免费 | 国产一区二区在线免费观看 | 国产三区在线观看视频 | 国产精品久久毛片av大全日韩 | 日本午夜精品一区二区三区 | 日韩精品成人免费观看视频 | 天天色天天射天天干 | 亚洲精品视频在线看 | 国产精品久久久久无码av | 久久久久久久久久久久久久久久久久久久 | av日韩高清| 国产成人在线视频 | 99热国产精品 | 亚洲精品久久久久久久久久久久久 | 91久久国产综合久久91精品网站 | 99re在线视频| 精品国产黄色片 | 视频一区二区中文字幕日韩 | 亚洲精品视频在线 | av在线免费观看网址 | 天天躁人人躁人人躁狂躁 | 欧美性精品 | 日韩在线大片 | 久久一区二区三区四区五区 | www.精品国产 | 欧美精品久久 | 国产精品精品久久久久久 | 国产h在线 | 国产精品资源在线 | 日韩毛片视频 | 免费看黄色小视频 |