![]() |
|
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 |
Nhập môn đệ tử
Tham gia ngày: Jul 2010
Bài gửi: 1
: |
Các bạn giúp mình chút. Code có gì sai?
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
|
![]() |
![]() |
![]() |
#2 |
Đệ tử 1 túi
Tham gia ngày: Aug 2010
Nơi Cư Ngụ: TP HCM
Bài gửi: 22
: |
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. |
![]() |
![]() |
![]() |
#3 |
Đệ tử 1 túi
Tham gia ngày: Mar 2011
Bài gửi: 21
: |
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 "); } } |
![]() |
![]() |
![]() |
|
|