Trích:
Nguyên văn bởi ngdnhanbk
mình viết hiệu ứng led sáng dần dùng chức năng pwm kết hợp timer0 và timer2 post lên cho mấy bạn tham khảo
Code:
#include <16f887.h>
#fuses hs,nowdt,noprotect
#use delay(clock=4000000)
int16 value;
#int_timer0
void ngattimer0()
{
int16 dem;
clear_interrupt(int_timer0);
disable_interrupts(global);
dem=dem+1;
if(dem==500)
{value=value+100;
if(value==1000)
{value=0;
}
dem=0;
}
set_timer0(0);
enable_interrupts(global);
}
void main()
{
value=0;
output_high(pin_c0);
output_low(pin_c1); // set ccp2 output low
output_low(pin_c2); // set ccp1 output low
setup_ccp1(ccp_pwm); // configure ccp1 as a pwm
setup_ccp2(ccp_pwm); // configure ccp2 as a pwm
setup_timer_2(t2_div_by_4,255, 1); // 1khz
setup_timer_0(rtcc_internal|rtcc_div_4);
set_timer0(0);
enable_interrupts(int_timer0);
enable_interrupts(global);
while(1)
{
set_pwm1_duty(value);
set_pwm2_duty(value);
}
}
mình chưa viết phần tắt dần, nhờ mấy bạn viết giúp
ai có ý kiến gì hay thì bổ sung giúp nhé
|
cái này chắc chỉ có mạch thật mới mô phổng dc hình như protues thì không. Bạn làm như vậy tì chỉ có 2 chân c1 và c2 thế thì diều khiển dc 2 led thôi bạn .có kết nối thêm ic điều khiển dòng điện gì ko bạn. Nếu ko còn cách nào dể mở rộng số chân ko. Chắc phải dùng timer để làm pwm thì phải