獨立按鍵控制直流電機轉動
這次先寫一個簡單的直流電機轉動專案吧,下次寫一個高級的多種模塊一起與電極聯動的專案,
直流電機介紹
直流電機是把直流電能變為機械能,作為機電執行元部件,直流電機內部有一個閉合的主磁路,主磁通在主磁路中流動,同時與兩個電路交聯,其中一個電路是用以產生磁通的,稱為激磁電路;另一個電路是用來傳遞功率的,稱為功率回路或電樞回路,現行的直流電機都是旋轉電樞式,也就是說,激磁繞組及其所包圍的鐵芯組成的磁極為定子,帶換向單元的電樞繞組和電樞鐵芯結合構成直流電機的轉子,
直流電機和單片機連接原理圖

直流電機與單片機連接實物圖

獨立按鍵檢測

程式分析
首先定義頭檔案,然后再對資料型別進行宣告,根據原理圖定義直流電機和獨立按鍵埠,定義延時函式,撰寫單片機的按鍵檢測程式時,一般在檢測案件按下時加入去抖延時,第二個if判斷陳述句再次判斷按鍵是否按下,將點擊狀態取反,用while語檢測按鍵是否被松開,
#include<reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit moto=P1^0; //定義直流電機埠
sbit k1=P3^1; //定義k1埠
void delay(u16 i) //定義延時函式
{
while(i--);
}
void keypros() //按鍵處理函式,判斷按鍵K1是否按下
{
if(k1==0) //檢測按鍵K1是否按下
{
delay(1); //消抖
if(k1==0) //再次判斷按鍵是否按下
{
moto=~moto; //電機狀態取反
}
while(~k1); //檢測按鍵是否被松開
}
}
void main()
{
moto = 0; //關閉電機
while(1)
{
keypros(); //按鍵處理函式
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282113.html
標籤:其他
