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 nhathung1101Em ăn chay, thì đã lên chùa.
Em lên chùa thì Bụt chạy mất dép.
Bụt chạy rồi thì mấy kỹ sư biết kêu ai?
Vì rất rất nhiều kỹ sư, vẫn khóc lóc, và Bụt hiện lên hỏi:
- Ếch con, tại sao con khóc???-
Channel: Điện tử gia dụng
Hôm qua, 15:37 -
-
Trả lời cho Về MAIN Máy In EPSON L310bởi minhngoc203Dòng máy này có phần mềm reset epson L310 : https://www.datvietcomputer.com/down...l360-l365.html, nhưng mình nghĩ , máy in có thể lỗi ic rom , bạn nạp lại rom L310 xem.
-
Channel: Điện tử dành cho người mới bắt đầu
27-04-2025, 08:30 -
-
bởi vi van phamCháu đừng khuyên lão nhà thùng như thế. Chỉ uống vai chai lão đã cầm dao tìm mèo thịt. Bây giờ tập dưỡng sinh, ăn vài chai thì........
-
Channel: Điện tử gia dụng
27-04-2025, 07:21 -
-
bởi mèomướpDạ từ bé cháu chỉ dám loanh quanh ở bản thôi ạ hông dám ra ngoài đâu. Chú nhat...với bác vi... nên hạn chế uống rượu, giành thời gian trồng rau, tập dưỡng sinh và thi thoảng ăn chay ạ...
-
Channel: Điện tử gia dụng
27-04-2025, 07:02 -
-
bởi vi van phamNhắn tin khẩn:
Mèo mướp trốn về bản ngay. Lão nhà thùng xỉn, tay cầm dao tìm mèo thịt. Về bản làng nhờ chị hàng xóm giúp đỡ....-
Channel: Điện tử gia dụng
27-04-2025, 05:57 -
-
Trả lời cho Tổng hợp quạt điện : điện tử , Cơ , phun sươngbởi Nikon57Cảm ơn meomuop đã chỉ dẫn. Mình làm theo lời khuyên đầu tiên của bạn " tìm dây và nối lại". Mắt tuy kém nhưng ngồi bình tĩnh vẫn tìm được và đã nối xong như hình. Cảm ơn bạn rất nhiều nhé....
-
Channel: Điện tử gia dụng
26-04-2025, 23:16 -
-
bởi nhathung1101Đệ đang ôm chai đây... Kính lão 1 chén nhé!
Đệ có trên tay dao cạo lông....
Ngắm nghía xung quanh tìm con mèo...
Dưng mà quên mất mèo lên đĩa...
Thôi cứ uống say mặc kệ mèo......-
Channel: Điện tử gia dụng
26-04-2025, 21:33 -
-
Trả lời cho Tổng hợp quạt điện : điện tử , Cơ , phun sươngbởi mèomướpDạ chú tìm dây và nối lại ạ. Ko thì chú cắt vứt cuộn ấy đi rồi nối dây bỏ qua cuộn ấy. Hoặc là quấn lại cuộn ấy thì càng tốt, chú ý số vòng dây và hướng quấn để đấu nối...
-
Channel: Điện tử gia dụng
26-04-2025, 20:52 -
-
Trả lời cho Tổng hợp quạt điện : điện tử , Cơ , phun sươngbởi Nikon57Mình có cái quạt trần điện cơ, xông điện vào không chạy . Dỡ xuống tháo ra quan sát thấy một đầu dây trong một bối dây bị đứt thò ra goài. Quạt cố, cả cuộn làm việc và cuồn đề bố trí thành một vòng . Xin xem ảnh kèm theo. Đo trở...
-
Channel: Điện tử gia dụng
26-04-2025, 15:09 -
-
Trả lời cho Xin hỏi về chiết ápbởi mèomướpDạ cháu hông có tiền để mua điện thoại riêng chơi mạng xã hội đâu ạ. Chú có điều kiện thì tài trợ cho cháu cái ai phôn 16 pờ rồ mắc để cháu học dùng facebook rồi kết bạn với chú ạ...
-
Channel: Điện thanh
26-04-2025, 13:14 -
Comment