![]() |
Mạch đo nhiệt độ lm35+lcd+pic16f877a
các anh coi dùm em phan code.. Sao nó không hiển thị giá trị lm35 len lcd
|
1 Attachment(s)
cái này không khó. tang bạn nè đây là chương trình minh viết rộng hơn về ý tường của bạn.
//=============== PIC16F877A-ENCODER-LCD ======================= //* Tac gia: Lam Bao Trung //* Ngay Viet: 25/05/2013 //* Ngay ket thuc: //* Phan Cung: PIC16F877A, LCD2X16, ENCODER 100 //* Chuong trinh: Hien thi nhiet do tu moi truong //================================================== ============ #include <ENCODER-1XUNG.h> #INCLUDE <D:\MACH DIEN\PIC\ENCODER\lcd_lib_4bit.C> #INCLUDE <D:\MACH DIEN\PIC\ENCODER\DEF_877A.H> float rpm,V; INT32 COUNTER,COUNTER1; INT8 I,ADC; #INT_ext VOID EXT() { COUNTER++; COUNTER1++; IF(I>=10) { disable_interrupts(INT_TIMER1); //RPM=(float)(counter*((3600*0.00169)/12)); //RPM=(counter*0.507); RPM=(counter*0.2535); counter=I=0; enable_interrupts(INT_TIMER1); SET_TIMER1(3001); } IF(counter1>=12) { V=V+0.00169; COUNTER1=0; } } #int_timer0 void timer0() { ADC=(FLOAT)READ_ADC()/131.07; } #int_timer1 void timer() { set_timer1(3001); I=I+1; } void main() { SETUP_TIMER_1(T1_inTERNAL|T1_DIV_BY_8); setup_TIMER_0(T1_inTERNAL); EXT_INT_EDGE(1,L_TO_H); ENABLE_INTERRUPTS(INT_EXT); enable_interrupts(INT_TIMER1); enable_interrupts(int_timer0); ENABLE_INTERRUPTS(GLOBAL); SET_TIMER1(3001); SET_TIMER0(0); setup_adc(adc_clock_internal); setUP_adc_ports(RA0_analog); set_adc_channel(0); LCD_INIT(); v=rpm=counter=0; WHILE(TRUE) { LCD_PUTCMD(0X80); PRINTf(LCD_PUTCHAR,"%f Kmh %u",RPM,COUNTER1); LCD_PUTCHAR("\n\r"); LCD_PUTCMD(0XC0); PRINTF(LCD_PUTCHAR,"%f %u C",V,ADC); LCD_PUTCHAR("\n\r"); } } |
Múi giờ GMT. Hiện tại là 10:19 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam