View Single Post
Old 09-04-2008, 01:25 AM   #3
nhong
Đệ tử 1 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 15
:
Em viết lại code như bác namqn chỉ dẫn, bỏ cái đoạn tắt led với cả float đi thì chạy ngon roài, thanx bác nhiều nhé

Nhưng có vấn đề thế này, câu lệnh "read_adc() >>2" theo em hiểu là dùng adc 8bit bỏ đi 2 bit least significant rồi, nhưng tại sao khi đưa điện áp kịch vào ngõ ANx (ANx = Vref) thì chỉ có 6 led sáng nghĩa là sao, theo em nghĩ thì nó phải sáng cả 8 bit của portB chứ.

Thêm nữa là tham khảo bài đo nhiệt độ dùng PIC của bác linhnc thì thấy có đoạn code như thế này, cái chỗ float đấy em cũng ko hiểu lắm với cả em thấy đoạn hiển thị bác ấy cũng bật led rồi tắt led đi mà(thấy nói là quét led 7 đoạn thì phải như thế), như thế là sao nhỉ


Code:
// Lay mau nhiet do lan dau tien 
      value=(float)read_adc(); 
      value = (value - 558.5)/2.048;        // For 5V supply
hiển thị ra 2 led 7 đoạn: ở đây dùng cổng RD để kích mở cho led 7segs

Code:
void display() 
{ 
   PORTB=temp_lowbyte;         // Gửi dữ liệu đến  LED 1 
   RD0=0;                    // bật led 1, led 1 có giá trị hàng đơn vị của nhiệt độ
 
   delay_ms(2);            // Cho trễ 2ms 
   RD0=1;                    // tắt LED 1 

   PORTB=temp_highbyte;      // LED 2 
   RD1=0; 
   delay_ms(2); 
   RD1=1; 
}
Hình Kèm Theo
File Type: jpg adc.JPG (56.4 KB, 10 lần tải)

thay đổi nội dung bởi: nhong, 09-04-2008 lúc 03:15 AM.
nhong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn