直流電機PID設計_第1頁
直流電機PID設計_第2頁
直流電機PID設計_第3頁
直流電機PID設計_第4頁
直流電機PID設計_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、-. z基于uC/COS的直流電機PID轉速閉環調速控制系統Proteus仿真實現在工業自動控制系統和各種智能產品中常常會用用電動機進展驅動、傳動和控制,而現代智能控制系統中,對電機的控制要求越來越準確和迅速,對環境的適應要求越來越高。隨著科技的開展,通過對電機的改造,出現了一些針對各種應用要求的電機,如伺服電機、步進電機、開關磁阻電機等非傳統電機。但是在一些對位置控制要求不高的電機控制系統如傳動控制系統中,傳統電機如直流電機乃有很大的優勢,而要對其進展準確而又迅速的控制,就需要復雜的控制系統。隨著微電子和計算機的開展,數字控制系統應用越來越廣泛,數字控制系統有控制準確,硬件實現簡單,受環境影

2、響小,功能復雜,系統修改簡單,有很好的人機交換界面等特點。在電機控制系統開發中,常常需要消耗各種硬件資源,系統構建時間長,而在調試時很難對硬件系統進展修改,從而延長開發周期。隨著計算機仿真技術的出現和開展,可用計算機對電機控制系統進展仿真,從而減小系統開發開支和周期。計算機仿真可分為整體仿真和實時仿真。整體仿真是對系統各個時間段對各個對象進展計算和分析,從而對各個對象的變化情況有直觀的整體的了解,即能對系統進展準確的預測,如Matlab就是一個典型的實時仿真軟件。實時仿真是對時間點的動態仿真,即隨著時間的推移它能動態仿真出當時系統的狀態。Proteus是一個實時仿真軟件,用來仿真各種嵌入式系統

3、。它能對各種微控制器進展仿真,本系統即用Proteus對直流電機控制系統進展仿真。 在系統軟件開發中開發中可用操作系統,也可不用操作系統。如用操作系統,程序可實現模塊化,并能對系統資源進展統籌管理,最主要的是可實現多任務運行。如果需要多任務并行運行,并且需要一定的時間間隔,*些任務對時間的要求不高時,如不用操作系統則要占用定時器資源,并且對棧空間和硬件資源很難進展管理,所以在這種情況下需要操作系統。本系統用操作系統uC/COS.uC/COS是一個完整的、可移植、可固化、可剪裁的占先式實時多任務核.uC/COS已經有很多產品成功使用的案例且得到美國軍方的認證,說明了該系統的可靠性。uC/COS源

4、代碼公開,代碼短,源代碼大局部是使用NSI C編寫的,移植性和裁減性好,功能強大,能可靠應用于各種控制系統中。系統構成轉速控制輸入0832采樣移植了uCCOS的LPC2106ARM微控制器波液晶顯示51單片機仿真的電機電機驅動電路測速接口輸入轉矩硬件全圖各子系統. 轉速控制輸入如用按鍵輸入則需要復雜的軟件實現,并且需要足夠的引腳資源,本系統用ADC0832采樣電位器上的電壓信號來實現轉速信號輸入。2.LPC2106微控制器 LPC2106是Phlip公司推出的核心為ARM的控制器。LPC2106 包含一個支持仿真的ARM7TDMI-S CPU、與片存儲器控制器接口的ARM7 局部總線、與中斷控

5、制器接口的AMBA 高性能總線AHB和連接片外設功能的VLSI 外設總線VPB,ARMAMBA 總線的兼容超集。片有64K 字節靜態RAM和128K的FLASH存儲器。可尋址4GB。 在本仿真中LPC2106沒加晶振電路,頻率在芯片屬性中設置。3.液晶顯示本系統采用Proteus仿真庫有的液晶顯示模塊AMPIRE128*64,為8192像素的單色LCD屏幕分為兩半控制,控制引腳為CS1和CS2。數據通過移位存放器輸入。4電機驅動電路 本系統仿真的是最大輸入電壓為12伏的微型電機,故用通用電機驅動電路實現假設該電路輸入電阻為無窮大,輸出電阻為0。5仿真電機的51單片機雖然Proteus有電機模塊

6、,但其電機模塊沒有輸出轉速接口故用一單片機代替它,單片機用ADC0832采樣輸入的電壓,經過處理即輸出和真實電機同步的轉速需要大量的浮點運算,可考慮用DSP。通過兩個按鍵改變轉矩沒按一次增大或減小0.001,上面的是增大。6仿真結果仿真1.8秒鐘后得下列圖,可看到轉速逐漸增大然后穩定下來。增大轉矩后,可看到轉速下降后又恢復7程序;1系統主程序:main.c/* 實時微型直流電機PID轉速閉環調速控制系統程序(基于移植于LPC2106上的uc/cos實時操作系統)* 程序編寫者: 吳斌* 編寫日期: 2007年11月14日*/*include config.h*include LCD.h*def

7、ine TASK_STK_SIZE 512 /各任務棧大小*define IO_Init() PINSEL0= 2; IODIR|= 0*00007FB0; /P0.4P0.5P0.7-P1.4為輸出其他的為輸入*define Uma* 1000 /最大調節轉速*define Kp 0.7 /比例放大系數*define Ts 0.03 /采樣周期*define t0 4 /積分時間常數*define td 0.0005 /微分時間常數*define q0 Kp*(1+Ts*t0+td/Ts)*define q1 -Kp*(1+2*td/Ts) *define q2 Kp*td/Ts*defin

8、e ADC_DO 0*00000040 /P0.6*define ADC_CS 0*00000080 /P0.7*define ADC_CLK 0*00000100 /P0.8*define ADC_DI 0*00000200 /P0.9OS_STK Main_TaskStkTASK_STK_SIZE;OS_STK Task1_TaskStkTASK_STK_SIZE;OS_STK Task2_TaskStkTASK_STK_SIZE;OS_STK Task3_TaskStkTASK_STK_SIZE;OS_STK Task4_TaskStkTASK_STK_SIZE;/各任務棧OS_EVEN

9、T *Conbo*; /控制信號float n=0; / 輸入轉速float nb=0; / 反應轉速void Main_Task(void *data);void Task1(void *p_arg);void Task2(void *p_arg);void Task3(void *p_arg);void Task4(void *p_arg); /函數聲明void PWMInit(void) PWMPR = 0*00; / 不分頻,計數頻率為Fpclk PWMMCR = 0*02; / 設置PWMMR0匹配時復位PWMTCPWMMR0 = 2765; / 設置PWM周期 PWMMR1 = 0

10、; / 設置PWM占空比 PWMLER = 0*03; / PWMMR0、PWMMR1鎖存 PWMPCR = 0*0200;/ 允許PWM1輸出,單邊PWM PWMTCR = 0*09; / 啟動定時器,PWM使能PWMMR0 = 2765; / 設置PWM周期 PWMMR1 = 0; / 設置PWM占空比 PWMLER = 0*03; / PWMMR0、PWMMR1鎖存/* 函數名稱: main* 功能描述: c語言的主函數,由它啟動多任務環境*/int main (void) OSInit(); OSTaskCreate(Main_Task, (void*)0, &Main_TaskStk

11、TASK_STK_SIZE - 1, 0); OSStart();return 0;/* 函數名稱: Main_Task* 功能描述: 初始化系統及建立任務*/ void Main_Task(void *p_arg) p_arg = p_arg; / 防止編譯警告 TargetInit(); IO_Init(); Conbo* = OSMbo*Create(void*)0); LCD_Main(); OSTaskCreate(Task1, (void *)0, &Task1_TaskStkTASK_STK_SIZE - 1, 2); OSTaskCreate(Task2, (void *)0,

12、 &Task2_TaskStkTASK_STK_SIZE - 1, 3); OSTaskCreate(Task3, (void *)0, &Task3_TaskStkTASK_STK_SIZE - 1, 1); OSTaskCreate(Task4, (void *)0, &Task4_TaskStkTASK_STK_SIZE - 1, 5); OSTaskSuspend(0);/* 函數名稱: Task1_Task* 功能描述: 實時任務,負責采樣和處理數據*/ void Task1(void *p_arg) float us;/上次輸出控制信號 float es;/上次采樣誤差信號 flo

13、at es2 = 0;/上次的上次的采樣誤差信號 uint32 nj;/采樣轉速信號 float u;/此次輸出控制信號 float e;/此次采樣誤差信號 p_arg = p_arg; PWMInit();/PWM初始化 while(1) nj=IOPIN16; nb=(float)nj/10;/采樣反應轉速 e=n-nb;u=us+q0*e+q1*es+q2*es2;/PID處理if(u=Uma*)u=Uma*;es2=es;es=e;us=u; OSMbo*Post(Conbo*,(void*)&u); /發送處理后的信號OSTimeDlyHMSM(0,0,0,30); /* 函數名稱:

14、 Task2_Task* 功能描述: 根據控制信號輸出PWM波*/ void Task2(void *p_arg) uint8 err; float *nh; p_arg = p_arg; while(1) nh=(float*)OSMbo*Pend(Conbo*,0,&err); if(*nh=Uma*-0.5) PWMMR0 = 2765; PWMMR1= 2764;PWMLER = 0*03;else PWMMR0 = 2765; PWMMR1=(uint32)(*nh/Uma*2765);PWMLER = 0*03; void Delay(uint8 n) /延時函數 uint8 i;

15、 for(i=1;i=n;i+); /* 函數名稱: Task3_Task* 功能描述: 定時采樣輸入的轉速要求(0832采樣)*/ void Task3(void *p_arg) uint8 ch,i,flag=0; p_arg=p_arg; ch=0; IOCLR=ADC_CS; IOCLR=ADC_DI;/片選,DO為高阻態 for(i=0;i10;i+) ;IOCLR=ADC_CLK; Delay(4); IOSET=ADC_DI; IOSET=ADC_CLK; Delay(4); /第一個脈沖,起始位 IOCLR=ADC_CLK; Delay(4); IOSET=ADC_DI; IO

16、SET=ADC_CLK; Delay(4); /第二個脈沖,DI=1表示雙通道單極性輸入 IOCLR=ADC_CLK; Delay(4); IOSET=ADC_DI; IOSET=ADC_CLK; Delay(4); /第三個脈沖,DI=1表示選擇通道1CH2 IOCLR=ADC_DI; /DI轉為高阻態,DO脫離高阻態為輸出數據作準備 IOSET=ADC_CLK; Delay(4); IOCLR=ADC_CLK; Delay(4); /經實驗,這里加一個脈沖AD便能正確讀出數據 for (i=0; i8; i+) IOSET=ADC_CLK; Delay(4); IOCLR=ADC_CLK;

17、 Delay(4); if(IOPIN & ADC_DO)!=0) ch=(ch1)|1;/在每個脈沖的下降沿DO輸出一位數據,最終ch為8位二進制數 else ch=(ch1)|0; IOSET=ADC_CS; n=(float)ch*1000/256; if(flag=0) flag=1; OSTaskChangePrio(1,4); OSTimeDlyHMSM(0,0,0,300);/* 函數名稱: Task4_Task* 功能描述: 液晶顯示任務*/ void Task4(void *p_arg) *if OSCRITICAL_METHOD =3 OS_CPU_SR cpu_sr; *

18、endifuint16 w,q,k; uint8 i; uint8 shu16,shu26; p_arg=p_arg; for(;) shu14=10; w=(uint16)(n*10); k=10000; for(i=0;i4;i+) shu1i=(uint8)(w/k); w=w%k;k=k/10; shu15=(uint8)w; OS_ENTER_CRITICAL(); LCD_num(80,2,shu1,6); shu24=10; q=(uint16)(nb*10); k=10000; for(i=0;i4;i+) shu2i=(uint8)(q/k); q=q%k;k=k/10; s

19、hu25=(uint8)q; LCD_num(80,4,shu2,6); OS_E*IT_CRITICAL(); OSTimeDlyHMSM(0,0,0,100); /* End Of File*/2.自編的LCD驅動程序 (1)頭文件LCD.h/* LCD驅動頭文件LCD.h(基于LPC21*)* 程序編寫者: 吳斌* 編寫日期: 2007年11月12日*/*ifndef _LCD_H_*define _LCD_H_*include config.h*define SPI_CLK0*00000010/P0.4 *define SPI_DATA0*00000020/P0.5 *define R

20、W 0*00000800 /RW*define RS 0*00000400 /RS*define CS1 0*00001000 /CS1*define CS2 0*00002000 /CS2*define E 0*00004000 /E*define Kai 0*3F*define Guang 0*3E*define Hang 0*C0*define Ye 0*B8*define Lie 0*40*define Setlie(a) IOCLR = RW; IOCLR = RS; send(Lie+a);*define Setye(a) IOCLR = RW; IOCLR = RS; send(

21、Ye+a);*define Setweizi(a,b) IOCLR = RW; IOCLR = RS; send(Lie+a); send(Ye+b);*define Write(a) IOCLR = RW; IOSET = RS; send(a);void send(uint8 dat);void LCD_disp(uint8 a,uint8 b,uint8 c,uint8 d,uint8 m,uint8 *shuju);void SetCS(uint8 a);void LCD(uint8 a,uint8 b,uint8 c,uint8 d, uint8 *shuju);void LCD_n

22、um(uint8 a,uint8 b,uint8 *shuju,uint8 n);void LCD_str(uint8 a,uint8 b,uint8 *strtab,uint8 n);void LCD_hanzi(uint8 a,uint8 b,uint8 *hanzitab,uint8 n);void LCD_*ian(uint8 a,uint8 b,uint8 *strtab,uint8 n);void LCD_Main(void);*endif/* End Of File*/ (2)LCD驅動程序LCD.c/* LCD驅動程序(基于LPC21*)* 程序編寫者: 吳斌* 編寫日期: 2

23、007年11月12日*/*includeLCD.hvoid send(uint8 dat) /用移位存放器輸出一字節數據 uint8 i; IOSET = E; / E = 1 for(i=0; i8; i+)/ 發送8位數據 IOCLR = SPI_CLK;/ SPI_CLK = 0 if( (dat&0*80)!=0 ) IOSET = SPI_DATA; else IOCLR = SPI_DATA; dat = 1; IOSET = SPI_CLK;/ SPI_CLK = 1 IOCLR = E; / E = 0void LCD_disp(uint8 a,uint8 b,uint8 c,

24、uint8 d,uint8 m,uint8 *shuju)/*LCD顯示函數,在第a列b頁輸出大小為c*d的圖像(只能選擇在左或右屏幕顯示) */uint8 i,j,f; SetCS(m); for(j=0;jd;j+) Setweizi(a,j+b); for(i=0;ic;i+) Write(*(shuju+i); for(f=0;f0*FF;f+); void SetCS(uint8 a) if(a=0) IOSET =CS2; IOCLR =CS1; else IOSET =CS1; IOCLR =CS2; void LCD(uint8 a,uint8 b,uint8 c,uint8

25、d, uint8 *shuju) /*LCD主顯示函數,在第a列b頁輸出大小為c*d的圖像*/uint8 i,j,m,f,n; uint8 *p=shuju; if(a+c=64) SetCS(0); for(j=0;jd;j+) Setweizi(a,j+b); for(i=0;ic;i+) Write(*p); p+; for(f=0;f0*FF;f+); else if(a64) m=64-a; n=c-m; for(j=0;jd;j+) SetCS(0); Setweizi(a,j+b); for(i=0;im;i+) Write(*p); p+; for(f=0;f0*FF;f+);

26、 SetCS(1);Setweizi(0,j+b); for(i=0;in;i+) Write(*p); p+; for(f=0;f0*FF;f+); else SetCS(1); for(j=0;jd;j+) Setweizi(a-64,j+b); for(i=0;ic;i+) Write(*p); p+; for(f=0;f0*FF;f+); void LCD_num(uint8 a,uint8 b,uint8 *shuju,uint8 n)/*在第a列b頁顯示shuju數組的數字或小數點和空格*/uint8 numzimo192=0*FF,0*1F,0*EF,0*F7,0*F7,0*EF

27、,0*1F,0*FF,0*FF,0*F0,0*EF,0*DF,0*DF,0*EF,0*F0,0*FF, /*0,0*/0*FF,0*EF,0*EF,0*07,0*FF,0*FF,0*FF,0*FF,0*FF,0*DF,0*DF,0*C0,0*DF,0*DF,0*FF,0*FF,/*1,1*/0*FF,0*8F,0*F7,0*F7,0*F7,0*77,0*8F,0*FF,0*FF,0*CF,0*D7,0*DB,0*DD,0*DE,0*CF,0*FF,/*2,2*/0*FF,0*CF,0*F7,0*77,0*77,0*B7,0*CF,0*FF,0*FF,0*E7,0*DF,0*DF,0*DF,0*

28、EE,0*F1,0*FF,/*3,3*/0*FF,0*FF,0*3F,0*DF,0*EF,0*07,0*FF,0*FF,0*FF,0*F8,0*FB,0*DB,0*DB,0*C0,0*DB,0*FF,/*4,4*/0*FF,0*07,0*F7,0*77,0*77,0*F7,0*F7,0*FF,0*FF,0*E6,0*DE,0*DF,0*DF,0*EE,0*F1,0*FF,/*5,5*/0*FF,0*1F,0*EF,0*77,0*77,0*E7,0*FF,0*FF,0*FF,0*F0,0*EE,0*DF,0*DF,0*EE,0*F1,0*FF,/*6,6*/0*FF,0*C7,0*F7,0*F7

29、,0*37,0*C7,0*F7,0*FF,0*FF,0*FF,0*FF,0*C0,0*FF,0*FF,0*FF,0*FF,/*7,7*/0*FF,0*8F,0*77,0*F7,0*F7,0*77,0*8F,0*FF,0*FF,0*E3,0*DD,0*DE,0*DE,0*DD,0*E3,0*FF,/*8,8*/0*FF,0*1F,0*EF,0*F7,0*F7,0*EF,0*1F,0*FF,0*FF,0*FF,0*CE,0*DD,0*DD,0*EE,0*F0,0*FF,/*9,9*/0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*CF,0*CF,0*F

30、F,0*FF,0*FF,0*FF,0*FF,/*.,10*/0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF;/* ,11*/ uint8 i,f; uint8 *p; for(i=0;in;i+) f=*(shuju+); p=numzimo+f*16; LCD(a,b,8,2,p); a=a+8; void LCD_str(uint8 a,uint8 b,uint8 *strtab,uint8 n) /*在第a列b頁顯示ASCII字符串(要點陣數據)*/uint8 i; for(i

31、=0;in;i+) LCD(a,b,8,2,strtab); a=a+8; strtab=strtab+16; void LCD_hanzi(uint8 a,uint8 b,uint8 *hanzitab,uint8 n) /*在第a列b頁顯示漢字串(要點陣數據)*/uint8 i; for(i=0;in;i+) LCD(a,b,16,2,hanzitab); a=a+16; hanzitab=hanzitab+32; void LCD_*ian(uint8 a,uint8 b,uint8 *strtab,uint8 n) /顯示ASCII字符串到頂時換行uint8 m; if(a+(n-1)

32、*80) m=a/8+1+n-16; else m=a/8+n-16; LCD_str(a,b,strtab,n-m); LCD_str(0,b+2,strtab+16*(n-m),m); void LCD_Main(void) /本系統顯示主界面uint8 i;uint8 zifu80=0*F7,0*07,0*F7,0*FF,0*FF,0*F7,0*07,0*F7,0*FF,0*E0,0*DF,0*DF,0*DF,0*DF,0*E0,0*FF,/*U,0*/0*FF,0*FF,0*FF,0*FF,0*7F,0*9F,0*E7,0*FB,0*FF,0*9F,0*E7,0*F9,0*FE,0*F

33、F,0*FF,0*FF,/*/,1*/0*FF,0*FF,0*FF,0*7F,0*7F,0*7F,0*FF,0*FF,0*FF,0*F1,0*EE,0*DF,0*DF,0*DF,0*EE,0*FF,/*c,2*/0*FF,0*FF,0*7F,0*7F,0*7F,0*7F,0*FF,0*FF,0*FF,0*E0,0*DF,0*DF,0*DF,0*DF,0*E0,0*FF,/*o,3*/0*FF,0*FF,0*7F,0*7F,0*7F,0*7F,0*7F,0*FF,0*FF,0*CC,0*DB,0*DB,0*DB,0*DB,0*E6,0*FF;/*s,4*/uint8 inputn160=0*BB

34、,0*0B,0*B0,0*1B,0*BB,0*9B,0*6F,0*67,0*6B,0*6C,0*EB,0*67,0*F7,0*2F,0*EF,0*FF,0*FB,0*FB,0*FB,0*00,0*FD,0*FD,0*00,0*B5,0*75,0*80,0*FF,0*C0,0*7F,0*00,0*FF,0*FF,/*輸,0*/0*FF,0*FF,0*FF,0*FF,0*FE,0*7C,0*89,0*E7,0*9F,0*7F,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*BF,0*DF,0*EF,0*F7,0*F9,0*FE,0*FF,0*FF,0*FF,0*FF,0*FC,0*

35、FB,0*E7,0*CF,0*EF,0*FF,/*入,1*/0*37,0*57,0*63,0*14,0*77,0*77,0*77,0*BF,0*B7,0*07,0*B0,0*B7,0*B7,0*B7,0*BF,0*FF,0*F7,0*F7,0*FB,0*00,0*FB,0*FB,0*FF,0*FD,0*F4,0*ED,0*DD,0*2D,0*F1,0*FD,0*FF,0*FF,/*轉,2*/0*BF,0*BD,0*33,0*FF,0*FB,0*1B,0*DB,0*DB,0*0,0*DB,0*DB,0*DB,0*1B,0*FB,0*FF,0*FF,0*BF,0*DF,0*E0,0*DF,0*B7

36、,0*B6,0*BA,0*BC,0*80,0*BE,0*BC,0*BA,0*B2,0*BF,0*BF,0*FF,/*速,3*/0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*C9,0*C9,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF;/*:,4*/uint8 outputn160=0*BB,0*0B,0*B0,0*1B,0*BB,0*9B,0*6F,0*67,0*6B,0*6C,0*E

37、B,0*67,0*F7,0*2F,0*EF,0*FF,0*FB,0*FB,0*FB,0*00,0*FD,0*FD,0*00,0*B5,0*75,0*80,0*FF,0*C0,0*7F,0*00,0*FF,0*FF,/*輸,0*/0*FF,0*FF,0*03,0*BF,0*BF,0*BF,0*BF,0*00,0*BF,0*BF,0*BF,0*BF,0*BF,0*03,0*FF,0*FF,0*FF,0*FF,0*81,0*DF,0*DF,0*DF,0*DF,0*C0,0*DF,0*DF,0*DF,0*DF,0*DF,0*81,0*FF,0*FF,/*出,1*/0*37,0*57,0*63,0*14

38、,0*77,0*77,0*77,0*BF,0*B7,0*07,0*B0,0*B7,0*B7,0*B7,0*BF,0*FF,0*F7,0*F7,0*FB,0*00,0*FB,0*FB,0*FF,0*FD,0*F4,0*ED,0*DD,0*2D,0*F1,0*FD,0*FF,0*FF,/*轉,2*/0*BF,0*BD,0*33,0*FF,0*FB,0*1B,0*DB,0*DB,0*0,0*DB,0*DB,0*DB,0*1B,0*FB,0*FF,0*FF,0*BF,0*DF,0*E0,0*DF,0*B7,0*B6,0*BA,0*BC,0*80,0*BE,0*BC,0*BA,0*B2,0*BF,0*B

39、F,0*FF,/*速,3*/0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*C9,0*C9,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF,0*FF;/*:,4*/ uint8 *inhao16=0*BF,0*BF,0*7F,0*0F,0*7F,0*BF,0*BF,0*FF,0*FD,0*FD,0*FE,0*F0,0*FE,0*FD,0*FD,0*FF;/*,0*/ LCD_str(44,0,zif

40、u,5); LCD_hanzi(0,2,inputn,5); LCD_hanzi(0,4,outputn,5); for(i=0;i16;i+) LCD_str(i*8,6,*inhao,1); /* End Of File*/3. 用AT89S52單片機仿真直流電動機程序/* 用AT89S52單片機仿真直流電動機程序* 程序編寫者: 吳斌* 編寫日期: 2007年11月11日*/ *include *include *include *define La 0.1/電樞電感 *define CeQ 0.005 *define CmQ 0.2/ *define Ja 0.0000018/轉動慣量 *define Ra 10 *define Ra-La 11.9 sbit ADC_CS =P34; sbit ADC_CLK=P35; sbi

溫馨提示

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

評論

0/150

提交評論