![]() |
![]() |
#10 |
Nhập môn đệ tử
Tham gia ngày: Feb 2009
Bài gửi: 5
: |
ADC và PWM điều khiển độ sáng 1 led công suât.
Xin chào các cao thủ trên diễn đàn PIC VIỆT NAM mình là người mới tìm hiểu về PIC và đang dùng PIC16F877A mình muốn hỏi chương trình dùng tín hiệu vào ADC và dùng PWM để điều khiển độ sáng cho một con LED công suất. Bác nào có chương trình mẫu thì cho mình tham khảo với đây là chương trình của mình nhưng khi mô phỏng thấy im re biên dịch thì không có lỗi.
Phần cứng: Nút nhấn trên RB0 và biến trở nối với nguồn 5V và cho vào AN0. Tạm thời mình chưa tìm hiểu cách post hình lên diễn đàn và đóng khung code nên mới viết như vậy mong mọi ng thông cảm. Mong hồi âm và xin chân thành cảm ơn! code______________________________________________ _____________________ #include "C:\Documents and Settings\SMART HOME\Desktop\LAP TRINH PIC\CCS for PIC16F877A\PWM\cht\main.h" // su dung adc o che do 8 bit // chuong chinh doc 3 moc gia tri adc xuat ra tuong ung 3 muc sang cua den led byte value; void main() { byte value; setup_adc_ports(AN0); // Thiet lap cong AN0 la cong vao ADC. setup_adc(ADC_CLOCK_INTERNAL ); // Thiet lap che do xung mo rong // setup_adc(ADC_OFF); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); setup_timer_2(T2_DIV_BY_16,255,1); setup_ccp1(CCP_PWM); set_pwm1_duty(0); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); // TODO: USER CODE!! set_tris_b(0x0f); while(true) { if(input(PIN_B0)==1) //Tin hieu cam bien { set_adc_channel( 0 ); value = read_adc(); if((value>0)&&(value<100)) set_pwm1_duty(50); else if((value>100)&&(value<200)) set_pwm1_duty(150); else set_pwm1_duty(255); delay_ms(10); } else set_pwm1_duty(0); } } __________________________________________________ _______________________ |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|