پاسخ : راه اندازی موتور dc
بسیار متشکرم جناب شاهرخ.
نوشته اصلی توسط شاهرخ
@ DEVICE PIC16F877A ,WDT_OFF ,LVP_OFF ,PROTECT_OFF ,PWRT_ON ,BOD_OFF DEFINE LCD_DREG PORTD DEFINE LCD_DBIT 4 DEFINE LCD_RSREG PORTD DEFINE LCD_RSBIT 2 DEFINE LCD_EREG PORTD DEFINE LCD_EBIT 3 DEFINE LCD_BITS 4 DEFINE LCD_LINES 2 DEFINE CCP1_REG PORTC DEFINE CCP1_BIT 2 TRISA = 0 TRISc.0 = 1 A VAR WORD f var word ON INTERRUPT GOTO lable OPTION_REG = $7F INTCON = %10010000 T1CON = $03 loop1: TMR1L=0 TMR1H=0 PIR1.0 = 0 T1CON.0 = 1 PAUSE 800 T1CON.0 = 0 f.byte1=TMR1H f.byte0=TMR1l lcdout $FE, 1 LCDOUT #F LCDOUT $FE, $14 LCDOUT "hz" PAUSE 500 A = 0 if f >= 40 and f <= 60 then LOW portA.0 hpwm 1, 205, 300 pause 50 loop2: pause 100 LCDOUT $FE, $C0, "A=" LCDOUT $FE, $14 LCDOUT #A pause 500 if A >= 30 then tormoz goto loop2 endif tormoz: low portA.0 hpwm 1, 0, 300 pause 2000 LCDOUT $FE, 1 LCDOUT "A=" LCDOUT $FE, $14 LCDOUT #A pause 10000 goto loop1 DISABLE lable: A = A + 1 PAUSE 100 INTCON.1 = 0 RESUME ENABLE END
@ DEVICE PIC16F877A ,WDT_OFF ,LVP_OFF ,PROTECT_OFF ,PWRT_ON ,BOD_OFF DEFINE LCD_DREG PORTD DEFINE LCD_DBIT 4 DEFINE LCD_RSREG PORTD DEFINE LCD_RSBIT 2 DEFINE LCD_EREG PORTD DEFINE LCD_EBIT 3 DEFINE LCD_BITS 4 DEFINE LCD_LINES 2 DEFINE CCP1_REG PORTC DEFINE CCP1_BIT 2 TRISA = 0 TRISc.0 = 1 A VAR WORD f var word ON INTERRUPT GOTO lable OPTION_REG = $7F INTCON = %10010000 T1CON = $03 loop1: A = 0 TMR1L=0 TMR1H=0 PIR1.0 = 0 T1CON.0 = 1 PAUSE 800 T1CON.0 = 0 f.byte1=TMR1H f.byte0=TMR1l lcdout $fe, 1 lcdout #f lcdout $fe, $14 lcdout "hz" pause 500 if f >= 20 and f <=40 then LOW portA.0 hpwm 1, 205, 300 pause 50 loop2: pause 100 LCDOUT $FE, $c0 LCDOUT "A =" lcdout $fe, $14 LCDOUT #A pause 500 if A >= 30 then tormoz goto loop2 endif tormoz: low portA.0 hpwm 1, 0, 300 pause 500 goto loop1 DISABLE lable: A = A + 1 PAUSE 100 INTCON.1 = 0 RESUME ENABLE END
دیدگاه