[PIC TUTORIAL] BÀI 7 Chương trình đọc dữ liệu tín hiệu analog từ chân AN0 và gửi về cổng nối tiếp có tốc độ Baud là 9600
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
#use rs232(baud = 9600, parity = N , Xmit = Pin_c6,rcv = pin_c7) //khoi tao usart
#include <stdio.h>
int16 data;
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 = 0x10;
set_adc_channel(0); //Chon kenh 0.
delay_us(10); //cho chon kenh xong.
printf("Blog.datmcu.com\r\n");
while(1)
{
data = read_adc(); //doc gia tri analog da chuyen doi sang so.
//data = data/10.24; //stepsize = 50mV. Neu giao tiep LM35 thi chia 2.048 (stepsize = 10mv)
printf("Gia tri anlog: %lu\r\n",data);
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)
No comments