久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4822|回復: 2
打印 上一主題 下一主題
收起左側

兩路電機驅動 H橋L9110 含單片機源代碼+電路圖

[復制鏈接]
跳轉到指定樓層
樓主
電路原理圖如下:


單片機源程序如下:
  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;                //正轉運行按鍵
  10. sbit STOP = P3^1;        //停止運行按鍵
  11. sbit CCW = P3^2;        //反轉運行按鍵
  12. sbit ADJ = P3^3;        //調速運行按鍵

  13. bit Run_Status;                //運行狀態位標志,
  14.                                         //=0表示電機在停止狀態,可以按鍵正轉、反轉均可
  15.                                         //=1表示電機在運行狀態,不支持正反轉按鍵,只有先停止。防止強行換向帶來的電流過大。

  16. unsigned char CYCLE; //周期變量
  17. unsigned char DUTY; //占空比變量,對應于調速運行時按鍵次數,調速時每按一次調速鍵速度比上次變化10%

  18. /********************************/
  19. /*      延時函數               */
  20. /********************************/
  21. void Delay(unsigned int cnt)
  22. {
  23.          while(--cnt);
  24. }
  25. /********************************/
  26. /*      主函數                             */
  27. /********************************/
  28. main()
  29. {
  30.         TMOD |=0x01;        //定時器設置 1ms in 12M crystal
  31.         TH0=(65536-1000)/256;
  32.         TL0=(65536-1000)%256;//定時1mS
  33.         IE= 0x82;                  //打開中斷        
  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)                        //任何時候按停止鍵,電機停止運行
  47.                 {        
  48.                         Delay(12000);        //延時去抖動
  49.                         if(!STOP)                        
  50.                         {               
  51.                                 //實際運用中,自由停車或制動剎車可以任選。
  52.                                 Run_Status=0;        //電機正在停止的狀態標志
  53.                                 IN1=1;                        //IN1=IN2時,電機1制動剎車
  54.                                 IN2=1;                        
  55.                                 ENA=0;                        //ENA=0時,電機1自由運行到停止
  56.                                 IN3=1;                        //IN3=IN4時,電機2制動剎車
  57.                                 IN4=1;                        
  58.                                 ENB=0;                        //ENB=0時,電機2自由運行到停止
  59.                                 TR0=0;
  60.                         }
  61.                 }
  62.                 if(!CW&&!Run_Status)//按正轉鍵同時電機不是正在運行時,電機正轉運行
  63.                 {
  64.                         Delay(12000);        //延時去抖動
  65.                         if(!CW&&!Run_Status)                        
  66.                         {        
  67.                                 Run_Status=1;        //電機正在運行的狀態標志
  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)//按反轉鍵同時電機不是正在運行時,電機反轉運行
  77.                 {
  78.                         Delay(12000);        //延時去抖動
  79.                         if(!CCW&&!Run_Status)                        
  80.                         {        
  81.                                 Run_Status=1;        //電機正在運行的狀態標志
  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);        //延時去抖動
  93.                         if(!ADJ)
  94.                         {        
  95.                                 TR0=1;
  96.                                 if(DUTY<CYCLE)        DUTY+=1;        //增加占空比
  97.                                 else                        DUTY=0;
  98.                                 Run_Status=1;
  99.                                 //這里是正轉調速,反轉調速可以自己試著編寫
  100.                                 IN1=1;                        
  101.                                 IN2=0;                        
  102.                                 ENA=0;        
  103.                                 IN3=1;                        
  104.                                 IN4=0;                        
  105.                                 ENB=0;        
  106.                          }
  107.                 }
  108.    }
  109. }
  110. /********************************/
  111. /*      定時器0中斷服務函數     */
  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;//定時1mS
  118.         
  119.         if(DUTY==0)                                {Cnt=0;        TR0=0;Run_Status=0;}        //占空比=0時 停止中斷 可以按正轉或反轉
  120.         else if(DUTY==CYCLE)        Cnt=CYCLE;
  121.         else                                        Cnt++;
  122.         if(Cnt==DUTY)                //高電平時間到
  123.         {
  124.                  ENA = 0;
  125.                 ENB = 0;
  126.         }
  127.         if(Cnt == CYCLE)        //低電平時間到
  128.         {
  129.                 ENA = 1;
  130.                 ENB = 1;
  131.             Cnt=0;
  132.         }
  133. }
復制代碼

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

使用道具 舉報

沙發
ID:724172 發表于 2020-10-10 09:36 | 只看該作者
有實物圖嗎,我小白一個
回復

使用道具 舉報

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产91久久久久久 | 精品久久久久久 | www成年人视频 | 亚洲a视频 | 国产一区二区在线播放 | 成人影院午夜 | 国产精品久久国产精品 | 黄色大片免费观看 | 日韩在线电影 | 成人国内精品久久久久一区 | 国产69精品久久99不卡免费版 | 国产精品视频免费播放 | 国产精品成人一区二区三区 | 国产毛片久久久久久久久春天 | 国产精品久久影院 | www.日本精品 | 日韩资源 | 精品一区二区三区在线视频 | 国产男人的天堂 | 91资源在线观看 | 亚洲综合无码一区二区 | 欧美日韩国产在线观看 | 久久不卡视频 | 特级黄一级播放 | 自拍偷拍中文字幕 | 日韩在线综合网 | 激情五月综合 | 日本污视频 | 亚洲视频中文字幕 | 久久精品成人一区 | 韩日一区二区三区 | 日韩国产精品一区二区三区 | 国产精品久久久乱弄 | 国产一区精品 | 亚洲欧美国产精品久久 | caoporn国产精品免费公开 | 三级在线视频 | 91精品久久久久久久久99蜜臂 | 黄视频网址 | 久久综合av| 成人在线免费观看 |