µÚÒ»·¶ÎÄÍø - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

»ùÓÚ430µ¥Æ¬»úµÄPIDζȿØÖƱÏÒµÉè¼Æ

À´Ô´£ºÓû§·ÖÏí ʱ¼ä£º2025/6/18 5:10:59 ±¾ÎÄÓÉloading ·ÖÏí ÏÂÔØÕâÆªÎĵµÊÖ»ú°æ
˵Ã÷£ºÎÄÕÂÄÚÈݽö¹©Ô¤ÀÀ£¬²¿·ÖÄÚÈÝ¿ÉÄܲ»È«£¬ÐèÒªÍêÕûÎĵµ»òÕßÐèÒª¸´ÖÆÄÚÈÝ£¬ÇëÏÂÔØwordºóʹÓá£ÏÂÔØwordÓÐÎÊÌâÇëÌí¼Ó΢ÐźÅ:xxxxxxx»òQQ£ºxxxxxx ´¦Àí£¨¾¡¿ÉÄܸøÄúÌṩÍêÕûÎĵµ£©£¬¸ÐлÄúµÄÖ§³ÖÓëÁ½⡣

Öб±´óѧÐÅÏ¢ÉÌÎñѧԺ2013½ì±¾¿Æ±ÏÒµÉè¼ÆËµÃ÷Êé

Delay(60000); //ÑÓʱ800msÒÔÉÏ do {

i = Init_18B20(); } while(i); Skip(); Read_SP();

return ReadTemp(); // ºó½Ö»»Ëã´¦ÀíºÍÏÔʾ È¥¿´ÃŹ· }

void Disp_Numb(uint temper) {

b=temper/16;

hang6[1] = b% 10+48; hang6[0] = b / 10+48; Disp_HZ(0x80,hang1,5); Disp_HZ(0x85,hang6,2); }

void init_TB(void) {

P4DIR = 0x0f; // p4.1 output mode

P4SEL = 0x03; // p4.1 option select / Ñ¡ÔñSMCLK = HF xtal TBCTL = TBSSEL_2 + TBCLR; // ACLK, clear TBR TBCTL |= MC_1; // ÉèÖõÝÔöģʽ TBCCR0 = 2535; //³õʼ»¯CCR0 TBCCTL1 = OUTMOD_7;

TBCCR1 = 1; // ccr1 Pwm cycle }

33

Öб±´óѧÐÅÏ¢ÉÌÎñѧԺ2013½ì±¾¿Æ±ÏÒµÉè¼ÆËµÃ÷Êé

void init_PID(void) {

K=15; //±ÈÀýÏî Ti=0.01; //»ý·Ö Td=10; //΢·Ö ev=0;//Îó²î

Mi=0;//ÉϴλØÂ·³õʼֵ gei=50;// ¸ø¶¨Öµ Xx=-20; Sx=2000; }

void PID(void) {

ev=gei-b; // Îó²î¼ÆËã BL=K*ev;// ±ÈÀýÏî¼ÆËã Wl=KB*Wl+BL;// ±ÈÀýÔöÁ¿ if(Wl<0)//ÔöÁ¿ÏÂÏß Wl=0;

if(Wl>2000)//ÔöÁ¿ÉÏÏß Wl=2000;

JF=Ti*ev+Mi;// »ý·ÖÏî £¨ÖͺóÑÏÖØ£© Mi=Mi+JF; //

if(Mi>Sx) //»ý·ÖÉÏÏß Mi=Sx;

if(Mi

WF=Td*(ev-ev1); //΢·Ö ev1=ev;

34

Öб±´óѧÐÅÏ¢ÉÌÎñѧԺ2013½ì±¾¿Æ±ÏÒµÉè¼ÆËµÃ÷Êé

chu=BL+WF+Wl; //PID Êä³ö if(chu>0) if(chu<65535) TBCCR1=chu; if(chu<0) TBCCR1=1; if(chu>65535) TBCCR1=65534; }

#pragma vector=WDT_VECTOR //ÖжϳÌÐòÈë¿ÚµØÖ· __interrupt void watchdog_timer (void) {

uint f,g,h; a++; if(a==0) PID(); if(a>=240) a=0;

hang7[4]= TBCCR1+48; hang7[3]=(TBCCR1/10)+48; hang7[2]=( TBCCR1/100)+48; hang7[1]=( TBCCR1/1000)+48; hang7[0]=( TBCCR1/10000)+48;

Disp_HZ(0x90,hang8,4); Disp_HZ(0x94,hang7,4); f=K;

hang9[6]= f+48;

35

Öб±´óѧÐÅÏ¢ÉÌÎñѧԺ2013½ì±¾¿Æ±ÏÒµÉè¼ÆËµÃ÷Êé

hang9[5]=(f/10)+48; Disp_HZ(0x88,hang9,4); g=Td;

hang10[6]= g+48; hang10[5]=(g/10)+48; Disp_HZ(0x8c,hang10,4); h=KB;

hang11[9]= g+48; hang11[10]=(g/10)+48; Disp_HZ(0x98,hang11,6); }

void main(void) {

P1DIR = 0XFF;P1OUT = 0XFF; P2DIR = 0XFF;P2OUT = 0XFF; P3DIR = 0XFF;P3OUT = 0XFF; P4DIR = 0XFF;P4OUT = 0XFF; P5DIR = 0XFF;P5OUT = 0XFF; P6DIR = 0XFF;P6OUT = 0XFF; WDTCTL =WDT_ADLY_1000; IE1 |= WDTIE;

BCSCTL1 &= ~XT2OFF; // do {

IFG1 &= ~OFIFG; // for (i = 0xFF; i > 0; i--); // }

while ((IFG1 & OFIFG)); //

´ò¿ªXT2¸ßƵ¾§ÌåÕñµ´Æ÷ Çå³ý¾§Õñʧ°Ü±êÖ¾ µÈ´ý8MHz¾§ÌåÆðÕñ ¾§ÕñʧЧ±êÖ¾ÈÔÈ»´æÔÚ£¿

36

ËÑË÷¸ü¶à¹ØÓÚ£º »ùÓÚ430µ¥Æ¬»úµÄPIDζȿØÖƱÏÒµÉè¼Æ µÄÎĵµ
»ùÓÚ430µ¥Æ¬»úµÄPIDζȿØÖƱÏÒµÉè¼Æ.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ£¬·½±ã¸´ÖÆ¡¢±à¼­¡¢ÊղغʹòÓ¡
±¾ÎÄÁ´½Ó£ºhttps://www.diyifanwen.net/c2wazf346tc8az813iusb_9.html£¨×ªÔØÇë×¢Ã÷ÎÄÕÂÀ´Ô´£©
ÈÈÃÅÍÆ¼ö
Copyright © 2012-2023 µÚÒ»·¶ÎÄÍø °æÈ¨ËùÓÐ ÃâÔðÉùÃ÷ | ÁªÏµÎÒÃÇ
ÉùÃ÷ :±¾ÍøÕ¾×ðÖØ²¢±£»¤ÖªÊ¶²úȨ£¬¸ù¾Ý¡¶ÐÅÏ¢ÍøÂç´«²¥È¨±£»¤ÌõÀý¡·£¬Èç¹ûÎÒÃÇ×ªÔØµÄ×÷Æ·ÇÖ·¸ÁËÄúµÄȨÀû,ÇëÔÚÒ»¸öÔÂÄÚ֪ͨÎÒÃÇ£¬ÎÒÃǻἰʱɾ³ý¡£
¿Í·þQQ£ºxxxxxx ÓÊÏ䣺xxxxxx@qq.com
ÓåICP±¸2023013149ºÅ
Top