Bạn coi bên ở trang 2 của Thread này nhé ,có Cách Làm ở bên đó ,Mỗi lần có Sự Kiện ONCOME là lw vào mảng và Gọi hàm Vẽ đồ thị là OK thui .Khi nào rảnh ,mình sẽ POST code cho hen
Thông báo
Collapse
No announcement yet.
làm thế nào để vẽ Đồ thị (X,Y), dữ liệu nhận từ cổng COM, ngôn ngữ Visual Baic 6.0
Collapse
This is a sticky topic.
X
X
-
My department's Website: www4.hcmut.edu.vn/~thietbidien/trangchu
Motorola-FreeScale's MCU 68HC11 & HCS12X Supporter
-
Mình quên nữa chứ ,ở bên trang số 3 của Thread này ,có các SAMPLE CODE rất hay và đầy đủ ( có thêm 1 Fie PDF chỉ các bước đơn giản tạo Giao diện cho Teechart nữa ). Link ở trang Mediafire.com nên rất dễ Down.My department's Website: www4.hcmut.edu.vn/~thietbidien/trangchu
Motorola-FreeScale's MCU 68HC11 & HCS12X Supporter
Comment
-
Bạn thechinhcdt à, trước hết bạn phải TÌM hiểu , viết được GIAO DIỆN Visual Basic kết nối với Vi Điều KHiển đã , Truyền và Nhận dữ liệu OK hết rùi ,thì mới vẽ được Đồ Thị. Khi nào bạn làm OK rùi thi mình sẽ POST CODE cho bạn Tham Khảo phần Teechart.My department's Website: www4.hcmut.edu.vn/~thietbidien/trangchu
Motorola-FreeScale's MCU 68HC11 & HCS12X Supporter
Comment
-
Anh em nào yêu thích MCU của MOTOROLA ( 68HC05 , 68HC08, 68HC11, 68HC12 ...) thì vào THREAD này (do mình lập ra) để tìm TOOLs, CODE mẫu ,tài liệu ( đầy đủ từ A--> Z luôn) nghen.
http://dientuvietnam.net/forums/show...7572#post97572
( mong bác Admin thông cảm - do em POST không đúng chỗ lắm ,hi hi)My department's Website: www4.hcmut.edu.vn/~thietbidien/trangchu
Motorola-FreeScale's MCU 68HC11 & HCS12X Supporter
Comment
-
Measurement Studio 8.0.1 For Visual Basic 2005
Nguyên văn bởi hoanglongu Xem bài viếtBạn ATYLA ơi, cái Istripchart ActiveX Control này cũng vẽ đồ thị OK phải không? Bạn có thể hướng dẫn mọi người về Istripchart ActiveX để vẽ ĐỒ THỊ được không? Mình cũng đang nghiên cứu Teechart mà cũng chưa được thành thạo lắm. Mong sự giúp đợ của bạn, để chung ta biết được sử dụng 1 công cụ vẽ ĐỒ THỊ với VB
Measurement Studio 8.1 of NI National Instruments Using for Visual Basic 6.0 and Visual Studio2003/ 2005.
+ Code VB6.0:
Private Sub Form_Load()
First_Time = False
CWGraph.ChartLength = 30000
CWGraph.Axes(2).SetMinMax -10, 100
End Sub
Private Sub TIMERCHART_Timer()
Dim i As Integer
Dim Y As Integer
LPV.Caption = TankPV((CNT + 1) / 2)
LSV.Caption = TankSV((CNT + 1) / 2)
LblTimeRun = Format(Now, "dd-mm-yyyy hh:nn:ss")
Select Case First_Time
Case False
First_Time = True
CWGraph.Axes(1).Minimum = Now 'set x-axis
CWGraph.Axes(1).Maximum = Now + 0.0072 '0.0024
Case True
End Select
If Now >= CWGraph.Axes(1).Maximum Then
CWGraph.Axes(1).Maximum = CWGraph.Axes(1).Maximum + 0.00035
CWGraph.Axes(1).Minimum = CWGraph.Axes(1).Minimum + 0.00035
End If
For i = 1 To 10 Step 2
CWGraph.Plots(i).ChartXvsY Now, TankPV((i + 1) / 2)
CWGraph.Plots(i + 1).ChartXvsY Now, TankSV((i + 1) / 2)
Next i
'CHO PHEP HIEN THI PLOTS.
CWGraph.Plots(CNT).Visible = True
CWGraph.Plots(CNT + 1).Visible = True
End Sub
+ Code Vb2005:
Private Sub CWGTime_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CWGTime.Tick
Dim MaxY As Double = 100, MinY As Double = 0
Dim YValues As Double(,) = {{Val(TxtSV.Text)}, {Val(TxtPV.Text)}}
Dim XValuesAsDateTime As DateTime() = {DateTime.Now}
Dim XValues As Double() = CType(DataConverter.Convert(XValuesAsDateTime, GetType(Double())), Double())
If FlagCWU = True Then
ScatterGraph1.Plots(0).XAxis.Mode = AxisMode.StripChart
ScatterGraph1.XAxes.Item(0).Range = New Range(Now(), TimeSpan.FromSeconds(100)) ' MinX=Now(), MaxX= TimeSpan.FromSeconds(100).
FlagCWU = False
End If
ScatterGraph1.PlotXYAppendMultiple(XValues, YValues)
ScatterGraph1.YAxes.Item(0).Range = New Range(MinY, MaxY)
ToolStripStatus.Text = "Status: Running..."
ToolStripTime.Text = " Time: " & Format(Now(), "hh : mm: ss tt")
End Sub
Last edited by mstudio8x; 08-04-2008, 17:30.katllu
Comment
-
Cái này cũng hay quá henNguyên văn bởi mstudio8x Xem bài viết
Measurement Studio 8.1 of NI National Instruments Using for Visual Basic 6.0 and Visual Studio2003/ 2005.
+ Code VB6.0:
Private Sub Form_Load()
First_Time = False
CWGraph.ChartLength = 30000
CWGraph.Axes(2).SetMinMax -10, 100
End Sub
Private Sub TIMERCHART_Timer()
Dim i As Integer
Dim Y As Integer
LPV.Caption = TankPV((CNT + 1) / 2)
LSV.Caption = TankSV((CNT + 1) / 2)
LblTimeRun = Format(Now, "dd-mm-yyyy hh:nn:ss")
Select Case First_Time
Case False
First_Time = True
CWGraph.Axes(1).Minimum = Now 'set x-axis
CWGraph.Axes(1).Maximum = Now + 0.0072 '0.0024
Case True
End Select
If Now >= CWGraph.Axes(1).Maximum Then
CWGraph.Axes(1).Maximum = CWGraph.Axes(1).Maximum + 0.00035
CWGraph.Axes(1).Minimum = CWGraph.Axes(1).Minimum + 0.00035
End If
For i = 1 To 10 Step 2
CWGraph.Plots(i).ChartXvsY Now, TankPV((i + 1) / 2)
CWGraph.Plots(i + 1).ChartXvsY Now, TankSV((i + 1) / 2)
Next i
'CHO PHEP HIEN THI PLOTS.
CWGraph.Plots(CNT).Visible = True
CWGraph.Plots(CNT + 1).Visible = True
End Sub
+ Code Vb2005:
Private Sub CWGTime_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CWGTime.Tick
Dim MaxY As Double = 100, MinY As Double = 0
Dim YValues As Double(,) = {{Val(TxtSV.Text)}, {Val(TxtPV.Text)}}
Dim XValuesAsDateTime As DateTime() = {DateTime.Now}
Dim XValues As Double() = CType(DataConverter.Convert(XValuesAsDateTime, GetType(Double())), Double())
If FlagCWU = True Then
ScatterGraph1.Plots(0).XAxis.Mode = AxisMode.StripChart
ScatterGraph1.XAxes.Item(0).Range = New Range(Now(), TimeSpan.FromSeconds(100)) ' MinX=Now(), MaxX= TimeSpan.FromSeconds(100).
FlagCWU = False
End If
ScatterGraph1.PlotXYAppendMultiple(XValues, YValues)
ScatterGraph1.YAxes.Item(0).Range = New Range(MinY, MaxY)
ToolStripStatus.Text = "Status: Running..."
ToolStripTime.Text = " Time: " & Format(Now(), "hh : mm: ss tt")
End Sub

. Giúp anh em có thêm 1 phương tiện vẽ đồ thị nữa rong VB nữa. Cảm ơn bạn hen
My department's Website: www4.hcmut.edu.vn/~thietbidien/trangchu
Motorola-FreeScale's MCU 68HC11 & HCS12X Supporter
Comment
-
Nếu là chương trình GOOD ,thì bạn hãy Giới thiệu 1 cách chi tiết để giới thiệu nghen .Như vậy ,sẽ có nhiều người biết đến ,và áp dụng rộng rãi hơn.Nguyên văn bởi duongthanh85 Xem bài viếtĐồ thị à? GNUplot chiến cho pro ^^My department's Website: www4.hcmut.edu.vn/~thietbidien/trangchu
Motorola-FreeScale's MCU 68HC11 & HCS12X Supporter
Comment
-
Anh Lưu ơi giúp em với! Em download PC access về mà chẳng cài được gì cả. PC access v1.0 (Sp1,2,3) đều báo là phiên bản này không cài được trên máy.Nguyên văn bởi mstudio8x Xem bài viết
Measurement Studio 8.1 of NI National Instruments Using for Visual Basic 6.0 and Visual Studio2003/ 2005.
+ Code VB6.0:
Private Sub Form_Load()
First_Time = False
CWGraph.ChartLength = 30000
CWGraph.Axes(2).SetMinMax -10, 100
End Sub
Private Sub TIMERCHART_Timer()
Dim i As Integer
Dim Y As Integer
LPV.Caption = TankPV((CNT + 1) / 2)
LSV.Caption = TankSV((CNT + 1) / 2)
LblTimeRun = Format(Now, "dd-mm-yyyy hh:nn:ss")
Select Case First_Time
Case False
First_Time = True
CWGraph.Axes(1).Minimum = Now 'set x-axis
CWGraph.Axes(1).Maximum = Now + 0.0072 '0.0024
Case True
End Select
If Now >= CWGraph.Axes(1).Maximum Then
CWGraph.Axes(1).Maximum = CWGraph.Axes(1).Maximum + 0.00035
CWGraph.Axes(1).Minimum = CWGraph.Axes(1).Minimum + 0.00035
End If
For i = 1 To 10 Step 2
CWGraph.Plots(i).ChartXvsY Now, TankPV((i + 1) / 2)
CWGraph.Plots(i + 1).ChartXvsY Now, TankSV((i + 1) / 2)
Next i
'CHO PHEP HIEN THI PLOTS.
CWGraph.Plots(CNT).Visible = True
CWGraph.Plots(CNT + 1).Visible = True
End Sub
+ Code Vb2005:
Private Sub CWGTime_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CWGTime.Tick
Dim MaxY As Double = 100, MinY As Double = 0
Dim YValues As Double(,) = {{Val(TxtSV.Text)}, {Val(TxtPV.Text)}}
Dim XValuesAsDateTime As DateTime() = {DateTime.Now}
Dim XValues As Double() = CType(DataConverter.Convert(XValuesAsDateTime, GetType(Double())), Double())
If FlagCWU = True Then
ScatterGraph1.Plots(0).XAxis.Mode = AxisMode.StripChart
ScatterGraph1.XAxes.Item(0).Range = New Range(Now(), TimeSpan.FromSeconds(100)) ' MinX=Now(), MaxX= TimeSpan.FromSeconds(100).
FlagCWU = False
End If
ScatterGraph1.PlotXYAppendMultiple(XValues, YValues)
ScatterGraph1.YAxes.Item(0).Range = New Range(MinY, MaxY)
ToolStripStatus.Text = "Status: Running..."
ToolStripTime.Text = " Time: " & Format(Now(), "hh : mm: ss tt")
End Sub

Comment
-
-
Cái này dùng Visual Basic + Teechart ( ActiveControl X for VB )Nguyên văn bởi nodiesun Xem bài viếtAnh ơi cái này cũng viết bằng VB à?
Bạn có thể xem cách sử dụng ,File hướng dẫn , mình gởi kèm ở trang 2, trang 3 của Thread này
Chúc vui!My department's Website: www4.hcmut.edu.vn/~thietbidien/trangchu
Motorola-FreeScale's MCU 68HC11 & HCS12X Supporter
Comment
-
Bạn nên Hà nội Mình Copy cho 1 bản của Mình.Nguyên văn bởi nodiesun Xem bài viếtAnh Lưu ơi giúp em với! Em download PC access về mà chẳng cài được gì cả. PC access v1.0 (Sp1,2,3) đều báo là phiên bản này không cài được trên máy.
ĐC: 36H22 Tân Mai - Hoàng Mai - Hà Nộikatllu
Comment
-
[QUOTE=mstudio8x;101012]Bạn ở Hưng Yên gần Hà nội nên đó Mình Copy cho 1 bản mà dùng dung lượng có mấy chục MB gửi qua E-mail nâu lắm.
ĐC: 36H22 Tân Mai - Hoàng Mai - Hà Nội[/QUOTE
Anh Lưu ơi em đọc trong phần help của Microwin viết chương trình truyền thông như sau:
NETWORK 1 // Main Program
LD SM0.1 //On the first scan,
MOVB 16#09 SMB30 //Initialize Freeport:
// - Select 9600 baud
// - Select 8 data bits
// - Select no parity
MOVB 16#B0 SMB87 //Initialize RCV message control byte:
// - RCV enabled
// - Detect end of message character
// - Detect idle line condition as
// as message start condition
MOVB 16#0A SMB89 //Set end of message character to hex OA (line feed)
MOVW +5 SMW90 //Set idle line timeout to 5 ms.
MOVB 100 SMB94 //Set maximum number of characters to 100.
ATCH INT_0 23 //Attach interrupt 0 to the receive complete event.
ATCH INT_2 9 //Attach interrupt 2 to the transmit complete event.
ENI //Enable user interrupts
RCV VB100 0 //Enable receive box with buffer at VB100 for port 0
NETWORK 1 // Interrupt 0
//Receive complete interrupt routine
LDB= SMB86 16#20 //If receive status shows receive of end character,
MOVB 10 SMB34 //then attach a 10 ms timer
ATCH INT_1 10 //to trigger a transmit
CRETI //and return.
NOT
RCV VB100 0 //If the receive completed for any other
//reason, then start a new receive.
NETWORK 1 // Interrupt 1
//10 ms timer interrupt
LD SM0.0
DTCH 10 //Detach timer interrupt
XMT VB100 0 //Transmit message back to user on port 0
Em không thấy viết INT_2 và INT_1 có cần thêm lệnh gì nữa không?Dữ liệu nhận được sẽ lưu vào đâu hả anh? Em tưởng dữ liệu nhận được phải lưu vào SMB2 chứ? Giúp em với nhé. Thanks anh! À mà khi nào anh có thời gian để em gặp anh chút!
Comment
Về tác giả
Collapse
Bài viết mới nhất
Collapse
-
bởi hayarNăm 2026 việc chọn laptop gaming chủ yếu vẫn là cân bằng vì giá cả và phần cứng thay đổi liên tục, nên tập trung vào GPU ổn, tản nhiệt tốt và hiệu năng thực tế sẽ quan trọng hơn việc chạy theo cấu hình cao nhất, giống như trong nulls brawl, chơi hay hơn khi biết cách tối ưu và chọn chiến...
-
Channel: Đánh giá sản phẩm DTVN
Hôm qua, 21:23 -
-
bởi theidiotcatDưới đây là một số gợi ý để các bạn sinh viên chọn được chiếc laptop phù hợp với nhu cầu, ngân sách và ngành học trong bối cảnh giá linh kiện leo thang kéo theo mức giá laptop liên tục tăng cao.
Bước vào mùa tựu trường năm...-
Channel: Đánh giá sản phẩm DTVN
30-06-2026, 11:26 -
-
bởi theidiotcatAMD Ryzen 9 9950X bước sang năm 2026 vẫn là một trong những bộ vi xử lý desktop mạnh mẽ nhất dành cho người dùng phổ thông cao cấp. Dù đã ra mắt từ thế hệ Zen 5 đầu tiên của dòng Ryzen 9000, con chip 16 nhân 32 luồng này vẫn giữ được sức...
-
Channel: Đánh giá sản phẩm DTVN
29-06-2026, 13:58 -
-
bởi theidiotcatTrong thị trường CPU năm 2026, khi các dòng vi xử lý đời mới liên tục ra mắt với những thông số kỹ thuật hào nhoáng, AMD Ryzen 5 7600X vẫn là một cái tên khiến nhiều game thủ và người dùng phổ thông phải cân nhắc kỹ lưỡng. Sau gần hai...
-
Channel: Đánh giá sản phẩm DTVN
29-06-2026, 13:42 -
-
bởi theidiotcatTrong bối cảnh giá linh kiện tăng cao, hiện tại mức giá laptop đã tăng đáng kể so với thời điểm trước cơn sốt AI. Chính vì vậy để lựa chọn được một chiếc laptop đáp ứng tốt nhu cầu vừa học vừa giải trí các bạn sinh viên cần...
-
Channel: Đánh giá sản phẩm DTVN
29-06-2026, 13:33 -
-
bởi theidiotcatViệc lựa chọn một chiếc laptop gaming phù hợp với nhu cầu, ngân sách chưa bao giờ là dễ dàng. Và điều đó càng khó hơn trong năm 2026 khi mà mức giá liên tục tăng.
Nếu bạn chưa biết nên chọn một chiếc laptop gaming như thế nào...-
Channel: Đánh giá sản phẩm DTVN
26-06-2026, 10:29 -
-
bởi theidiotcatVới mức ngân sách 20 - 30 triệu đồng trong năm 2026, các bạn sinh viên và dân văn phòng có thể tìm thấy nhiều lựa chọn cao cấp, mạnh mẽ, pin “trâu”, đặc biệt là các mẫu laptop AI hỗ trợ cho học tập và làm việc.
Trong phân...-
Channel: Đánh giá sản phẩm DTVN
26-06-2026, 10:25 -
-
bởi theidiotcatDưới đây là một số mẫu laptop nổi bật trong phân khúc dưới 20 triệu giúp các bạn văn phòng, sinh viên và đặc biệt là tân sinh viên có thể dễ dàng lựa chọn được mẫu laptop phù hợp với nhu cầu và ngân sách của mình.
Thị...-
Channel: Đánh giá sản phẩm DTVN
26-06-2026, 10:07 -
-
bởi theidiotcatViệc chọn mua một bộ máy tính phục vụ cho các nhu cầu làm việc văn phòng và sử dụng cơ bản hàng ngày đang trở nên dễ dàng và tiết kiệm hơn bao giờ hết. Thay vì phải đau đầu trích ngân sách để mua cả vi xử lý lẫn card đồ họa rời...
-
Channel: Đánh giá sản phẩm DTVN
25-06-2026, 11:23 -


...
Comment