在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于89C51單片機(jī)的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

            基于89C51單片機(jī)的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

            作者: 時(shí)間:2012-02-04 來源:網(wǎng)絡(luò) 收藏

              系統(tǒng)上電即執(zhí)行初始化程序。當(dāng)操作員按下采樣鍵時(shí)執(zhí)行數(shù)據(jù)采樣模塊。從00~07通道間隔每秒采集每個(gè)通道的5個(gè)值,調(diào)用濾波子程序得到準(zhǔn)確值,再通過數(shù)據(jù)轉(zhuǎn)換子程序分別送到6116數(shù)據(jù)區(qū)及8155RAM區(qū),通過字形顯示子程序顯示各通道檢測的數(shù)據(jù)。每采集完一個(gè)周期后,89C51通過 MAX232接口PC機(jī)查詢有無通信命令,有則響應(yīng),無則繼續(xù)采集數(shù)據(jù)。該程序一直按框圖流程循環(huán)執(zhí)行,直至意外掉電或強(qiáng)迫復(fù)位后,才能終止

            2.3 故障診斷模塊

              過程中,若出現(xiàn)故障會(huì)直接影響采樣結(jié)果,所得到的錯(cuò)誤數(shù)據(jù)不允許存檔,并應(yīng)該記錄故障原因及持續(xù)時(shí)間。故障診斷模塊主要是89C51外圍芯片 MAX691的電源監(jiān)控以及掉電保護(hù)電路檢測到硬件故障后向發(fā)出中斷請(qǐng)求INT0所執(zhí)行的外部中斷服務(wù)子程序。該程序主要功能是在累加數(shù)據(jù)保存完畢后,置位89C51內(nèi)部的特殊功能寄存器PCON中的PD,使RAM進(jìn)入掉電模式,保護(hù)數(shù)據(jù)不變,同時(shí)顯示故障類型和發(fā)生的時(shí)間。若為軟件死循環(huán)引起的故障,則MAX691的“看門狗”電路自動(dòng)使程序跳出陷阱,強(qiáng)迫系統(tǒng)復(fù)位。

            2.4 數(shù)據(jù)通信模塊

              分通信程序和PC機(jī)通信程序。

            2.4.1 單片機(jī)通信程序

              流程圖如圖4所示。 

               

              

            2.4.2 Win98下PC機(jī)與89C51通信程序

              通訊程序編寫中首先在項(xiàng)目頭文件中嵌入的頭文件MSComm.h及實(shí)現(xiàn)文件MSComm.cpp,其次,為了用該控件控制一個(gè)串口的通訊操作,還必須在相應(yīng)程序中插入該控件。為此,設(shè)計(jì)在某對(duì)話框中插入,其ID為IDC_M(jìn)SComm1,并利用ClassWizard 為其添加變量CCMSComm m_Com1,通訊程序中對(duì)串口的所有操作都可以通過m_Com1來實(shí)現(xiàn)。

              89C51通過中斷方式采集和傳遞數(shù)據(jù)。當(dāng)其數(shù)據(jù)緩沖區(qū)滿時(shí),向CPU發(fā)出中斷申請(qǐng),若CPU響應(yīng)并經(jīng)與PC機(jī)握手后便可發(fā)送數(shù)據(jù)。因此PC機(jī)采用查詢的通訊方式。設(shè)計(jì)中將PC機(jī)串口每接收一幀數(shù)據(jù)設(shè)置成串口要響應(yīng)的事件EV_RXFLAG事件,通過此事件激活消息處理函數(shù)OnComm(),在OnComm()中加入處理代碼,判斷是否是所需的數(shù)據(jù),再作出相應(yīng)的顯示、存盤等處理。

              下面簡要給出用事件驅(qū)動(dòng)方式接收89C51單片機(jī)發(fā)送數(shù)據(jù)的程序源代碼。通訊時(shí)PC機(jī)串口與89C51串口參數(shù)的設(shè)置必須一致,否則兩者無法進(jìn)行通訊。設(shè)置PC機(jī)串口參數(shù)的初始化程序如下:
            If(!m_Com1.getportOpen())

            m_Com1.SetPortOpen(TRUE);//打開串口 
              m_Com1.SetSettings("9600,n,11,1");
            //串口參數(shù)設(shè)置 
              m_Com1.InputMode(1);
            //建立1024字節(jié)輸入隊(duì)列 
              SetCommEvent(m_Com1,EV_RXFLAG);
            //設(shè)置串口要響應(yīng)的事件EV_RXFLAG 
              m_Com1.SetRThreshold(200);
            //每接收200幀激活OnComm()事件 ………

            3 結(jié)束語

              本文通過PC機(jī)與89C51單片機(jī)組成一簡單的多機(jī)系統(tǒng),通過串行通信實(shí)現(xiàn)了遠(yuǎn)程系統(tǒng)的基本功能。在硬件連接上,為提高傳輸距離,采用了RS- 232C/RS-422A轉(zhuǎn)換電路,以差分傳輸、差分接受的形式解決了這一問題。在軟件編制上,采用流行的VC++6.0下的Active X控件,通過對(duì)控件相關(guān)屬性及代碼的編寫,實(shí)現(xiàn)了Windows 98環(huán)境下PC機(jī)與89C51單片機(jī)的遠(yuǎn)程通信。該方法也可以用于類似的工業(yè)場合中。

            參 考 文 獻(xiàn)

            1 何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京:航空航天大學(xué)出版社,1998
            2 趙仕?。甐C++6.0編程與實(shí)例解析.北京:科學(xué)出版社,2000


            上一頁 1 2 下一頁

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉