![]() |
|
|
#4 | |
|
Đệ tử 4 túi
|
Trích:
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 |
|
|
|
|
|
|