基於51的PWM波控制小車

2021-10-03 06:08:38 字數 1556 閱讀 3353

關於pwm:

51微控制器

電機只有轉or不轉,對應高or低電平,即對應1和0

所以pwm實際上就是實現一定週期內控制高低電平轉換來使電機轉or不轉

高電平就轉,低電平就不轉,如果這兩者具有一定對應週期的話,那就可以實現控制電機的轉速

pwm頻率:每s訊號從高電平回到低電平的次數

pwm占空比:高電平持續時間和低電平持續時間之比

由於51是沒有對應硬體的,所以要使用軟體來模擬pwm,也就是要自己通過定時器來設定pwm的頻率,通過中斷函式來改變高低電平持續時間,從而實現占空比這個概念

例子分析:以100hz的頻率,占空比最大為256,使用定時器0產生pwm訊號,分別調節小車左右兩輪的前進速度。

tl0的計算是這樣來的:

首先確定

設定pwm頻率=100hz

所以週期時間=1/f=0.01s

溢位時間=0.01/256(八位重灌)=0.0000390625s=39.0625us

所以所需溢位次數=39.0625/1.085(乙個機器週期、定時器每加一次需要乙個機器週期)=36

所以tl0=256-36=220

這樣就確定好了對應pwm頻率

然後寫中斷函式,

確定1、pwm_t表示週期(0-256的占空比調節)

當最大占空比為256的時候,完成乙個週期,a、b端不使能

2、當設定左電機占空比為xx值,即是設定的值即為占空比,

這時候使能左電機埠(同理可得右邊埠)

完成高低電平極性轉化

(ps:這裡對應電機使能埠要注意檢視對應驅動的線路介面,eg:有些使能端加了跳線帽,跟vcc一起,使其本來就為高電平輸出使能,所以在設定的時候,就要對應設定相反,總之是為了使其完成高低電平轉換)

其他相關設定:

前進函式: (同理可以寫

左轉函式:右邊電機正轉,左邊電機後轉

後退函式:左右電機後轉)

主函式

基於51微控制器和藍芽控制的紅外小車

整理資料,翻到大一時候做的乙個比賽,要求做乙個電子小車,沒有很多具體要求,算是比較開放一點的題目,雖然這個算不上厲害,但在那段期間感覺真的學到了很多,總結了一下,就是永遠不要停下學習的腳步。1 選用的感測器是夏普的紅外測距感測器,一開始的想法是通過這個感測器來實現跟隨人走的小車,雖說現在想起來當時的...

普中51pwm 基於51微控制器的pwm和串列埠通訊

include include uart.h sbit pwmout p1 0 sbit led p2 2 sbit key1 p1 2 sbit key2 p3 3 unsigned char highrh 0 高電平過載值的高位元組 unsigned char highrl 0 高電平過載值的低...

基於51微控制器的藍芽小車

二,對於藍芽模組,我們可以使用藍芽hc05或者hc06這種藍芽模組,用的很廣。使用這個模組之前乙個把藍芽模組與usb轉ttl模組 例如ch340模組 前者txd接後者rxd,前者rxd接前者後者txd 開啟之後如下圖 這時應該先選擇串口號,我電腦上插ch340模組的串口號是3,所以我選擇com3,因...