精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于單片機的直流電機控制系統設計

王子變青蛙_35400519 ? 來源:王子變青蛙_35400519 ? 作者:王子變青蛙_35400 ? 2022-06-30 16:01 ? 次閱讀

一、前言

二、模塊介紹及原理說明

三、硬件連接

四、程序說明

五、效果演示

六、代碼鏈接

一、前言

直流電機控制系統,通過按鍵對直流電機進行控制;可以調節直流電機的速度等級,旋轉方向,并將其顯示在LCD1602液晶顯示屏上;簡單的直流電機控制可以應用在遙控車上,還可安裝在自制小風扇等多種小型電器上,但此設計中直流電機控制不是很準確,在一些精密直流電機控制上使用效果較差。

二、模塊介紹及原理說明

單片機最小系統:

pYYBAGK9V16AYE5CAABLgft5QfU993.png

單片機最小系統完成系統運行的最基本電路,單片機最小系統可配合其他模塊或自行搭建電路完成各種實驗功能,單片機最小系統接口設計靈活,電路簡潔,可完成基本的驅動任務。單片機最小系統包括晶振電路、復位電路。復位電路我使用按鍵復位,方便系統的重啟。

LCD1602顯示屏:

pYYBAGK9V3CABA9MAAAkCA37-4s357.png

LCD顯示屏有64行,每行有128列,每8列對應1字節的8位,即每行由16字節,共16×8=128個點組成。

字符型液晶顯示模塊是一種專門用于顯示字母、數字和符號等的點陣式LCD。一般的LCD1602字符型液晶顯示器能夠顯示英文字母、阿拉伯數字、日文片假名和一般性符號。

pYYBAGK9V4CAGoAwAABakL-wn6w295.png

電機驅動:

poYBAGK9V42AeeVAAABLv_UUSsI239.png

NPN三極管Q7、Q9控制電機正轉,當Q7、Q9導通后,OUT控制Q1、Q3三極管導通與關閉的時間來調節直流電機的速度。同理NPN三極管Q5、Q8控制電機正轉,當Q5、Q8導通后,OUT控制Q2、Q4三極管導通與關閉的時間來調節直流電機的速度。

三、硬件連接

pYYBAGK9V5qAHSrJAACQa4imacg170.png

仿真連接

P1^0~P1^3為按鍵控制端口。P1^0控制電機正轉;P1^1控制電機反轉;P1^2加速;P1^3減速。

P0^7~P0^7為顯示屏數據傳輸端口。P0^7~P0^7與顯示屏D0~D7連接。

P2^2、P2^3、P2^4為顯示屏控制端口。P2^2、P2^3、P2^4分別于RS、RW、E相連。

P2^0、P2^1電機正反轉控制。

P2^5電機PWM控制。

四、程序說明

poYBAGK9V6OAKz2XAAEEXyIzXgo112.png

主程序,用以調用不同的函數。控制速度的加減,電機的正反轉,調用LCD1602顯示函數。

void main (void)
{  
int S=0;
char displaytemp[16];//定義顯示區域臨時存儲數組               
PWM_ON=0;
LCD_Init();         //初始化液晶屏
Init_Timer0();    //初始化定時器0
LCD_Write_String(2,1,"V:");	   //正轉

while (1)         //主循環
  {

   if(key3==0)//第三個按鍵,速度等級增加
      {
	  DelayMs(10);    //消抖
	  if(key3==0)
	    {
	       if(PWM_ON=12)S=12;
	    }
		while(!key3);
	  }	
   else if(key4==0)//第四個按鍵,速度等級減小
          {
	         DelayMs(10);
	         if(key4==0)
	           {
	             if(PWM_ON>0)
	                PWM_ON--;
					S--;
					if(S<=0)S=0;
	           }
	   	     while(!key4);
	      }
	if(key1==0)//第一個按鍵,正轉
      {
	  DelayMs(10);
	  if(key1==0)
	    {
	       m=1;n=0;
		   LCD_Write_String(0,0,"T");	   //正轉顯示T
	    }
		while(!key1);
	  }	
   else if(key2==0)//第二個按鍵,反轉
          {
	         DelayMs(10);
	         if(key2==0)
	           {
	             m=0;n=1;
				 LCD_Write_String(0,0,"N");	   //反轉顯示N
	           }
	   	     while(!key2);
	      }	  	
	sprintf(displaytemp,"%3d",S);
    LCD_Write_String(4,1,displaytemp);	//顯示速度等級,一共分為十二個等級
  }
})>

定時器函數,用來控制PWM值占空比的輸出。

void Timer0_isr(void) interrupt 1 
{
 static unsigned char count;
 TH0=(65536-2000)/256;        //重新賦值 2ms
 TL0=(65536-2000)%256;
 
if (count==PWM_ON) 
   {
   DCOUT = 0;        //如果定時等于on的時間,
             //說明作用時間結束,輸出低電平
   }
  count++;
if(count == CYCLE)    //反之低電平時間結束后返回高電平
   {
   count=0;
    if(PWM_ON!=0)   //如果開啟時間是0 保持原來狀態
      DCOUT = 1;   
   }
}

?

LCD1602顯示函數

/*------------------------------------------------
              寫入命令函數
------------------------------------------------*/
 void LCD_Write_Com(unsigned char com) 
 {  
// while(LCD_Check_Busy()); //忙則等待
 DelayMs(5);
 RS_CLR; 
 RW_CLR; 
 EN_SET; 
 DataPort= com; 
 _nop_(); 
 EN_CLR;
 }
/*------------------------------------------------
              寫入數據函數
------------------------------------------------*/
 void LCD_Write_Data(unsigned char Data) 
 { 
 //while(LCD_Check_Busy()); //忙則等待
 DelayMs(5);
 RS_SET; 
 RW_CLR; 
 EN_SET; 
 DataPort= Data; 
 _nop_();
 EN_CLR;
 }
/*------------------------------------------------
                清屏函數
------------------------------------------------*/
//void LCD_Clear(void) 
 //{ 
 //LCD_Write_Com(0x01); 
 //DelayMs(5);
 //}


/*------------------------------------------------
              寫入字符串函數
------------------------------------------------*/
 void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) 
 {     
       
 while (*s) 
 	{     
 LCD_Write_Char(x,y,*s);     
 s++;  x++;   
 	}
 }
/*------------------------------------------------
              寫入字符函數
------------------------------------------------*/
void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) 
 {     
 if (y == 0) 
 	{     
 	LCD_Write_Com(0x80 + x);     
 	}    
 else 
 	{     
 	LCD_Write_Com(0xC0 + x);     
 	}        
 LCD_Write_Data( Data);  
 }
/*------------------------------------------------
              初始化函數
------------------------------------------------*/
 void LCD_Init(void) 
 {
   LCD_Write_Com(0x38);    /*顯示模式設置*/ 
   DelayMs(5); 
   LCD_Write_Com(0x38); 
   DelayMs(5); 
   LCD_Write_Com(0x38); 
   DelayMs(5); 
   LCD_Write_Com(0x38);  
   LCD_Write_Com(0x08);    /*顯示關閉*/ 
   LCD_Write_Com(0x01);    /*顯示清屏*/ 
   LCD_Write_Com(0x06);    /*顯示光標移動設置*/ 
   DelayMs(5); 
   LCD_Write_Com(0x0C);    /*顯示開及光標設置*/
   }
   

延時函數,用于按鍵的消抖,以及程序的延時。

/*------------------------------------------------
 uS延時函數,含有輸入參數 unsigned char t,無返回值
 unsigned char 是定義無符號字符變量,其值的范圍是
 0~255 這里使用晶振12M,精確延時請使用匯編,大致延時
 長度如下 T=tx2+5 uS 
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{   
 while(--t);
}
/*------------------------------------------------
 mS延時函數,含有輸入參數 unsigned char t,無返回值
 unsigned char 是定義無符號字符變量,其值的范圍是
 0~255 這里使用晶振12M,精確延時請使用匯編
------------------------------------------------*/
void DelayMs(unsigned char t)
{
     
 while(t--)
 {
     //大致延時1mS
     DelayUs2x(245);
	 DelayUs2x(245);
 }
}

五、效果演示

仿真演示

https://live.csdn.net/v/220628

六、代碼鏈接

歡迎留言評論分享自己的看法,如有錯誤歡迎指正。關注公眾號:“小小創客”回復“直流電機控制系統設計“獲得源碼及仿真。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6032

    文章

    44514

    瀏覽量

    632953
  • 控制系統
    +關注

    關注

    41

    文章

    6543

    瀏覽量

    110472
  • 直流電機
    +關注

    關注

    36

    文章

    1708

    瀏覽量

    70072
收藏 人收藏

    評論

    相關推薦

    51單片機直流電機控制

    的轉速,能夠很方便的實現電機的智能控制。其間是通過AT89C52單片機產生脈寬可調的脈沖信號并輸入到L298驅動芯片來控制直流電機工作的。該
    發表于 08-06 15:42

    單片機在汽車駕駛模擬器中的應用

    的生成元件,其可靠性無法保證,且模擬誤差大。提出基于單片機直流電機控制系統模擬汽車行駛過程中受到的回正力矩。該系統中上位實時計算出汽車受
    發表于 04-24 09:44

    基于STM32單片機直流電機控制系統加減速正反轉設計方案原理圖程序資料下載

    硬件電路的設計3.1系統的功能分析及體系結構設計3.1.1系統功能分析本設計由STM32F103C8T6單片機核心板電路+L298N電機驅動電路+按鍵電路+電源電路組成。1、通過按鍵可
    發表于 06-29 08:03

    基于單片機直流電機控制系統

    資料下載地址-1009(百度網盤):點擊下載此仿真是基于單片機直流電機控制系統,使用了用L298驅動直流電機,并用按鍵控制
    發表于 09-03 07:23

    怎樣去設計基于51單片機直流電機控制系統

    /********************************************************/#include#define uint unsigned int #define uchar unsigned char/********************************************************/***it k1=P3^4; //啟動/停止按鍵***it k2=P3^5; //減速按鍵***it k3=..
    發表于 09-03 07:32

    如何實現STM32單片機直流電機控制系統加減速正反轉的設計?

    如何實現STM32單片機直流電機控制系統加減速正反轉的設計?
    發表于 10-15 09:33

    基于單片機直流電機控制系統在動態送風裝置中的應用

    摘 要 介紹一種基于單片機的動態送風控制系統。該控制系統以C8051F330單片機為處理器,配合控制電路,采用脈寬調制技術,根據自然風特性,
    發表于 07-21 22:41 ?46次下載

    基于TB6612FNG和單片機直流電機控制系統設計

      本設計中使用的TB6612FNG是一款新型驅動器件,能獨立雙向控制2個直流電機,它具有很高的集成度,同時能提供足夠的輸出能力,運行性能和能耗方面也具有優勢,因此在集成
    發表于 08-26 17:21 ?1.1w次閱讀
    基于TB6612FNG和<b class='flag-5'>單片機</b>的<b class='flag-5'>直流電機</b><b class='flag-5'>控制系統</b>設計

    基于AVR單片機的無刷直流電機控制系統設計

    基于AVR單片機的無刷直流電機控制系統設計
    發表于 03-06 15:51 ?158次下載
    基于AVR<b class='flag-5'>單片機</b>的無刷<b class='flag-5'>直流電機</b><b class='flag-5'>控制系統</b>設計

    TB6612FNG簡介及其與單片機直流電機控制系統設計

    TB6612FNG簡介及其與單片機直流電機控制系統設計
    發表于 02-17 15:24 ?237次下載

    基于單片機的紅外遙控直流電機控制系統設計

    基于51單片機的紅外遙控直流電機控制系統設計
    發表于 01-22 21:03 ?48次下載

    基于單片機電機控制系統仿真設計-單片機設計

    資料下載地址-1009(百度網盤):點擊下載此仿真是基于單片機直流電機控制系統,使用了用L298驅動直流電機,并用按鍵控制
    發表于 11-12 17:21 ?7次下載
    基于<b class='flag-5'>單片機電機</b><b class='flag-5'>控制系統</b>仿真設計-<b class='flag-5'>單片機</b>設計

    基于STM32單片機直流電機控制系統加減速正反轉設計方案原理圖程序

    硬件電路的設計3.1系統的功能分析及體系結構設計3.1.1系統功能分析本設計由STM32F103C8T6單片機核心板電路+L298N電機驅動電路+按鍵電路+電源電路組成。1、通過按鍵可
    發表于 12-24 19:22 ?8次下載
    基于STM32<b class='flag-5'>單片機</b>的<b class='flag-5'>直流電機</b><b class='flag-5'>控制系統</b>加減速正反轉設計方案原理圖程序

    基于51單片機直流電機控制系統Proteus仿真

    基于51單片機直流電機控制系統Proteus仿真
    發表于 02-07 15:37 ?188次下載

    基于單片機直流電機控制系統模擬汽車行駛過程中受到的回正力矩

    電子發燒友網站提供《基于單片機直流電機控制系統模擬汽車行駛過程中受到的回正力矩.pdf》資料免費下載
    發表于 10-19 10:08 ?0次下載
    基于<b class='flag-5'>單片機</b>的<b class='flag-5'>直流電機</b><b class='flag-5'>控制系統</b>模擬汽車行駛過程中受到的回正力矩