欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)直流電機(jī)正反轉(zhuǎn)程序存在的問(wèn)題 [打印本頁(yè)]

作者: jony1122    時(shí)間: 2024-3-17 21:07
標(biāo)題: 單片機(jī)直流電機(jī)正反轉(zhuǎn)程序存在的問(wèn)題
下面這個(gè)馬達(dá)正反轉(zhuǎn)程序是我用論壇里的紅綠燈程序改的,存在以下問(wèn)題:1.開機(jī)直接就啟動(dòng)了,需求是按下P2^0才啟動(dòng),P2^0是點(diǎn)動(dòng)開關(guān);
2.反轉(zhuǎn)后停止,現(xiàn)在是直接就停止了,需求在停止需保持1秒再斷開;

另外有點(diǎn)不理解的是
case 1:
start=1;cw=0;ccw=1;stop=1;這里啟動(dòng)不是關(guān)閉的嗎,為什么會(huì)通呢。

各位幫忙看看是需要改動(dòng)哪里。
感謝!
單片機(jī)源程序如下:
  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4. sbit start = P2^0;  //啟動(dòng)
  5. sbit cw = P2^1;     //馬達(dá)正轉(zhuǎn)
  6. sbit ccw = P2^2;    //馬達(dá)反轉(zhuǎn)
  7. sbit stop = P2^3;   //馬達(dá)停止


  8. uchar Time_Count = 0,Flash_Count = 0,Operation_Type = 1;

  9. void T0_INT() interrupt 1
  10. {
  11.          TH0 = -50000/256;
  12.         TL0 = -50000%256;
  13.         switch(Operation_Type)
  14. {
  15.                 case 1:
  16.                         start=1;cw=0;ccw=1;stop=1;      
  17.                         if(++Time_Count != 10) return;
  18.                         Time_Count=0;
  19.                         Operation_Type = 2;
  20.                         break;
  21.                 case 2:
  22.                         start=1;cw=1;ccw=0;stop=1;
  23.                         if(++Time_Count != 100) return;
  24.                         Time_Count=0;
  25.                         Operation_Type = 3;
  26.                         break;
  27.                 case 3:
  28.                         start=1;cw=1;ccw=1;stop=0;
  29.                         if(++Time_Count != 100) return;
  30.                         Time_Count=0;
  31.                         Operation_Type = 4;
  32.                         break;        
  33.                 case 4:
  34.                         start=1;cw=1;ccw=1;stop=1;
  35.                         if(++Time_Count != 10) return;
  36.                         Time_Count=0;
  37.                         break;        
  38.         }
  39. }


  40. void main()
  41. {
  42.         TMOD = 0x01;
  43.         IE = 0x82;
  44.         TR0 = 1;
  45.         while(1);
  46. }
復(fù)制代碼

作者: Hephaestus    時(shí)間: 2024-3-17 21:42
1)沒(méi)有按鍵操作。2)Operation_Type在中斷里面自動(dòng)的從1增加到4然后保持4不變了,其他地方?jīng)]有修改的語(yǔ)句。





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