freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[計(jì)算機(jī)軟件及應(yīng)用]基于vc和單片機(jī)的上下位機(jī)串口通訊系統(tǒng)設(shè)計(jì)-免費(fèi)閱讀

2025-02-11 12:54 上一頁面

下一頁面
  

【正文】 pBackDCSetTextAlign(TA_RIGHT)。 miniteTemp += 60。 for(int i=0。 int hour = ()。i MAXDATANUMBER。) //if(Data[i] == NULL) break。 Data[i]=39。=Data[i] amp。 }/*************************************************************************** CFileException e。}void CUpperComView::OnTimer(UINT_PTR nIDEvent){ // TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值 for(int j=MAXDATANUMBER 1。 pBackDCLineTo(left +MAINWIDTH, bottom i)。 pBackDCLineTo(left+i, bottom 5)。 // Arror right pBackDCLineTo(right+20, bottom)。pen[color])。 // 打開數(shù)據(jù)文件 CFileException e。}// CUpperComView 診斷ifdef _DEBUGvoid CUpperComView::AssertValid() const{ CFormView::AssertValid()。 ResizeParentToFit()。 DDX_Text(pDX, IDC_EDIT1, m_strP)。 //第一個(gè)定時(shí)器 timerGap = 200。CUpperComView::OnBnClickedButtonAuto) ON_BN_CLICKED(IDC_BUTTON5, amp。 }endif// : CUpperComView 類的實(shí)現(xiàn)include include include include include ifdef _DEBUGdefine new DEBUG_NEWendif// CUpperComViewIMPLEMENT_DYNCREATE(CUpperComView, CFormView)BEGIN_MESSAGE_MAP(CUpperComView, CFormView) ON_BN_CLICKED(IDC_START, amp。 CString m_StopBit。 afx_msg void OnCloseCom()。 // 串口控件變量 CMsm m_cCom。 void ResetData(void)。 //最小允許值 int winx。 // 繪制坐標(biāo)軸 void DrawCoordinate(CDC* pBackDC, int color, int left, int top, int right, int bottom)。 virtual void Dump(CDumpContextamp。 DECLARE_DYNCREATE(CUpperComView)public: enum{ IDD = IDD_UPPERCOM_FORM }。 } 第5章 總結(jié)在趙老師的悉心教導(dǎo)和同學(xué)的幫助下,通過這五周的課程設(shè)計(jì)我對AT89C52單片機(jī)做下位機(jī)與VC編寫上位機(jī)的串行通信的實(shí)現(xiàn)的設(shè)計(jì)和內(nèi)容有了更多的了解,通過自己的努力,編寫了自己最完整的一套程序,雖然功能不是很完善,但我從中學(xué)到了很多東西。 send()。 LED164_CLK = 1。 i ) { _bit[i] = tempamp。}LED靜態(tài)顯示函數(shù)實(shí)現(xiàn)如下:include extern uchar Sign。 uint temp = 0。 Rcv[7]=1。 } }// 對D進(jìn)行減操作 if(K4==0amp。t==1) { delay1ms(10)。 { } Rcv[3]=1。 Rcv[8]+=1。 Rcv[4]+=1。 } }// 對I進(jìn)行加操作 if(K3==0amp。 { } Rcv[3]+=1。j++) { RcvD[j] = Rcv[j+7]。 } if(t==1) { for(j=0。 { } t++。//串口發(fā)送數(shù)據(jù) if(K1==0) { delay1ms(20)。 TI=0。 //待發(fā)送的數(shù)據(jù)寫入緩沖區(qū) while(!TI)。 ES = 1。uchar Rcv[12] = {0,0,0,0,0,0,0,0,0}。uint ctrl(uint )。 (COleVariant(szOutput))。}退出按鍵功能函數(shù)實(shí)現(xiàn):void CUpperComView::OnBnClickedButtonQuit(){ // TODO: 在此添加控件通知處理程序代碼 if( MessageBox(_T(確認(rèn)您要退出?),_T(退出),MB_OKCANCEL|MB_ICONQUESTION) == TRUE) { PostQuitMessage(0)。 AfxMessageBox(m_temDat)。 tempPID = m_strP +m_strI+ m_strD。 //設(shè)置當(dāng)前緩沖區(qū)長度為 ()。 (m_ComName)。 } else { if( 1 == ) { m_BaudRate=9600。添加相應(yīng)的事件處理程序可以用事件處理程序向?qū)А?dòng)態(tài)掃描驅(qū)動(dòng)方式下,只要保證一定的顯示頻率,看起來的效果和一直顯示是一樣的。通常用MAX232芯片來完成電平轉(zhuǎn)換。Modbus傳輸模式:Modbus中一般使用兩種傳輸模式:RTU模式和ASCII模式。如果需要回應(yīng),控制器將生成反饋信息并用Modbus協(xié)議發(fā)出。d)數(shù)據(jù)格式:前文和后文的具體格式視傳輸控制規(guī)程而定,有面向字符與面向比特型兩種方案。d)接收端:通過檢測起始位和停止位來判斷新近到達(dá)的字符,保持收發(fā)雙方每傳輸一個(gè)字符就重新校驗(yàn)一次同步關(guān)系,不易造成時(shí)鐘誤差。字符的起始位還被用作同步接收端的時(shí)鐘,以保證以后的接收能正確進(jìn)行。b)起始位表示字符傳輸?shù)拈_始,長度為1bit;停止位表示字符傳輸?shù)慕Y(jié)束,長度1bit,2bit。下位機(jī)的主要職責(zé)是接收上位機(jī)下傳的命令設(shè)置相應(yīng)的PID參數(shù),并且實(shí)時(shí)將水位信息反饋給上位機(jī),以實(shí)現(xiàn)水位信息的記錄。串口控件的主要屬性、事件及方法:CommPort:表示通信的端口名。其中本次課程設(shè)計(jì)用到的RS232標(biāo)準(zhǔn)是美國EIA(電子工業(yè)聯(lián)合會(huì))與BELL公司一起開發(fā)的通信協(xié)議。(3)資源視圖(ResourceView)。Appwizard是一個(gè)標(biāo)準(zhǔn)的C++源代碼生成器。 文檔對象可以擁有任意多個(gè)與其相關(guān)的視圖對象。文檔是給予應(yīng)用程序中與用戶交互的數(shù)據(jù)集合的名稱。 MFC中的類的名稱都是以C為開頭的,如果需要定義自己的類或者根據(jù)MFC庫的基類派生新類時(shí)要使用相同的約定。這與DOS下順序執(zhí)行的操作方式有很大的不同。使用VisualStudio2008環(huán)境開發(fā)應(yīng)用程序縮短了開發(fā)時(shí)間,且界面友好,易于操作。第2章 總體設(shè)計(jì)方案 本課程設(shè)計(jì)中,開發(fā)上位機(jī)程序使用的開發(fā)環(huán)境是WIN7系統(tǒng)下用微軟的VS2008集成開發(fā)環(huán)境,所用語言為C++。單片機(jī)具有體積小、價(jià)格低廉、開發(fā)應(yīng)用方便、可應(yīng)用于惡劣工業(yè)環(huán)境的特點(diǎn),在分布式控制系統(tǒng)中多采用單片機(jī)進(jìn)行數(shù)據(jù)采集和現(xiàn)場控制。 基于VC和單片機(jī)的上下位機(jī)串口通訊系統(tǒng)設(shè)計(jì) 摘要論文詳細(xì)介紹了單片機(jī)做下位機(jī)與VC設(shè)計(jì)的上位機(jī)進(jìn)行通信的軟硬件實(shí)現(xiàn)。由于單片機(jī)的計(jì)算能力有限,難以進(jìn)行復(fù)雜的數(shù)據(jù)處理,因此在功能復(fù)雜的控制系統(tǒng)中常采上位機(jī)下位機(jī)系統(tǒng),單片機(jī)用作下位機(jī)進(jìn)行數(shù)據(jù)采集和設(shè)備控制,而PC機(jī)用做上位機(jī)進(jìn)行復(fù)雜的數(shù)據(jù)處理和對單片機(jī)的控制。主要任務(wù)是界面設(shè)計(jì)和串口通信的實(shí)現(xiàn),以及由下位機(jī)上傳的水位數(shù)據(jù)的圖形顯示。 在開發(fā)Windows應(yīng)用程序時(shí),主要使用Windows提供的Windows API 即應(yīng)用程序接口函數(shù),或者是Microsoft提供的MFC 即微軟基礎(chǔ)類庫。 Windows消息機(jī)制 Windows程序啟動(dòng)后,執(zhí)行特定的任務(wù),其中最重要的是創(chuàng)建應(yīng)用程序的主窗口,這個(gè)主窗口需要自己的代碼來處理Windows發(fā)送給它的信息,所以Windows程序是通過來自操作系統(tǒng)的消息來處理用戶的輸入。這樣更有助于程序的理解。文檔類是從MFC的庫中的CDocument類派生的,需要添加數(shù)據(jù)成員來存儲(chǔ)應(yīng)用程序需要的數(shù)據(jù),還要添加成員函數(shù)來支持對數(shù)據(jù)的處理。各個(gè)視圖對象可以提供文檔數(shù)據(jù)或文檔子集的不同表示方法。它通過一系列的對話框來提示用戶輸入所需創(chuàng)建的程序的信息。ResourceView包含了項(xiàng)目中所有的層次列表,用于編輯和管理應(yīng)用程序中用到的各種可視元素,包括快捷鍵、對話框、圖標(biāo)、菜單、字符串、工具欄等。它適合于數(shù)據(jù)傳輸速率在0—20000bit/s的范圍內(nèi)通信。Setting :設(shè)置波特率、校驗(yàn)位、數(shù)據(jù)位、停止位。下位機(jī)除了完成PID,水位數(shù)據(jù)的傳輸與處理,同時(shí)還應(yīng)該具有對PID參數(shù)的設(shè)置功能。c):其中空閑位可有可無。 起始位后面緊接著就是數(shù)據(jù)位,它可以是5~8位。e)應(yīng)用:低速傳輸系統(tǒng),因?yàn)槠鋫鬏斝瘦^低,如傳輸一個(gè)ASCⅡ碼,數(shù)據(jù)代碼7位,1位起止位,2位停止位,1位校驗(yàn)位,其效率7/(7+1+1+2)≈64%且字符之間還可能有空隙。e)同步傳輸每次傳送的是一個(gè)完整的數(shù)據(jù)幀,發(fā)送端無需在字符間加入附加位和間隙,因而同步傳輸?shù)男时犬惒絺鬏數(shù)男矢?。在其它網(wǎng)絡(luò)上,包含了Modbus協(xié)議的消息轉(zhuǎn)換為在此網(wǎng)絡(luò)上使用的幀或包結(jié)構(gòu)。當(dāng)采用ASCII模式通信時(shí),在消息中的每個(gè)字節(jié)都作為2個(gè)ASCII字符傳送。 74LS164LED驅(qū)動(dòng)芯片74LS164是常用的芯片,用來驅(qū)動(dòng)led或者其他的設(shè)備,它是8路同相三態(tài)雙向總線收發(fā)器,可雙向傳輸數(shù)據(jù)。第4章 軟件設(shè)計(jì)軟件設(shè)計(jì)主要分為兩大部分:上位機(jī)部分和下位機(jī)部分。 用事件處理向?qū)砑邮录幚沓绦驅(qū)⑹录幚硐驅(qū)С绦蛱砑拥南㈨憫?yīng)函數(shù)添加在CUpperComView這個(gè)類中,當(dāng)鼠標(biāo)左擊后發(fā)出系統(tǒng)命令,這樣便在CUpperComView這個(gè)類中調(diào)用OnSetCommDlg這個(gè)成員函數(shù)。 } else { m_BaudRate=19200。 //選擇COM3端口 (1)。 //預(yù)讀緩沖區(qū)以清除殘留數(shù)據(jù) AfxMessageBox(_T(串口打開成功!))。 AfxMessageBox(tempPID,MB_ICONSTOP,0)。} 上位機(jī)程序具有手動(dòng)控制的功能,當(dāng)需要手動(dòng)控制的時(shí)候可以進(jìn)行手動(dòng)和自動(dòng)方式的切換。 }} 手動(dòng)控制的方式是通過滑動(dòng)條的方式去實(shí)現(xiàn)閥門開度的控制的。//發(fā)送數(shù)據(jù) CFormView::OnHScroll(nSBCode, nPos, pScrollBar)。sbit K1=P1^4。uchar RcvP[3] = {0,0,0}。 //開串口中斷 TR1 = 1。 //等待發(fā)送完成 TI = 0。 }}/**///主函數(shù)void main(void){ uint crctest=0。 if(K1==0) { for(k = 0。 if(t==3) t=0。j3。 } d=a2h(RcvD)。 if(Rcv[3]==58) { Rcv[3]=48。amp。 } } i=a2h(RcvI)。 if(Rcv[8]==58) { Rcv[8]=48。 if(Rcv[3]==47) { Rcv[3]=57。 if(K4==0) { while(!K4)。amp。 } } p=a2h(RcvD)。 RcvBuf[0] = (*RcvPID0x30)*100。uchar code table_8seg[] = {0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x73,0x30,0x5e}。0x01。 } }/************************************************************ 串行輸出顯示************************************************************/void show_8se
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1