多串口船舶導(dǎo)航數(shù)據(jù)轉(zhuǎn)換器的低成本實(shí)現(xiàn)
單片機(jī)P89C669與AT89C2051之間的數(shù)據(jù)通信流程圖如圖3所示,具體實(shí)現(xiàn)如下。
(1)P89C669方面
①P89C669發(fā)送數(shù)據(jù)。首先,程序初始化后P89C669將AT89C2051有關(guān)的晶振信息、波特率等參數(shù)以命令字形式傳送給AT89C2051,AT89C2051接收后查表求解進(jìn)行串口波特率設(shè)置。然后P89C669將接收完畢的數(shù)據(jù)存入緩沖區(qū),并檢測(cè) 引腳,若為高電平則等待,直到變?yōu)榈碗娖綍r(shí)通過并口將數(shù)據(jù)傳給AT89C2051。在AT89C2051將接收緩沖區(qū)數(shù)據(jù)發(fā)送出去的同時(shí)檢測(cè)緩沖區(qū),如果緩沖區(qū)不滿則將 引腳置低,反之則高。
②P89C669接收數(shù)據(jù)。AT89C2051接收到數(shù)據(jù)后用 引腳產(chǎn)生邊沿信號(hào)向P89C669發(fā)出請(qǐng)求,P89C669收到請(qǐng)求信號(hào)后執(zhí)行讀取數(shù)據(jù)程序。
本文引用地址:http://m.butianyuan.cn/article/173579.htm
圖3 P89C669方面的程序流程圖
(2)AT89C2051方面
AT89C2051是作為IC芯片用來(lái)進(jìn)行串口擴(kuò)展的,在初始化階段接收上位機(jī)傳來(lái)的數(shù)據(jù)進(jìn)行初始化設(shè)置,然后循環(huán)等待接收上位機(jī)發(fā)送的數(shù)據(jù)[6]。AT89C2051將并口傳來(lái)的數(shù)據(jù)存在并口接收緩沖區(qū),并復(fù)制到串口發(fā)送緩沖區(qū),激活串口使用中斷方式發(fā)送;將串口傳來(lái)的數(shù)據(jù)存在串口接收緩沖區(qū),并復(fù)制到并口發(fā)送緩沖區(qū),同時(shí)改變 的電位,向上位機(jī)發(fā)出請(qǐng)求。在船舶導(dǎo)航數(shù)據(jù)轉(zhuǎn)換器中,AT89C2051主要是用來(lái)串口發(fā)送電羅經(jīng)信號(hào),它與P89C669的通信流程圖如圖4所示。
4結(jié)束語(yǔ)
文中應(yīng)用AT89C2051擴(kuò)展串口后,系統(tǒng)共有三個(gè)串行口。其中,一個(gè)串口用來(lái)選擇接收電羅經(jīng)或者GPS信號(hào)用以數(shù)據(jù)轉(zhuǎn)換;一個(gè)串口經(jīng)過MAX3232實(shí)現(xiàn)TTL電平與RS-232電平轉(zhuǎn)換后可連接微機(jī)的串行口,從而簡(jiǎn)單方便地實(shí)現(xiàn)單片機(jī)P89C669的在線編程,它同時(shí)也作為GPS信號(hào)的輸出接口;另一個(gè)串口主要用來(lái)輸出電羅經(jīng)信號(hào)。
該電路與采用專用芯片的電路相比,并不復(fù)雜,而且編程設(shè)計(jì)較簡(jiǎn)單,綜合考慮是一種比較經(jīng)濟(jì)實(shí)用的低成本設(shè)計(jì)方法。
創(chuàng)新點(diǎn):
文章本著低成本的指導(dǎo)思想進(jìn)行設(shè)計(jì)。首先,選用可在線編程的P89C669單片機(jī)為主處理器,省去編程器,降低了成本;其次,采用價(jià)格便宜的AT89C2051單片機(jī)與充分利用P89C669單片機(jī)豐富的IO口進(jìn)行串口擴(kuò)展。最終,實(shí)現(xiàn)了多串口船舶導(dǎo)航數(shù)據(jù)轉(zhuǎn)換器的低成本實(shí)現(xiàn)。
評(píng)論