Mình đang làm đồ án nhưng gặp rắc rối ở việc truyền và nhận 1 số 10bit qua cổng COM, giao tiếp với Pic 16f877a bạn nào có cách giải quyết xin giúp đỡ mình nhe!??
Thông báo
Collapse
No announcement yet.
truyền thông qua cổng COM
Collapse
X
-
trước hết bạn phải truyền, nhận được gói dữ liệu qua cổng COM. Sau đó với số 10 bit thì đơn giản nhất là chia thành bit thấp và bit cao. Quy luật truyền, nhận do bạn tự lựa chọn. Sau đó lại ghép bit thấp, bit cao lại thì sẽ nhận được số đã truyền, nhậnRễ của sự học tập thì đắng
Quả của sự học tập thì ngọt
Comment
-
Nguyên văn bởi trimen Xem bài viếtsao bạn không chia nó thành phần chục và phần đơn vị để truyền, hoặc chia nó thành byte cao và byte thấp để truyền, sau đó PC sẽ xử lí dữ liệu truyền lên
Private Sub cmdsend_Click()
Dim bytestosend(0 To 2) As Byte
Dim buffer As Variant
bytestosend(0) = Val(TXTCAIDAT.Text) \ 100
bytestosend(1) = (Val(TXTCAIDAT.Text) \ 10) Mod 10
bytestosend(2) = Val(TXTCAIDAT.Text) Mod 10
buffer = bytestosend()
MSComm1.Output = buffer
End Sub
Private Sub Form_Load()
Form1.Caption = "DO AN TOT NGHIEP 2009 - 2012"
MSComm1.CommPort = 3
MSComm1.Settings = "9600,n,8,1"
MSComm1.InBufferSize = 1024
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
MSComm1.SThreshold = 0
MSComm1.OutBufferSize = 512
MSComm1.InputMode = comInputModeBinary
MSComm1.PortOpen = True
Comment
-
bạn nhầm khúc này :
Nguyên văn bởi thanhtung914 Xem bài viếtbytestosend(0) = Val(TXTCAIDAT.Text) \ 100
bytestosend(1) = (Val(TXTCAIDAT.Text) \ 10) Mod 10
bytestosend(2) = Val(TXTCAIDAT.Text) Mod 10
Nguyên văn bởi thanhtung914 Xem bài viếtbytestosend(0) = Val(TXTCAIDAT.Text) \ 100
bytestosend(1) = (Val(TXTCAIDAT.Text) Mod 100) / 10
bytestosend(2) = (Val(TXTCAIDAT.Text) Mod 100)Mod 10
bytetosend(0)=(Val(TXTCAIDAT.Text)&(0xf0))>>8 //byte cao
bytetosend(1)=(Val(TXTCAIDAT.Text))&(0x0f)
Mình ko rành VB lắm bạn xem rồi sửa lại nha.
Comment
-
Nguyên văn bởi trimen Xem bài viếtbạn nhầm khúc này :
phải như vầy thì nó mới lấy đúng số hàng chục và hàng đơn vị:
hoặc bạn có thể truyền byte cao và byte thấp của số đó vậy bạn chỉ phải truyền 2 byte.Ví dụ:
bytetosend(0)=(Val(TXTCAIDAT.Text)&(0xf0))>>8 //byte cao
bytetosend(1)=(Val(TXTCAIDAT.Text))&(0x0f)
Mình ko rành VB lắm bạn xem rồi sửa lại nha.
Comment
-
bạn đưa dữ liệu nhận vào 1 mảng, với 1 biến i khi có dữ liệu đến xảy ra ngắt, khi đó đưa dữ liệu vào phần tử thứ i của mảng và tăng i lên. Sau đó chuơng trình chính chỉ cần truy xuất vào mảng để lấy dữ liệu từ máy tính thôi. Ví dụ như sau:
int i=0;
byte buffer[100];
void nhan(void) interrupt 4 //Chuong trinh con dung ngat noi tiep
{
if(RI)
{
RI=0;
buffer[i]=SBUF;
i=i+1;
}}
Comment
-
các bạn oi giúp mình vấn đề này nhe!
trong ccs mình có đoạn code như sau:
doc_adc();
tam = read_adc();
tam = tam/2.048;
tram = tam/100;
tram = tram + 48;
tam = tam%100;
chuc = tam/10;
chuc = chuc + 48;
donvi = tam%10;
donvi = donvi + 48;
portb = tram;
hienthi();
portb = chuc;
hienthi();
portb = donvi;
hienthi(); //hthi LCD
giờ mình muốn ghép biến tram,chuc,donvi đưa vào một mảng để gửi lên máy tính (VB6), mình đã truyền từng byte nhưng khi VB6 nhận được thì 3byte bị chồng lên nhau (vd tram=1,chuc=2,donvi=3 thi khi lên VB nó hiển thị ra lable thì 1 chồng lên 2 chồng lên 3 giống mình quét led z đó)
đây là code VB6 của mình:
Private Sub Form_Load()
Form1.Caption = "DO AN TOT NGHIEP 2009 - 2012"
MSComm1.CommPort = 6
MSComm1.Settings = "9600,n,8,1"
MSComm1.InBufferSize = 1024
MSComm1.InputLen = 0
MSComm1.RThreshold = 3
MSComm1.SThreshold = 0
MSComm1.OutBufferSize = 512
MSComm1.InputMode = comInputModeBinary
MSComm1.PortOpen = True
End Sub
Private Sub MSComm1_OnComm()
Dim bytetoread() As Byte
Dim buffer2 As Variant
If MSComm1.CommEvent = comEvReceive Then
buffer2 = MSComm1.Input
bytetoread() = buffer2
LBLHIENTHI.Caption = Val(bytetoread())
End If
End Sub
Các bạn xem giúp mình nha??!!
Comment
Bài viết mới nhất
Collapse
-
bởi dinhthuong80Hihi, bác lại đùa em à! Ý em nói cái video kia, so sánh thì phải lấy cái gì đó làm điểm chung chứ cái quạt 65W nói nó mát hơn cái 47W thì có gì đâu mà nói phải không, khác gì nói cái ông 65Kg nặng hơn ông 47Kg vậy!!!!
Còn vụ này,...-
Channel: Điện tử gia dụng
hôm nay, 09:44 -
-
bởi tuyennhanTrên mạng có cái clip quảng cáo bán bạc đạn 608 trong đó có đoạn so sánh cs tiêu thụ trước và sau khi thay bạc vào thấy rõ sau khi thay thì thấy sau khi thay thì cstt giảm vậy thì thay bạc đạn vào cũng chưa chắc mát hơn nhỉ ....
-
Channel: Điện tử gia dụng
hôm nay, 06:52 -
-
bởi phuckhangbioCôn trùng xuất hiện trong nhà không chỉ gây phiền toái mà còn mang theo vi khuẩn gây bệnh. Dịch vụ diệt côn trùng hiệu quả tại nhà sẽ giúp bạn loại bỏ côn trùng tận gốc, đảm bảo không gian sống sạch sẽ và an toàn.
Tại sao cần dịch vụ diệt côn trùng hiệu quả tại nhà?
Việc...-
Channel: Quảng cáo
hôm nay, 01:17 -
-
bởi vi van phamCần thí nghiệm khi các quạt cùng RPM, cùng công suất.
Xác minh chính xác nhất là các chân vịt tốc độ thấp, thế giới công nhận lưu lượng gió mạnh nhất mà cháu ko công nhận thì đến tết công gô tranh luận vẫn chưa xong....-
Channel: Điện tử gia dụng
Hôm qua, 22:49 -
-
bởi vi van phamBác không có ý bắt bẻ gì cháu đâu.
Cánh thật đường nhiên là phải xếp cho cân bằng trọng tâm, nhưng đây là góc nghiêng cánh quạt. Góc này càng lớn thì gió thổi ra càng mạnh. Nhưng nó bị giới hạn bởi không gian cánh kế tiếp. Nếu...-
Channel: Điện tử gia dụng
Hôm qua, 22:36 -
-
bởi dinhthuong80Bác chả chịu rộng lượng mà hiểu cho cháu, hình vẽ chỉ minh họa góc tạo bởi cánh và trục. Đương nhiên khi xếp cánh thật thì phải cân đối trọng tâm rồi.
Sở dĩ họ không làm cánh quạt phẳng mà luôn lõm để "dễ múc không...-
Channel: Điện tử gia dụng
Hôm qua, 21:43 -
-
bởi dinhthuong80dinhthuong xin đưa ra kết quả và kết luận khá khách quan và tin cậy, chứng minh ngược lại suy nghĩ mọi người là quạt dân dụng cánh lớn hay nhiều hơn 3 cánh thì mát hơn cánh nhỏ, 3 cánh.
Mời cả nhà xem kết quả dưới đây:
(quạt đo độ mạnh...-
Channel: Điện tử gia dụng
Hôm qua, 21:25 -
-
bởi dinhthuong80Em đã xem clip đó rồi, và có bình luận, nội dung như sau: vì thiếu máy đo công suất quạt (chưa nói máy đo tốc độ gió thì nhỏ mà chỉ đặt 1 chỗ) nên kết luận thiếu khách quan và chính xác, bởi nói cái quạt 65W mát hơn cái 47W thì chả có ý nghĩa gì cả!!!...
-
Channel: Điện tử gia dụng
Hôm qua, 21:19 -
-
bởi dinhthuong80Em cảm ơn bác, nhờ bác mà em không cần mua cái máy đo tốc độ gió gần 700K nữa, mà kết quả lại tin cậy hơn....
-
Channel: Điện tử gia dụng
Hôm qua, 21:16 -
-
bởi tuyennhanXem clip thì chênh lệch giữa các loại cánh chỉ là số lẻ chưa được 1 m/s thì khỏi tính gì nữa .
Bác Vị kiếm được clip quá hay , Bác trong clip cũng chẳng cần nói nhiều mà xác thực rõ ràng ....-
Channel: Điện tử gia dụng
Hôm qua, 07:27 -
Comment