Trích:
Nguyên văn bởi thienngoc
em đang làm đề tài cảm biến nhiệt độ dùng pic 16f877a hiển thị lên 3 led 7 đoạn dùng ngôn ngữ C,jờ e muốn khi đến nhiệt độ 80*C thì chuông sẽ reo,nếu như vậy mình có cần sử dụng ngắt ko mấy anh và chương trình như thế nào?xin mấy anh giúp dùm,em cám ơn
|
cái này không cần sử dụng ngắt ADC làm gì cho nó phức tạp....nếu mưốn chuông reO thỉ dung PWM ý tưởng là như thế này:
.....
.
.
x=read_ADC();
x=x*2.049 //nếu ADC ở chế độ 10bit và sử dụng LM35 ,,nếu dùng loại khác thì tính toán lại//
if(x>=80)
{
y=120 ; //giá trị này để cài dặt tần số để chuông reo..thường thì vài kHz
xuatxung(); //đưa giá trị y=120 vào duty của PWM =>XUẤT XUNG
}
else
{
y=0;
xuatxung(); //đưa 0 vào duty =>tắt xung
}
.
.
.
.
void xuatxung()
{
setup_ccp1(CCP_PWM);
set_pwm1_duty(y); //đưa giá trị duty vào đây
set_timer_2(t2_div_by_4,255,1)
}
chắc bạn đã hiểu ý mình rối chứ.chúc bạn thành công.