![]() |
|
Tài trợ cho PIC Vietnam |
Giao tiếp cổng COM và LPT RS232, RS485 và LPT là những giao tiếp cơ bản và kinh điển khi mới học về vi điều khiển... |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#46 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 2
: |
Truyền ADC 8 KÊNH
Tôi có đoạn code viết trên ccs nhưng khi chạy trên vb thì chỉ có kênh 0 là được .Xin giúp tôi tìm chổ sai:
|
![]() |
![]() |
![]() |
#47 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 2
: |
Truyền ADC 8 KÊNH
Tôi có đoạn code này nhưng nó chỉ truyền lên vb kênh 0 mà thôi ,xin góp ý giúp với .thank
#include <C:\Program Files\PICC\Devices\16F877A.h> #device *=16 ADC=8 #fuses HS,NOWDT,NOLVP,NOPROTECT #use delay(clock=20000000) #use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7) byte adc; byte buffer; #INT_TIMER0 void send_data() { byte begin = 0xAA; adc = read_adc(); putc(begin); putc(adc); } void main() { int channel; setup_adc_ports( ALL_ANALOG ); setup_adc(ADC_CLOCK_INTERNAL ); for (channel=0;channel<=7;channel++) { set_adc_channel( channel ); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2);//sets the internal clock as source enable_interrupts(GLOBAL); enable_interrupts(INT_TIMER0); // ngat timer0 de update screen send_data(); while(1) { buffer=getc(); } } } |
![]() |
![]() |
![]() |
#48 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 2
: |
![]() Chào anh Bac!
Thật mừng là PIC việt nam có một thành viên như anh.Càng mừng hơn khi anh lại là sinh viên DHBKHN.Em thấy anh tham gia rất nhiều diễn đàn trên mạng phục anh quá.Anh có phương pháp học nào học hiệu quả chỉ giúp cho em với. Nhất là học lập trình thực sự em rất ngại động vào nó ,mặc dù ngành chúng em rất cần đến nó. Thú thực với anh em học về nó rất nhiều nhưng kết quả thì trái ngược với những j mà em dành cho nó. Rất mong nhận được sự chỉ bảo của anh.Chúc anh học tốt ,Cảm ơn anh |
![]() |
![]() |
![]() |
#49 |
Đệ tử 6 túi
Tham gia ngày: Jul 2007
Bài gửi: 154
: |
chào các bác. em muốn làm một mạch giao tiếp cổng của pc với 2 pic (ví dụ A và B). em muốn khi pc gửi data cho pic A thì chỉ có pic A nhận, B không nhận. khi pc gửi data cho pic B thì B nhận, A không nhận. các bác có cách nào thì xin chỉ mình giúp.
|
![]() |
![]() |
![]() |
#50 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 1
: |
Minh đang hoc visual basic , nen vao day. đã đăng kí rồi nhưng sao ko tải được tài liệu...Bạn nào biết chỉ mình, cảm ơn nhiều.
|
![]() |
![]() |
![]() |
#51 |
Nhập môn đệ tử
Tham gia ngày: Jan 2009
Bài gửi: 2
: |
Anh Hải Bắc ơi! Tại sao em không lôi cái MSComm ra project của em được vậy anh! Em cần gấp để làm đồ án! Mong anh giúp đỡ, cảm ơn nhiều!
|
![]() |
![]() |
![]() |
#52 |
Nhập môn đệ tử
Tham gia ngày: Jan 2009
Bài gửi: 2
: |
Mấy anh chị cho em hỏi thêm là:
- Code cho VDK 89 để nó và PC gửi nhận dữ liệu liên tục. - Còn trong VB, em làm code này, không biết có đúng không: Private Sub MSComm1_OnComm() If MSComm1.CommEvent = comEvReceive Then dRec = MSComm1.Input MSComm1.Output = dSend End If End Sub |
![]() |
![]() |
![]() |
#53 |
Đệ tử 5 túi
|
![]() Lâu rùi không vào mà thấy mọi người trao đổi nhiều quá. hiiic.
Bạn nên mã hóa để cho nó gửi không bị sai tín hiệu. VD: gửi mã hóa => gửi dữ liệu => gửi checksum. Như vậy nếu c.hỉ gửi không thì bạn sẽ dễ hơn đó. Còn về ADC các bạn nên dùng ADC 10 bít thì tốt hơn, nó có độ phân giải cao hơn và độ chính sác cao hơn là dùng 8 bít (đương nhiên là 1024 sẽ lớn hơn 256). ex code: // gửi số có giá trị là 16 byte là "datasend" void send_to_pc(unsigned int datasend, char set){ unsigned char chksum; putc(0xAD); // gui ma hoa putc(0xDA); // gui ma hoa putc(set); // chon che do gui putc((datasend>>8)&0xff); // Gui byte cao putc(datasend & 0xff); // Gui byte thap chksum = ((datasend>>8)|datasend))%256; // kiem tra loi putc(chksum); // gui byte kiem tra loi } gửi phủ phước code của bạn sai trong vòng for bạn chưa kết thúc chương trình, nếu bạn để như vậy thì vòng For chỉ chạy lần đầu tiên, không gửi được các kênh adc còn lại là đúng. Nên để chương trình đọc adc là chương trình con và gửi luôn là ok. như trên bạn gửi "set" là các kênh adc khác nhau là ok. như vậy vừa có thể đọc adc theo kênh vừa gửi là ok không sợ bị lỗi và bị nhầm....... Chúc thành công nhé.
__________________
Hãy chung sức vì nền Điện Tử Viêt Nam...! Sản Phẩm thương hiệu Việt "Made in Viet Nam" Nguyen Van Dung - Nguyễn Văn Dũng. Mobile : (+84) 97 329 1368 Nick name : VanDungEvn ( Yahoo + Skype ) Tư vấn & thiết kế điện tử + Làm mạch in + Hoàn thiện sản phẩm điện tử. Mạch nạp 89-PIC-AVR. Email: vandungevn@gmail.com Website: www.dientuphuongdung.com Xóm Mới - Nguyên Xá - Minh Khai - Từ Liêm - Hà Nôi - Viet Nam. thay đổi nội dung bởi: vandungevn, 28-02-2009 lúc 11:51 PM. Lý do: Gửi thêm code mã hóa + kiểm tra lỗi. |
![]() |
![]() |
![]() |
#54 |
Nhập môn đệ tử
Tham gia ngày: Feb 2009
Bài gửi: 7
: |
Các bác ơi giúp em với em giao diện vi điều khiển với máy tính bằng vb.còn vi điều khiển em viết bằng ngôn ngữ c
Vb em viết đơn giản sau: Private Sub Command1_Click() End End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "2400,n,8,1" MSComm1.InputLen = 0 MSComm1.PortOpen = True End Sub Private Sub MSComm1_OnComm() Dim strf As String Do DoEvents Loop Until MSComm1.InBufferCount >= 50 strf = MSComm1.Input L.Caption = strf End Sub Vi điều khiển em viết như sau:em dùng 89C52 #include<REG52.H> #include<stdio.h> void xung() { SCON= 0x50; TMOD= 0x20; TH1 = 0xF3; TR1 = 1; TI = 1; } main() { int i; P1=0x00; xung(); for(; ![]() { P1=0x01; printf("CHUNG TOI LA NNUNG CHIEN SI"); } } Nhưng không hiểu trên máy tính toàn nhận kí tự gì ấy không được như ý nắm và báo nỗi "28", thỉnh thoảng được thì hiển thị kí tự quá nhiều và phụ thuộc vào cái này:Loop Until MSComm1.InBufferCount >= 50 Các bác nào bớt chút thời gian giải thich và khác phục cho em với Tiện thể cho em mấy chương trình xuất nhập đơn giản trên VB và cả VDK một chương trình mà khi ta bấm 1 phím mà trên VDK các post xuất cho tín hiệu để điều khiển và ngược lại VDK gửi tín hiệu máy tính mà hiển thị trên màn hình Các bác có gắng các lệnh đều phải có chú giải nhé ! Cám ơn những nhà thông thái! |
![]() |
![]() |
![]() |
#55 |
Nhập môn đệ tử
Tham gia ngày: Feb 2009
Bài gửi: 7
: |
Gủi theo địa chỉ tranvang8@yahoo.com
|
![]() |
![]() |
![]() |
#56 |
Nhập môn đệ tử
Tham gia ngày: Feb 2009
Bài gửi: 7
: |
Các bác cho em cả các mã lệnh trong C với VDK truyền thông nối tiếp nhé!
|
![]() |
![]() |
![]() |
#57 |
Nhập môn đệ tử
Tham gia ngày: Feb 2009
Bài gửi: 7
: |
Các bác ơi giúp em với em giao diện vi điều khiển với máy tính bằng vb.còn vi điều khiển em viết bằng ngôn ngữ c
Vb em viết đơn giản sau: Private Sub Command1_Click() End End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "2400,n,8,1" MSComm1.InputLen = 0 MSComm1.PortOpen = True End Sub Private Sub MSComm1_OnComm() Dim strf As String Do DoEvents Loop Until MSComm1.InBufferCount >= 50 strf = MSComm1.Input L.Caption = strf End Sub Vi điều khiển em viết như sau:em dùng 89C52 #include<REG52.H> #include<stdio.h> void xung() { SCON= 0x50; TMOD= 0x20; TH1 = 0xF3; TR1 = 1; TI = 1; } main() { int i; P1=0x00; xung(); for(; { P1=0x01; printf("CHUNG TOI LA NNUNG CHIEN SI"); } } Nhưng không hiểu trên máy tính toàn nhận kí tự gì ấy không được như ý nắm và báo nỗi "28", thỉnh thoảng được thì hiển thị kí tự quá nhiều và phụ thuộc vào cái này:Loop Until MSComm1.InBufferCount >= 50 Các bác nào bớt chút thời gian giải thich và khác phục cho em với Tiện thể cho em mấy chương trình xuất nhập đơn giản trên VB và cả VDK một chương trình mà khi ta bấm 1 phím mà trên VDK các post xuất cho tín hiệu để điều khiển và ngược lại VDK gửi tín hiệu máy tính mà hiển thị trên màn hình Các bác có gắng các lệnh đều phải có chú giải nhé ! Cám ơn những nhà thông thái! Các bác cho em các hàm trong C hay trong KEIL về giao tiếp máy tính nhé |
![]() |
![]() |
![]() |
#58 |
Nhập môn đệ tử
Tham gia ngày: Feb 2009
Bài gửi: 7
: |
Giao tiếp RS232 trên PC bằng Visual Basic.
Các bác ơi giúp em với em giao diện vi điều khiển với máy tính bằng vb.còn vi điều khiển em viết bằng ngôn ngữ c
Vb em viết đơn giản sau: Private Sub Command1_Click() End End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "2400,n,8,1" MSComm1.InputLen = 0 MSComm1.PortOpen = True End Sub Private Sub MSComm1_OnComm() Dim strf As String Do DoEvents Loop Until MSComm1.InBufferCount >= 50 strf = MSComm1.Input L.Caption = strf End Sub Vi điều khiển em viết như sau:em dùng 89C52 #include<REG52.H> #include<stdio.h> void xung() { SCON= 0x50; TMOD= 0x20; TH1 = 0xF3; TR1 = 1; TI = 1; } main() { int i; P1=0x00; xung(); for(; { P1=0x01; printf("CHUNG TOI LA NNUNG CHIEN SI"); } } Nhưng không hiểu trên máy tính toàn nhận kí tự gì ấy không được như ý nắm và báo nỗi "28", thỉnh thoảng được thì hiển thị kí tự quá nhiều và phụ thuộc vào cái này:Loop Until MSComm1.InBufferCount >= 50 Các bác nào bớt chút thời gian giải thich và khác phục cho em với Tiện thể cho em mấy chương trình xuất nhập đơn giản trên VB và cả VDK một chương trình mà khi ta bấm 1 phím mà trên VDK các post xuất cho tín hiệu để điều khiển và ngược lại VDK gửi tín hiệu máy tính mà hiển thị trên màn hình Các bác có gắng các lệnh đều phải có chú giải nhé ! Cám ơn những nhà thông thái! Các bác cho em các hàm trong C hay trong KEIL về giao tiếp máy tính nhé |
![]() |
![]() |
![]() |
#59 |
Nhập môn đệ tử
Tham gia ngày: Feb 2009
Bài gửi: 3
: |
giao tiep RS232
Anh Hải Bắc ơi! Cho em hỏi : Em đã dùng đoạn code mà anh post lên về giao tiếp RS232 bằng VC++ nhưng khi biên dịch thì chuơng trình báo lỗi là chưa định nghĩa "COM1" và "COM2". Anh có thể chỉ cho em cách sửa lỗi không ạ?
Em vẫn chưa hiểu là chuơng trình tự nhận ra cổng COM hay là mình phải cấu hình như thế nào cho nó? Cho em hỏi luôn là trên máy tính nó có ghi cho mình biết cái nào là "COM1" và "COM2" cho mình biết ko? Em xin cám ơn!!!!!!!!!!!!!!!!! |
![]() |
![]() |
![]() |
#60 |
Đệ tử 6 túi
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Di Linh
Bài gửi: 131
: |
![]() chào mọi người . mình mới nghiên cứu về pic.
chủ đề giao tiếp này mình thấy cực cực hay & thực tế. mới tìm hiểu nên lùng bùng quá. có gì nhờ mọi người giúp ( dù câu hỏi ngây thơ nhưng đừng cười nha). mình tự tin là mình làm được. " impossible is nothing " |
![]() |
![]() |
![]() |
Tags |
forms!nhap!vao = x |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
Giao tiếp RS232 trên PC | ngohaibac | Giao tiếp cổng COM và LPT | 193 | 18-02-2025 09:11 AM |
Cho hỏi về giao tiếp RS232 của PIC16F877A | enti | Giao tiếp cổng COM và LPT | 31 | 25-03-2016 10:14 PM |
Giao tiếp RS232 trên PC qua Matlab | ngohaibac | Giao tiếp cổng COM và LPT | 47 | 18-11-2015 03:51 PM |
cần mua bộ thu GPS có giao tiếp RS232 | kienvq | Tìm mua sản phẩm | 15 | 17-03-2011 11:25 PM |
Help! Dùng C để giao tiếp RS232 | dandiennang | Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) | 6 | 15-03-2009 06:41 PM |