基于C51單片機(jī)的直流電機(jī)PWM調(diào)速控制包含原理圖及C源代碼_第1頁(yè)
基于C51單片機(jī)的直流電機(jī)PWM調(diào)速控制包含原理圖及C源代碼_第2頁(yè)
基于C51單片機(jī)的直流電機(jī)PWM調(diào)速控制包含原理圖及C源代碼_第3頁(yè)
基于C51單片機(jī)的直流電機(jī)PWM調(diào)速控制包含原理圖及C源代碼_第4頁(yè)
基于C51單片機(jī)的直流電機(jī)PWM調(diào)速控制包含原理圖及C源代碼_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于c51單片機(jī)的直流電機(jī)pwm調(diào)速控制 -sq這是最近一階段自己學(xué)習(xí)所獲,現(xiàn)分享與大家。這里采用at89c52單片機(jī)做主控制芯片,實(shí)現(xiàn)兩路直流電機(jī)的pwm調(diào)速控制,另外還可以實(shí)現(xiàn)轉(zhuǎn)向、顯示運(yùn)行時(shí)間、顯示檔位等注:考慮小直流電機(jī)自身因素,調(diào)速范圍僅設(shè)有四級(jí)電路原理圖:c語(yǔ)言程序源代碼:/* 硬件資源分配*/ 數(shù)碼管: 顯示電機(jī)狀態(tài)(啟停、正反、速度)、運(yùn)行時(shí)間、是否轉(zhuǎn)彎按鍵: k4 啟動(dòng)/暫停 k3 正反轉(zhuǎn)/轉(zhuǎn)彎允許 k2 加速/左轉(zhuǎn)/運(yùn)行時(shí)間清零 k1 減速/右轉(zhuǎn)/停止定時(shí)器:t0 數(shù)碼管動(dòng)態(tài)顯示,輸出pwmt1 運(yùn)行時(shí)間記錄*/ /*主程序文件pwm.c*/#include <reg

2、52.h>#include "afx.h"#include "config.c"#define circle 5 /脈沖周期/按鍵定義uchar key,key_tmp=0, _key_tmp=0;/顯示定義uchar ledstate=0xf0; /led顯示標(biāo)志,0xf0不顯示,ox00顯示uchar code led_code_d4=0xe0,0xd0,0xb0,0x70; /分別選通1、2、3、4位uchar dispbuf4=0,0,0,0; /待顯示數(shù)組uchar dispbitcnt=0; /選通、顯示的位uchar mstcnt=0

3、;uchar centi_s=0,sec=0,min=0; /分、秒、1%秒 /程序運(yùn)行狀態(tài)標(biāo)志bit motstate=0; /電機(jī)啟停標(biāo)志bit dirstate=0;/方向標(biāo)志 0前,1后uchar state1=-1;uchar state2=-1;uchar state3=0;uchar state4=-1;uchar lspeed=0;uchar rspeed=0;/其他uint runtime=0;uint rtime_cnt=0;uint lwidth;uint rwidth; /脈寬uint widcnt=1;uint dispcnt; /函數(shù)聲明void key_scan(

4、void);void disbuf(void);void k4(void);void k3(void);void k2(void);void k1(void);void disp( uchar h, uchar n );void main(void) p1|=0xf0;ea=1;et0=1;et1=1;tmod=0x11;th0=0xfc;tl0=0x66; /t0,1ms定時(shí)初值th1=0xdb;tl1=0xff; /t1,10ms定時(shí)初值tr0=1;widcnt=1;while(1)key_scan();switch(key)case 0x80: k1(); break;case 0x40

5、: k2(); break;case 0x20: k3(); break;case 0x10: k4(); break;default:break;key=0;disbuf();lwidth=lspeed; rwidth=rspeed;/按鍵掃描*模擬觸發(fā)器防抖void key_scan(void)key_tmp=(p3)&0xf0;if(key_tmp&&!_key_tmp) /有鍵按下key=(p3)&0xf0;_key_tmp=key_tmp ; /按鍵功能處理/邏輯控制void k4(void) if(state4=-1)state4=1;tr1=1;d

6、ispbuf3=1;ledstate=0x00; /打開(kāi)ledmotstate=1; /打開(kāi)電機(jī)lspeed=1;rspeed=1;/初速設(shè)為1else if(state4=1)state4=0;tr1=0;motstate=0; /關(guān)閉電機(jī)else if(state4=0) motstate=1;if(state3=0)state4=1;tr1=1;else if(state3=1)lspeed=2; rspeed=2; void k3(void)if(state4=1)dirstate=!dirstate;if(state4=0)if(state3=0)state3=1; /可以轉(zhuǎn)向標(biāo)志

7、1可以,0不可以tr1=1;dispbuf3=9;motstate=1;lspeed=2;rspeed=2;else if(state3=1)state3=0;tr1=0;dispbuf3=0;motstate=0; void k2(void)if(state4=1&&lspeed<4&&rspeed<4)lspeed+;rspeed+;else if(state4=0)if(state3=0)/state4=-1;/ledstate=0xf0; motstate=0;sec=0;min=0;else if(state3=1&&lsp

8、eed<4&&rspeed<4) /turnstate=0;lspeed=2;rspeed+;void k1(void)if(state4=1&&lspeed>1&&rspeed>1)lspeed-;rspeed-;else if(state4=0)if(state3=0)state4=-1;ledstate=0xf0; motstate=0;else if(state3=1&&lspeed<4&&rspeed<4)/turnstate=1;lspeed+;rspeed=2;/顯

9、示預(yù)處理void disbuf(void) if(rtime_cnt=100)sec+;rtime_cnt=0;if(sec=60)min+;sec=0;if(state4=1)dispbuf0=sec%10; dispbuf1=sec/10; dispbuf2=min;if(!dirstate) /正轉(zhuǎn) dispbuf3=lspeed;if(dirstate)/反轉(zhuǎn)dispbuf3=lspeed+4; if(state4=0)if(state3=0) dispbuf0=sec%10; dispbuf1=sec/10; dispbuf2=min; dispbuf3=0;if(state3=1)

10、 dispbuf0=rspeed; dispbuf1=lspeed; dispbuf2=min; dispbuf3=9;/led驅(qū)動(dòng)void disp( uchar h, uchar n ) p1=n;p1|=ledstate ;p1|=led_code_dh;/t0中斷*顯示/方波輸出void time_0() interrupt 1 th0=0xfc;tl0=0x66;widcnt+;dispcnt+; /電機(jī)驅(qū)動(dòng)/方波輸出if(widcnt>circle) widcnt=1; if(widcnt<=lwidth)lmot_p=!dirstate&&motsta

11、te;else lmot_p=dirstate&&motstate; lmot_m=dirstate&&motstate;if(widcnt<=rwidth)rmot_p=!dirstate&&motstate;else rmot_p=dirstate&&motstate;rmot_m=dirstate&&motstate; /顯示if(dispcnt=5)disp(dispbitcnt,dispbufdispbitcnt);dispbitcnt+;if(dispbitcnt=4) dispbitcnt=0;dispcnt=0;/t1中斷*運(yùn)行時(shí)間void time_1() interrupt 3th1=0xdb;tl1=0xff;rtime_cnt+;/*配置文件afx.h*/#ifndef _afx_#define _afx_typedef unsigned char uchar;typedef unsigned int uint;typedef unsigned long ulong;#endif/*io配置文件config.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論