久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1563|回復: 0
打印 上一主題 下一主題
收起左側

光電電機設計參考

[復制鏈接]
跳轉到指定樓層
樓主
ID:319402 發表于 2018-4-30 15:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1.采用全控型的開關功率元件進行脈寬調制(PulseWidth Modulation,簡稱PWM)已成為直流電機新的調速方式。
2.本設計采用由單片機控制實現的脈沖計數法。
3.本設計在硬件電路上共分為5個部分,單片機部分、按鍵輸入、PWM斬波電路、測速電路以及模擬負載
4.單片機接口電路
本設計采用的是STC的89C52單片機
工作電壓范圍為5.5V-3.4V
晶振選用石英晶振,頻率為20MHz
采用的是12V直流通過7805三端穩壓器穩壓到5V,給單片機和顯示部分供電。
在第9腳-RST,復位腳外,加了一個復位按鍵和復位電路,復位原理為:
第一次上電時,+5V通過給電容充電,于是此時電容相當于短路,+5V直接加到RST腳上,單片機自動復位。過了極短的時間,電容充電完畢,此時電容則相當于開路,于是RST腳被電阻R113拉為低,單片機開始正常工作。
    當RESET鍵按下時,+5V通過按鍵加到RST腳上,單片機復位,RESET鍵彈起之后,RST腳重新被R113拉為低,單片機開始正常工作。
5.按鍵輸入電路
6.PWM驅動電路
如圖所示,R21為P1.1口的上拉電阻10k,R20為限流電阻。
當P1.1口為低時,8050的基極電平被拉低,此時8050截止,所以9012的基極為高,9012截止,電機兩端沒有電壓。
當P1.1口為高時,8050基極電壓也為高,于是8050導通, 8050的集電極電壓為低,此時9012的基極也為低,9012導通,+12V加到電機兩端,電機開始轉動。
所以,當P1.1口為高時,電機兩端電壓也為高;P1.1口為低時,電機兩端電壓也為低。于是當P1.1口產生PWM信號輸出時,電機兩端會產生同樣的PWM波形,從而達到調節電機轉速的目的。
7.測速電路
R25=510  R22=10K   R24=10K
8.軟件編程  按鍵系統
其對應程序如下:
voidclear_shake()
{
if(nn ==0)
{n = 0;}
if(nn1 == 0)
{
nn = 1;
    if(shake == 0&&n >= 100)//shake就是被按下的鍵
       {
       shake_1 = 1;
       nn1 = 1;
       nn = 0;
       }   
}
9.PWM
PWM調速子程序是放在定時器0中斷中進行的,中斷設置如下:
//------T0-----------T0用作斬波
    ET0 = 1;//中斷允許位
    time0_set = 300;
    time0_tmp = 65536-(time0_set)*fosc/12;//
    TH0 = (time0_tmp/256);   
    TL0 = (time0_tmp%256);   
    TF0 = 0;//CLR TF0
    TR0  =1;//SETB TR0
    PT0 = 1; //高優先級
下面是PWM的中斷子程序:
void time0_int(void) interrupt 1
{
    TH0=(time0_tmp/256);
    TL0=(time0_tmp%256);
    if(cut== 1)
       {
       time0_tmp= 65536-time0_set*20/12;
       cut= 0;
       }
    else
       {
       time0_tmp= 65536-(time0 - time0_set)*20/12;
       cut= 1;
       }
}
10.測速系統
//-------外部中斷1--------用做測速
    IT1= 1; //為跳沿觸發方式,引腳INT1上的電平從高到低的負跳變有效。
    IE1= 0; //中斷請求標志
    EX1= 0; //外部中斷1允許位
    PX1= 0; //為高優先級
//------T1-----------T1用做計數
    TH1= 0;
    TL1= 0;
    TF1= 0;//中斷請求位
    TR1= 0;//計數器1關閉
    ET1= 0; //禁止T1溢出中斷
//--------------------------------
    IE   = 0xaa;//
TMOD = 0x91;//
//---------------------------
外部中斷1中斷服務子程序如下:
void out1_int(void) interrupt 2
{
IE1 = 0;
EX1 = 0;
TR1 = 0;
TH1_1 = TH1;
TL1_1 = TL1;
TH1 = 0;
TL1 = 0;
m = 1;
}
獲取脈沖寬度值子函數如下:
void getwidth_1()
{
TH1 = 0;
TL1 = 0;
n = 0;
n1 = n;
while(INT1==1&&((n-n1)<30))//n為每1MS +2
{}
if(INT1==0)
TR1 = 1;   //計數器1打開
else
goto out;
//IE1 = 0;//中斷請求標志
EX1 = 1;//外部中斷1啟動
n = 0;
n1 = n;
while(m==0&&((n-n1)<30))
{}
if(m==0)//M=1,則已經進入out_int1中斷,若等于0,則說明30MS延時已過
    {
    TH1_1= 0;
    TL1_1= 0;
    }
out:
IE1 = 0;//中斷請求標志
m = 0;
EX1 = 0;//外部中斷允許位
TR1 = 0;
width_1 = (TH1_1*256+TL1_1);//timepr=脈沖寬度 /μS
}
此外,為了穩定測得的轉速值,在程序中加了一個取平均值的函數:
void getwidth()
{
int gw,gw1;
width = 0;
gw1 = 0;
for(gw=0;gw<6;gw++)
    {
GG: getwidth_1();
    if(width_1!= 0)
    widthbuf[gw]= width_1;
    else
    gotoGG;
    }
width= (widthbuf[0] + widthbuf[1] + widthbuf[2] + widthbuf[3] + widthbuf[4] +widthbuf[5])/6;
這段函數的意思就是,將測得的連續6個不為零的脈沖寬度取平均值,以消除偶然的不穩定因素,使轉速顯示更加穩定。
11.PID調節系統     即精確誤差
void PI()
{
EK1 = EK;
EK = speed_set - speed;
EK2 = EK - EK1;
if(PIn == 0)
{
EK2 = 1000;
PIn++;
}
YK = KP*EK + KI*EK2;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美日韩久久 | 九九久久久 | 日韩在线一区视频 | 亚洲一区二区视频 | 久久久青草婷婷精品综合日韩 | 久久99蜜桃综合影院免费观看 | 亚洲视频区 | 综合久久亚洲 | 三级国产三级在线 | 亚洲一一在线 | 人人亚洲 | 日韩一区中文字幕 | 欧美综合在线视频 | 五月天综合影院 | 99热电影| 精品日韩一区二区 | 殴美成人在线视频 | 一级片在线视频 | av毛片 | 在线日韩精品视频 | 国产精品美女久久久久aⅴ国产馆 | 一区二区高清在线观看 | 无码日韩精品一区二区免费 | 欧美精品一区二区免费 | 久久久久久久久毛片 | 日韩欧美高清dvd碟片 | www.一区二区 | 久久精品国产亚洲 | 国产精品夜夜夜一区二区三区尤 | 久久高清 | 日韩在线一区二区 | 日韩免 | 久久国际精品 | 色香蕉在线 | 在线免费观看日本视频 | 亚洲精品小视频在线观看 | 国产成人免费视频网站高清观看视频 | 麻豆国产精品777777在线 | 欧美1区2区 | 中文字幕日韩专区 | 一区二区精品视频 |