Öб±´óѧÐÅÏ¢ÉÌÎñѧԺ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
Ïà¹ØÍÆ¼ö£º