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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3378|回復: 0
上一主題 下一主題
收起左側

51單片機空氣質量檢測程序+仿真,過了警戒值能報警

[復制鏈接]
跳轉到指定樓層
樓主
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include"reg51.h"
  2. #include"intrins.h"
  3. #include"absacc.h"
  4. //設定adc0832的引腳
  5. sbit RS=P1^4;
  6. sbit RW=P1^5;
  7. sbit E=P1^6;
  8. //設定三個按鈕的引腳
  9. sbit jian=P1^7;
  10. sbit jia=P3^0;
  11. sbit fuwei=P3^1;
  12. //設定adc0832的引腳
  13. sbit baojing=P1^3;
  14. sbit cs=P1^2;
  15. sbit di=P1^0;
  16. sbit clk=P1^1;
  17. //定義(方便寫程序)
  18. #define busy 0x80
  19. #define uchar unsigned char
  20. #define uint unsigned int
  21. //把要用的字符串寫出來
  22. uchar code table[]="PM2.5:";
  23. uchar code table1[]="ALARM:";
  24. uchar code table2[]="ug/m3";
  25. uchar code table3[]="0123456789ABCDEF";
  26. uchar num, set, now, a, b;
  27. //延時函數
  28. void delay(uint i)
  29. { uint j;
  30.   for(j=0;j<i;j++);
  31. }
  32. //查詢adc0832是否在忙
  33. void test_1602busy()
  34. { uchar P0DATA;
  35.   RW=1;
  36.   RS=0;
  37.   loop: P0=0xff;
  38.   E=1;
  39.   P0DATA=P0;
  40.   E=0;
  41.   if(P0DATA&busy)
  42.   { goto loop;
  43.   }
  44. }
  45. //寫命令
  46. void writecom(uchar co)
  47. { test_1602busy();
  48.   RS=0;
  49.   RW=0;
  50.   E=0;
  51.   P0=co;
  52.   E=1;
  53.   E=0;
  54. }
  55. //寫數據
  56. void writedata(uchar Data)
  57. { test_1602busy();
  58.   RS=1;
  59.   RW=0;
  60.   E=0;
  61.   P0=Data;
  62.   E=1;
  63.   E=0;
  64. }
  65. void init()
  66. { writecom(0x38);   //設置16X2顯示,5X7點陣,8位數據接口
  67.   writecom(0x0c);   //設置開顯示,不顯示光標
  68.   writecom(0x06);   //寫一個字符后地址指針加1
  69.   writecom(0x01);   //顯示清零,數據指針清零
  70. }
  71. void sound()
  72. {  uchar z=100;  
  73.    while(z--)
  74.   {  baojing=~baojing;
  75.      delay(500);
  76.   }
  77. }
  78. //從adc0832獲取數據
  79. uchar get()
  80. {  uchar Dat1=0,Dat2=0;
  81.    clk=0; di=1; cs=0;
  82.    clk=1; clk=0; di=1; //第一脈沖,開始位
  83.    clk=1; clk=0; di=1; //第二脈沖,模式選擇
  84.    clk=1; clk=0; di=1; //第三脈沖,通道選擇
  85.    for(b=0;b<8;b++)         //從高到低取一次數
  86.    {clk=1;
  87.     clk=0;
  88.         if(di) Dat1|=0x80>>b;
  89.         }
  90.    for(b=0;b<8;b++)          //從詆到高取一次數
  91.    {if(di) Dat2|=0x80<<b;
  92.     clk=1;
  93.     clk=0;
  94.         }
  95.         cs=1; di=1; clk=1;
  96.         if(Dat1==Dat2) return Dat1;         //校驗兩次讀數
  97. }  
  98. void main()
  99. { init();
  100.   writecom(0x80+0x00);
  101.   for(num=0;num<6;num++)
  102.   { writedata(table[num]);
  103.   }
  104.   num=0;
  105.   writecom(0x80+0x0b);
  106.   for(num=0;num<5;num++)
  107.   {writedata(table2[num]);
  108.   }
  109.   writecom(0x80+0x4b);
  110.   for(num=0;num<5;num++)
  111.   {writedata(table2[num]);
  112.   }
  113.   writecom(0x80+0x40);
  114.   for(num=0;num<6;num++)
  115.   {writedata(table1[num]);
  116.   }
  117.   set=80;
  118.   while(1)
  119.   {if(jia==0)
  120.     {delay(5900);
  121.           if(jia==0)
  122.            {set++;
  123.             delay(5900);
  124.                 }
  125.         }
  126. if(jian==0)
  127.     {delay(5900);
  128.           if(jian==0)
  129.            {set--;
  130.             delay(5900);
  131.                 }
  132.         }
  133.    now=get()/2.55;   //因為255個數分成100份所以除2.55
  134.    writecom(0x80+0x09);
  135.    writedata(table3[now/10]);
  136.    writecom(0x80+0x0a);
  137.    writedata(table3[now%10]);
  138.    writecom(0x80+0x49);
  139.    writedata(table3[set/10]);
  140.    writecom(0x80+0x4a);
  141.    writedata(table3[set%10]);
  142.    if(now>set)
  143.    sound();
  144.   }
  145. }                          

復制代碼

所有資料51hei提供下載:
123.rar (44.22 KB, 下載次數: 82)


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

使用道具 舉報

沙發
ID:102963 發表于 2019-3-25 21:20
壓縮包只有仿真,沒有程序。

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品国产免费看久久精品 | 午夜久久久久久久久久一区二区 | 久久av在线播放 | 黄色网页在线 | 久久久精品亚洲 | 国产一区二区在线视频 | 成人黄色三级毛片 | 99精品视频免费观看 | 亚洲精品久久久久久久久久久 | 国产欧美精品一区二区色综合朱莉 | 成人一区二区三区在线观看 | 国产网站在线播放 | 国产免费播放视频 | 国产精品免费看 | 韩国毛片视频 | 波波电影院一区二区三区 | 免费国产黄网站在线观看视频 | 精品九九| 亚洲欧美日韩一区 | 精品久久久久久 | 国产精品99久久久久久人 | 亚洲国产一区二区在线 | 7799精品视频天天看 | 亚洲精品久久久久久久久久久 | 老司机午夜性大片 | 欧美日韩理论 | 免费一级淫片aaa片毛片a级 | 国产日韩一区二区三免费高清 | 少妇一区在线观看 | 2020亚洲天堂 | 亚洲国产成人在线观看 | 成人深夜福利 | 久久综合久色欧美综合狠狠 | 一区二区三区免费 | 久久不卡 | 国产成人99久久亚洲综合精品 | 一区二区三区在线 | 亚洲人va欧美va人人爽 | 成人1区| 精品欧美在线观看 | 欧美激情一区 |