![]() |
|
Tài trợ cho PIC Vietnam |
||||||||
| Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
![]() |
|
|
Ðiều Chỉnh | Xếp Bài |
|
|
|
|
#1 | |
|
Đệ tử 1 túi
Tham gia ngày: May 2013
Bài gửi: 20
: |
Trích:
em lấy ADC 8 bít như thế sẽ có 255 mức, tương ứng với giá trị duty lấy tương ứng như thế có thể thay đổi tốc độ động cơ bằng cách thay đổi chiết áp nối với chân đọc ADC anh thấy thế nào ah> em thử làm nhưng chưa được anh có thể code mấu một đoạn giúp em không ah |
|
|
|
|
|
|
#2 | |
|
Đệ tử 2 túi
Tham gia ngày: Apr 2009
Bài gửi: 44
: |
Trích:
Bạn tham khảo ví dụ nha: #include <16f877a.h> #include <def_877a.h> #device *=16 adc=8 #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=200000000) int8 P=0; void init() { // cai PWM bo dieu che xung cho dong co setup_ccp1(CCP_PWM); // Bat che do PWM cho RC1 // setup_ccp2(CCP_PWM); // Bat che do PWM cho RC2 setup_timer_2(T2_DIV_BY_4,156,1);//Ta co PR2=199,prescale=1 //Tpwm=[PR2+1]*4*1/clock*prescale=[199+1]*4/20000000*1=40 us //Fpwm=1/Tpwm=25 kHZ // set_tris_c(0b00000000); set_pwm1_duty (10); } void main() { init(); // Khoi tao che do cho bo ADC setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); delay_us(10); // Lay mau nhiet do lan dau tien P=Read_ADC(ADC_START_AND_READ); //Lire Vin restart_wdt(); // Woof ! delay_ms (10); TRISA = 0x3F; TRISB = 0x00; TRISC = 0x0B; TRISE = 0x07; TRISD=0x03; PORTB=0x00; PORTC=0x0B; PORTD=0x00; while (true) { if(RA3==0||RD0==0){ if(RA3==0){ if(RA1==0||RA2==0){ if(RA1==0){RC5=1;RD2=0; delay_ms(3);RC4=RD3=1; }; if(RA2==0){RD2=1;RC5=0; delay_ms(3);RC4=RD3=1; }; } else {RC5=RD2=0;RD3=1;RC4=1;delay_us(100);}; }; if(RD0==0){ if(RA1==0||RA2==0){ if(RA1==0){RC5=0;RD2=1; delay_ms(3);RC4=RD3=1; }; if(RA2==0){RD2=0;RC5=1; delay_ms(3);RC4=RD3=1; }; } else {RC5=RD2=1;delay_ms(3);RC4=RD3=1;}; }; } else {RD3=RC4=RC5=RD2=0;}; if((RA1==0||RA2==0)&&RA3==1&&RD0==1){ if(RA1==0){ RC5=1;RD2=0; delay_ms(3);RC4=1;RD3=0; }; if(RA2==0){ RC5=0;RD2=1; delay_ms(3);RC4=0;RD3=1; }; }; delay_ms(1); P=Read_ADC(ADC_START_AND_READ); //Lire Vin restart_wdt(); // Woof ! delay_ms(4); P=P/1.57; set_pwm1_duty (P); delay_ms (2); /* set_pwm2_duty(10);//100% delay_ms(50); set_pwm2_duty(25);//80% delay_ms(100); set_pwm2_duty(50);//50% delay_ms(100); set_pwm2_duty(100); delay_ms(100); set_pwm2_duty(120); delay_ms(100);*/ } }
__________________
ĐT : 0167 6455 880 Mail: quanghuy1205@gmail.com https://www.facebook.com/ThietKeDienTu |
|
|
|
|
|
|
#3 | |
|
Đệ tử 1 túi
Tham gia ngày: May 2013
Bài gửi: 20
: |
Trích:
|
|
|
|
|
![]() |
| Ðiều Chỉnh | |
| Xếp Bài | |
|
|