chào mọi người , đây là em viết chương trình cho cảm biến siêu âm SRF05 + PIC6F877A + LCD1602.
	Trích:
	
	
		
			
				//   RC2--ECHO 
//   RD1 --TRIGGER 
#include "F:\NCKH 2009\PIC 16\count_timer2\count_timer2.h" 
#include <lcd_lib_4bit.c> 
#include <F:\NCKH 2009\PIC 16\count_timer2\def_877a.h> 
#define CONVERT_TO_MICROSECONDS (20000000/((4*4)*1000000)) 
//BOOLEAN CCP1Captured; 
int8 tram,chuc,donvi,nghin; 
void convert_bcd(int8 x) 
  { 
   donvi=x%10;  //chia lay phan du, so hang don vi 
   tram=x/100;   //tach hang tram va hang chuc 
   chuc=x/10%10; 
   nghin = x/1000; 
   tram = tram + 0x30; 
   chuc = chuc + 0x30; 
   donvi = donvi + 0x30; 
   nghin = nghin +0x30; 
  } 
///////// 
 
void main() 
{ 
   int8 x; 
   int16 time; 
   LCD_init();    
   convert_bcd(x);    
   trisd = 0x02; 
   trisc = 0x04;    
   //---hien thi LCD--- 
   LCD_putchar("anh_gioi"); 
   LCD_putcmd(0xC0); 
   LCD_putchar("T = "); 
   LCD_putcmd(0xC9); 
   LCD_putchar(" uS"); 
   //-- khai bao timer-capture ---- 
   setup_timer_1(T1_INTERNAL | T1_DIV_BY_4); 
   setup_ccp1(CCP_CAPTURE_RE); 
   enable_interrupts(INT_CCP1);   // Setup interrupt on falling edge 
   enable_interrupts(GLOBAL); 
   while(true) 
   {      
      //---- 10uS cho trgger ---- 
      output_high(pin_d1); 
      delay_us(10); 
      output_low(pin_d1); 
      //-- Wait for senser output to go high ---- 
      while(!input(pin_c2)) {}   
      set_timer1(0);  
      convert_bcd(time);// 
      while(input(pin_c2)) {}       
      time = get_timer1();                      //doc thoi gian 
      time = time/CONVERT_TO_MICROSECONDS;    //chuyen doi ra mcrogiay   
      convert_bcd(time);       
      ///// hien thi len gia tri LCD////// 
      LCD_putcmd(0xC4); 
      LCD_putchar(nghin); 
      LCD_putcmd(0xC5); 
      LCD_putchar(tram);       
      LCD_putcmd(0x6); 
      LCD_putchar(chuc); 
      LCD_putcmd(0xC7); 
      LCD_putchar(donvi); 
       
       
     } 
} 
			
		 | 
	
	
 chương trình của em muốn hiển thị thời gian mà SRF thu được khi gặp vật cản.
nhưng giá trị time của em không hiển thị lên LCD được. Em nghi lập trình nhưng khi thay tín hiệu ECHO (pin_c2) bằng nút bấm (buttom) thì giá trị được hiểnthị lên LCD.
em không hiểu tại sao ? ---> nên em suy ra không bít có phải do SRF05 mà em mới mua không?
các bác chỉ em với ?????