制作完成的pid直流電機轉速控制系統實物圖:
51單片機源程序如下:
#include #include "intrins.h" #include #define uchar unsigned char #define uint unsigned int #define GPIO_KEY P2 sbit PWM=P1^4; sbit P10=P1^0; sbit P12=P1^2; uchar speed1[4]={"0000"};//設定轉速 uchar speed2[3]={"000"};//占空比 uchar speed[]={"0000"};//當前轉速 uchar KeyValue=0; uint AA,count=0,flag; float pid_p=0.003,pid_i=0.003,pid_d=0.002; //PID三個參數 初值 uint SpeedSet=3000,CurrentSpeed;//設定轉速 當前轉速 unsigned char pid_val_mid;//pid_val_mid脈沖寬度 unsigned int lastError=0; long int sumError=0;//sum偏差和 void delay1(unsigned int i) { unsigned int j; for(;i>0;i--) for(j=0;j<333;j++) {;} } /********************* 鍵盤掃描*************/ void KeyDown(void) { GPIO_KEY=0x0f; delay1(10); if(GPIO_KEY!=0x0f) { delay1(10); if(GPIO_KEY!=0x0f) { //測試列 GPIO_KEY=0X0F; delay1(10); switch(GPIO_KEY) { case(0X07): KeyValue=0;break; case(0X0b): KeyValue=1;break; case(0X0d): KeyValue=2;break; case(0X0e): KeyValue=3;break; } //測試行 GPIO_KEY=0XF0; delay1(10); switch(GPIO_KEY) { case(0X70): KeyValue=KeyValue;break; case(0Xb0): KeyValue=KeyValue+4;break; case(0Xd0): KeyValue=KeyValue+8;break; case(0Xe0): KeyValue=KeyValue+12;break; } } } } void timer() { TMOD=0x11;//定時器0工作方式1.16位,定時器1工作方式1,16位定時; TH0=0x4b;//50ms初值 TL0=0xfe; TH1=0xfc;//1msPWM控制 TL1=0x66; TR1=1; //啟動定時器1 ET1=1; //定時器1中斷使能 IT0=1;//外部中斷下降沿觸發 TR0=1; //定時器啟動標志 ET0=1; //定時器中斷使能 EX0=1; //外部中斷使能 EA=1; //全局中斷 } /***********************lcd顯示*************/ void display() { speed[0]=CurrentSpeed/1000+0x30; //當前轉速 speed[1]=CurrentSpeed/100%10+0x30; speed[2]=CurrentSpeed/10%10+0x30; speed[3]=CurrentSpeed%10+0x30; speed1[0]=SpeedSet/1000+0x30;//設定轉速 speed1[1]=SpeedSet/100%10+0x30; speed1[2]=SpeedSet/10%10+0x30; speed1[3]=SpeedSet%10+0x30; speed2[0]=pid_val_mid/100+0x30; speed2[1]=pid_val_mid/10%10+0x30;//占空比 speed2[2]=pid_val_mid%10+0x30; DispHanzi(0,0,5,"當前轉速:"); DispZimu(0,5,4,speed); DispHanzi(1,0,5,"設定轉速:"); DispZimu(1,5,4,speed1); DispHanzi(3,0,4,"占空比:");//占空比 DispZimu(3,4,3,speed2); DispHanzi(3,6,1,"%");//占空比 } /************************電機控制*************/ void keyKZ() { if(KeyValue==4)//正轉 { P10=1; P12=0; } if(KeyValue==5)//反轉 { P10=0; P12=1; } if(KeyValue==6)//停車 { P10=0; P12=0; } if(KeyValue==12)//設定速度加50 SpeedSet+=50; if(KeyValue==13)//設定速度減50 SpeedSet-=50; if(KeyValue==14)//設定速度加1 SpeedSet+=1; if(KeyValue==15)//設定速度減1 SpeedSet-=1;
上一篇:基于51單片機的等精度頻率計設計
下一篇:單片機全自動洗衣機程序
推薦閱讀
史海拾趣
驊訊(Cmedia)公司成立于1991年,起初是一家專注于音頻芯片設計的公司。在成立初期,驊訊就憑借其PCI多通道芯片在市場上取得了初步的成功。這種芯片為電腦提供了更為豐富的音頻體驗,從而幫助驊訊在音頻芯片設計領域嶄露頭角。
科達嘉電子不僅立足于深圳,還積極布局全球市場。公司通過參加國際電子展會、與國際知名企業合作等方式,不斷拓展海外市場。同時,科達嘉還根據客戶需求,提供個性化的電感解決方案,贏得了眾多客戶的信任和合作。公司的主要產品,如一體成型電感、大電流電感等,已廣泛應用于工業控制、汽車電子等多個領域。
在追求技術創新的同時,科達嘉電子也積極承擔社會責任。公司關注環境保護,推行綠色生產,努力減少生產過程中的環境污染。此外,科達嘉還積極參與社會公益活動,為社區的發展貢獻力量。通過不斷創新和履行社會責任,科達嘉電子在電子行業中樹立了良好的企業形象。
科達嘉電子不僅立足于深圳,還積極布局全球市場。公司通過參加國際電子展會、與國際知名企業合作等方式,不斷拓展海外市場。同時,科達嘉還根據客戶需求,提供個性化的電感解決方案,贏得了眾多客戶的信任和合作。公司的主要產品,如一體成型電感、大電流電感等,已廣泛應用于工業控制、汽車電子等多個領域。
進入XXXX年代,Esico-Triton開始將目光投向國際市場。公司積極參加國際電子展會,與世界各地的潛在客戶和合作伙伴建立聯系。通過不斷的市場調研和產品調整,Esico-Triton成功打入歐洲和亞洲市場,產品的國際知名度逐漸提升。
近年來,Esico-Triton越來越重視企業的可持續發展和社會責任。公司開始著手研發更加環保的電子產品,減少有害物質的使用,推動循環經濟的發展。此外,Esico-Triton還積極參與社會公益活動,支持教育事業和環境保護項目,以實際行動回饋社會。這些舉措不僅提升了公司的品牌形象,也為電子行業的可持續發展樹立了典范。
隨著負荷電流變化及環境溫度變化,電力電纜會發生熱伸縮,其中因線芯的熱脹冷縮而產生非常大的熱機械力,電纜線芯截面越大,所產生的熱機械力就越大;同時線芯和金屬護套還會因熱脹冷縮的多次循環,而產生蠕變。熱伸縮對電力電纜運行構成很大的威脅 ...… 查看全部問答∨ |
|
1. CCD尺寸,亦即微型攝像機靶面。原多為1/2英寸,現在1/3英寸的已普及化,1/4英寸和1/5英寸也已商品化。 2. CCD微型攝像機像素,是CCD的主要性能指標,它決定了顯示圖像的清晰程度,分辨率越高,圖像細節的表現越好。CCD是由面陣感光元素組成, ...… 查看全部問答∨ |
有感于大家需要,共享下!內容包括電子設計時經常會碰到的電氣圖形符號,常用電子元器件型號命名法及主要技術參數,電阻器和電位器的型號命名方法,主要技術指標,電阻器的標志內容及方法,……… 查看全部問答∨ |
這款概念雨傘采用壓縮空氣作為遮雨部件。通過調整傘柄的控制按鈕,您可以自如控制、調整雨傘的空氣傘直徑。這樣一來,傘的部件便只剩下一支傘柄,而您也不用再為雨天撐傘進入室內,弄濕地板而發愁了! … 查看全部問答∨ |
|
大家好! 我想反DSP(EVMDM6437)采集到的YUV422圖像通過網絡發送到Windows xp上,結果出現了圖像扭曲。 發送代碼如下: timeout.tv_sec = 0; timeout.tv_usec = 0; & ...… 查看全部問答∨ |
<c:contact c:Version="1" xmlns:c="http://schemas.microsoft.com/Contact" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:MSP2P="http://schemas.microsoft.com/Contact/Extended/MSP2P"> ...… 查看全部問答∨ |
各位大俠: 小弟我今天安裝WinCE4.2版本,然后安裝了EVC4.0,EVC SP2和STANDARD_SDK. 但是出現以下問題: 1 安裝完WinCE4.2時,電腦的右下角標出現了以下提示: Virtual PC/Windows CE/Emulator 會造成WINDOWS不穩定,WIN ...… 查看全部問答∨ |
1)用虛擬軟盤PCDOS啟動vpc; 2)插入新的虛擬軟盤Dos Additions.vfd; 3)運行里面的fshare.exe; 4) 按右邊的alt鍵,在虛擬pc設置中設置共享文件; 5)可以查看共享文件夾里的文件了:)… 查看全部問答∨ |