趙 峰 沈一凡 李晨輝長安大學電控學院
基于TeeChart的89C51與PC串口通信與數(shù)據(jù)曲線繪制
趙峰沈一凡李晨輝
長安大學電控學院
在控制系統(tǒng)中,有時候需要對采樣所得數(shù)據(jù)的曲線進行繪制以便對被研究對象進行建模、數(shù)據(jù)分析。同時,圖像分析的方法由于它獨特的優(yōu)點被廣泛的運用,實時繪圖技術就顯得十分重要。
Teechart 曲線繪制 串口
近些年來,由于控制工程發(fā)展的實際需要,控制過程中需要依賴上位機對某些重要數(shù)據(jù)進行記錄、分析與處理,有的控制過程需要對所得數(shù)據(jù)進行精確的繪圖用以追蹤數(shù)據(jù)變化曲線。目前現(xiàn)有的繪圖軟件也不少,但是主要是由于各種產(chǎn)品的制作風格,設計功能千差萬別,很多時候難以滿足控制工程人員的需求。這對標準化、模塊化、個性化、多元化的繪圖程序設計軟件提出了要求,而TeeChart控件作為一款優(yōu)秀的繪圖控件,兼容多種程序語言可以降低軟件開發(fā)的難度,同時也兼顧了縮短了軟件開發(fā)周期,也提高了系統(tǒng)的可靠性等優(yōu)點。
單片機開發(fā)板核心采用的是STC公司的89c52開發(fā)板,內(nèi)部ROM為8Kb,256個字節(jié)的RAM,通過MAX232芯片與單片機連接并進行電平轉換后通過RS232直接與PC機串口連接。電路如下圖所示:
3.1程序說明
設計一個可以使得單片機持續(xù)向PC機發(fā)送ASCII碼的程序,波特率設置為9600,這主要是因為PC上位機與下位機是以ASCII碼的形式通信,人為的在單片機端進行16進制與ASCII碼轉換,保持51單片機一直向串口發(fā)送數(shù)據(jù)“25”。程序流程圖如下:
4.1程序特征說明
采用VS2010開發(fā)環(huán)境中的C++語言進行設計,通過建立MFC程序以調用較多的附加庫函數(shù),其強大的MSCOMM串口通信控件可以滿足相當多的通信要求,諸如,串口數(shù)據(jù)開放與關斷、接收與處理等相關的庫函數(shù),同時子函數(shù)的調用與開發(fā)很方便,可以大大降低編程的。
4.2TeeChart軟件設計
(1)串口號與相應波特率的選擇
在表格里設置兩個下拉菜單欄,波特率從300設置到43000變化,串口號從1到15,這樣,串口選擇可以更加靈活,為了方便起見,預設波特率為9600與單片機通信速率相同。程序添加在MFC圖表程序初始化程序中:
m_comsel.SetCurSel(0);//預置COM口
m_bandratesel.SetCurSel(5);//預置波特率為”9600”
(2)串口開放與關閉程序設計
在圖表框中程序中加入兩個按鈕,分別用于控制串口開通與關斷。
(3)在圖表框程序中加入兩個編輯框,分別用recieve與send表示,一方面可以用于檢驗得到的數(shù)據(jù)是否正確,另一方面可以判斷串口輸入的數(shù)據(jù)與圖像進行比較。在后期處理的過程中,可以將兩個編輯框縮小或直接去除。
(4)設置Teechart曲線的橫軸與縱軸,以及部分數(shù)據(jù)的初始化,這些處理程序可以放入MSCOMM處理函數(shù)中,時間軸從電腦當前時間選擇作為參考,但是進行處理后均默認從0時0分
CSeries(m_chart.Series(0)).Clear();//清空曲線
CPage(m_chart. get_Page()).p u t_ MaxPointsPerPage(80);//設 置80個數(shù)據(jù)點
COleDateTime CurTime = COleDateTime::GetCurrentTi me();//獲取當前時間
COleDateTimeSpan tmSpan= COleDateTimeSpan(0,0,1,0);//設置時間間隔為1分鐘。
(5)讀取時間與緩沖區(qū)的字符,由于圖像處理程序嵌入到了串口通信程序中,所以數(shù)據(jù)一被接受便被處理并暫存在PC機內(nèi)。
(6)繪圖部分中不僅執(zhí)行繪圖功能,在繪圖結束后進行延時設計,這里不使用精確延時功能,一方面對于短時間的檢測(這里是1s)間隔而言使用Sleep函數(shù)或定時器對于程序造成的停滯非常嚴重,所以這里采用GetTickCount函數(shù)編寫延時程序,每隔1s檢測串口端是否有數(shù)據(jù),若不是則繼續(xù)保持等待,當然這樣的等待時間相對程序工作時間來說是微不足道的。
上位機程序流程圖如下圖所示:
結束總結:本文主要針對單片機與PC機通信并進行實時通信繪制曲線進行分析,搭建了一個基本功能齊備的曲線處理程序,特別是針對8位的單片機提供了一個較好的圖像處理平臺,可以為相關工作人員進行單片機與PC機進行圖像數(shù)據(jù)處理提供參考。實際上機測試通過,程序可以實現(xiàn)功能,實際測序測試結果如下圖所示。
[1]劉戰(zhàn)坤,曾水平,基于DSP28335與TeeChart控件的數(shù)據(jù)采集與顯示系統(tǒng)[J].中國科技信息2013.11; 113-114
[2]梁增欣,李維嘉,TeeChart控件介紹及在實時監(jiān)控系統(tǒng)中的應用[J].工業(yè)控制計算機2010,23(12);9-10