通過51單片機來控制直流電機

2020-11-25 電子產品世界

原理很簡單了 直接上電路圖和源程序吧

看不清楚圖的請點保存 或者點開連接地址看大圖
下面是針對上面電路圖的程序
(直接複製粘貼進去運行 還是那句話 程序別光是複製粘貼 要一句句看懂 看出核心的那一段代碼是怎麼利用單片機加上一個晶片來控制電機的為以後自己寫其他驅動程序打基礎 )

;----------------------------------------------
;名稱:51單片機來控制直流電機
;主頻 6M晶震 51系列單片機
;編譯環境:keil c51編譯通過
;www.51hei.com單片機教程網原創,可以任意修改和作為學習測試用途
;備註 :程序的關鍵部分是 T1定時中段程序裡面 看PWM 是怎麼控制電機轉動的
;要改變電機的方向其實很簡單
;4個小車狀態子程序 你應該能看懂吧
;另外當然就是要去看下 驅動電機的晶片 L293D 了 嘿嘿 就是什麼H橋什麼的
; 當然電子基本攻紮實的 自己做個電路也是一樣的 不過這晶片也就幾塊錢
; 節約時間的話就買來電路搭起就OK
;2009-5-15
;---------------------------------------------
;------------------------------------------------
;內存分配定義

ntw equ 3Eh ;PWM中斷計數器(對T1中斷)
ntwkz equ 3Dh ;左電機PWM脈寬設置
ntwky equ 3Ch ;右電機PWM脈寬設置
ntwkzy equ 31h ;左右電機預置PWM脈寬
zjfx bit p2.0 ;左電機方向控制口,0為正轉,1為反轉
yjfx bit p2.1 ;右電機方向控制口,0為正轉,1為反轉
;-------------------------------------------------


ORG 0000H
aJMP MAIN
org 000bh
lJMP t0zd
org 001bh
ljmp t1zd
org 0030h
;----------------------------------------------
MAIN :
ACALL XCQJ
ACALL CSH
; ;-----
; ;其他程序。比如數碼管 顯示 什麼什麼的
; ;----
AJMP MAIN
;-------------------------------------

;系統初始化
;-----------------------------------

CSH:
MOV TMOD, #11H ;定時器0/1均設置為方式1,定時方式 計聳器按16位工作
mov TH1,#0feh ;
mov TL1,#70h ;PWM調速,定時0.8ms
mov ntw,#10 ;PWM對T1中斷計數,即可有10檔速度調節
mov ntwkzy,#03 ;左右電機預置PWM脈寬
mov ntwkz,#03 ;左電機調速脈寬,此值為高電平的時間
mov ntwky,#03 ;右電機調速脈寬
SETB ET0 ;開T0中斷
setb ET1 ;開T1中斷
SETB EA ;系統開中斷
SETB TR0 ;啟動定時器0
SETB TR1 ;啟動定時器1
RET

t0zd:


RETI
;---------------------------------
;小車狀態子程序
;---------------------------------
xcqj: ;小車前進
setb zjfx ;左機正轉(IN2)
setb yjfx ;右機正轉(IN3)
RET
xczz: ;小車左轉
clr zjfx ;左機反轉(IN2)
setb yjfx ;右機正轉(IN3)
RET
xcyz: ;小車右轉
setb zjfx ;左機正轉(IN2)
clr yjfx ;右機反轉(IN3)
RET
xcht: ;小車後退
clr zjfx
clr yjfx
ret


;---------------------------------
;T1中斷子程序
;---------------------------------

t1zd:
mov th1,#0feh
mov tl1,#70h
push acc
push psw
djnz ntw,t101 ; NTW 不等於0 則運行T101 等於0 則 送低電平
mov ntw,#10
clr p3.5
clr p3.7
ajmp t1fh
t101: mov a,ntw;這裡實現了軟體方式的電機調速功能 設置 PWM 高電平的脈衝寬度10個檔位這裡有一點需要注意 NTW開始是設置的10自減1然後與
;預先設置的左右電機的預設置的檔位比較 這裡是3 那麼就是減7次也就是要等待7個T1中斷之後才會SETB P3.5也就是說 這裡的檔位 值越小 轉得越快
cjne a,ntwkz,t102 ; 不相等執行102 相等則順序執行 比較 左電機預設置 的 PWM數量
setb p3.5
t102: cjne a,ntwky,t1fh ; 比較 右電機預設置 的 PWM數量其實這裡我設置的都是一樣的檔 都是3 實際中可能有些情況需要調節2個輪子的轉速度 不過一般情況下
;設置一樣的 方便些 不過原理還是要看懂 知道怎麼設置
setb p3.7
t1fh: pop psw
pop acc
reti


END

突然想到要利用鍵盤控制電機調速的同志。。T1 的入口參數就是 ntwkz ntwky
ntwkz equ 3Dh ;左電機PWM脈寬設置
ntwky equ 3Ch ;右電機PWM脈寬設置
T1每次中斷就從10檔開始自減 一直減到你設置的檔位 然後輸出PWM波形
只需要改變 3DH 3CH 中的值 那麼就可以實現調速功能了
另外想說下 平時也有很多事 因此不能儘快回復大家的帖子 請大家原諒下
一些基礎的資料我會整理後發完整的上來給大家
不需要回復和登陸
希望大家理解和支持。

相關焦點

  • 基於51單片機的大功率直流有刷電機的PWM調速控制
    本人最近一直想用51單片機來設計製作一個「大功率直流有刷電機PWM調速控制器」。由於平時工作忙,沒時間。 由於這個是大功率的直流有刷電機PWM調速控制器,所以就不能用電晶體來驅動了,必須用MOS管來驅動。MOS管不僅驅動能力強,而且效率高。為了提高系統的穩定性,可靠性,適用範圍廣等特點,本系統,採用雙電源供電。控制電路一組電源,電壓分別為5V和15V。功率輸出部分一組電源,以適應不同電壓的電動機。
  • 51單片機精確控制步進電機(有TB6600驅動)
    設備:51單片機開發板、TB6600驅動器、57BYG250B步進電機(二相)、直流開關電源。直流電源給驅動器供電,單片機給驅動器輸入脈衝,驅動器驅動步進電機。程序使用定時器中斷精確控制電機轉動(不考慮失步)。比如我採用16倍細分,則需給驅動輸入3200個脈衝,驅動才會使電機轉一圈,下面程序中1秒發送200個脈衝,則相應的電機16秒轉一圈。
  • 基於MCS-51單片機的直流電機轉速測控系統設計
    實驗結果表明該系統能實時、有效地對直流電機轉速進行監測與控制,而且輸出轉速精度高、穩定性好。本文介紹的電機控制系統利用PWM控制原理,同時結合霍爾傳感器來採集電機轉速,並經單片機檢測後在顯示器上顯示出轉速值,而單片機則根據傳感器輸出的脈衝信號來分析轉速的過程量,並超限自動報警。本系統同時設置有按鍵操作儀表,可用於調節電機的轉速。
  • 用單片機控制直流電機
    本設計以AT89C51單片機為核心,以4*4矩陣鍵盤做為輸入達到控制直流電機的啟停、速度和方向在設計中,採用了PWM技術對電機進行控制,通過對佔空比的計算達到精確調速的目的。
  • 基於Proteus和AVR單片機的無刷直流電機控制系統仿真
    單片機儘管在性能上不如DSP晶片,但卻有更低的價格,外部電路設計簡單,在通常狀況下單片機的控制功能和處理速度也可以達到的需求,所以這裡選擇單片機作為直流無刷電機驅動控制系統的主控晶片。Proteus軟體目前在單片機仿真及其他相關的外圍器件的仿真方面,Proteus是一個非常實用的工具軟體。
  • PWM控制MOSFET搭建的H橋電路驅動直流電機仿真與單片機源碼
    PIC單片機 proteus H橋驅動直流電機PWM控制MOSFET搭建的H橋電路驅動直流電機運行仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)H橋電路(MOSFET)驅動直流電機運行//-----------------------------------------------------------------//  說明: 本例使用PIC16F690的增強型PWM模塊(P1A,P1B,P1C,P1D)實現對直流//        電機運行控制,包括運行/停止/正反轉及速度調節.
  • 51單片機PWM控制電機
    小時候玩的四驅車,給直流馬達接通電源就嗤嗤的跑出去了。電機種類眾多,就屬控制直流電機最簡單,只要對調正負極就能改變電機的轉向。
  • 單片機控制步進電機的原理
    本資料詳細介紹鄧步進電機的工作原理以及單片機控制步進電機的特點。步進電機是數字控制電機,它將脈衝信號轉變成角位移,即給一個脈衝信號,步進電機就轉動一個角度,因此非常適合於單片機控制。    步進電機可分為反應式步進電機、永磁式步進電機和混合式步進電機。
  • 基於單片機STC12C52系列直流電機調速系統
    的直流電機的調速控制系統。該系統選用宏晶科技公司的高速/低功耗/超強抗幹擾的新一代單片機STC12C5206AD晶片作為主要部分,輔以上位機、電機驅動系統等設備對直流電動機進行不同速度的控制。脈寬調製是一種使用程序來控制波形佔空比、周期、相位波形的技術,在電機驅動、D/A轉換等場合有廣泛的應用。這種控制方式已作為直流電動機數字控制的基礎。在直流調速控制中,可以採用各種控制器,單片機是其中一種選擇。
  • 步進電機控制程序(c語言+51單片機)
    #includereg51.h>本文引用地址:http://www.eepw.com.cn/article/162126.htm#define uint unsigned int
  • 51單片機與TA8435的步進電機細分控制
    1 步進電機   步進電動機是純粹的數字控制電動機,它將電脈衝信號轉變為角位移,即給一個脈衝,步進電機就轉一個角度,因此非常合適單片機控制,在非超載的情況下,
  • 51單片機控制四相步進電機
    接觸單片機快兩年了,不過只是非常業餘的興趣,實踐卻不多,到現在還算是個初學者吧。這幾天給自己的任務就是搞定步進電機的單片機控制。以前曾看過有關步進電機原理和控制的資料,畢竟自己沒有做過,對其具體原理還不是很清楚。
  • 有刷直流電機的工作原理及控制電路
    微型有刷直流電機具有價格便宜、容易操控的特點應用在各個領域,如電動玩具、美容產品、個人護理產品、醫療器械等等大多用到的都是微型有刷直流電機。有刷直流電機的工作原理是怎樣的呢?下面天孚微電機就來帶大家來了解:微型直流電機(有刷)的工作原理。
  • 51單片機PWM細分控制步進電機的研究
    因為這樣可以是步進電機運行平穩、減小噪音、增大轉速(MAX的)、增加力矩……為什麼要強調是51單片機呢?因為51單片機沒有硬體PWM模塊,所以只能軟體模擬了……研究這玩意兒,我走了許多彎路,看了許多文獻,最後發現,盡信書不如無書……就用28系列4相5線電機來說吧。
  • 51單片機控制步進電機驅動器工作原理
    本文先介紹該步進電機的工作原理,然後介紹了其驅動器的軟、硬體設計。  1. 步進電機的工作原理  該步進電機為一四相步進電機,採用單極性直流電源供電。只要對步進電機的各相繞組按合適的時序通電,就能使步進電機步進轉動。圖1是該四相反應式步進電機工作原理示意圖。
  • 51單片機學習之3-步進電機
    第八集講解用移位和或運算實現流水燈的方法《51單片機複習筆記2》裡面的代碼。用於增強單片機IO口的驅動能力。ULN2003是高耐壓、大電流達林頓陳列,由七個矽NPN達林頓管組成。ULN2003是大電流驅動陣列,多用於單片機、智能儀表、PLC、數字量輸出卡等控制電路中。可直接驅動繼電器等負載。
  • 51單片機驅動步進電機__終極(完整版)
    在這裡介紹一下用51單片機驅動步進電機的方法。 這款步進電機的驅動電壓12V,步進角為 7.5度 . 一圈 360 度 , 需要 48 個脈衝完成!!! 該步進電機有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5:黃色、6:黑色。
  • 微芯有刷直流電機控制方案
    有刷直流電機通過電刷進行換向。一旦轉子與定子對齊,電刷與換向器接觸並導通下一個繞組由於速度和轉矩與所應用的電壓/電流成正比,因而有刷直流電機控制起來相對容易。
  • 用51單片機控制兩相四線步進電機
    最近學習步進電機的驅動原理,照著教材自己實踐了一下用ULN2003驅動28BYJ-48兩相5線步進電機,可以正常轉動。手頭有一個舊光碟機,拆開發現裡面有三個電機,其中有一個控制雷射頭尋跡的兩相四線步進電機,我就用51的單片機讓它也轉起來。一開始照葫蘆畫瓢用ULN2003驅動,結果發現無論如何也不行。
  • 基於MSK4226的直流有刷電機四象限控制
    摘要:在設計中使用MSP430F169單片機提供控制電機需要的PWM信號,通過電機驅動晶片MSK4226實現直流電機的控制器以單片機MSP430F169作為控制核心,利用單片機的PWM功能,可發生多通道佔空比可調的PWM信號;PWM信號通過電機驅動晶片MSK4226將電機兩端的電壓調製成頻率一定、寬度可變的脈衝電壓序列,控制電機轉速與轉向;單片機實時監測驅動晶片上的電機電流,發生過流時採取保護;在文章的最後比較了電機四象限控制與單像控制,總結出了四象限控制的優缺點