View Single Post
Old 27-03-2009, 07:16 PM   #15
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi conglong View Post
Vong lặp while(1) của bạn đặt ở cuối chương trình nên không hiện thị nhiệy độ đúng, bạn sửa lại như sau:

Code:
void main(void)
{
	int ADCVoltage;
	char Nhietdo[40];
	ADPCFG = 0xFEFF; 
	SystemInit();
	Init_ADC10();
	LCD_Gotoxy(1,1);	
	LCD_WriteString("nhiet do la");	
	LCDdelayms(10);
   while(1){
	LCD_Gotoxy(3,2);
	ADCVoltage=ADCValue/2;
	sprintf(Nhietdo, "%d",ADCVoltage );
	LCD_WriteString(Nhietdo);
           };
}
Nó sẽ chạy nhưng code này vẫn chưa tối ưu.
Bạn silvadk2 chỉ muốn thử hiển thị một giá trị nhiệt độ rồi cho dừng chương trình, do đó không hẳn là sai. Vấn đề là biến ADCValue chưa có được giá trị digital tương ứng với tín hiệu analog ở ngõ vào, theo ý của bạn silvadk2. Nguyên nhân có thể do phần cứng, cũng có thể do cách thiết lập cho module ADC của bạn ấy chưa đúng.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn