Ðăng Nhập

View Full Version : Giúp đỡ về giao tiếp RS-232


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 :)

shitham
15-06-2010, 12:09 PM
Xin lỗi, cái bạn đang hỏi là điều căn bản trong lập trình, nếu bạn chưa từng lập trình thì mình nghĩ bạn nên bắt đầu với C/C++ trên máy tính trong môi trường console , thì bạn sẽ hiểu rõ hơn về cách lập trình của các trình biên dịch C.
Đơn giản dòng code đó bạn chỉ thay đổi thành < Printf(adc)> hay <Printf("%u",adc)>
Bây giờ bạn chỉ quan tâm cách sử dụng CCS còn để hiểu cách hiện thực của CCS thì khi nào bạn sử dụng thành thạo đã nhé.
Chúc sức khỏe.

mrpossible
15-06-2010, 06:25 PM
bạn ơi, mình học qua lập trình C++ căn bản rồi, nhưng ko thấy đề cập đến việc xuất dữ liệu ra cổng rs-232 gì cả. hàm printf trong C chỉ là xuất giá trị ra màn hình thôi
Như vậy, theo mình hiểu bây giờ nghĩa là mình dùng hàm printf trong ccs là nó sẽ tự động thiết lập và gửi dữ liệu ra cổng rs-232 luôn, phải vậy ko ta :-?
bạn nào giúp xem thử code mình viết như thế cho mục đích của đề như vậy đã đúng chưa với, mình k test đc :(
với lại bạn nào biết dùng ngắt để viết chương trình này k thì giúp mình lun ;)
thanks mấy bạn :X

baquyen
15-06-2010, 08:16 PM
Bạn đã có chương trình giao tiếp trên máy tính chưa, nếu đã có thì bạn hãy thử test khả năng truyền và nhận của nó xem thế nào, có ổn ko đã . Rùi mới tính tiếp.