Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <16F886.h>
- #device ADC=10 *=16
- #FUSES NOWDT //No Watch Dog Timer
- #FUSES PUT //Power Up Timer
- #FUSES NOMCLR //Master Clear pin not enabled
- #FUSES NOPROTECT //Code not protected from reading
- #FUSES NOCPD //No EE protection
- #FUSES BROWNOUT //Brownout reset
- #FUSES IESO //Internal External Switch Over mode enabled
- #FUSES FCMEN //Fail-safe clock monitor enabled
- #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
- #FUSES NODEBUG //No Debug mode for ICD
- #FUSES NOWRT //Program memory not write protected
- #FUSES BORV40 //Brownout reset at 4.0V
- #FUSES RESERVED //Used to set the reserved FUSE bits
- #FUSES INTRC_IO
- #use delay(clock=8M)
- #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
- INT counter1=0, duty1=0;
- INT counter2=0, duty2=0;
- INT counter3=0, duty3=0;
- INT counter41=0, duty41=0;
- #INT_TIMER1
- void timer1_isr(void)
- {
- set_timer1 (65036); //1 round use time 65286 s
- if(counter1 == 10 ){ counter1 = 0 ;} //set value back in the begin
- if(counter1 == 0 ){ output_high(PIN_B7);}
- if(counter1 == duty1 ) {output_low(PIN_B7);}
- counter1++;
- if(counter2 == 10 ){ counter2 = 0 ;} //set value back in the begin
- if(counter2 == 0 ){ output_high(PIN_B6);}
- if(counter2 == duty2 ) {output_low(PIN_B6);}
- counter2++;
- if(counter3 == 10 ){ counter3 = 0 ;} //set value back in the begin
- if(counter3 == 0 ){ output_high(PIN_B5);}
- if(counter3 == duty3 ) {output_low(PIN_B5);}
- counter3++;
- if(counter41 == 10 ){ counter41 = 0 ;} //set value back in the begin
- if(counter41 == 0 ){ output_high(PIN_B4);}
- if(counter41 == duty41 ) {output_low(PIN_B4);}
- counter41++;
- }
- void main() {
- setup_timer_1 (T1_INTERNAL|T1_DIV_BY_8);
- set_timer1 (65036);// at 1000 hz
- enable_interrupts (INT_TIMER1);
- enable_interrupts (GLOBAL);
- counter1=0; duty1=0;
- counter2=0; duty2=0;
- counter3=0; duty3=0;
- counter41=0; duty41=0;
- while(1){
- //sw1
- if(input(PIN_A0)){
- duty1=0;
- duty2=10;
- while(duty2 != 0){
- printf("duty2=%d\n", duty2);
- duty2--;
- delay_ms(200);
- }
- }
- //sw2
- if(input(PIN_A1)){
- duty1=10;
- duty2=10;
- duty41=0;
- duty3=10;
- while(duty3 != 0){
- printf("duty3=%d\n", duty3);
- duty3--;
- delay_ms(200);
- }
- }
- //sw3
- if(input(PIN_A2)){
- duty1=10;
- duty2=0;
- duty3=10;
- duty41=0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement