[PIC TUTORIAL] BÀI 6 Đọc dữ liệu analog từ chân AN0 xuất ra port C, với VREF- = 0V và VREF+ = 5V
SƠ ĐỒ MẠCH ĐIỆN
CHƯƠNG TRÌNH MẪU
DOWNLOAD FILE MÔ PHỎNG + CODE
(Bấm vào link đợi 5s, sau đó bấm "Skip Ad" sẽ ra link download)
CHƯƠNG TRÌNH MẪU
#include "16f887.h"
#include "def_16f887.h"
#device *=16 ADC = 10
#fuses HS,PUT,NOWDT,NOPROTECT,NOLVP
#use delay(Clock = 4000000) //Thach anh 4MHz
int16 temp;
void main()
{
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
setup_timer_1(T1_INTERNAL);
setup_adc_ports(sAN0|VREF_VREF); //kenh A0 nhan tin hieu, A2 = 0V; A3 = 5V;
setup_adc(ADC_CLOCK_INTERNAL); //Thoi gian lay mau bang clock he thong.
delay_ms(5); //Cho thiet lap xong ADC.
// TODO: USER CODE!!
trisa = 0xff; //PORTA nhan du lieu.
trisc = 0x00; //PORTC xuat du lieu.
set_adc_channel(0); //Chon kenh 0.
delay_us(10); //cho chon kenh xong.
while(1)
{
temp = read_adc(); //doc gia tri analog da chuyen doi sang so.
temp = temp/10.24; //stepsize = 50mV. Neu giao tiep LM35 thi chia 2.048 (stepsize = 10mv)
PORTC = temp; //Value = Vol/0,05
delay_ms(500);
}
}
DOWNLOAD FILE MÔ PHỎNG + CODE
(Bấm vào link đợi 5s, sau đó bấm "Skip Ad" sẽ ra link download)
Bạn cho mình hỏi kit 16f887 bên bạn bán hay mua ở đâu vậy
ReplyDelete