


【摘? 要】小型直流電機(jī)作為一種響應(yīng)快、控制方便的執(zhí)行器,目前已廣泛應(yīng)用于汽車(chē)儀表、空調(diào)、動(dòng)力轉(zhuǎn)向、玻璃升降、電動(dòng)座椅等汽車(chē)控制系統(tǒng)中。本文采用宏晶科技的51單片機(jī)STC89C52RC作為主控芯片,選擇ULN2003作為電機(jī)的驅(qū)動(dòng)芯片,設(shè)計(jì)具有獨(dú)立按鍵的按鍵電路來(lái)控制電機(jī)的加速、減速,設(shè)計(jì)8位數(shù)碼管電路來(lái)顯示電機(jī)速度的擋位,并利用Keil 5集成開(kāi)發(fā)環(huán)境進(jìn)行C語(yǔ)言軟件編程設(shè)計(jì),通過(guò)脈寬調(diào)制(PWM)信號(hào)來(lái)實(shí)現(xiàn)電機(jī)速度1~18擋的控制。驗(yàn)證結(jié)果表明,本設(shè)計(jì)能夠有效實(shí)現(xiàn)汽車(chē)小型直流電機(jī)的多擋調(diào)速,達(dá)到設(shè)計(jì)預(yù)期。
【關(guān)鍵詞】51單片機(jī);小型直流電機(jī);PWM;調(diào)速系統(tǒng);Keil軟件
中圖分類(lèi)號(hào):U463.6? ? 文獻(xiàn)標(biāo)志碼:A? ? 文章編號(hào):1003-8639( 2023 )09-0052-04
Design of Speed Control System for Small DC Motor for Automobile Based on 51 SCM
HUA Jianxin
(Branch of Suzhou Construction & Communications,Jiangsu Union Technical Institute,Suzhou 215000,China)
【Abstract】As an actuator with fast response and convenient control,small DC motor has been widely used in automobile control systems such as automobile instrument,air conditioner,power steering,glass lifter,electric seat,etc. In this paper,STC89C52RC,a 51 SCM of STC Company,is used as the main control chip,ULN2003 is selected as the motor drive chip,and a key circuit with independent keys is designed to control the acceleration and deceleration of the motor,and an 8-bit LED circuit is designed to display the speed gear of the motor. The C language software is programmed using Keil 5 integrated development environment,and the motor speed is controlled from 1 to 18 gears through PWM signal. The verification results show that the design can effectively achieve multi speed regulation of small DC motor,and achieve the design expectations.
【Key words】51 SCM;small DC motor;PWM;speed regulation system;Keil software
作者簡(jiǎn)介
花建新(1979—),男,講師,碩士,主要從事汽車(chē)智能技術(shù)專業(yè)教育研究工作。
隨著計(jì)算機(jī)、電子、通信、人工智能、自動(dòng)控制等高新技術(shù)的飛速發(fā)展,各種自動(dòng)化智能設(shè)備在生產(chǎn)生活中不斷涌現(xiàn)。直流電機(jī)因具有調(diào)速范圍廣、響應(yīng)快、控制方便和啟動(dòng)轉(zhuǎn)矩大等諸多優(yōu)點(diǎn),在眾多智能化、自動(dòng)化產(chǎn)品中被廣泛應(yīng)用為執(zhí)行器[1-2],尤其是在汽車(chē)領(lǐng)域,小型直流電機(jī)已廣泛應(yīng)用于儀表指示、空調(diào)、動(dòng)力轉(zhuǎn)向、玻璃升降、后視鏡、雨刮器、電動(dòng)座椅等控制系統(tǒng)中[3-4]。近些年來(lái),隨著單片機(jī)、數(shù)字信號(hào)處理器等微處理器技術(shù)的不斷成熟,制造成本不斷下降,以微處理器為主控的電機(jī)調(diào)速數(shù)字控制系統(tǒng),是汽車(chē)控制系統(tǒng)的研究方向之一。
本文基于國(guó)產(chǎn)公司宏晶科技的51單片機(jī)STC89C52RC設(shè)計(jì)一款針對(duì)汽車(chē)小型直流電機(jī)的調(diào)速系統(tǒng)。首先進(jìn)行汽車(chē)小型直流電機(jī)調(diào)速系統(tǒng)的硬件電路設(shè)計(jì),包括單片機(jī)最小系統(tǒng)、獨(dú)立按鍵電路、數(shù)碼管顯示電路、電機(jī)驅(qū)動(dòng)電路以及下載電路,接著應(yīng)用C語(yǔ)言在Keil 5軟件上進(jìn)行編程設(shè)計(jì)和調(diào)試,最后通過(guò)STC-ISP軟件將編譯生成的hex文件下載到設(shè)計(jì)電路板中進(jìn)行實(shí)際驗(yàn)證。
1? 硬件電路設(shè)計(jì)
本設(shè)計(jì)采用的主控芯片STC89C52RC是宏晶科技的一種高性能、高可靠、低功耗的8位51單片機(jī),目前已經(jīng)廣泛應(yīng)用于眾多嵌入式控制應(yīng)用系統(tǒng)中[5-6]。
單片機(jī)是可以正常工作的由最少部件組成的基本應(yīng)用系統(tǒng),稱之為單片機(jī)最小系統(tǒng)。51單片機(jī)的最小系統(tǒng)通常包括復(fù)位電路、時(shí)鐘電路與電源電路。本設(shè)計(jì)通過(guò)51單片機(jī)提供PWM信號(hào),采用ULN2003專用驅(qū)動(dòng)芯片將PWM信號(hào)放大,驅(qū)動(dòng)小型直流電機(jī)運(yùn)轉(zhuǎn);通過(guò)2個(gè)獨(dú)立按鍵來(lái)控制電機(jī)1~18擋的加速、減速,通過(guò)數(shù)碼管顯示電路來(lái)顯示電機(jī)的速度擋位。另外,程序編寫(xiě)調(diào)試完成后,還需要將目標(biāo)程序下載到單片機(jī)中進(jìn)行驗(yàn)證。因此本設(shè)計(jì)的硬件電路主要包括單片機(jī)最小系統(tǒng)、獨(dú)立按鍵電路、數(shù)碼管顯示電路、電機(jī)驅(qū)動(dòng)電路和下載電路5個(gè)部分。系統(tǒng)整體硬件框架如圖1所示。
1.1 單片機(jī)最小系統(tǒng)
本設(shè)計(jì)基于STC89C52RC的單片機(jī)最小系統(tǒng),包括復(fù)位電路、時(shí)鐘電路和電源電路[6],如圖2所示。
1.1.1? 復(fù)位電路
復(fù)位電路的主要作用是當(dāng)單片機(jī)系統(tǒng)上電或者出現(xiàn)程序跑飛等異常情況時(shí),讓單片機(jī)系統(tǒng)恢復(fù)初始狀態(tài),確保單片機(jī)穩(wěn)定可靠地工作。復(fù)位電路觸發(fā)的方式主要有:一是手動(dòng)復(fù)位,設(shè)置專門(mén)的按鍵,通過(guò)手動(dòng)按下進(jìn)行復(fù)位;二是軟件復(fù)位,通過(guò)程序編程實(shí)現(xiàn)復(fù)位;三是上電復(fù)位,電路一通電就立即復(fù)位。
本設(shè)計(jì)采用的是一種非常簡(jiǎn)單、常用的基本復(fù)位電路,電路包括1個(gè)電阻、1個(gè)電容和1個(gè)復(fù)位按鍵,電阻和電容串聯(lián)在一起,手動(dòng)復(fù)位按鍵與電容并聯(lián),具體如圖2a所示。該復(fù)位電路具有上電復(fù)位和手動(dòng)按鍵復(fù)位的功能。當(dāng)上電的瞬間,電容與電阻構(gòu)成充電電路,單片機(jī)RST引腳出線高電平,單片機(jī)復(fù)位;當(dāng)手動(dòng)按下復(fù)位按鍵時(shí),電源VCC直接接于單片機(jī)RST引腳,單片機(jī)復(fù)位。
1.1.2? 時(shí)鐘電路
時(shí)鐘電路主要是產(chǎn)生指定頻率和振幅的時(shí)間信號(hào),為單片機(jī)提供工作時(shí)的“時(shí)間參考”,以協(xié)調(diào)單片機(jī)各模塊之間邏輯操作的順序執(zhí)行。單片機(jī)的時(shí)鐘電路通常由晶振和電容組成。晶振是利用石英晶體的壓電效應(yīng)制成的一種諧振器件,可產(chǎn)生頻率和峰值皆穩(wěn)定的正弦信號(hào),分為無(wú)源晶振和有源晶振。本設(shè)計(jì)的時(shí)鐘電路采用了1個(gè)11.0592 MHz的無(wú)源晶振,接于單片機(jī)的2個(gè)時(shí)鐘輸入端口(18號(hào)端口和19號(hào)端口)間,同時(shí)采用2個(gè)20pF的電容分別接于2個(gè)時(shí)鐘輸入端口,具體如圖2a所示。
1.1.3? 電源電路
任何電路都需要接通電源才能工作,單片機(jī)電路一般需要低壓直流電進(jìn)行供電,但不同的單片機(jī)需要的供電電壓范圍是不一樣的,具體可以查閱相關(guān)單片機(jī)的使用手冊(cè)。本設(shè)計(jì)使用的是STC89C52RC單片機(jī),通過(guò)查閱該單片機(jī)的使用手冊(cè)可知,STC89C52RC需要5V的直流電壓進(jìn)行供電,而且設(shè)計(jì)電路中的一些其它元器件需要3.3V直流電壓進(jìn)行供電,因此本設(shè)計(jì)通過(guò)USB接口電路來(lái)獲得5V直流電壓,通過(guò)增加一個(gè)穩(wěn)壓芯片AMS1117來(lái)獲得3.3V直流電壓,具體如圖2b所示。
1.2 獨(dú)立按鍵電路
本設(shè)計(jì)需要對(duì)小型直流電機(jī)的加速和減速運(yùn)行進(jìn)行控制,因此需要2個(gè)獨(dú)立按鍵K1和K2,其中K1一端搭鐵,另一端接單片機(jī)的P3.4接口,用來(lái)控制電機(jī)的加速,K2一端搭鐵,另一端接單片機(jī)的P3.5接口,用來(lái)控制電機(jī)的減速,另外還冗余設(shè)計(jì)了2個(gè)獨(dú)立按鍵K3和K4,用于功能拓展。獨(dú)立按鍵電路如圖3所示。
1.3 數(shù)碼管顯示電路
本設(shè)計(jì)要求將按鍵設(shè)置的電機(jī)速度1~18擋位顯示出來(lái),因此設(shè)計(jì)了LED數(shù)碼管顯示電路,電路包含8位LED數(shù)碼管和2個(gè)數(shù)據(jù)鎖存器MC74HC573。數(shù)碼管顯示電路如圖4所示。
每位LED數(shù)碼管由7個(gè)條形LED和1個(gè)小圓點(diǎn)LED組成,共8段。其中,7個(gè)條形LED用于顯示數(shù)字或英文字符,通常用字母段a、b、c、d、e、f、g來(lái)表示;第8個(gè)小圓點(diǎn)LED用來(lái)顯示小數(shù)點(diǎn),用字母段h或dp來(lái)表示。本設(shè)計(jì)的8位LED數(shù)碼管采用共陰極連接,當(dāng)字段LED的陽(yáng)極為高電平“1”時(shí),該字段LED導(dǎo)通發(fā)光,為低電平“0”時(shí),該字段LED截止熄滅。由于本設(shè)計(jì)中的電機(jī)速度擋位最高為18擋,實(shí)際僅需2位LED數(shù)碼管,其余6位數(shù)碼管作為備用冗余設(shè)計(jì)。
MC74HC573為8路3態(tài)輸出的非反轉(zhuǎn)透明鎖存器,當(dāng)鎖存使能端為高電平“1”時(shí),輸出與輸入同步,當(dāng)鎖存使能端變?yōu)榈碗娖健?”時(shí),輸出端的數(shù)據(jù)會(huì)被鎖存。圖4中的2個(gè)MC74HC573,其中1個(gè)是作為段選鎖存器,用于儲(chǔ)存數(shù)碼管顯示的具體數(shù)據(jù),其使能端接單片機(jī)的P2.6口;另外1個(gè)MC74HC573作為位選鎖存器,用于選擇8位LED數(shù)碼管的某一位進(jìn)行顯示,其使能端接單片機(jī)的P2.7口。2個(gè)鎖存器的8位輸入數(shù)據(jù)接口均使用單片機(jī)的P0口。
1.4 電機(jī)驅(qū)動(dòng)電路
單片機(jī)通常是不能直接驅(qū)動(dòng)直流電機(jī)的,因?yàn)橹绷麟姍C(jī)的驅(qū)動(dòng)電流比較大,本設(shè)計(jì)采用了一片ULN2003達(dá)林頓陣列集成芯片來(lái)驅(qū)動(dòng)電機(jī)。小型直流電機(jī)驅(qū)動(dòng)電路如圖5所示,其中,ULN2003是一種高耐壓、大電流的雙列直插式16腳封裝達(dá)林頓陣列芯片,最大驅(qū)動(dòng)電壓為50V,最大驅(qū)動(dòng)電流為500mA,輸入電壓為5V。ULN2003的端口4,即IN4口接單片機(jī)的P1.3口,用于將單片機(jī)產(chǎn)生的PWM信號(hào)引入驅(qū)動(dòng)電路,端口13,即OUT4口接于直流電機(jī)接口J2的輸入端IN口,用于輸出放大的PWM信號(hào),來(lái)驅(qū)動(dòng)小型直流電機(jī)運(yùn)轉(zhuǎn)。
1.5 下載電路
在上位機(jī)上將軟件程序編制調(diào)試好后,需要通過(guò)下載電路將編譯好的目標(biāo)程序燒寫(xiě)到單片機(jī)的存儲(chǔ)器中,然后由單片機(jī)執(zhí)行。STC單片機(jī)采用串口燒寫(xiě)方式,即通過(guò)單片機(jī)的UART口(RXD口和TXD口)實(shí)現(xiàn)程序燒寫(xiě)功能。而現(xiàn)在常用的計(jì)算機(jī)沒(méi)有UART口,無(wú)法和單片機(jī)串口直接進(jìn)行通信,但是可以通過(guò)USB串口轉(zhuǎn)換芯片,將USB通信協(xié)議和標(biāo)準(zhǔn)UART串行通信協(xié)議進(jìn)行轉(zhuǎn)換,從而實(shí)現(xiàn)單片機(jī)與計(jì)算機(jī)的通信。本設(shè)計(jì)的下載電路使用了一片USB轉(zhuǎn)串口的轉(zhuǎn)換芯片CH340G,并配合一些電阻、電容、穩(wěn)壓二極管和晶振等其它輔助元器件,具體下載電路如圖6所示[6]。
2? 軟件設(shè)計(jì)
Keil軟件是一款非常強(qiáng)大的單片機(jī)嵌入式開(kāi)發(fā)工具,它將編譯器、連接器、仿真器、調(diào)試器等組合在一個(gè)集成開(kāi)發(fā)環(huán)境里,幫助開(kāi)發(fā)者快速、高效地進(jìn)行單片機(jī)開(kāi)發(fā)。本文利用Keil 5集成開(kāi)發(fā)環(huán)境進(jìn)行汽車(chē)小型直流電機(jī)調(diào)速控制系統(tǒng)的C語(yǔ)言軟件編程設(shè)計(jì)。
本設(shè)計(jì)軟件程序主要通過(guò)單片機(jī)的中斷技術(shù)來(lái)實(shí)現(xiàn)鍵盤(pán)讀取和處理、電機(jī)運(yùn)轉(zhuǎn)控制、數(shù)碼管動(dòng)態(tài)顯示控制等任務(wù),軟件設(shè)計(jì)流程圖如圖7所示,具體程序包括主函數(shù)模塊、定時(shí)器模塊和數(shù)碼管顯示模塊3個(gè)部分。
2.1 主函數(shù)模塊
本設(shè)計(jì)軟件程序的主函數(shù)模塊首先對(duì)整個(gè)系統(tǒng)進(jìn)行初始化,包括單片機(jī)各端口的定義,相關(guān)參數(shù)的定義和初始化,延時(shí)函數(shù)和按鍵釋放函數(shù)的定義,以及單片機(jī)定時(shí)器T0的初始化等,然后采用查詢方式掃描鍵盤(pán)K1和K2對(duì)應(yīng)的端口,檢測(cè)2個(gè)鍵盤(pán)有沒(méi)有按鍵動(dòng)作,如果檢測(cè)到有按鍵動(dòng)作,立即進(jìn)行按鍵操作處理,即根據(jù)按鍵動(dòng)作對(duì)應(yīng)的值實(shí)時(shí)修改電機(jī)的速度擋位值,并實(shí)時(shí)更新速度擋位值顯示的十位和個(gè)位。具體程序如圖8~圖10所示。
2.2 定時(shí)器模塊
本設(shè)計(jì)軟件程序是采用定時(shí)器中斷的方式來(lái)控制小型直流電機(jī)的速度,在定時(shí)器模塊首先對(duì)單片機(jī)的定時(shí)器0進(jìn)行初始化,然后調(diào)用相應(yīng)的中斷服務(wù)子程序,依據(jù)掃描鍵盤(pán)得到的電機(jī)速度擋位來(lái)控制輸出PWM信號(hào)的占空比,從而實(shí)現(xiàn)電機(jī)調(diào)速。定時(shí)器初始化和中斷服務(wù)子程序如圖11所示。
2.3 數(shù)碼管顯示模塊
本設(shè)計(jì)要求將獨(dú)立鍵盤(pán)設(shè)置的直流電機(jī)1~18擋的速度擋位通過(guò)數(shù)碼管動(dòng)態(tài)顯示出來(lái),因此在軟件程序的數(shù)碼管顯示模塊,通過(guò)段鎖存端口設(shè)置來(lái)控制顯示的擋位數(shù)據(jù),通過(guò)位鎖存端口設(shè)置來(lái)控制對(duì)應(yīng)的數(shù)碼管顯示,具體程序如圖12所示。
3? 調(diào)試和驗(yàn)證
應(yīng)用Keil 5軟件編制、調(diào)試程序,通過(guò)編譯生成hex文件,然后應(yīng)用STC-ISP下載軟件將hex文件燒寫(xiě)到設(shè)計(jì)的電路板中進(jìn)行驗(yàn)證,如圖13所示。燒寫(xiě)完成后,將小型直流電機(jī)接于圖5所示的直流電機(jī)接口J2,電路板上電,按下鍵盤(pán)K1或K2,電機(jī)轉(zhuǎn)速會(huì)相應(yīng)增大或減小,且數(shù)碼管能夠正確顯示設(shè)置的速度擋位。另需注意的是,使用STC-ISP軟件下載時(shí),需要對(duì)單片機(jī)型號(hào)、對(duì)應(yīng)的串口號(hào)、波特率等進(jìn)行正確配置。
4? 結(jié)論
本文以宏晶科技的51單片機(jī)STC89C52RC為主控芯片,設(shè)計(jì)一款汽車(chē)小型直流電機(jī)調(diào)速系統(tǒng)的硬件電路和軟件程序,應(yīng)用Keil 5軟件進(jìn)行C語(yǔ)言程序編制調(diào)試,應(yīng)用STC-ISP下載軟件將目標(biāo)程序燒寫(xiě)到設(shè)計(jì)的電路板中進(jìn)行驗(yàn)證。結(jié)果表明,本設(shè)計(jì)可實(shí)現(xiàn)汽車(chē)小型直流電機(jī)的調(diào)速。另外,在獨(dú)立按鍵和數(shù)碼管顯示硬件電路中進(jìn)行冗余設(shè)計(jì),可以通過(guò)修改程序代碼,進(jìn)一步拓展按鍵及顯示功能,使其擁有更加豐富的應(yīng)用。
參考文獻(xiàn):
[1] 呂中正,張?zhí)m紅,曹克強(qiáng). 電動(dòng)汽車(chē)增程器用無(wú)刷直流電機(jī)控制系統(tǒng)設(shè)計(jì)與研究[J]. 電子器件,2021,44(5):1149-1154.
[2] 趙雅,李洋,袁靜蘭. 新型航空無(wú)刷直流電機(jī)調(diào)速系統(tǒng)建模與仿真[J]. 電工技術(shù),2021(14):37-40,54.
[3] 令狐昌偉. 基于STM32的汽車(chē)外后視鏡控制模塊設(shè)計(jì)[J]. 汽車(chē)電器,2021(7):69-71.
[4] 朱丹,朱熀秋. 汽車(chē)前照燈自適應(yīng)系統(tǒng)的控制研究設(shè)計(jì)[J]. 電子設(shè)計(jì)工程,2020,28(21):125-129,135.
[5] 彭泉,秦旺,楊尚春,等. 基于STC89C52RC的立柱式新能源汽車(chē)樁優(yōu)化設(shè)計(jì)研究[J].電子元器件與信息技術(shù),2021,5(8):106-108.
[6] 李蔣. 基于51單片機(jī)的汽車(chē)用LED流水燈仿真設(shè)計(jì)[J]. 汽車(chē)電器,2023(1):28-31,35.
(編輯? 凌? 波)