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

標題: 單片機水位控制系統仿真及源程序 帶電機控制 [打印本頁]

作者: 51黑ff    時間: 2016-9-9 00:36
標題: 單片機水位控制系統仿真及源程序 帶電機控制
通過開關模擬傳感器給單片機并顯示出狀態并控制電機轉動采用lcd1602來顯示.

下面是單片機水位控制系統的仿真原理圖:



下面是源程序:
  1. #include<reg52.h>
  2. typedef unsigned char uchar;
  3. typedef unsigned int uint;
  4. unsigned char code word1[]={"Water Control"};
  5. unsigned char code word2[]={"State:"};//水位狀態
  6. unsigned char code word3[]={"M: ON"};//電機開
  7. unsigned char code word4[]={"M:OFF"};//電機關
  8. sbit RS=P2^0;
  9. sbit RW=P2^1;
  10. sbit EN=P2^2;
  11. sbit BUSY=P0^7;
  12. sbit LED=P2^7;
  13. sbit sw1=P1^5;
  14. sbit sw2=P1^4;
  15. sbit sw3=P1^3;
  16. sbit sw4=P1^2;
  17. sbit sw5=P1^1;
  18. sbit sw6=P1^0;
  19. sbit shougong=P1^6;
  20. sbit dianji=P1^7;

  21. void delay()
  22. {  uint i,j;
  23.      for(i=0;i<10;i++)
  24.            for(j=0;j<200;j++);

  25. }
  26. void start()
  27. {
  28.    P0=0Xff;
  29.          do
  30.          {
  31.            RS=0;
  32.                  RW=1;
  33.                  EN=0;
  34.                  EN=1;
  35.          }
  36.    while(BUSY==1);
  37.           EN=0;

  38. }
  39. void w_dat(uchar dat)
  40. {
  41.    start();
  42.           EN=0;
  43.          P0=dat;
  44.          RS=1;
  45.          RW=0;
  46.          EN=1;
  47.          EN=0;
  48. }
  49. void w_cmd(uchar cmd)
  50. {
  51.   
  52.    start();
  53.          EN=0;
  54.          P0=cmd;
  55.          RS=0;
  56.          RW=0;
  57.          EN=1;
  58.          EN=0;

  59. }
  60. void LCD1602()       //LCD初始化命令
  61. {
  62.    w_cmd(0x38);
  63.          w_cmd(0x0f);
  64.          w_cmd(0x06);
  65.          w_cmd(0x01);
  66. }
  67. void w_string(uchar addr_start, uchar*p)       //送入字符串
  68. {
  69.         w_cmd(addr_start);
  70.         while (*p != '\0')
  71.         {
  72.                 w_dat(*p++);
  73.         }
  74. }
  75. void main()
  76. { uchar i;
  77.   LCD1602();
  78.         w_string(0x82,word1);
  79.         w_cmd(0x0c);
  80.         w_string(0xc0,word2);

  81.         while(1)
  82.         {
  83.           
  84.                         if(sw6==0&&sw5==1&&sw4==1&&sw3==1&&sw2==1&&sw1==1)//當唯一的閉合一個傳感器單元:水位6時發生
  85.                         { i=0;
  86.                                 dianji=1;//關電機
  87.                                         w_cmd(0xc7);
  88.                            w_dat(0+'6');          //液晶屏顯示6
  89.                           
  90.                                 w_string(0xca,word4);
  91.                         }
  92.                                 //水位5
  93.                         if(sw6==1&&sw5==0&&sw4==1&&sw3==1&&sw2==1&&sw1==1&&i==1)//當唯一的閉合一個傳感器單元:水位5時發生
  94.                         {
  95.                         dianji=0;
  96.                           
  97.                                 w_cmd(0xc7);
  98.                           w_dat(0+'5');             //液晶屏顯示5
  99.                                 w_string(0xca,word3);
  100.                         }
  101.                         //水位4
  102.                         if(sw6==1&&sw5==1&&sw4==0&&sw3==1&&sw2==1&&sw1==1&&i==1)//當唯一的閉合一個傳感器單元:水位4時發生
  103.                         { dianji=0;
  104.                        
  105.                                 w_cmd(0xc7);
  106.                           w_dat(0+'4');
  107.                                 w_string(0xca,word3);
  108.                         }
  109.                         //水位3
  110.                         if(sw6==1&&sw5==1&&sw4==1&&sw3==0&&sw2==1&&sw1==1&&i==1)//當唯一的閉合一個傳感器單元:水位3時發生
  111.                         { dianji=0;
  112.                        
  113.                           w_cmd(0xc7);
  114.                           w_dat(0+'3');       
  115.                                 w_string(0xca,word3);
  116.                         }
  117.                         //水位2
  118.               if(sw6==1&&sw5==1&&sw4==1&&sw3==1&&sw2==0&&sw1==1&&i==1)//當唯一的閉合一個傳感器單元:水位2時發生
  119.                         { dianji=0;
  120.                        
  121.                                 w_cmd(0xc7);
  122.                           w_dat(0+'2');
  123.                                 w_string(0xca,word3);
  124.                         }
  125.                         //水位低
  126.                         if(sw6==1&&sw5==1&&sw4==1&&sw3==1&&sw2==1&&sw1==0&&i==1)//當唯一的閉合一個傳感器單元:水位1時發生
  127.                         {
  128.                                 dianji=0;//開電機
  129.                                
  130.                                 w_cmd(0xc7);
  131.                           w_dat(0+'1');
  132.                                 w_string(0xca,word3);
  133.                         }
  134.                         //手工上水
  135.                     if(shougong==0)//當按手工上水按鈕時發生
  136.                         {   
  137.                           
  138.                              i=1;
  139.                       dianji=0;//開電機
  140.                                
  141.                                 w_cmd(0xc7);//顯示0表示手工上水已有反應
  142.                                 w_dat(0+'0');
  143.                        
  144.                                 w_string(0xca,word3);
  145.                                 delay();//開始
  146.                         }
  147.        
  148.         }
  149. }
復制代碼



水位控制lcd1602.rar

45.58 KB, 下載次數: 118, 下載積分: 黑幣 -5


作者: 勿斗    時間: 2016-10-24 10:51
為什么下載后沒有仿真呢?
作者: 越快樂越墮落    時間: 2017-3-12 12:48
這個怎么測量水位
作者: 2855177040    時間: 2017-9-1 18:01
感謝分享,支持一下。
作者: zcq991029    時間: 2020-6-18 17:38
能不能解釋下怎么運行的和原理




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