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

正文內(nèi)容

[計(jì)算機(jī)軟件及應(yīng)用]基于vc和單片機(jī)的上下位機(jī)串口通訊系統(tǒng)設(shè)計(jì)(完整版)

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

下一頁面
  

【正文】 放 } }//選擇PID if(K2==0) { delay1ms(20)。// i=a2h(RcvI)。 SBUF=RcvX[i]。j++) //1ms基準(zhǔn)延時(shí)程序 { 。 //定時(shí)器1 工作在方式2 TH1 = 0xfd。:39。uint count。 _stprintf(szOutput,_T(當(dāng)前開度:%d%%),())。}自動(dòng)按鍵功能函數(shù)實(shí)現(xiàn):void CUpperComView::OnBnClickedButtonAuto(){ // TODO: 在此添加控件通知處理程序代碼 GetDlgItem(IDC_SLIDER)EnableWindow(FALSE)。 UpdateData(false)。: PID參數(shù)設(shè)定區(qū)PID參數(shù)設(shè)定,及參數(shù)打包發(fā)送,清除上次數(shù)據(jù)確定功能的實(shí)現(xiàn):void CUpperComView::OnBnClickedEnterPid(){ // TODO: 在此添加控件通知處理程序代碼 UpdateData(true)。 //打開串口 (1)。 } } m_ComVal = m_BaudRate +,+m_ParityBit +, + m_DataBit + , + m_StopBit。 } else { m_ParityBit=N。所以本設(shè)計(jì)采用VC作為串口編程工具。 LED顯示器接口在單片機(jī)系統(tǒng)中,LED顯示接口一般采用靜態(tài)驅(qū)動(dòng)和動(dòng)態(tài)掃描兩種驅(qū)動(dòng)方式。 電平轉(zhuǎn)換器MAX232本設(shè)計(jì)采用MAX232芯片進(jìn)行電平轉(zhuǎn)換,MAX232芯片是美信公司專門為電腦的RS232標(biāo)準(zhǔn)串口設(shè)計(jì)的接口電路,使用+5V單電源供電,它的作用就是完成TTL電平與RS232電平的轉(zhuǎn)換。(3)Modbus的幀格式簡單、緊湊,通俗易懂。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。b)保持收發(fā)同步,在數(shù)據(jù)塊之前加上前文,在數(shù)據(jù)之后加上后文——幀(frame)。接收端收到停止位后,知道上一字符已傳送完畢,同時(shí),也為接收下一個(gè)字符做好準(zhǔn)備——只要再收到“0”就是新的字符的起始位。起始位“0”信號只占用一位,用來通知接收設(shè)備一個(gè)待接收的字符開始到來,線路上在不傳送字符時(shí)應(yīng)保持為“1”。異步通信是起止式傳輸,它是利用起止方法來保持收發(fā)雙方同步的。CommEvent:只要由通信錯(cuò)誤或事件發(fā)生時(shí)都會產(chǎn)生Onm事件。而使用MSComm Active控件則更為方便簡潔。在視圖中可以顯示和編輯源文件和頭文件。用來建立新的類,定制類,把消息映射為類成員函數(shù),或者把控制框映射為類變量成員。這些指針使一種類對象的函數(shù)成員可以訪問另一種類對象的公有數(shù)據(jù)或接口中的函數(shù)成員。顯示視圖的窗口框架被稱為框架窗口。MFC應(yīng)用程序與用戶交互的界面被稱作框架窗口,因此,需要為應(yīng)用程序從MFC類CFrameWnd中派生一個(gè)窗口類,而此類提供了創(chuàng)建和管理應(yīng)用程序窗口所需的一切。 Windows對消息的處理過程為:Windows在系統(tǒng)內(nèi)部有一個(gè)消息隊(duì)列,當(dāng)輸入設(shè)備有所動(dòng)作的時(shí)候,Windows都會產(chǎn)生響應(yīng)的記錄放在系統(tǒng)的消息隊(duì)列里,而每個(gè)記錄中包含了消息的類型、發(fā)生的位置和發(fā)生的時(shí)間。 Windows應(yīng)用程序 由于要開發(fā)的上位機(jī)需要與有良好的人機(jī)界面,這樣就需要開發(fā)一個(gè)具有圖形窗口的應(yīng)用程序。通過RS—232和modbus協(xié)議完成數(shù)據(jù)通信的過程。在一般的利用PC機(jī)對單片機(jī)進(jìn)行控制的場合,都是采用Windows作為上位機(jī)的平臺,其優(yōu)點(diǎn)是界面友好,編程和操作都比較容易。關(guān)鍵詞:單片機(jī);VC;串口通信;PID參數(shù)。單片機(jī)系統(tǒng)接收由上位機(jī)傳輸過來的PID參數(shù)并在LED數(shù)碼管上顯示,同時(shí)可通過按鍵分別對參數(shù)進(jìn)行加減操作,把修改后的PID參數(shù)再傳給上位機(jī)。這種整體網(wǎng)絡(luò)方式在現(xiàn)代工業(yè)控制系統(tǒng)具有傳統(tǒng)獨(dú)立控制系統(tǒng)所無法比擬的先進(jìn)性,不僅能極大地提高工業(yè)設(shè)備的生產(chǎn)效率,還可以大大提高系統(tǒng)的安全性和可靠性。下位機(jī)主要實(shí)現(xiàn)的功能是收發(fā)數(shù)據(jù),即與上位機(jī)進(jìn)行通信。省去了程序員大量的編寫代碼的時(shí)間,提高了編寫Windows應(yīng)用程序的效率。例如,當(dāng)創(chuàng)建一個(gè)窗口時(shí),發(fā)送一個(gè) WM_CREAT消息。這樣可以是代碼更加容易閱讀。視圖對象可以提供一種機(jī)制來顯示文檔中存儲的部分或全部數(shù)據(jù)。文檔對象自動(dòng)維護(hù)著指向相關(guān)視圖的指針列表,而視圖對象擁有存儲相關(guān)文檔對象的指針的數(shù)據(jù)成員。由APPwizard生成的程序是一個(gè)基本的Windows程序,它生成的是基本代碼,用戶應(yīng)在此基礎(chǔ)上完善自己內(nèi)容。ClassView用于顯示項(xiàng)目中所有的類信息,主要是定制現(xiàn)有的類和建立新的類,并在每個(gè)類中,顯示了成員函數(shù)和成員變量,還可以完成添加、刪除、定位的功能。在win32環(huán)境中,實(shí)現(xiàn)串口編程一般可以通過兩種方法實(shí)現(xiàn):一是使用Windows提供的API函數(shù)。OutBufferSize:設(shè)置并返回緩沖區(qū)的大小。單片自身的RX與TX引腳直接與MX232相連,再通過線纜與上位機(jī)連接。存在空閑位正是異步通信的特征之一。也可用這一位(1/0)來確定這一幀中的字符所代表信息的性質(zhì)(地址、數(shù)據(jù)等)。 ASCII碼模式同步傳輸不是以字符而是以數(shù)據(jù)塊為傳輸單位,其傳輸速率較高。通過RS—232,modbus協(xié)議將上下位機(jī)連接起來。Modbus特點(diǎn):(1)標(biāo)準(zhǔn)、開放,用戶可以免費(fèi)、放心地使用Modbus協(xié)議,不需要交納許可證費(fèi),也不會侵犯知識產(chǎn)權(quán)。當(dāng)采用RTU模式時(shí),其優(yōu)點(diǎn)是數(shù)據(jù)用二進(jìn)制表示,通信速度較快。當(dāng)片選端低電平有效時(shí),DIR=“0”,信號由B向A傳輸;DIR=“1”,信號由A向B傳輸;當(dāng)為高電平時(shí),A、B均為高阻態(tài)。本設(shè)計(jì)采用VC來實(shí)現(xiàn)編程,上位機(jī)與單片機(jī)進(jìn)行通信的程序編寫可用VB、VC等軟件。 if( IDOK == () ) { m_ComName = +1。 } else { m_StopBit=2。 //設(shè)置輸入緩沖區(qū) (512)。}串口關(guān)閉程序?qū)崿F(xiàn)函數(shù):void CUpperComView::OnCloseCom(){ // TODO: 在此添加命令處理程序代碼 if(()) //如果發(fā)現(xiàn)串口本來是打開的,則關(guān)閉串口 (FALSE)。//發(fā)送數(shù)據(jù) ()。當(dāng)手動(dòng)按鈕按下的時(shí)候,閥門的開度的滑動(dòng)條使能,而PID參數(shù)設(shè)定區(qū)的確認(rèn)按鈕禁用,這樣可以避免手動(dòng)和自動(dòng)調(diào)節(jié)時(shí)的誤操作。同樣閥門開度的控制將由上位機(jī)通過串口發(fā)送到下位機(jī)。C語言具有繪圖能力強(qiáng),可移植性,并具備很強(qiáng)的數(shù)據(jù)處理能力,因此適于編寫系統(tǒng)軟件,三維,二維圖形和動(dòng)畫它是數(shù)值計(jì)算的高級語言。sbit K3=P1^6。uchar RcvD[3] = {0,0,0}。 //開總中?}void delay1ms(uint i){ uchar j。 for(i=0。 UART_Init()。 k++) { RcvX[k] = Rcv[k]。j3。 } i=a2h(RcvI)。 show_8seg(d)。 if(Rcv[2]==58) { Rcv[3]=48。 if(K3==0) { while(!K3)。amp。 } } d=a2h(RcvD)。 if(Rcv[2]==47) { Rcv[2]=57。 if(Rcv[6]==47) { Rcv[6]=57。 if(K4==0) { while(!K4)。 //接收標(biāo)志位清零 if(count == 12) count = 0。 RcvBuf[1] = (*RcvPID0x30)*10。 //串行發(fā)送靜態(tài)顯示數(shù)據(jù)緩沖區(qū)void Hex2BCD( uchar Data ) //數(shù)碼轉(zhuǎn)換 { int i。 }}void send() //串行輸出顯示{ uint i。 uint Data[3] = 0。 j ) { Hex2BCD( Data[j] )。通過這次設(shè)計(jì)我了解了單片機(jī)的發(fā)展概況、特點(diǎn)、應(yīng)用,各個(gè)部件的原理,串行口的通信方式,顯示管的工作原理,認(rèn)識AT89C52與PC機(jī)串行通信的原理。 cs)。 afx_msg void OnRButtonUp(UINT nFlags, CPoint point)。 // 用于內(nèi)存繪圖的指針 CDC* pBackDC。 // 內(nèi)存位圖public: afx_msg void OnTimer(UINT_PTR nIDEvent)。 // 畫圖函數(shù) void DrawGraph(CDC* pDC, int color, int right, int bottom)。 // D輸入控件變量 CString m_strD。 afx_msg void OnBnClickedButtonMan()。 // 數(shù)據(jù)位 CString m_DataBit。CUpperComView::OnSetCommDlg) ON_BN_CLICKED(IDC_ENTER_PID, amp。 // 左下角坐標(biāo)為(100,300) MainWindowBottom = 300。 //紅色畫筆 pen[2].CreatePen(PS_SOLID,1,RGB(0,255,0))。 DDX_Control(pDX, IDC_SLIDER, m_slider)。//初始時(shí)禁用滑動(dòng)條 /*m_ComName = 。}CUpperComDoc* CUpperComView::GetDocument() const // 非調(diào)試版本是內(nèi)聯(lián)的{ ASSERT(m_pDocumentIsKindOf(RUNTIME_CLASS(CUpperComDoc)))。 }}void CUpperComView::OnBnClickedStop(){ // TODO: 在此添加控件通知處理程序代碼 m_Status = 0。 pBackDCLineTo(right+20, bottom)。 for(i=0。 i++) { if( i == 200 ) { pBackDCSelectObject(pen[color])。 pBackDCLineTo(left +MAINWIDTH, bottom i)。 //FIFO } if( (amp。e)) { TRACE(_T(File could not be opened %d\n), )。939。39。 }******************************************************************************/ CFormView::OnTimer(nIDEvent)。pen[color])。 int secondTemp = second。 pBackDCTextOut(right i, bottom + 15, strTime)。 pBackDCTextOut((left + right) / 2, bottom + 60, strTime)。 pBackDCTextOut(le。}void CUpperComView::WriteCoordinateY(CDC* pBackDC, float max, float min, int color, int left, int bottom){ CPen *OldPen = pBackDCSelectObject(amp。 // 每10秒顯示一個(gè)時(shí)間 if(secondTemp 0) // 如果秒數(shù)小于0,分?jǐn)?shù)減1,秒數(shù)加60 { miniteTemp 。 int hourTemp = hour。 int year = ()。 ASSERT_VALID(pDoc)。amp。a39。 i16。 // 畫圖函數(shù) CView::OnTimer(nIDEvent)。 pBackDCMoveTo(left, bottom i )。 pBackDCLineTo(left +10, bottom i)。 i++) { if(i % 100 == 0) { pBackDCMoveTo(left+i, bottom)。 // Arror top pBackDCLineTo(left, top20)。 //關(guān)閉由前面用SetTimer初始化的定時(shí)器 timerID = 0。}endif //_DEBUG// CUpperComView 消息處理程序void CUpperComView::OnBnClickedStart(){ // TODO: 在此添加控件通知處理程序代碼 ResetData()。point)。 cs){ // TODO: 在此處通過修改 // CREATESTRUCT cs 來修改窗口類或樣式 return CFormView::PreCreateWindow(cs)。 //藍(lán)色畫筆 pen[4].CreatePen(PS_DOT, 1,RGB(0,0,255))。 //合格產(chǎn)品的上限為
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1