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

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

QQ登錄

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

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

基于51單片機(jī)的L298N直流電機(jī)調(diào)速系統(tǒng)Proteus仿真程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本此設(shè)計(jì)選擇STC89C52單片機(jī)作為主控芯片,選取帶有光電編碼器的直流電機(jī)作為被控對(duì)象,利用單片機(jī)的T0定時(shí)器產(chǎn)生PWM信號(hào)并送到直流電機(jī)。在Proteus仿真環(huán)境下搭建了L298N直流電機(jī)驅(qū)動(dòng)電路、矩陣鍵盤掃描電路以及LCD12864顯示電路。實(shí)現(xiàn)了直流電機(jī)的啟動(dòng)、加速、正轉(zhuǎn)、反轉(zhuǎn)、制動(dòng)等功能。同時(shí),采用PID控制算法可實(shí)現(xiàn)電機(jī)速度在特定的場(chǎng)合實(shí)現(xiàn)自動(dòng)切換。具體見(jiàn)附件。


單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>       
  3. #include<math.h>

  4. #include "lcd.h"
  5. #include "Key.h"
  6. #include "Motor.h"
  7. #include "LCD12864.h"
  8. #include "KeyBoard.h"
  9. #include "LCD12864.h"
  10. #include "LcdShow.h"
  11. #include "PID.h"

  12. extern uchar State_Flag;
  13. extern uchar Fwd_Flag;
  14. extern uchar Rev_Flag;

  15. unsigned int  KeyValue;

  16. unsigned int idata pwm_t;//周期
  17. unsigned int idata Impluse,Time_Count,ImpluseR;
  18. uchar idata Stop_Flag,Run_Flag,Curve_Flag;

  19. uint idata Set_Speed;  //  設(shè)定轉(zhuǎn)速
  20. unsigned char idata Sz_Flag,Sr_Flag;  // 記錄A相觸發(fā)后  ,B相高低電平的標(biāo)志
  21. float idata L_Speed,R_Speed,ReaSpeed;

  22. uint idata PWM_Out,R_Duty,L_Duty,Turn_now;
  23. sbit LSB_L = P1^0;    // LSB_L
  24. sbit LSB_R = P1^1;    // LSB_R

  25. void TimerInit(void)                //@11.0592MHz
  26. {
  27.        
  28.         TMOD=0x01;                //定時(shí)器模式

  29.         TL0 = 0x18;                //初值      1ms  
  30.         TH0 = 0xFC;                //初值
  31.        
  32.         IT0 = 1;         //設(shè)置下降沿觸發(fā) 還是低電平觸發(fā) 0低電平
  33.         IT1 = 1;         //設(shè)置下降沿觸發(fā) 還是低電平觸發(fā) 0低電平
  34.   EA  = 1;
  35.         EX0 = 1;
  36.         EX1 = 1;
  37.        
  38.         ET0 = 1;
  39.         TR0 = 1;               

  40. }

  41. void main()
  42. {
  43.                   LED = 0;       
  44.        
  45.             Stop_Flag  = 0;
  46.             Lcd_Initial();
  47.                         TimerInit();
  48.                         Set_Speed = 0;
  49.          Lcd_Clear();
  50.                 while(1)
  51.                 {
  52.                         KeyValue = Get_Keyvalue();   //  矩陣鍵盤掃描
  53.                         if(KeyValue == 14)   // 輸入速度
  54.       {
  55.                           Set_Speed = SpeedInput();       
  56.                                 KeyValue = 16;
  57.             }
  58.                         Key_Process();
  59.                         if(Run_Flag)
  60.                         {
  61.                                 Set_Speed = 80;
  62.                                 Run_Flag = 0;
  63.                         }
  64.                
  65.                         if(State_Flag && ~Stop_Flag)       
  66.                         {
  67.                           PWM_Out = PID_Calculate(Set_Speed,abs(ReaSpeed));
  68.                                 R_Duty = PWM_Out + Turn_now;
  69.                                 L_Duty = PWM_Out - Turn_now;
  70.                         }
  71.                         else
  72.                                 PWM_Out = 0;  // 停止  
  73.                         Lcd_Show();
  74.          }          
  75. }

  76.        
  77. //定時(shí)器0中斷
  78. void timer0() interrupt 1
  79. {
  80.         static int i;
  81.         TL0 = 0x18;                //初值
  82.         TH0 = 0xFC;                //初值
  83.        
  84.        
  85.         pwm_t++;
  86.   Time_Count++;;
  87.         if(pwm_t == 500)   //500ms
  88.         {
  89.                 pwm_t = 0;
  90.                 if(Stop_Flag)
  91.                 {
  92.                         i++;
  93.                         L_Duty = 0;
  94.                         R_Duty = 0;
  95.                         if(i<31)
  96.                         {
  97.                      LED = ~LED;
  98.                                  if(i == 30)  
  99.                                  {
  100.                                          Stop_Flag = 0;
  101.                                          i = 0;
  102.                                          Set_Speed = 30;
  103.                                  }
  104.                         }
  105.                 }
  106.         }               
  107.         if( pwm_t<L_Duty)
  108.                   MotorL_Control();       
  109.                 else
  110.                         MotorL_Stop();
  111.        
  112.         if( pwm_t<R_Duty)
  113.                   MotorR_Control();       
  114.    else
  115.                    MotorR_Stop();
  116.         /*---------M法 測(cè)速------------*/
  117.         if(Time_Count == 100 )    //  100ms
  118.          {
  119.                  
  120.                 Control();
  121.                 Time_Count = 0;
  122.                 Impluse = 0;
  123.                 ImpluseR = 0;
  124.          }
  125. }


  126. void int0() interrupt 0
  127. {
  128.         Impluse++;
  129.          if(LSB_L == 1)
  130.                          Sz_Flag = 1;    //  正反轉(zhuǎn)標(biāo)志位 A相下降沿,B相高電平
  131.          
  132.          else Sz_Flag = 0;
  133.           LSB_L = 1;
  134. }


  135. void int1() interrupt 2   // 外部中斷1   用于測(cè) 右輪的速度
  136. {
  137.         ImpluseR++;
  138.          if(LSB_R == 1)
  139.                          Sr_Flag = 1;       //  正反轉(zhuǎn)標(biāo)志位 A相下降沿,B相高電平
  140.          
  141.          else Sr_Flag = 0;
  142.           LSB_R = 1;
  143. }
復(fù)制代碼

Proteus仿真.rar

453.92 KB, 下載次數(shù): 290, 下載積分: 黑幣 -5

Proteus仿真原理圖

程序.rar

107.16 KB, 下載次數(shù): 267, 下載積分: 黑幣 -5

源程序帶有LCD2864底層庫(kù)

設(shè)計(jì)51hei.pdf

1.15 MB, 下載次數(shù): 209, 下載積分: 黑幣 -5

詳細(xì)的設(shè)計(jì)報(bào)告

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏17 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:904606 發(fā)表于 2021-4-28 21:19 | 只看該作者
發(fā)現(xiàn)了這個(gè)帖子,十分感謝您的分享!程序拿走學(xué)習(xí)了!
回復(fù)

使用道具 舉報(bào)

板凳
ID:903667 發(fā)表于 2021-4-29 10:36 | 只看該作者
謝謝提供參考,不知道是否能仿真 FOC 模式?
回復(fù)

使用道具 舉報(bào)

地板
ID:929166 發(fā)表于 2021-5-29 17:43 | 只看該作者
keyway 發(fā)表于 2021-4-29 10:36
謝謝提供參考,不知道是否能仿真 FOC 模式?

這個(gè)proteous附件是個(gè)圖片
有proteous文件嗎

回復(fù)

使用道具 舉報(bào)

5#
ID:920848 發(fā)表于 2021-6-2 01:17 | 只看該作者
仿真要如何實(shí)現(xiàn)?
回復(fù)

使用道具 舉報(bào)

6#
ID:328014 發(fā)表于 2021-6-2 03:46 | 只看該作者
xyqcrg 發(fā)表于 2021-6-2 01:17
仿真要如何實(shí)現(xiàn)?

樓主的仿真是用Proteus7.5畫(huà)的,需要用這個(gè)版本才能打開(kāi),效果如圖:

51hei.png (21.69 KB, 下載次數(shù): 101)

51hei.png
回復(fù)

使用道具 舉報(bào)

7#
ID:328253 發(fā)表于 2021-12-19 19:38 | 只看該作者
林小小小惜 發(fā)表于 2021-5-29 17:43
這個(gè)proteous附件是個(gè)圖片
有proteous文件嗎

要用protecous打開(kāi)哦
回復(fù)

使用道具 舉報(bào)

8#
ID:328253 發(fā)表于 2021-12-19 19:38 | 只看該作者
51hei團(tuán)團(tuán) 發(fā)表于 2021-6-2 03:46
樓主的仿真是用Proteus7.5畫(huà)的,需要用這個(gè)版本才能打開(kāi),效果如圖:

感謝回答
回復(fù)

使用道具 舉報(bào)

9#
ID:415044 發(fā)表于 2022-1-6 15:43 | 只看該作者
這個(gè)怎么啟動(dòng),沒(méi)按鍵開(kāi)始啊
回復(fù)

使用道具 舉報(bào)

10#
ID:878353 發(fā)表于 2022-1-9 19:39 | 只看該作者
很不錯(cuò)!看起來(lái)很高大上!
回復(fù)

使用道具 舉報(bào)

11#
ID:373253 發(fā)表于 2022-4-3 16:57 | 只看該作者
覺(jué)得真不錯(cuò),下載閱讀看看
回復(fù)

使用道具 舉報(bào)

12#
ID:1086796 發(fā)表于 2023-7-1 22:33 | 只看該作者
下載了你的三個(gè)文件,質(zhì)量很高。但是,仿真時(shí)發(fā)現(xiàn)電機(jī)不能正轉(zhuǎn),同時(shí),提示:Parameter <INVERT> not defined in INVERT of U1. [LCD2]和Non-existant pin [<INVERT>] specified by [INVERT]. [LCD2_U1]
不知道怎么解決?
回復(fù)

使用道具 舉報(bào)

13#
ID:1118367 發(fā)表于 2024-4-27 18:29 | 只看該作者
拿走去做研究啦
回復(fù)

使用道具 舉報(bào)

14#
ID:1140214 發(fā)表于 2024-12-19 08:54 | 只看該作者
我黑幣不夠所以只下了程序,原理圖我按照上圖連接,但運(yùn)行時(shí)報(bào)錯(cuò)了,各位大佬
請(qǐng)幫我看看哪里錯(cuò)了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美高清dvd碟片 | 欧美一级在线免费观看 | 91福利电影在线观看 | 国产精品久久久爽爽爽麻豆色哟哟 | 中国xxxx性xxxx产国 | 日韩一区二区三区精品 | 亚洲在线 | 午夜精品久久久久久 | 国产激情视频在线 | 成人亚洲精品久久久久软件 | 亚欧洲精品在线视频免费观看 | 成人av资源在线 | 午夜精品一区二区三区在线视频 | 成人欧美一区二区三区在线播放 | 亚洲 中文 欧美 日韩 在线观看 | 美女久久久| 综合网在线 | 亚洲精品女人久久久 | 一级看片| 一a一片一级一片啪啪 | 成人h视频在线 | 日韩中文字幕在线不卡 | 狠狠久| 五月婷婷激情网 | 亚洲天堂中文字幕 | xnxx 日本免费 | 欧美激情免费在线 | 夜夜爽99久久国产综合精品女不卡 | 三级免费毛片 | 密色视频| 7777在线视频 | 国产精品99久久久久久大便 | 九九热在线精品视频 | 人人干人人干人人干 | 91精品国产麻豆 | 国产精品爱久久久久久久 | 国产精品99久久久久久人 | www.日本精品 | 91国在线 | 国产无人区一区二区三区 | 一区二区免费 |