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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4809|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

兩路電機(jī)驅(qū)動(dòng) H橋L9110 含單片機(jī)源代碼+電路圖

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
電路原理圖如下:


單片機(jī)源程序如下:
  1. #include <reg52.h>

  2. //LMD298輸入控制端定義
  3. sbit IN1 = P1^0;
  4. sbit IN2 = P1^1;        
  5. sbit IN3 = P1^2;        
  6. sbit IN4 = P1^3;

  7. sbit ENA = P1^4;        
  8. sbit ENB = P1^5;

  9. sbit CW = P3^0;                //正轉(zhuǎn)運(yùn)行按鍵
  10. sbit STOP = P3^1;        //停止運(yùn)行按鍵
  11. sbit CCW = P3^2;        //反轉(zhuǎn)運(yùn)行按鍵
  12. sbit ADJ = P3^3;        //調(diào)速運(yùn)行按鍵

  13. bit Run_Status;                //運(yùn)行狀態(tài)位標(biāo)志,
  14.                                         //=0表示電機(jī)在停止?fàn)顟B(tài),可以按鍵正轉(zhuǎn)、反轉(zhuǎn)均可
  15.                                         //=1表示電機(jī)在運(yùn)行狀態(tài),不支持正反轉(zhuǎn)按鍵,只有先停止。防止強(qiáng)行換向帶來(lái)的電流過(guò)大。

  16. unsigned char CYCLE; //周期變量
  17. unsigned char DUTY; //占空比變量,對(duì)應(yīng)于調(diào)速運(yùn)行時(shí)按鍵次數(shù),調(diào)速時(shí)每按一次調(diào)速鍵速度比上次變化10%

  18. /********************************/
  19. /*      延時(shí)函數(shù)               */
  20. /********************************/
  21. void Delay(unsigned int cnt)
  22. {
  23.          while(--cnt);
  24. }
  25. /********************************/
  26. /*      主函數(shù)                             */
  27. /********************************/
  28. main()
  29. {
  30.         TMOD |=0x01;        //定時(shí)器設(shè)置 1ms in 12M crystal
  31.         TH0=(65536-1000)/256;
  32.         TL0=(65536-1000)%256;//定時(shí)1mS
  33.         IE= 0x82;                  //打開(kāi)中斷        
  34.         
  35.         Run_Status=0;
  36.         IN1=1;
  37.         IN2=1;
  38.         IN3=1;
  39.         IN4=1;
  40.         ENA=0;
  41.         ENB=0;

  42.         CYCLE=10;         //周期10ms
  43.         DUTY=0;         //占空比=0

  44.         while(1)
  45.           {
  46.                 if(!STOP)                        //任何時(shí)候按停止鍵,電機(jī)停止運(yùn)行
  47.                 {        
  48.                         Delay(12000);        //延時(shí)去抖動(dòng)
  49.                         if(!STOP)                        
  50.                         {               
  51.                                 //實(shí)際運(yùn)用中,自由停車(chē)或制動(dòng)剎車(chē)可以任選。
  52.                                 Run_Status=0;        //電機(jī)正在停止的狀態(tài)標(biāo)志
  53.                                 IN1=1;                        //IN1=IN2時(shí),電機(jī)1制動(dòng)剎車(chē)
  54.                                 IN2=1;                        
  55.                                 ENA=0;                        //ENA=0時(shí),電機(jī)1自由運(yùn)行到停止
  56.                                 IN3=1;                        //IN3=IN4時(shí),電機(jī)2制動(dòng)剎車(chē)
  57.                                 IN4=1;                        
  58.                                 ENB=0;                        //ENB=0時(shí),電機(jī)2自由運(yùn)行到停止
  59.                                 TR0=0;
  60.                         }
  61.                 }
  62.                 if(!CW&&!Run_Status)//按正轉(zhuǎn)鍵同時(shí)電機(jī)不是正在運(yùn)行時(shí),電機(jī)正轉(zhuǎn)運(yùn)行
  63.                 {
  64.                         Delay(12000);        //延時(shí)去抖動(dòng)
  65.                         if(!CW&&!Run_Status)                        
  66.                         {        
  67.                                 Run_Status=1;        //電機(jī)正在運(yùn)行的狀態(tài)標(biāo)志
  68.                                 IN1=1;                        
  69.                                 IN2=0;                        
  70.                                 ENA=1;        
  71.                                 IN3=1;                        
  72.                                 IN4=0;                        
  73.                                 ENB=1;        
  74.                         }
  75.                 }
  76.                   if(!CCW&&!Run_Status)//按反轉(zhuǎn)鍵同時(shí)電機(jī)不是正在運(yùn)行時(shí),電機(jī)反轉(zhuǎn)運(yùn)行
  77.                 {
  78.                         Delay(12000);        //延時(shí)去抖動(dòng)
  79.                         if(!CCW&&!Run_Status)                        
  80.                         {        
  81.                                 Run_Status=1;        //電機(jī)正在運(yùn)行的狀態(tài)標(biāo)志
  82.                                 IN1=0;                        
  83.                                 IN2=1;                        
  84.                                 ENA=1;        
  85.                                 IN3=0;                        
  86.                                 IN4=1;                        
  87.                                 ENB=1;        
  88.                         }
  89.                 }
  90.                    if(!ADJ)
  91.                 {
  92.                         Delay(15000);        //延時(shí)去抖動(dòng)
  93.                         if(!ADJ)
  94.                         {        
  95.                                 TR0=1;
  96.                                 if(DUTY<CYCLE)        DUTY+=1;        //增加占空比
  97.                                 else                        DUTY=0;
  98.                                 Run_Status=1;
  99.                                 //這里是正轉(zhuǎn)調(diào)速,反轉(zhuǎn)調(diào)速可以自己試著編寫(xiě)
  100.                                 IN1=1;                        
  101.                                 IN2=0;                        
  102.                                 ENA=0;        
  103.                                 IN3=1;                        
  104.                                 IN4=0;                        
  105.                                 ENB=0;        
  106.                          }
  107.                 }
  108.    }
  109. }
  110. /********************************/
  111. /*      定時(shí)器0中斷服務(wù)函數(shù)     */
  112. /********************************/
  113. void Timer0(void) interrupt 1 using 1
  114. {
  115.         static unsigned char Cnt;

  116.         TH0=(65536-1000)/256;
  117.         TL0=(65536-1000)%256;//定時(shí)1mS
  118.         
  119.         if(DUTY==0)                                {Cnt=0;        TR0=0;Run_Status=0;}        //占空比=0時(shí) 停止中斷 可以按正轉(zhuǎn)或反轉(zhuǎn)
  120.         else if(DUTY==CYCLE)        Cnt=CYCLE;
  121.         else                                        Cnt++;
  122.         if(Cnt==DUTY)                //高電平時(shí)間到
  123.         {
  124.                  ENA = 0;
  125.                 ENB = 0;
  126.         }
  127.         if(Cnt == CYCLE)        //低電平時(shí)間到
  128.         {
  129.                 ENA = 1;
  130.                 ENB = 1;
  131.             Cnt=0;
  132.         }
  133. }
復(fù)制代碼

全部資料51hei下載地址:
直流電機(jī)驅(qū)動(dòng)程序.zip (94.85 KB, 下載次數(shù): 31)
電機(jī)模塊.pdf (105.48 KB, 下載次數(shù): 35)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:724172 發(fā)表于 2020-10-10 09:36 | 只看該作者
有實(shí)物圖嗎,我小白一個(gè)
回復(fù)

使用道具 舉報(bào)

板凳
ID:1018833 發(fā)表于 2022-4-16 10:52 | 只看該作者
想要你的電機(jī)原理圖
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表