標(biāo)題: 自己寫的電機(jī)驅(qū)動(dòng)機(jī)械鎖單片機(jī)程序+限位+可升級(jí)無線和藍(lán)牙紅外線控制 [打印本頁]

作者: 冰冰潔潔    時(shí)間: 2019-1-13 16:03
標(biāo)題: 自己寫的電機(jī)驅(qū)動(dòng)機(jī)械鎖單片機(jī)程序+限位+可升級(jí)無線和藍(lán)牙紅外線控制
TB@@@2.9元買個(gè)幾個(gè)小電機(jī)鎖,無任何電路驅(qū)動(dòng)部分,金屬減速箱力量很大,手弄不不停。只是一直沒寫程序直接3.6V電就能轉(zhuǎn),但是用來開鎖沒程序控制不行,一直轉(zhuǎn)會(huì)打壞齒輪。。。。 就幾根線就不畫電路圖了,L298直驅(qū)就行。

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


//電機(jī)鎖單片程序///
  1. #include<AT89x51.H>
  2. #define uint    unsigned int                          //重定義無符號(hào)整數(shù)類型
  3. #define uchar   unsigned char                         //重定義無符號(hào)字符類型
  4. /******************* 驅(qū)動(dòng)接線定義**************************************/
  5. #define Left_moto_go      {P0_0=1,P0_1=0;}    //正轉(zhuǎn)
  6. #define Left_moto_back    {P0_0=0,P0_1=1;}    //反轉(zhuǎn)
  7. #define Left_moto_Stop    {P0_0=0,P0_1=0;}    //停轉(zhuǎn)  


  8. sbit k1=P1^0;//正轉(zhuǎn)按鍵
  9. sbit k2=P1^1;//反轉(zhuǎn)按鍵

  10. sbit D1=P1^2;//正轉(zhuǎn)限位1
  11. sbit D2=P1^3;//反轉(zhuǎn)限位2


  12. bit kk=1;//正轉(zhuǎn)標(biāo)志位


  13. bit kk2=1;//反轉(zhuǎn)標(biāo)志位

  14. /************************************************************************/      
  15. //延時(shí)函數(shù)      
  16.    void delay(unsigned int k)
  17. {    unsigned int x,y;
  18.          for(x=0;x<k;x++)
  19.            for(y=0;y<2000;y++);
  20. }
  21. void keyscan()
  22. {
  23. if(k1==0)
  24. {
  25. kk=0;//正轉(zhuǎn)標(biāo)志位               
  26.         }

  27. if(k2==0)
  28. {  
  29. kk2=0;        //反轉(zhuǎn)標(biāo)志位      
  30.         }           
  31. }


  32. /****************************主函數(shù)*****************************************/                 
  33.         void main(void)
  34. {

  35.         while(1)                                                      
  36.             {
  37.                    keyscan();//按鍵
  38.                               
  39. /////////////////////////正轉(zhuǎn)開鎖//////////////////////////////////////////                              
  40. if(kk==0)
  41.          {
  42.   Left_moto_go;         //正轉(zhuǎn)
  43.         if(D1==1)//限位1
  44.         {      
  45.         Left_moto_back;//正轉(zhuǎn)、、回轉(zhuǎn)一點(diǎn)松開限位               
  46.         }
  47.         else
  48.         {
  49.         Left_moto_Stop      
  50.                
  51.         kk=1;      
  52.         }      
  53. }      
  54. ////////////////////////反轉(zhuǎn)上鎖//////////////////////////////////////////         
  55. if(kk2==0)
  56.          {
  57.   Left_moto_back;         //反轉(zhuǎn)
  58.         if(D2==1)//限位1
  59.         {      
  60.         Left_moto_go;//正轉(zhuǎn)、、回轉(zhuǎn)一點(diǎn)松開限位               
  61.         }
  62.         else
  63.         {
  64.                
  65.                 Left_moto_Stop
  66.           kk2=1;      
  67.         }      
  68. }               
  69. }
  70. }      
復(fù)制代碼

全部資料51hei下載地址:
STC89電機(jī)鎖控制OK1.zip (32.53 KB, 下載次數(shù): 39)






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