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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 16281|回復: 12
收起左側

用51單片機控制直流電機的啟停、轉向,用PWM控制轉速

  [復制鏈接]
ID:98792 發表于 2018-11-28 01:21 | 顯示全部樓層 |閱讀模式
51單片機控制直流小電機的轉速轉向以及啟停

待機界面

待機界面

停機狀態

停機狀態

正轉

正轉

反轉

反轉
0.png

PWM直流電機.zip

77.54 KB, 下載次數: 366, 下載積分: 黑幣 -5

源文件和仿真

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:419064 發表于 2018-11-28 13:12 | 顯示全部樓層
當下沒有L298N集成在手,想用手頭的ULN2003A驅動步進電機( 5V 4相5線步進電機 28YBJ-48 28BYJ48 減速步進電機),如下圖原理:
DC 5V 4相5線步進電機 28YBJ-48 28BYJ48 減速步進電機接線原理ULN2003驅動.png
DC 5V 4相5線步進電機 28YBJ-48 28BYJ48 減速步進電機接線原理測試.png
DC 5V 4相5線步進電機 28YBJ-48 28BYJ48 減速步進電機接線原理.png
DC 5V 4相5線步進電機 28YBJ-48 28BYJ48 減速步進電機接線原理2.png
28YBJ-48 28BYJ48 減速步進電機.jpg
請問樓主,我用這個程序使用AT89C52+ULN2003A驅動這個5V的:28YBJ-48 28BYJ48 減速步進電機,可以不?
回復

使用道具 舉報

ID:1 發表于 2018-11-28 01:53 | 顯示全部樓層
樓主的源碼:
  1. #include"reg51.h"
  2. #include"LCD1602.h"
  3. sbit zheng         =         P3^0;
  4. sbit fan          =         P3^1;
  5. sbit K1                =        P1^0;
  6. sbit K2                =        P1^1;
  7. sbit K3                =        P1^2;
  8. sbit K4                =        P1^3;
  9. unsigned int t=50,tim=0,num=0;
  10. unsigned char flag=0,sec=0,dir=0,disp=0;
  11. void delay_ms(unsigned int tim)
  12. {
  13.         unsigned int i,j;
  14.         for(i=0;i<tim;i++);
  15.                 for(j=0;j<120;j++);
  16. }                                  
  17. void key_control()
  18. {
  19.          if(K1==0&&flag==1)
  20.          {
  21.                  delay_ms(100);
  22.                 //while(!K1);
  23.                 if(t<100)        t++;
  24.          }
  25.          if(K2==0&&flag==1)
  26.          {
  27.                  delay_ms(100);
  28.                 //while(!K2);
  29.                 if(t>0)          t--;
  30.          }
  31.          if(K3==0)
  32.          {
  33.                  delay_ms(10);
  34.                 while(!K3);
  35.                 flag=1-flag;
  36.          }
  37.          if(K4==0)
  38.          {
  39.                  delay_ms(10);
  40.                 while(!K4);
  41.                 dir=1-dir;
  42.          }
  43. }
  44. void Display()
  45. {
  46.         if(flag==1)
  47.         {         
  48.                 if((100-t)/100==0)
  49.                         LCDDispChar(6,1,' ');
  50.                 else
  51.                         LCDDispNum(6,1,(100-t)/100);

  52.                 if((100-t)/100==0&&(100-t)%100/10==0)
  53.                         LCDDispChar(7,1,' ');
  54.                 else
  55.                         LCDDispNum(7,1,(100-t)%100/10);
  56.                                
  57.                 LCDDispNum(8,1,(100-t)%10);
  58.                 LCDDispChar(9,1,'%');
  59.                 LCDDispString(11,1,"On ");
  60.                 if(dir)               
  61.                 {
  62.                         LCDDispChar(14,1,'Z');
  63.                         LCDDispChar(15,1,'z');
  64.                 }
  65.                 else
  66.                 {
  67.                         LCDDispChar(14,1,'F');
  68.                         LCDDispChar(15,1,'z');
  69.                 }
  70.         }
  71.         else
  72.         {
  73.                 LCDDispChar(6,1,' ');
  74.                 LCDDispChar(7,1,'-');
  75.                    LCDDispChar(8,1,'-');
  76.                 LCDDispChar(9,1,'-');
  77.                 LCDDispChar(14,1,' ');
  78.                 LCDDispChar(15,1,' ');
  79.                 LCDDispString(11,1,"Off");       
  80.         }       
  81. }
  82. void Display_Speed()
  83. {
  84.         if(num/100==0)
  85.                 LCDDispChar(7,2,' ');
  86.         else
  87.                 LCDDispNum(7,2,num/100);

  88.         if(num/100==0&&num%100/10==0)
  89.                 LCDDispChar(8,2,' ');
  90.         else
  91.                 LCDDispNum(8,2,num%100/10);
  92.         LCDDispNum(9,2,num%10);
  93. }
  94. void Timer_Init()
  95. {
  96.         TMOD = 0x11;
  97.         TH0  = 0x3c;
  98.         TL0  = 0xb0;        
  99.         ET0  = 1;  
  100.         TR0  = 1;
  101.                                  
  102.         EX0  = 1;
  103.         IT0  = 1;
  104.          
  105.         TH1  = (65536-1000)/256;
  106.         TL1  = (65536-1000)%256;
  107.         ET1  = 1;               
  108.         TR1  = 1;

  109.         EA   = 1;         
  110. }
  111. void main()
  112. {
  113.         LCDInit();
  114.         LCDDispString(0,1,"Duty :");
  115.         LCDDispString(0,2,"Speed:       r/s");
  116.         Timer_Init();
  117.         while(1)
  118.         {
  119.                 key_control();
  120.                 Display();
  121.                 if(disp)
  122.                 {
  123.                         disp=0;
  124.                         Display_Speed();                               
  125.                         num=0;
  126.                 }
  127.         }
  128. }
  129. void Interrupt1() interrupt 0       
  130. {
  131.         num++;       
  132. }
  133. void Timer1() interrupt 3
  134. {
  135.         TH1  = (65536-1000)/256;
  136.         TL1  = (65536-1000)%256;
  137.         if(flag)
  138.         {
  139.                 tim++;
  140.                 if(dir)
  141.                 {
  142.                         fan=0;
  143.                         if(t<=tim)
  144.                                 zheng=1;
  145.                         else
  146.                                 zheng=0;
  147.                         if(tim==101)
  148.                         {
  149.                                 tim=0;
  150.                                 zheng=~zheng;
  151.                         }
  152.                 }
  153.                 else
  154.                 {
  155.                         zheng=0;
  156.                         if(t<=tim)
  157.                                 fan=1;
  158.                         else
  159.                                 fan=0;
  160.                         if(tim==101)
  161.                         {
  162.                                 tim=0;
  163.                                 fan=~fan;
  164.                         }
  165.                 }
  166.         }
  167.         else
  168.         {
  169.                 zheng=1;
  170.                 fan  =1;
  171.         }
  172. }
  173. void Timer0() interrupt 1
  174. {
  175.         TH0  = 0x3c;
  176.         TL0  = 0xb0;                                          
  177.         sec++;
  178.         if(sec==20)
  179.         {                                                                         
  180.                 sec=0;
  181.                 disp=1;
  182.         }
  183. }         
復制代碼
回復

使用道具 舉報

ID:419064 發表于 2018-11-28 02:19 | 顯示全部樓層
樓上提取樓主的代碼對我這樣的沒錢窮新人下載學習!很厚道!大贊!!。!!!!謝謝啦!
回復

使用道具 舉報

ID:419064 發表于 2018-11-28 02:26 | 顯示全部樓層
能繼續貼上“LCD1602.H”的代碼就好了。
回復

使用道具 舉報

ID:433349 發表于 2018-11-28 10:42 | 顯示全部樓層
樓上提取樓主的代碼對我這樣的沒錢窮新人下載學習!很厚道!大贊。。。。。。。≈x謝啦!
回復

使用道具 舉報

ID:525407 發表于 2019-5-18 23:44 | 顯示全部樓層
學習了!
回復

使用道具 舉報

ID:538517 發表于 2019-5-27 10:02 來自手機 | 顯示全部樓層
要是能有函數注解就完美了
回復

使用道具 舉報

ID:538517 發表于 2019-5-28 17:25 來自手機 | 顯示全部樓層
這個好,我正需要,謝謝樓主
回復

使用道具 舉報

ID:655515 發表于 2019-12-6 15:11 | 顯示全部樓層
注解在詳細一些就好了,謝謝樓主
回復

使用道具 舉報

ID:298008 發表于 2020-2-22 10:42 | 顯示全部樓層
謝謝樓主分享。!
回復

使用道具 舉報

ID:592703 發表于 2020-2-22 22:20 | 顯示全部樓層
對我這樣的沒錢窮新人下載學習!很厚道!大贊!!
回復

使用道具 舉報

ID:1034867 發表于 2022-6-15 12:06 來自手機 | 顯示全部樓層
sunnywu503 發表于 2018-11-28 02:26
能繼續貼上“LCD1602.H”的代碼就好了。

這個代碼是不完整的嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产 日韩 欧美 在线 | 国产精品一卡二卡三卡 | 毛片免费看的 | 成人深夜福利 | 国产一区二区在线免费观看 | 一级黄色片毛片 | 欧美三区在线观看 | 成人影院午夜 | 国产精品自产拍 | 国产精品亚洲视频 | 精品九九九 | 久久久久久国产精品免费免费 | 成人精品一区二区三区中文字幕 | 成人夜晚看av | 欧美日日 | 久久久一区二区三区四区 | 一本岛道一二三不卡区 | 99热精品在线观看 | 欧美性生活一区二区三区 | 老司机成人在线 | 日本aⅴ中文字幕 | 国产网站在线免费观看 | 久久久久九九九九 | 亚洲高清视频在线 | 国产精品毛片一区二区三区 | 欧美精品一区二区三区在线播放 | 日本二区在线观看 | 午夜视频在线免费观看 | 国产成年人视频 | 欧美精品在线播放 | 国产又色又爽又黄又免费 | 人成精品| 国产精品无码专区在线观看 | 国产精品美女久久久久久免费 | av在线免费观看网站 | 精品国产不卡一区二区三区 | 日本久久精品视频 | 91精品入口蜜桃 | 五十女人一级毛片 | 超碰一区二区 | 日本国产高清 |