版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計說明書 </b></p><p> 課 程 名 稱:高級語言在測控中的應(yīng)用課程設(shè)計</p><p> 課 程 代 碼: </p><p> 題 目: 基于串口通信的 </p><p> 高級語言控制程序的
2、設(shè)計 </p><p> 學(xué) 生 姓 名: </p><p> 學(xué) 號: </p><p> 年級/專業(yè)/班: </p><p> 學(xué)院(直屬系) : 機械工程與自動化學(xué)院 </p&g
3、t;<p> 指 導(dǎo) 教 師: </p><p><b> 目 錄</b></p><p><b> 1 引 言1</b></p><p> 1.1 問題的提出1</p><p> 1.2 國內(nèi)外研究的現(xiàn)狀1</p
4、><p> 1.3任務(wù)與分析1</p><p> 2 程序的主要功能2</p><p><b> 2.1發(fā)送功能2</b></p><p><b> 2.2退出程序2</b></p><p><b> 2.3清除功能2</b></p
5、><p> 3 程序運行平臺3</p><p><b> 3.1建立工程3</b></p><p><b> 3.2資源創(chuàng)建3</b></p><p><b> 4 總體設(shè)計5</b></p><p> 5 程序類的說明6</p&g
6、t;<p> 6 程序流程及代碼實現(xiàn)6</p><p> 6.1 發(fā)送函數(shù)7</p><p> 6.2 接收函數(shù)8</p><p> 6.3 退出函數(shù)8</p><p> 6.4 清空函數(shù)9</p><p> 6.5 其他函數(shù)9</p><p><b&
7、gt; 7 系統(tǒng)測試11</b></p><p><b> 8 結(jié)論14</b></p><p><b> 參考文獻15</b></p><p><b> 引 言 </b></p><p> 目前儀器儀表的智能化程度越來越高,大量的智能儀器都配備了
8、RS-232通信接口,并提供了相應(yīng)的通信協(xié)議,能夠?qū)y試、采集的數(shù)據(jù)傳輸給計算機等設(shè)備,以便進行大量數(shù)據(jù)的儲存、處理、查詢和分析。圖1-1所示為某型號智能儀器示意圖。</p><p> 1.1 問題的提出 </p><p> 在現(xiàn)代化的測控系統(tǒng)中,串口通信有著十分重要的作用,然而,不同測控系統(tǒng)對串口通信的需求也不盡相同,因此會用高級語言設(shè)計串口通信的控制程序也變得很重要。與測控相關(guān)的專
9、業(yè)就開設(shè)了高級語言在測控中的應(yīng)用課程設(shè)計?;诖谕ㄐ诺母呒壵Z言的控制程序的設(shè)計就是本次課程設(shè)計的題目。</p><p> 1.2 國內(nèi)外研究的現(xiàn)狀 </p><p> 目前,計算機的串行通信應(yīng)用十分廣泛,串行接口已成為計算機的必需部件和接口之一。由于其具有連接簡單、使用靈活方便、數(shù)據(jù)傳遞可靠等優(yōu)點,在工業(yè)監(jiān)控、數(shù)據(jù)采集和實時控制系統(tǒng)中得到了廣泛應(yīng)用。當今,實現(xiàn)串口通信的方法以及第三方
10、控件有很多,例如PComm控件,Windows API函數(shù)等等。但是這幾種方法都過于復(fù)雜,對程序員要求較高,而且可靠性并不是很好。利用Microsoft推出的MSComm控件,使得串口通信的實現(xiàn)更為簡單、可靠。</p><p> 隨著當今信息技術(shù)的快速發(fā)展,通信已成為信息技術(shù)中的關(guān)鍵問題。尤其在控制領(lǐng)域,以何種方式實現(xiàn)計算機與外圍設(shè)備間既簡單又可靠的通信,就顯得特別重要。由于串行通信具有實現(xiàn)簡單、使用靈活方便、
11、數(shù)據(jù)傳輸可靠等優(yōu)點,因而廣泛應(yīng)用于工業(yè)控制系統(tǒng)中,是計算機與外部設(shè)備進行數(shù)據(jù)通信時經(jīng)常使用的方式之一。VC++是新一代面向?qū)ο蟮目梢暬_發(fā)工具,提供了良好的界面設(shè)計能力,在PC機的串口通信方面有很強的功能。它具有功能強大、簡便易用和代碼執(zhí)行速度快等特點,在通信軟件的開發(fā)中成為越來越多開發(fā)人員的首選工具。無論在工業(yè)控制中PC機和單片機之間的通信,還是在2臺Pc機之間的串口通信,都具有相同的原理。只要掌握其中的通信本質(zhì),就能靈活地實現(xiàn)串口通
12、信,串口控制。</p><p><b> 1.3任務(wù)與分析</b></p><p> (1). 任務(wù):本課題是要求設(shè)計一個基于VC++平臺下串口通信的控制程序,該程序必須有著良好的用戶界面、能夠設(shè)置端口的參數(shù)、能在同一臺計算機上進行調(diào)試和可進行單個數(shù)據(jù)或成批數(shù)據(jù)的傳送。主要的目的是通過該課程設(shè)計進一步掌握計算機串口通信和高級語言的相關(guān)知識,同時,深入學(xué)習串口通信知
13、識,掌握實現(xiàn)串口通信編程技巧。</p><p> (2). 分析:利用Visual C++開發(fā)串口通信程序既可以使用MSComm控件也可以調(diào)用Windows API函數(shù)。不過,只要MSComm可以被選用,它幾乎總是這類設(shè)計的優(yōu)先選擇。當然,本次設(shè)計所涉及到了功能要求,選用MSComm控件是能完成的,所以,該設(shè)計也將選用MSComm控件方式來完成。</p><p><b> 2
14、 程序的主要功能</b></p><p><b> 2.1發(fā)送功能</b></p><p> 發(fā)送字符串時,在發(fā)送框里輸入字符串,按“發(fā)送”按鈕,開始把發(fā)送文本框內(nèi)的字符發(fā)送到接受文本框內(nèi),發(fā)送文件時按“選擇發(fā)送文件”按鈕,選中所要發(fā)送的文件,點擊“發(fā)送”按鈕,則可在接受文本框里顯示所發(fā)送的文件內(nèi)容。</p><p><b
15、> 2.2退出程序</b></p><p> 按“退出”按鈕,程序窗口關(guān)閉,結(jié)束程序運行。</p><p><b> 2.3清除功能</b></p><p> 按接受字符區(qū)的“清空”按鈕,則清空接受文本框內(nèi)的字符。按發(fā)送字符區(qū)的“清空”按鈕,將發(fā)送文本框內(nèi)容清空。</p><p><b&g
16、t; 3 程序運行平臺</b></p><p><b> 3.1建立工程</b></p><p> (1). 啟動Visual C++6.0,單擊“文件”菜單中的“新建”命令,顯示新建對話框,選擇“MFC AppWizard(exe)”工程類型,輸入需要創(chuàng)建工程的名稱“l(fā)zhh”和目錄。</p><p> (2). 按照彈出
17、的應(yīng)用向?qū)υ捒蛞来翁顚?,?步選擇基于對話框,其他均采用默認。</p><p> (3). 單擊“完成”按鈕,將會彈出一個關(guān)于新工程信息的對話框。單擊“確定”按鈕,這樣MFC向?qū)П阕詣由闪艘粋€名稱為“l(fā)zhh”的工程。</p><p><b> 3.2資源創(chuàng)建</b></p><p> (1).應(yīng)用程序中添加了一個對話框資源IDD_l
18、zhh_DIALOG,打開屬性對話框,將對話框標題改為“應(yīng)用程序中添加了一個對話框資源IDD_lzhh_DIALOG”。</p><p> (2).為了實現(xiàn)計算機與計算機的串口通信,添加MScomm控件。選擇“工程”菜單中的“添加工程”下的“Components and Controls”選項,在彈出的對話框中雙擊“Registered ActiveX Controls”項,選擇“Microsoft Commu
19、nications Control,version 6.0”項,單擊“Insert”按鈕,在彈出的對話框中單擊“OK”按鈕,再在彈出的對話框中單擊“結(jié)束”按鈕關(guān)閉對話框,所選擇的控件就會出現(xiàn)在“控件面板”中,然后將其添加到對話框中相應(yīng)位置。</p><p> (3).刪除對話框中原來的Static文本,用面板為對話框添加如表3-1所示的控件,并按照圖3-1所示放置。</p><p>
20、表3-1程序主界面內(nèi)的控件類型、ID及相關(guān)屬性</p><p> (4). 選中在當前窗口的“Dialg”單擊鼠標右鍵選擇“插入Dialg”,同步驟1將對話框標題改為“參數(shù)設(shè)置”,同步驟3刪除對話框中原來的Static文本,用面板為對話框添加如表3-2所示的控件,并按照圖3-2所示放置。</p><p> (5). 添加成員變量,在“查看”菜單中或在對話框上單擊鼠標右鍵,修改類名為“
21、CSettingDlg”,再打開“Class Wizard”對話框中的“Member Variables”標簽,選中所需的控件ID號,雙擊鼠標左鍵或單擊Add Variables按鈕,依次為表3-3中所列控件增加成員變量。</p><p> 表3-2參數(shù)設(shè)置界面內(nèi)的控件類型、ID及相關(guān)屬性</p><p><b> 表3-3成員變量</b></p>
22、<p> (6). 切換到Class Wizard的Message Maps標簽頁為相應(yīng)控件添加相應(yīng)的消息響應(yīng)函數(shù),對照表3-4。</p><p> 表3-4主界面控件函數(shù)</p><p><b> 4 總體設(shè)計</b></p><p> 要滿足這個設(shè)計所需要的界面是兩個,通過主界面上的相關(guān)控件可以彈出另一界面。當然,另
23、一界面也是單獨的一個類,其只是有些控件有變量沒有功能函數(shù),所以,就沒有給出它框架圖。然而,MScomm控件的相關(guān)功能函數(shù)是系統(tǒng)默認的,這里也沒必要給出。如此,就給出了系統(tǒng)總體框架圖,如圖4.1。</p><p> 圖4-1 系統(tǒng)總體框架圖</p><p><b> 5 程序類的說明</b></p><p> 本程序涉及到了四個類,其分別
24、是ClzhhApp、CLzhhDlg、CMSComm和CsettingDlg。除CLzhhDlg需要添加一些程序外,其余的都以VC++自動生成的程序為準。CLzhhDlg添加的代碼如下:</p><p> class CLzhhDlg : public CDialog</p><p><b> {</b></p><p> // Cons
25、truction</p><p><b> public:</b></p><p> CLzhhDlg(CWnd* pParent = NULL);// standard constructor</p><p> BOOL bRec; //接收按鍵標志</p><p>
26、 BOOL bSend; //自動發(fā)送模式發(fā)送鍵標志</p><p> BOOL Check1; //自動發(fā)送復(fù)選框選中標志</p><p> BOOL Check2; //十六進制復(fù)選框選中標志</p><p> CString m_strSe
27、tting;</p><p> CString strSetting;</p><p> int m_nTime;</p><p> int m_nPort;</p><p> void OpenPort(); //串口開起函數(shù)</p><p> // Dialog Data
28、</p><p> ……//自動生成部分</p><p><b> }</b></p><p> 6 程序流程及代碼實現(xiàn)</p><p> 根據(jù)第4小節(jié)的系統(tǒng)總體框架圖和第5小節(jié)中的給類加的數(shù)據(jù)成員與函數(shù)成員設(shè)計了程序流程圖,如圖6-1。</p><p> 在程序流程圖中,雖然每個按鍵控
29、件和復(fù)選框都是能單獨動作,但是其每次的動作都可能改變標志,從而影響到其它控件動作結(jié)果,甚至改變到程序的運行,這就完成了控件關(guān)系。</p><p> 在lzhhDlg.cpp文件中,設(shè)置初始化函數(shù)OnInitDialog(),添加代碼實現(xiàn)對話框各控件的初始化工作,如下:</p><p> BOOL CLzhhDlg::OnInitDialog()</p><p>
30、 { //VC自動生成的代碼</p><p> // TODO: Add extra initialization here</p><p> bSend=FALSE;</p><p> bRec=FALSE;</p><p> Check1=FALSE;</p><p> Check2=FALSE;&
31、lt;/p><p> m_nPort=1;</p><p> m_nTime=1000;</p><p> m_strSetting=_T("9600,n,8,1");</p><p> OpenPort();</p><p> return TRUE; // return TRUE un
32、less you set the focus to a control</p><p><b> }</b></p><p><b> 6.1 發(fā)送函數(shù)</b></p><p> 實現(xiàn)接收按鈕相應(yīng)的響應(yīng)函數(shù)OnSend() 。代碼如下:</p><p> void CLzhhDlg::OnS
33、end() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> if(Check1) //自動發(fā)送模式</p><p><b>
34、{ </b></p><p> bSend=!bSend; </p><p><b> if(bSend)</b></p><p><b> {</b></p><p> SetTimer(1,m_nTime,NULL);</p><p>
35、m_ctrlSend.SetWindowText(_T("停止發(fā)送"));</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> KillTimer(1);&
36、lt;/p><p> m_ctrlSend.SetWindowText(_T("自動發(fā)送"));</p><p><b> }</b></p><p><b> }</b></p><p> else //手動發(fā)送模式</p
37、><p><b> { </b></p><p> UpdateData(TRUE); </p><p> m_COMM.SetOutput(COleVariant(m_Send));</p><p> m_ctrlSend.SetWindowText(_T("手動發(fā)送"));</p&
38、gt;<p><b> }</b></p><p><b> }</b></p><p><b> 6.2 接收函數(shù)</b></p><p> 實現(xiàn)接發(fā)送鈕相應(yīng)的響應(yīng)函數(shù)OnRec() 。代碼如下:</p><p> void CLzhhDlg::OnR
39、ec() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> m_COMM.GetInput();</p><p> bRec=!bRec;</p><p
40、><b> if(bRec)</b></p><p><b> {</b></p><p> m_ctrlRec.SetWindowText(_T("停止接收"));</p><p><b> }</b></p><p><b>
41、else</b></p><p> m_ctrlRec.SetWindowText(_T("開始接收"));</p><p><b> }</b></p><p><b> 6.3 退出函數(shù)</b></p><p> 實現(xiàn)退出按鈕相應(yīng)的響應(yīng)函數(shù)OnEnd()
42、。代碼如下:</p><p> void CLzhhDlg::OnEnd() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> CDialog::OnOK();</p&
43、gt;<p><b> }</b></p><p><b> 6.4 清空函數(shù)</b></p><p> 實現(xiàn)清空按鈕相應(yīng)的響應(yīng)函數(shù)OnClsR()和OnClsS()。代碼如下:</p><p> void CLzhhDlg::OnClsR() </p><p><b&g
44、t; {</b></p><p> // TODO: Add your control notification handler code here</p><p><b> bRec=0;</b></p><p> m_ctrlRec.SetWindowText(_T("開始接收"));</p&g
45、t;<p> m_Rec=_T("");</p><p> SetDlgItemText(IDC_REC,m_Rec);</p><p><b> }</b></p><p> void CLzhhDlg::OnClsS() </p><p><b> {</b
46、></p><p> // TODO: Add your control notification handler code here</p><p><b> bSend=0;</b></p><p> m_Send=_T("");</p><p> SetDlgItemText(ID
47、C_SEND,m_Send);</p><p> if(Check1) //自動模式</p><p><b> {</b></p><p> m_ctrlSend.SetWindowText(_T("自動發(fā)送"));</p><p><b> }&l
48、t;/b></p><p><b> }</b></p><p><b> 6.5 其他函數(shù)</b></p><p> (1). 參數(shù)設(shè)置按鈕的響應(yīng)函數(shù)OnSetting()。代碼如下:</p><p> void CLzhhDlg::OnSetting() </p>&
49、lt;p><b> {</b></p><p> // TODO: Add your control notification handler code here </p><p> CSettingDlg setDlg;</p><p> setDlg.m_nPort=m_nPort;</p><p>
50、 setDlg.m_nTime=m_nTime; </p><p> setDlg.m_strSetting=m_strSetting;</p><p> if(setDlg.DoModal()==IDOK)</p><p><b> {</b></p><p> m_nPort=setDlg.m_nPort;&
51、lt;/p><p> m_nTime=setDlg.m_nTime;</p><p> m_strSetting=setDlg.m_strSetting;</p><p> OpenPort();</p><p> if(Check1&&bSend)</p><p> SetTimer(1,m_n
52、Time,NULL);</p><p><b> }</b></p><p><b> }</b></p><p> (2). 串口控件響應(yīng)函數(shù)OnOnCommMscomm()。代碼如下:</p><p> void CLzhhDlg::OnOnCommMscomm() </p>
53、<p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> VARIANT variant_inp;</p><p> COleSafeArray safearray_inp;</p>&l
54、t;p> LONG len,k;</p><p> BYTE rxdata[2048]; //設(shè)置BYTE數(shù)組 An 8-bit integerthat is not signed.</p><p> CString strtemp;</p><p> CString strtemp_R;</p><p><b>
55、if(bRec)</b></p><p><b> {</b></p><p> if(m_COMM.GetCommEvent()==2) //事件值為2表示接收緩沖區(qū)內(nèi)有字符</p><p> { </p><p> variant_inp=m_COMM.G
56、etInput(); //讀緩沖區(qū)</p><p> safearray_inp=variant_inp; //VARIANT型變量轉(zhuǎn)換為ColeSafeArray型變量</p><p> len=safearray_inp.GetOneDimSize(); //得到有效數(shù)據(jù)長</p><p> for(k=0;k<
57、;len;k++)</p><p> safearray_inp.GetElement(&k,rxdata+k);//轉(zhuǎn)換為BYTE型數(shù)組</p><p> for(k=0;k<len;k++) //將數(shù)組轉(zhuǎn)換為Cstring型變量</p><p><b> {</b></p>
58、<p> BYTE bt=*(char*)(rxdata+k); //字符型</p><p> if(!Check2)</p><p> strtemp.Format("%c",bt); //將字符送入臨時變量strtemp存放</p><p> if(Check2)
59、 //顯示十六進制</p><p> strtemp.Format("%02X ",bt); //將字符送入臨時變量strtemp存放</p><p> m_Rec+=strtemp; //加入接收編輯框?qū)?yīng)字符串 </p><p><b> }</b></p>&l
60、t;p><b> }</b></p><p> else m_Rec=_T("(沒有字符)");</p><p><b> }</b></p><p> SetDlgItemText(IDC_REC,m_Rec); //更新接收編輯框?qū)?yīng)字符串</p>
61、<p><b> }</b></p><p> (3). 周期響應(yīng)函數(shù)OnTimer()。代碼如下:</p><p> void CLzhhDlg::OnTimer(UINT nIDEvent) </p><p><b> {</b></p><p> // TODO: Add
62、 your message handler code here and/or call default</p><p> UpdateData(TRUE); //讀取編輯框內(nèi)容</p><p> m_COMM.SetOutput(COleVariant(m_Send));</p><p> CDialog::OnTime
63、r(nIDEvent);</p><p><b> }</b></p><p> (4). 自動發(fā)送和十六進制復(fù)選框動作響應(yīng)函數(shù)分別是OnCheck1()和OnCheck2()。代碼如下:</p><p> void CLzhhDlg::OnCheck1() </p><p><b> {</b&
64、gt;</p><p> // TODO: Add your control notification handler code here</p><p> Check1=!Check1; //自動發(fā)送標志取反</p><p> if(Check1) /
65、/允許自動發(fā)送</p><p><b> { </b></p><p><b> bSend=0;</b></p><p> m_ctrlSend.SetWindowText(_T("自動發(fā)送"));</p><p><b> }</b>
66、</p><p> if(!Check1) //手動發(fā)送</p><p><b> {</b></p><p> KillTimer(1);</p><p> m_ctrlSend.SetWindowText(_T("手動發(fā)送"));&
67、lt;/p><p><b> }</b></p><p><b> }</b></p><p> void CLzhhDlg::OnCheck2() </p><p><b> {</b></p><p> // TODO: Add your co
68、ntrol notification handler code here</p><p> Check2=!Check2; //十六進制標志取反</p><p><b> }</b></p><p> (5). 在lzhhDlg.h文件里自定義串口打開函數(shù)OpenPort()。代碼如下:<
69、;/p><p> void CLzhhDlg::OpenPort()//打開串口</p><p><b> {</b></p><p> if(m_COMM.GetPortOpen())</p><p> m_COMM.SetPortOpen(FALSE);</p><p> m_COMM.
70、SetCommPort(m_nPort);</p><p> if(!m_COMM.GetPortOpen())</p><p> m_COMM.SetPortOpen(TRUE);</p><p><b> else</b></p><p> AfxMessageBox("cannaot open s
71、erial port");</p><p> m_COMM.SetSettings(m_strSetting);</p><p> m_COMM.SetRThreshold(1);</p><p> m_COMM.SetInputMode(1); </p><p> m_COMM.SetInputLen(0);</p
72、><p> m_COMM.GetInput();</p><p><b> }</b></p><p><b> 7 系統(tǒng)測試</b></p><p> 程序的打開方法是:首先進入VC++6.0,打開工程lzhh.dsw,然后進入源程序,接著選擇Build下的Execute lzhh.exe即可
73、,也可以不打開工程,直接雙擊lzhh文件夾下的debug或release子文件夾下的lzhh.exe文件即可運行程序。</p><p> 第一步,打開兩個運行程序,設(shè)置端口分別為3和4其余參數(shù)均為默認,如圖7-1。</p><p> 第二步,按下兩個界面的“開始接收”按鈕。</p><p> 第三步,分別在兩個界面的“待發(fā)字符”的編輯框內(nèi)寫入一些任意字符,左邊
74、界面選擇自動發(fā)送模式,右邊界面選擇手動發(fā)送模式,單擊右邊界面的“手動發(fā)送”按鈕,左邊界面的“接收字符”的只讀編輯框內(nèi)出現(xiàn)左邊所寫入是字符。同樣,按下左邊界面的“自動發(fā)送”按鈕,右邊界面的“接收字符”的只讀編輯框內(nèi)出現(xiàn)左邊所寫入是字符,而且,每隔1000ms接收到相同字符,如圖7-2和7-3。</p><p> 第四步,保持端口不變,修改串口參數(shù),且為相同可用參數(shù)。在第三步的方法仍然可以得到相同的結(jié)果。</
75、p><p> 第五步,按右邊界面的“退出程序”窗口關(guān)閉。打開串口調(diào)試小助手,設(shè)置串口為“COM4”其它參數(shù)相同,串口調(diào)試小助手自動發(fā)送十六進制數(shù),設(shè)計程序界面接收十六進制數(shù),如圖7-4。</p><p> 第六步,按“清空重發(fā)”和“清空重接”本別清空發(fā)送區(qū)和接收區(qū)的字符。按“退出程序”窗口關(guān)閉。</p><p> 通過以上測試,本系統(tǒng)實現(xiàn)了數(shù)據(jù)的接收與發(fā)送功能,也
76、滿足參數(shù)能調(diào)和同一臺PC機上調(diào)試的要求,在新增功能的調(diào)試也獲得了通過,總體上完成了設(shè)計任務(wù)。</p><p><b> 8 結(jié)論</b></p><p> 本次課程設(shè)計是Visual C++ 6.0平臺下,利用MSComm控件編寫的串口通信程序。這次設(shè)計的程序完能實現(xiàn)對字符的發(fā)送與接收,特別是還能接收十六進制數(shù),當然,該程序還能選擇特定的串口和通信參數(shù)進行串口通信
77、,也具有一般程序的基本功能那就能刪除相應(yīng)文本框內(nèi)字符和實現(xiàn)程序的關(guān)閉。通過系統(tǒng)測試,有如下現(xiàn)象:本程序在自動發(fā)送字符時,如果確認改變參數(shù),那么它將會立即按照所確定的參數(shù)進行字符的自動發(fā)送,這能提高其自動發(fā)送的及時性;在使用清除按鍵時,能立即解除自動發(fā)送(或接收)的循環(huán)流程。當然,這些能實現(xiàn)這些功能,也是相應(yīng)控鍵的響應(yīng)函數(shù)內(nèi)編寫對相應(yīng)模式的標志進行值的改變或賦值程序。這種加入特定的BOOL性模式標志數(shù),能夠很好的運用于循環(huán)程序的解除循環(huán)節(jié)
78、,特顯其方便,這比在使用發(fā)回更方便和靈活。</p><p> 當然,本次設(shè)計只是一個小小的試驗性設(shè)計,遠遠不能滿足現(xiàn)在高端的智能儀器所要求的串口通信性能。就拿簡單的說,所設(shè)計的這個程序還不能發(fā)送十六進制數(shù),更不要說文件的發(fā)送與接收了。雖然,有這么多不足,但是這也我這近十天來的勞動成果。在不斷的資料檢索和查閱十來本Visual C++相關(guān)書籍才有這份收獲。這也充分說明簡單是書本知識遠遠不能滿足做好一件事所要求的知
79、識,必須不斷的學(xué)習與關(guān)注更多有用相關(guān)的東西。特別是要充分利用好網(wǎng)絡(luò)資源,當然,同學(xué)間的討論更是不能少的,因為水平相近的人之間對一些問題討論更使這些知識點變得淺顯易懂。</p><p><b> 參考文獻</b></p><p> [1] 李強,賈云霞 編著. Visual C++項目開發(fā)實踐. 北京:中國鐵道出版社,2003 </p><p&
80、gt; [2] 王莉,陽春華.基于VC++的串口通信設(shè)計及其應(yīng)用[J].控制工程,2004,11 (S1) :89292.</p><p> [3] 施紅琴主編.C++ Builder 5.0編程實例應(yīng)用指南. 北京:航空工業(yè)出版社,2000,7</p><p> [4] 鄭莉,董淵,張瑞豐 編著.C++語言程序設(shè)計(第3版).北京:清華大學(xué)出版社,2004,1</p>
81、<p> [5] 任哲等.MFC Windows應(yīng)用程序設(shè)計. 北京:清華大學(xué)出版社,2007,9</p><p> [6] 匡松主編.C++程序設(shè)計百問百例.北京:中國鐵道出版社,2008</p><p> [7] 肖霞 .C++程序設(shè)計及實訓(xùn)教程.北京:清華大學(xué)出版社,2007</p><p> [8] 鄭明,鄭世偉 編著.C++ Build
82、er與Windows API經(jīng)典范例. 北京:清華大學(xué)出版社,2000 </p><p> [9] 劉振安 編著.C++ 及Windows 可視化程序設(shè)計題解與實訓(xùn)指導(dǎo). 北京:清華大學(xué)出版社,2000</p><p> [10] 王華,岳麗全,岳志高. MSComm 控件在VC + + 6. 0串口通信中的應(yīng)用.長春工程學(xué)院學(xué)報:自然科學(xué)版,2009 ,10 (1)</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于串口通信的高級語言控制程序的設(shè)計c++課程設(shè)計
- 課程設(shè)計---基于串口通信的高級語言控制程序的設(shè)計
- 課程設(shè)計--基于串口通信的高級語言控制程序的設(shè)計
- 串口通信c++課程設(shè)計
- c++課程設(shè)計--c++程序設(shè)計語言
- 《高級語言程序設(shè)計》c++課程設(shè)計數(shù)值微分
- 高級語言程序設(shè)計c++課程答辯
- 基于plc的串級控制程序的課程設(shè)計
- 《c++語言程序設(shè)計》課程設(shè)計報告
- 《程序設(shè)計語言(c++)》課程設(shè)計
- 基于c++的教師排課程序課程設(shè)計
- c++課程設(shè)計--通信錄管理程序
- c++課程設(shè)計-- c++面向?qū)ο蟪绦蛟O(shè)計
- 微機課程設(shè)計--智能流星燈管的控制程序設(shè)計
- 高級語言程序設(shè)計(c++) 考試大綱
- 高級語言程序設(shè)計c++考試大綱
- 高級語言程序設(shè)計c++考試大綱
- c++程序設(shè)計語言課程設(shè)計-收銀臺結(jié)算程序
- c++程序設(shè)計語言課程設(shè)計-收銀臺結(jié)算程序
- 數(shù)值計算課程設(shè)計--典型數(shù)值算法的c++語言程序設(shè)計
評論
0/150
提交評論