亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

標(biāo)題: 51單片機水流計控制電磁閥門開關(guān)程序問題 [打印本頁]

作者: forest415    時間: 2020-7-3 16:23
標(biāo)題: 51單片機水流計控制電磁閥門開關(guān)程序問題
下面是我的代碼,請問為什么每次出來的水不太一樣,就是隔一段時間運行出來的水就不一樣了。

昨天晚上測試還是挺好的,今天早上再運行一下流出來的水竟然少了一大半,感覺每次運行的時候脈沖好像并不是40像是隨機的特別是隔一段時間后區(qū)別更大(我這水龍頭漏水一滴一滴的)。請問大神我這代碼哪里有問題嗎還請指教。
單片機源程序如下:
  1. #include "reg51.h"
  2. #define uint unsigned int
  3. unsigned char i;
  4. void Delay1ms()                //@12.000MHz
  5. {
  6.         unsigned char i, j;

  7.         i = 2;
  8.         j = 239;
  9.         do
  10.         {
  11.                 while (--j);
  12.         } while (--i);
  13. }

  14. void delayms(uint x)//毫秒變量
  15. {
  16.         while(x--)Delay1ms();
  17. }
  18. /*延時函數(shù)結(jié)束*/
  19. #define pulse 40   //定義脈沖次數(shù)
  20. unsigned char number;//@初始化定義脈沖為0
  21. sbit valve=P1^0;  //定義閥門
  22. sbit power=P1^1;

  23. void main(){
  24. valve=1;//@初始化閥門
  25. power=1;//@初始化電平
  26. number=0;
  27.         while(1){
  28.                 if(power==1){
  29.                 outwait=0;
  30.                 }

  31.                 if(power==0){
  32.                 delayms(30);
  33.                         if(power==0){                        
  34.                         outwait=1;                        
  35.                         number=0;//脈沖歸零
  36.                         EA=1;
  37.                         IT0=1;
  38.                         EX0=1;                                       
  39.                         valve=0;//開閥               

  40.                         if(number >= pulse){
  41.                         valve=1; //關(guān)閥
  42.                         number=0; //脈沖歸零
  43.                         i--;                        
  44.                         }

  45.                 }

  46.                         }
  47.                 while(!power); //如果沒確認檢測到低電平跳出循環(huán)                        
  48.                         }
  49.                 }
  50. }


  51. void int0() interrupt 0
  52. {                 
  53.         number++;//脈沖遞增
  54. }
復(fù)制代碼




作者: wulin    時間: 2020-7-3 21:29
樓主的脈沖信號來自流量計?   outwait是變量?沒有被定義。
作者: forest415    時間: 2020-7-4 04:33
現(xiàn)在可以了,是中斷開了沒有關(guān)。現(xiàn)在又有一個問題就是我用電池好好的,換上電腦的電源發(fā)現(xiàn)脈沖特別快比用電池快了三倍多。重啟一下好像又好了,還有電池不充電正常的一但充電時又是脈沖也不準(zhǔn)了又是power也不聽使喚了感覺一切都亂了。
作者: forest415    時間: 2020-7-4 04:34
wulin 發(fā)表于 2020-7-3 21:29
樓主的脈沖信號來自流量計?   outwait是變量?沒有被定義。

是來自流量計啊,就是水流傳感器。那個我定義過了沒發(fā)出來。
作者: wulin    時間: 2020-7-4 06:39
forest415 發(fā)表于 2020-7-4 04:34
是來自流量計啊,就是水流傳感器。那個我定義過了沒發(fā)出來。

主要是硬件工作不穩(wěn)定,軟件也不完善所致。




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