new
pic-------------------pc
|
chao bac ngohaibac !
em dang lam giao tiep nhan du lieu tu cong COM tu thiet bi xu ly du lieu va hien thi du lieu bang phan mem viet bang VB.NET nhung ko biet cach khai bao cong COM trong VB.NET nhu the nao, cau truc day du de cong COM hoat dong roi gui va nhan du lieu nhu the nao can nhung ham nao can thiet, van de la em o biet xai ham nao va tac dung ra sao, moi vao nghe ah mongbac di truoc chi giao dum vai chieu. em cam on !
|
1 Attachment(s)
anh em co the giup minh dc không?
minh đang viết giao diện VB6 để hiển thi dòng và áp trên 2 ô là ô Dòng và ô áp.mình đã truyền từ pic lên rùi.hai tín hiêu này cách nhau bằng 1 khoảng trắng.bây giờ làm sao có thể tách ra để lấy hai tín hiệu cho vào 2 ô là dòng và ô áp. minh cám ơn . |
truyền nhận dữ liệu mà có ô vuông trong đó là bị ji các bác ơi,có phải sai font kô,em đa chỉnh cùng font hết mà vẫn gặp trường hợp đó...? xin chí giáo
|
GSM modem R232 - GPRS
Chào các Bác: Em đang dùng Modem GSM chip WaveCom. 2 modem kết nối 2 máy tính ( sim đã đăng ký GPRS) Làm sao để truyền dữ liệu bằng GPRS vậy các Bác. hay có phần mềm nào sử dụng Không?
Em dùng điện thoại gửi MMS thì không biết làm sao xuất ra màng hình Nhờ các bác hỗ trợ. Cảm Ơn |
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:
|
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(); } } } |
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 |
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.
|
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.
|
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!
|
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 |
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é. |
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! |
Gủi theo địa chỉ tranvang8@yahoo.com
|
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é!
|
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é |
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é |
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!!!!!!!!!!!!!!!!! |
i'm beginning
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 " |
Có ai đã làm bài của bác Ngohaibac chưa , giúp mình với
mình tải bài mẫu của bác nhb ( test truyền nhận visual basic 6). mình làm đúng trình tự nhưng ko được . ai dã làm qua chỉ mình với.
cảm ơn nhiều! |
Trích:
|
mọi người có thể dùng labview đi bây giờ nó có bản mới nhất là 8.6 mình đang dùng 8.5. Nó có các khối hỗ trợ việc giao tiếp USB và com luôn. hay lắm có gì thì mail cho mình binh_bk_2008@yahoo.com
|
uh. tại mình chưa thông thạo vb lắm nên copy y chang luôn.
rồi cho nó chạy. c.trình có chạy nhưng không báo lỗi bạn à. mình thử send 1 kí tự mà ko thấy hiện tượng gì. Các bước mình làm như sau: 1. thiết lâp các thông số cho cổng com 1 ( như hd trong TUT Visual C <--> PC ) 2. nối chân 2 & 3 3. dùng luôn bản mẫu của bác NHB ( vb) 4. chạy ---> ko hiện tượng. Bạn xem rồi góp ý giúp mình nha . mục đích trước tiên của mình là test xem có truyền , nhận dc ko. thanks bạn nhiều |
2 Attachment(s)
Trích:
Chúc bạn thành công. |
cảm ơn bạn thật nhiều. mình sẽ xem kĩ tài liệu của bạn
Có gì nhờ mọi người nữa. thân chào |
chào bạn Hải Bắc. Mình đang làm về đề tài cân điện tử.
Mình thấy trên diễn đàn ít ai làm về đề tài này.Mình dùng viđiều khiển AVR có tích hợp bộ ADC trong chip con atmega8535. Mình gặp khó khăn ngay phần xử lý tín hiệu cho loadcell.Loadcell mình dùng loại BSA-1t. Vì thời gian rất gấp nên muôn sự giúp đỡ của các bạn trên diễn đàn. Bạn đã từng làm rồi thì hướng dẫn mình phần này với. Và có tài liệu về loadcell loại này thì gửi giúp mình. Mình chân thành cảm ơn! Địa chỉ mailcủa mình: toiyeuvietnam8x@gmail.com |
Trích:
Thân, |
Trích:
http://www.upanh.com/uploads/8-April...c40n2zehxk.jpg |
Trích:
|
chuyển giá trị ADC bằng CCS và VB. cách nào dễ hơn ?
mọi người cho em hỏi :
.giá trị đọc được từ ADC là số nhị phân (10 bit chẳng hạn), vậy khi mình dùng lệnh putc(read_adc); thì c.trình sẽ tách thành 2 byte ( 1 byte chứa 8 bit và 1 byte chứa 2 bit ) để truyền phải không ?. .cho em hỏi các lệnh để chuyển từ hệ nhị phân ==> thập phân trong CCS. |
Trích:
Không có lệnh để chuyển số nhị phân sang thập phân, chỉ có các giải thuật để chuyển số nhị phân sang số thập phân biểu diễn bằng BCD hay ASCII. CCS C cung cấp hàm itoa() để chuyển số nhị phân kiểu integer thành chuỗi ký tự ASCII tương ứng giá trị nhị phân đó (trong hệ thập phân). Thân, |
Trích:
|
Cám ơn các bác đã tạo ra luồng này, nhưng Sao ko thấy bác nào làm về VB 2008 nhỉ???
Em đang làm đề tài mô phỏng mạng nơ ron trên nền FPGA có dùng giao tiếp với máy tính, may quá đọc đc luồng này em tích lũy đc rất nhiều! cám ơn các bác nhiều nhé! đặc biệt là anh NHB :D |
em dùng đoạn CT này để KT nếu có ngắ nhận thì sẽ thay đổi trạng thái LED ở PORTB để nhận biết.nhưng không dc. các tiền bối chỉ giúp xem sai ở đâu.
code của em: #include "D:\RS232\RS232.h" #include <def_877a.h> #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOWRT #use delay(clock=20000000) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7) char buf; #int_RDA void RDA_isr() { buf=getc(); putc(buf); portb = 0x0f; } void main() { trisb=0x00; portb = 0x00; enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); while(1) { } } |
đọc chương trình của bạn có vẻ ổn
Phần cứng của bạn thế nào? bạn truyền nhận giữa PC va vdk hay là giữa 2 vdk? Mình nghĩ có thể là lỗi phần cứng, bạn có thể kiểm tra bằng cách tháo con PIC ra, nối chân TX và RX trên board lại với nhau rồi truyền nhận bằng máy tính nếu truyền nhận OK nghĩa là phần cứng của bạn không sao |
Mình truyền giứa PC và vi điều khiển
nối chân 2 và chân 3 của cổng com ct chạy tốt. test các chức năng in/out của các port trên VDK cũng tốt kho sai mạch max232 nối: Max232 pin12----------pin25 PIC pin11----------pin26 |
bạn thử đoạn này xem sao
#int_RDA void RDA_isr() { int buf; buf=getc(); putc(buf); portb = 0x0f; delay_ms(100); } void main() { set_tris_b(0); set_tris_c(0x80); enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); while(1) { portb = 0xf0; delay_ms(100); } } |
#int_RDA
void RDA_isr() { buf=getc(); putc(buf); portb = 0x0f;//----------> portb =0x0f khi có ngắt lần thứ mấy vẫn không đổi } void main() { trisb=0x00; portb = 0x00;//---->trạng thái đầu của portB enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); while(1) { } } theo chương trình bạn viết thì portb chỉ thay đổi trạng thái chỉ 01 lần duy nhất thôi.sau đó dù có ngắt xảy ra bao nhiêu lần đi chăng nữa thì portb vẫn luôn không đổi và = 0x0f forever!vì vậy bạn cần quan sát kỹ trạng thái của portb khi mới cấp nguồn cho pic và khi bạn gưi dữ liệu qua rs232 lần đâu tiên là sẽ có sự khác nhau như bạn mong muốn và sau đó thì portb sẽ không đổi. |
cứu em với VB6
Em đang viết VB 6. khi em vào File --> save project as --> lưu 1 tên khác , khi mở lại thì
tất cả các file trước đều bị đè lên. Em cũng thử tạo 1 folder mới rồi "save project as" vào folder vừa tạo, nhưng cũng bị như vậy Ví dụ nhé : mở Project 1 --> chỉnh sửa --> lưu lại thành tên khác Project 2 . khi mở Project 1 thì nội dung lại giống Project 2 . Giúp em với |
Múi giờ GMT. Hiện tại là 07:26 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam