找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3004|回復(fù): 1
收起左側(cè)

單片機(jī)+pwm波控制直流電機(jī) Proteus仿真程序

[復(fù)制鏈接]
ID:777140 發(fā)表于 2020-8-1 20:57 | 顯示全部樓層 |閱讀模式
自己寫的一個單片機(jī)程序,簡單的控制直流電機(jī)正反轉(zhuǎn)
利用定時(shí)器,產(chǎn)生pwm波
仿真圖和代碼如下
51hei圖片20200801204728.png

單片機(jī)源程序如下:
  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. //定義按鍵
  5. sbit qi=P1^0;                                                //默認(rèn)正轉(zhuǎn),占空比50%
  6. sbit zheng=P1^1;                                
  7. sbit fan=P1^2;
  8. sbit up=P1^3;                        //高速,占空比90%
  9. sbit down=P1^4;                        //低速,占空比10%
  10. //定義驅(qū)動
  11. sbit IN1=P2^0;
  12. sbit IN2=P2^1;
  13. sbit EN1=P2^2;                                        //使能引腳
  14. //
  15. uchar count;        //進(jìn)入中斷次數(shù)
  16. uchar pwm;                //根據(jù)這個數(shù)值來控制占空比
  17. bit flag;                        //根據(jù)flag判斷正反轉(zhuǎn)

  18. //延時(shí)10ms左右
  19. void delay10ms()
  20. {
  21.         uint i=1000,j=2500;
  22.   for(;j>0;j--)
  23.   {
  24.             while(i)
  25.                                 i--;
  26.   }

  27. }
  28. //定時(shí)器初始
  29. void timer0_init()               
  30. {
  31.         TMOD=0x02;        //定時(shí)器0,方式2
  32.         TH0=0xa3;                //假設(shè)晶振為11.0592M,定時(shí)100us
  33.         TL0=0xa3;               
  34.         ET0=1;                        //開定時(shí)器0中斷
  35.         EA=1;                                //開總中斷
  36.         
  37. }
  38. //中斷
  39. void timer0() interrupt 1
  40. {
  41.         count++;
  42.         if(count==pwm)
  43.                 EN1=1;
  44.         if(count==20)
  45.         {
  46.                 EN1=0;
  47.                 count=0;
  48.         }
  49. }
  50. //主函數(shù)
  51. void main()
  52. {
  53.         
  54.                 count=0;
  55.                 pwm=10;                        //初始占空比50%
  56.                 timer0_init();

  57.         while(1)
  58.    {
  59.                  if(qi==0)
  60.                         {
  61.                                 delay10ms();
  62.                                         if(qi==0)
  63.                                                  TR0=1;                        //開定時(shí)器
  64.                         }
  65.                         
  66.                         if(fan==0)                                //按下開始反轉(zhuǎn)
  67.                         {
  68.                                 delay10ms();
  69.                                         if(fan==0)
  70.                                         {
  71.                                                 IN1=0;
  72.                                                 IN2=1;
  73.                                         }
  74.                         }
  75.                         
  76.                         if(zheng==0)                //按下開始正轉(zhuǎn)
  77.                         {
  78.                                 delay10ms();
  79.                                         if(zheng==0)
  80.                                         {
  81.                                                 IN1=1;
  82.                                                 IN2=0;
  83.                                         }
  84.                                        
  85.                         }
  86.                         if(up==0)                                //按下電機(jī)高速轉(zhuǎn)
  87.                         {
  88.                                 delay10ms();
  89.                                         if(up==0)
  90.                                                 pwm=2;
  91.                         }
  92.                         if(down==0)
  93.                         {
  94.                                 delay10ms();
  95.                                         if(down==0)
  96.                                                 pwm=18;        
  97.                         }
  98.    }



  99. }
復(fù)制代碼

51hei.png

全部資料51hei下載地址:
直流電機(jī).zip (243.46 KB, 下載次數(shù): 72)

回復(fù)

使用道具 舉報(bào)

ID:89286 發(fā)表于 2020-8-2 22:20 | 顯示全部樓層
Thanks for sharing
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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