View Single Post
Old 27-10-2008, 09:38 PM   #4
cong1810
Đệ tử 4 túi
 
Tham gia ngày: Sep 2007
Bài gửi: 62
:
Send a message via Yahoo to cong1810
Trích:
Nguyên văn bởi vohieuthao1 View Post
Mình mới biết pic thôi nên các bạn chỉ kỹ kỹ giùm.

#include <16f877a.h>
#include <def_877a.h>
#device *=16 adc=10
#use delay(clock=4000000)
#include <lcd.c>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use rs232(baud=9600,parity=n,xmit=pin_C6,rcv=pin_C7)
void main()
{
float value;
trisa=0xFF;
trisd=0x00;
lcd_init();
printf(lcd_putc,"0g");
setup_adc_ports(ra1);
setup_adc(ADC_CLOCK_INTERNAL);
delay_us(10);
value=(float)read_adc();
value=value*0.977;
printf(lcd_putc, "Float: %f", value);
}
mình đã thử dịch file của bạn.ở đây có vài vần đề thế này!
thứ 1: bạn nên để dòng FUSE lên sau file include <16f877a.h>. và bạn khai báo sai cho PIC nếu thạch anh 4M thì khai báo là XT. mình ko rõ việc cầu hình FUSE sau lệnh #use delay_clock có bị ảnh hưởng gì ko! nhưng thấy ko ai làm thế!!
thứ 2: trong lệnh setup_adc_ports() ko hiều khai báo RA1. bạn nên mở file 16f877a.h .trong đó người ta có liệt kê các cách khai báo đấy!
mình chỉ dịch lại cho bạn.nên ko để ý đến việc bạn đang làm gì!! thân!
đoạn code sau dịch ok!
Code:
#include <16f877a.h>
#include <def_877a.h>
#FUSES NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#device *=16 adc=10
#use delay(clock=4000000)
#include <lcd.c>
#use rs232(baud=9600,parity=n,xmit=pin_C6,rcv=pin_C7)
void main()
{
float value;
trisa=0xFF;
trisd=0x00;
lcd_init();
printf(lcd_putc,"0g");
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
delay_us(10);
value=(float)read_adc();
value=value*0.977;
printf(lcd_putc, "Float: %f", value);
}

thay đổi nội dung bởi: namqn, 27-10-2008 lúc 09:53 PM. Lý do: TX => XT
cong1810 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn