mrpossible
15-06-2010, 11:51 AM
Em mới làm quen với PIC, em muốn chuyển đổi ADC từ 1 tín hiệu điện qua chân A0, xuất tín hiệu ra portb, sau đó gửi tín hiệu qua cổng rs-232 lên máy tính, code của em như sau:
#include<16f877a.h>
#include<def_877a.h>
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#usedelay(clock=20000000)
#users232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C 7,bits=8)
int8 adc;
main( )
{
Setup_ADC(ADC_internal);
Setup_ADC_ports (AN0);
Set_ADC_channel ( 0 );
Delay_us (10 ); // delay 10 us
While (true )
{
adc = read_adc ( ) ;
Output_B ( adc ) ; // xuat ra port B gia tri bien adc
Printf( “ gia tri adc la : %u “ , adc ) ; // in ra man hinh <em thắc mắc phần này đây>
}
}
như vậy với hàm printf ở trên thì nó sẽ gửi lên cổng rs-232 như thế nào, và nếu em chỉ muốn gửi dữ liệu là tín hiệu số thu được sang cổng rs-232 thôi, ko có dòng chữ "gia tri adc la" thì e phải làm sao, mình có cần phải dùng ngắt hay j k
Mong nhận được sự giúp đỡ từ các huynh :)
#include<16f877a.h>
#include<def_877a.h>
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#usedelay(clock=20000000)
#users232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C 7,bits=8)
int8 adc;
main( )
{
Setup_ADC(ADC_internal);
Setup_ADC_ports (AN0);
Set_ADC_channel ( 0 );
Delay_us (10 ); // delay 10 us
While (true )
{
adc = read_adc ( ) ;
Output_B ( adc ) ; // xuat ra port B gia tri bien adc
Printf( “ gia tri adc la : %u “ , adc ) ; // in ra man hinh <em thắc mắc phần này đây>
}
}
như vậy với hàm printf ở trên thì nó sẽ gửi lên cổng rs-232 như thế nào, và nếu em chỉ muốn gửi dữ liệu là tín hiệu số thu được sang cổng rs-232 thôi, ko có dòng chữ "gia tri adc la" thì e phải làm sao, mình có cần phải dùng ngắt hay j k
Mong nhận được sự giúp đỡ từ các huynh :)