Ðăng Nhập

View Full Version : Các bạn giúp mình chút. Code có gì sai?


colenem
19-01-2011, 10:11 AM
Mình mới học pic được một thời gian. Có ý định thiết kế một bộ đo nhiệt độ bằng cảm biến nhiệt LM35. Code và mạch mô phỏng trên Proteus mình đã làm nhưng mô phỏng thì có vấn đề. Xin gửi lên đây các bác và các bạn giúp xem code sai ở chỗ nào

shakespeare_a18
15-02-2011, 01:31 AM
Bạn gặp vấn đề gì? Bạn nên nêu rõ vấn đề.
Code của bạn vài chỗ sai cơ bản: chẳng hạn :
phải là while(TRUE) {...}
chứ ko thể là while(TRUE); {.....}

Chỉ cần sử dụng #include<16f877a.h> là đủ, mới bắt đầu chỉ cần vậy, ko cần phải sử dụng các khai báo khác như của bạn ko cần thiết.
Về phần quét led do mô phỏng ko chính xác lắm nên bạn tự kiểm tra lại, kết quả hiển thị lên tẻminal đã đúng.

mini_2440
21-03-2011, 12:49 PM
BẠN SỬ DỤNG DS18B20 THỬ SAO,

#include <16F877A.h>
#include <def_877a.h>
#FUSES HS
#use delay (clock=8000000)
#include "LCD.c"
float NHIETDO;
INT16 NHIETDONGUYEN, giantiep;
#INT_RDA
Receive_isr()
{


}


void main()
{

setup_ccp1(CCP_PWM); //khoi tao bo PWM1
setup_ccp2(CCP_PWM); //khoi tao bo PWM2
setup_timer_2(T2_div_by_16,255,1);

enable_interrupts(int_rda);
enable_interrupts(GLOBAL);
lcd_init();
lcd_putc("\f");

while (TRUE)
{
NHIETDO = ds1820_read();
NHIETDONGUYEN = (INT8)NHIETDO ;
set_pwm1_duty(35*(NHIETDONGUYEN - 35));
set_pwm2_duty(0);
lcd_gotoxy(1,1);
printf(lcd_putc,"NHIETDO: %3.1f ", NHIETDO);
lcd_putc(223);
lcd_putc("C ");

}

}