|
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 |
31-05-2011, 01:42 AM | #31 |
Đệ tử 6 túi
|
Thay đổi cường độ sáng không hề đơn giản chút nào (theo mình nghĩ) cái này dùng PWM để điều chỉnh độ sáng..với việc điều chỉnh được độ sáng thì người ta làm ra bảng led ma trận đa sắc...vì tất cả các màu đều được phối từ 3 màu cơ bản (R-G-B) mà...bạn lên google với từ khoá bảng led ma trận đa sắc ,có nhiều cho bạn tham khảo lắm...
|
31-05-2011, 08:56 AM | #32 |
Đệ tử 5 túi
Tham gia ngày: Dec 2010
Bài gửi: 101
: |
ok !!! .
mình củng đã từng làm bằng xung nhưng chưa thấy kết quả gì hết .mình thấy có một số phần mềm có thể quet led thay đổi cường độ sáng luôn như ledimm pro nhưng dành cho 89. nạp trực tiếp vào mạch không cần mạch nạp .
|
17-07-2011, 03:07 AM | #33 |
Đệ tử 6 túi
Tham gia ngày: Feb 2011
Bài gửi: 156
: |
Pantovi: Máy hiểu đúng nhưng chương trình của bạn thì có vấn đề.
Ví dụ nhé, khi máy vừa thực hiện xong cái lệnh so sánh thứ nhất mà ngắt RDA xuất hiện, lúc đó data bị thay đổi thì hai câu so sánh đó chẳng có ý nghĩa lắm. -> chương trình xử lý nên nằm luôn trong hàm ngắt thì hơn. Trong vòng while bạn nên sử dụng cấu trúc switch --case, và thực tế là nên làm vừa tắt vừa mowe, ví dụ như A là tắt, a là mở. Nễu như bạn viết thì role =0 được lần đầu, lần sau có so sánh đi nữa thì giá trị nó vẫn bằng 0 mà. |
21-08-2011, 10:09 PM | #34 |
Nhập môn đệ tử
Tham gia ngày: Dec 2007
Bài gửi: 4
: |
Chào các bạn, minh đang làm giao tiếp PC và PIC sử dụng com ảo, nhưng giá trị gửi từ máy tính 4 số 0, 1, 2, 3, 4 chỉ nhận đúng 0 và 1, còn 3 thì nhận được 1, 4 thì nhận được 0, nói chung số chẫn nhân 0, số lẻ nhận được 1. Nhờ các bạn giải thích và sửa dúp dùm mình.
Chương trình VB Dim i As Byte Private Sub CmdSend_Click() i = 0 MSComm1.Output = Chr(i) End Sub Private Sub Command1_Click() i = 1 MSComm1.Output = Chr(i) End Sub Private Sub Command2_Click() End End Sub Private Sub Command3_Click() i = 2 MSComm1.Output = Chr(i) End Sub Private Sub Command4_Click() i = 3 MSComm1.Output = Chr(i) End Sub Private Sub Form_Load() MSComm1.CommPort = 5 MSComm1.PortOpen = True 'i = 0 Text1.Text = "DKM" Text1.Enabled = False End Sub Chương trình CSS #include <16F877A.h> #FUSES NOWDT, HS, PUT, NOPROTECT, NODEBUG, BROWNOUT, NOLVP, NOCPD, NOWRT #use delay (clock=20000000) #use rs232(baud=9600,parity=n,xmit=pin_C6,rcv=pin_C7) #include <DEFS_16F877A.h> char value; #int_RDA void RDA_isr(void) { value = getc(); switch(value) { case 0: { PORTB = 0x0f; break; } case 1: { PORTB = 0x07; break; } case 2: { PORTB = 0x08; } case 3: { PORTB = 0x09; break; } } } void main() { enable_interrupts(GLOBAL); enable_interrupts(INT_RDA); set_tris_B(0); PORTB = 0; while(true) { ; } } |
12-10-2011, 09:35 PM | #35 |
Nhập môn đệ tử
Tham gia ngày: Aug 2011
Bài gửi: 2
: |
Mấy bác cho em hỏi cái này. Em truyền nhận dữ liệu giữa 16f877 và VB6 đã nhận đc nhưng chỉ với thạch anh 4000000Hz, khi thay đổi cái này thì lại không nhận được. Em làm với kit thạch anh 24Mhz ko thể nhận dữ liệu được. Mong các bác chỉ giáo giùm em với.
VB: Private Sub Command1_Click() On Error GoTo OpenFalse If MSComm1.PortOpen = False Then MSComm1.PortOpen = True End If Exit Sub OpenFalse: MsgBox Err.Description & vbLf + vbCr + "Loi, khong the mo cong. Hay dong cac ung dung dang su dung cong COM" End Sub Private Sub Command2_Click() If MSComm1.PortOpen = True Then MSComm1.PortOpen = False End If End End Sub Private Sub Command3_Click() On Error GoTo sendfalse MSComm1.Output = Text1.Text Exit Sub sendfalse: MsgBox Err.Description & vbLf + vbCr + "Loi, Cong COM chua duoc mo, nhan Connect" End Sub Private Sub Form_Load() With MSComm1 .Settings = cmbBaudRate.Text + "N,8,1" .RThreshold = 1 .SThreshold = 0 .InBufferSize = 1024 .OutBufferSize = 1024 .InputMode = comInputModeText .ParityReplace = "" .CommPort = Switch(cmbComPort.Text = "COM 1", 1, cmbComPort.Text = "COM 2", 2, cmbComPort.Text = "COM 3", 3, cmbComPort.Text = "COM 4", 4) End With End Sub Private Sub MSComm1_OnComm() Dim StringIn As String If MSComm1.CommEvent = comEvReceive Then StringIn = MSComm1.Input 'Nhan chuoi du lieu to VCOM Text2.Text = StringIn End If End Sub PIC: #include <16f877a.h> #FUSES NOWDT, HS, NOPUT,NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=4000000) #use rs232(baud=9600, parity=N, xmit=pin_C6, rcv=pin_C7) #include <stdlib.h> #byte porta = 0x05 #byte portb = 0x06 #byte portc = 0x07 #byte porte = 0x09 int8 y,i,a,b,c,d,e; int16 x; char string[5]; BYTE CONST maled[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0}; void nhan_rs232() { for(i=0;i<=4;i++) { string[i]=getc(); } printf("%s",string); y=0; x=atol(string); a=x/10000; x=x%10000; b=x/1000; x=x%1000; c=x/100; x=x%100; d=x/10; x=x%10; e=x; a=maled[a]; b=maled[b]; c=maled[c]; d=maled[d]; e=maled[e]; for(i=0;i<=200;i++) { output_A(0b01111); output_D(a); delay_ms(1); output_A(0b11111); output_A(0b10111); output_D(b); delay_ms(1); output_A(0b11111); output_A(0b11011); output_D(c); delay_ms(1); output_A(0b11111); output_A(0b11101); output_D(d); delay_ms(1); output_A(0b11111); output_A(0b11110); output_D(e); delay_ms(1); output_A(0b11111); } } /*void xoa() { for(i=0;i<=4;i++) { string[i]=0; } }*/ void main() { set_tris_b(0); set_tris_e(0); while(true) { if(y==0) { nhan_rs232(); delay_ms(100); } } } Em làm nhận một số 5 chữ số hiển thị led 7 đoạn đây là file mô phỏng: http://www.mediafire.com/?d4g26cwn4bx4g8y |
14-10-2011, 01:21 AM | #36 | |
Đệ tử 6 túi
Tham gia ngày: Apr 2009
Bài gửi: 132
: |
Trích:
|
|
14-10-2011, 07:56 PM | #37 |
Nhập môn đệ tử
Tham gia ngày: Jan 2011
Bài gửi: 4
: |
đây là đồ án giao tiếp máy tính mình làm vừa xong , mình chia sẽ cho cac bạn cùng tham khảo
http://www.mediafire.com/?xz5d77h57x9bkql |
14-10-2011, 08:02 PM | #38 |
Nhập môn đệ tử
Tham gia ngày: Jan 2011
Bài gửi: 4
: |
thao khảo nè
http://www.mediafire.com/?xz5d77h57x9bkql |
11-12-2011, 01:27 PM | #39 | |
Nhập môn đệ tử
Tham gia ngày: Sep 2009
Bài gửi: 9
: |
Trích:
|
|
01-01-2012, 11:59 PM | #40 |
Nhập môn đệ tử
Tham gia ngày: Oct 2010
Bài gửi: 2
: |
mong các bạn giúp mình với
mình đang làm đề tài giao tiếp máy tính,điều khiển thiết bị và đo nhiệt độ.
mình có tham khảo chương trình của Stupid11.Mình làm theo,kết nói được nhưng đèn trên vb ko sáng.các bạn có thể giúp mình gửi nhiệt độ lên vb được ko? |
20-03-2012, 12:54 PM | #41 |
Nhập môn đệ tử
Tham gia ngày: Mar 2012
Bài gửi: 7
: |
lập trình Vb 6.0 tren laptop thì làm sao giao tiếp được qua cổng Com. các anh giúp em cho này.
theo em bit thì VB không hổ trợ giao tiếp cổng USB |
20-03-2012, 01:04 PM | #42 |
Nhập môn đệ tử
Tham gia ngày: Mar 2012
Bài gửi: 7
: |
Vb 6.0 không hổ trợ giao tiếp quan cổng USB, nhưng Laptop không có cổng Com, Z phải làm thế nào các anh
|
|
|