基于单片机AT89S52的直流电机PWM调速控制系统文档格式.docx

上传人:b****3 文档编号:18339291 上传时间:2022-12-15 格式:DOCX 页数:15 大小:261.83KB
下载 相关 举报
基于单片机AT89S52的直流电机PWM调速控制系统文档格式.docx_第1页
第1页 / 共15页
基于单片机AT89S52的直流电机PWM调速控制系统文档格式.docx_第2页
第2页 / 共15页
基于单片机AT89S52的直流电机PWM调速控制系统文档格式.docx_第3页
第3页 / 共15页
基于单片机AT89S52的直流电机PWM调速控制系统文档格式.docx_第4页
第4页 / 共15页
基于单片机AT89S52的直流电机PWM调速控制系统文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

基于单片机AT89S52的直流电机PWM调速控制系统文档格式.docx

《基于单片机AT89S52的直流电机PWM调速控制系统文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机AT89S52的直流电机PWM调速控制系统文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

基于单片机AT89S52的直流电机PWM调速控制系统文档格式.docx

電動機所處速度級以速度檔級數顯示。

正轉時最高位顯示“三”,其他三位為電機轉速;

反轉時最高位顯示“F”,其他三位為電機轉速。

每次電動機啟動後開始顯示,停止時數碼管顯示出“0000”。

1、系統的硬體電路設計與分析

電動機PWM驅動模組的電路設計與實現具體電路見下圖。

本電路採用的是基於PWM原理的H型橋式驅動電路。

PWM電路由複合體管組成H型橋式電路構成,四部分電晶體以對角組合分為兩組:

根據兩個輸入端的高低電平決定電晶體的導通和截止。

4個二極體在電路中起防止電晶體產生反向電壓的保護作用,防止電動機兩端的電流和電晶體上的電流過大的保護作用。

在實驗中的控制系統電壓統一為5v電源,因此若複合管基極由控制系統直接控制,則控制電壓最高為5V,再加上三極管本身壓降,加到電動機兩端的電壓就只有4V左右,嚴重減弱了電動機的驅動力。

基於上述考慮,我們運用了TLP521-2光耦集成塊,將控制部分與電動機的驅動部分隔離開來。

輸入端各通過一個三極管增大光耦的驅動電流;

電動機驅動部分通過外接12V電源驅動。

這樣不僅增加了各系統模組之間的隔離度,也使驅動電流得到了大大的增強。

在電動機驅動信號方面,我們採用了占空比可調的週期矩形信號控制。

脈衝頻率對電動機轉速有影響,脈衝頻率高連續性好,但帶帶負載能力差脈衝頻率低則反之。

經實驗發現,當電動機轉動平穩,但加負載後,速度下降明顯,低速時甚至會停轉;

脈衝頻率在10Hz以下,電動機轉動有明顯跳動現象。

而具體採用的頻率可根據個別電動機性能在此範圍內調節。

通過P10輸入高電平信號,P11輸入低電平,電機正轉;

通過P10輸入低電平信號,P11輸入高電平,電機反轉;

P10、P11同時為高電平或低電平時,電機不轉。

通過對信號占空比的調整來對電機轉速進行調節。

2、系統的軟體設計

本系統編程部分工作採用KELI-C51語言完成,採用模組化的設計方法,與各副程式做為實現各部分功能和過程的入口,完成鍵盤輸入、按鍵識別和功能、PWM脈寬控制和數碼管顯示等部分的設計。

單片機資源分配如下表:

P0

顯示模組介面

鍵盤中斷

P1

鍵盤模組介面

P1.0/P1.1

PWM電機驅動介面

系統時鐘

①PWM脈寬控制:

本設計中採用軟體延時方式對脈衝寬度進行控制,延時程式函數如下:

/*****************延時函數*************************/

delays()

{

uchari;

for(i=5000;

i>

0;

i--);

}

②鍵盤中斷處理副程式:

採用中斷方式,按下鍵,完成延時去抖動、鍵碼識別、按鍵功能執行。

要實現按住加/減速鍵不放時恒加或恒減速直到放開停止,就需在判斷是否鬆開該按鍵時,每進行一次增加/減少一定的占空比。

③顯示副程式:

利用數組方式定義顯示緩存區,緩存區有8位,分別存放各個數碼管要顯示的值。

④定時中斷處理程式:

採用定時方式1,因為單片機使用12M晶振,可產生最高約為65.5ms的延時。

對定時器置初值B1E0H可定時20ms,即系統時鐘精度可達0.02s。

當20ms定時時間到,定時器溢出則回應該定時中斷處理程式,完成對定時器的再次賦值,並對全局變數time加1,這樣,通過變數time可計算出系統的運行時間。

3、軟體設計中的特點:

對於電機的啟停,在PWM控制上使用漸變的脈寬調整,即開啟後由停止勻加速到默認速度,停止則由於當前速度逐漸降至零。

這樣有利於保護電機。

鍵盤處理上採用中斷方式,不必使程式對鍵盤反復掃描,提高了程式的效率。

 

第三章:

系統硬體電路設計

整體框圖如下:

第四章:

系統功能調試

仿真整體圖如下:

直流電機的調試功能仿真如下圖:

1、正轉時,電機正轉,數碼管最高位顯示“三”,其他三位先所給定頻率,如下圖:

2、反轉時,電機反轉,數碼管最高位顯示“F”,其他三位先所給定頻率,如下圖:

3、輸出波形如下:

4、加速分5檔,波形依次如下:

5、減速分5檔,波形如下:

第五章:

程式

見附件1

第六章:

PCB圖

見附件2

第七章:

元件清單

見附件3

第8章:

心得體會

附件1

/***************基於單片機AT89C51的直流電機PWM調速控制系統*************/

/*******************地點:

廣東松山職業技術學院************************/

/****************班級:

2009級檢測技術及應用****************************/

/*****************指導老師:

張軍濤***********************************/

/***************時間:

2011年7月1日***********************************/

/************頭檔*********/

#include<

reg51.h>

absacc.h>

#include<

intrins.h>

/**************************/

/********自定義變數********/

#defineuintunsignedint//自定義變數

#defineucharunsignedchar

chargw,sw,bw,qw;

ucharj;

//定時次數,每次20ms

ucharf=5;

//計數的次數

sbitP10=P1^0;

//PWM輸出波形1

sbitP11=P1^1;

//PWM輸出波形2

sbitP12=P1^2;

//正反轉

sbitP13=P1^3;

//加速

sbitP14=P1^4;

//減速

sbitP15=P1^5;

//停止

sbitP16=P1^6;

//啟動

uchark;

uchart;

//脈衝加減

/**************************/*

/*********控制位定義********************/

ucharcodesmg[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x73,0x71};

//程式存儲區定義字型碼表

chardataled[4]={0x08,0x04,0x02,0x01};

//位碼

uintx;

//數碼管顯示的數值

display();

//數碼管顯示

delays();

//延時函數

key();

displays();

/*****************************************/

/***************主函數********************/

main(void)

{

TMOD=0x51;

//T0方式1定時計數T1方式1計數

TH0=0xb1;

//裝入初值20MS

TL0=0xe0;

TH1=0x00;

//計數567

TL1=0x00;

TR0=1;

//啟動t0

TR1=1;

//啟動t1

gw=sw=bw=qw=0;

//數碼管初始化

P0=0xc0;

P2=1;

while

(1)//無限迴圈

{

display();

//數碼管顯示

key();

}

/***************數碼管顯示****************/

display()

gw=x%10;

//求速度個位值,送到個位顯示緩衝區

sw=(x/10)%10;

//求速度十位值,送到十位顯示緩衝區

bw=(x/100)%10;

//求速度百位值,送到百位顯示緩衝區

qw=x/1000;

//求速度千位值,送到千位顯示緩衝區

for(i=0;

i<

4;

{

P2=led[i];

if(i==0)//顯示個位

P0=smg[gw];

delays();

}

elseif(i==1)//顯示十位

{

P0=smg[sw];

}

elseif(i==2)//顯示百位

{

P0=smg[bw];

delays();

}

elseif(i==3)//顯示千位

if(k==0)//正轉時顯示"

三"

P0=0x49;

else

P0=0x71;

//反轉時顯示"

F"

}

}

i++;

/*******************************************************/

/************************************************/

/*********t0定時*中斷函數*************/

voidt0()interrupt1using2

//重裝t0

f--;

if(k==0)

if(f<

t)

P10=1;

else

P10=0;

P11=0;

if(f<

P11=1;

else

P11=0;

P10=0;

if(f==0)

f=5;

}

j++;

if(j==50)

j=0;

x=TH1*256+TL1;

//t1方式1計數,讀入計數值

x++;

display();

/****************按鍵掃描**************/

key()

if(P12==0)//如果按下,

while(!

P12)//去抖動

k=~k;

}

if(P16==0)//啟動

while(P16==0);

IE=0x8a;

}

if(P13==0)//加速

while(P13==0);

t++;

if(t>

=5)

t=5;

if(P14==0)//減速

while(P14==0);

t--;

if(t<

1)

t=1;

if(P15==0)//停止

while(P15==0);

EA=0;

}

/******************************************************/

附件2:

附件3:

元件

數量(個)

光電耦合器:

TLP521-2

1

三極管8550

4

按鍵

5

三極管8050

自鎖按鍵

1N4007

At89s52

四位一體數碼管

12M晶振

電容104

Led

直流電機

電阻1K

3

電容22P

2

電阻10K

電解電容47P/16V

74LS04

下載口

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1