51微控制器 使用PWM對直流電機調速

2021-09-20 10:36:58 字數 1272 閱讀 7695

pwm(脈寬調變),是靠改變脈衝寬度來控制輸出電壓,通過改變週期來控制其輸出頻率。

(脈衝可以理解為是io口的一次高低電平改變)

使用pwm對電極調速時,是靠改變占空比(改變脈衝寬度)來控制輸出電壓的,電壓較小電機轉速就會下降;再通過改變週期(脈衝的週期)來控制其輸出頻率,脈衝頻率對電機的轉速有著決定性作用,脈衝頻率越高連續性就越好。

我們一般時通過改變占空比來改變電機轉速的。

(占空比:占空比是指乙個脈衝迴圈內,通電(高電平)時間相對於總時間所佔的比例。)

因為51微控制器不附帶pwm硬體電路,所以我們一般通過軟體模擬pwm,具體是利用定時器中斷來實現pwm調速。

改變脈衝寬度:此處利用定時器0的工作方式2(即8位自動裝填 tmod=0x02),一次計時溢位就代表一次脈衝,所以占空比的改變(脈衝寬度的改變是在每一次脈衝改變的)就在中斷函式內進行了。

主要是在中斷函式內進行占空比設定,如下

void timer0() interrupt 1

改變週期:那週期的改變是依據什麼呢?當然是控制溢位時間了(即控制th0和tl0的初始值)脈衝週期=定時器溢位時間x占空比的總份數。

當設定週期為0.01s、占空比總份數為256時,可以根據定時器溢位時間算出th0和tl0的初始值為220。

**經過本人親測,可以實現

#include sbit left_en=p1^4;

sbit right_en=p1^5;

sbit left_advance=p1^3;

sbit left_back=p1^2;

sbit right_advance=p1^6;

sbit right_back=p1^7;

unsigned char pwm_left_val = 200;//左電機占空比值 取值範圍0-170,0最快

unsigned char pwm_right_val = 0;//右電機占空比值取值範圍0-170 ,0最快

unsigned char pwm_t=0;//週期計數變數

/*小車前進*/

void forward()

//定時器0中斷

void timer0() interrupt 1

void main()

}

51 微控制器 鍵控直流電機

題目 用at89c51微控制器組合語言寫個控制電動機正反轉的程式 p3.0的按鈕是控制正轉 p3.1的按鈕是控制反轉 p3.2的按鈕是停止 用最短的組合語言寫出來,如果可以的話請一句句的解釋一下。我不會弄中斷。電路如下 這麼簡單的問題,用不著使用中斷。做而論道編寫的程式如下 直流電機控制 org 0...

51微控制器之直流電機實驗

1 直流電機的基本模型 下圖為一台最簡單的兩極直流電機模型,它的固定部分 定子 為兩個靜止的磁極n s 旋轉部分 子 為電樞線圈abcd,線圈的首端和末端分別接到兩個相互絕緣的圓弧形的換向片上。換向片與一對靜止的電刷b1 b2接觸,b1接電源正極,b2接電源負極。電樞旋轉時,電樞線圈通過換向片和電刷...

直流電機pwm 直流電機的調速方法

直流電機的調速方法 一 概述 一是調節電樞電壓,二是調節勵磁電流,1 常見的微型直流電機,其磁場都是固定的,不可調的永磁體,所以只好調節電樞電壓。調節電樞電壓方法 常用的一是可控矽調壓法,再就是脈寬調變法 pwm pwm的h型屬於調壓調速。pwm的h橋只能實現大功率調速。國內的超大功率調速還要依靠可...