<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ISD4004單片機的火車站自動語音播報系統(tǒng)

          基于ISD4004單片機的火車站自動語音播報系統(tǒng)

          作者: 時間:2010-08-24 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/173248.htm

            1.6 信號變換

            信號取自車站信號室控制繼電器的觸點,主要是交流24 V的開關(guān)量信號,必須將其轉(zhuǎn)換為可以匹配的TTL電平,也就是將交流24 V變換為直流5 V,其信號電平變換電路如圖5所示。交流信號由二極管D32整流,電容C32濾波,經(jīng)限流電阻R32輸入光電耦合器4N25,經(jīng)內(nèi)部發(fā)光管和光敏接收管有效實現(xiàn)光電轉(zhuǎn)換,同時將外部信號的電氣網(wǎng)絡(luò)與控制隔離開來,提高系統(tǒng)的可靠性和抗干擾能力。變換后輸出的信號是低電平,為保持輸入信號和輸出信號電平同步,后級加反相器,輸出標準的TTL 5 V信號,送往并行接口8255。

            

            2 軟件總體設(shè)計

            系統(tǒng)軟件設(shè)計直接影響到系統(tǒng)的整體性能。軟件主要功能是通過對鐵路信號進行實時查詢,準確判斷信號是否有效,并可靠查找信號所對應(yīng)的存儲地址,取出信息進行實時。軟件程序包括主控程序、信號查詢程序、程序、數(shù)據(jù)傳送程序、的上電和掉電程序。程序中多次使用延時子程序,由于結(jié)構(gòu)簡單、通用性強、本文不再闡述。

            2.1 主控程序

            主控程序流程見圖6,系統(tǒng)上電時要進行初始化,完成對I/O口、信號單元及信號標志位的清零和及8255的初始化設(shè)置,并完成在系統(tǒng)上電時自檢和產(chǎn)品信息廣告的的。然后進入信號的查詢和語音播報的循環(huán)控制流程。為了防止系統(tǒng)誤報、漏報或連報,在程序設(shè)計時充分考慮這方面的因素,如采用信號延時防抖判定,信號電平的高低交錯標志判斷及信號單元地址查表等方法,提高系統(tǒng)的可靠性。

            2.2 信號查詢子程序

            信號查詢子程序的流程見圖7,系統(tǒng)30多路信號分別占用AT89C51的部分I/O線和可編程接口8255的A、B、C口24路輸入線。程序?qū)Χ嗦沸盘栠M行逐一查詢,并對到來的有效信號進行分單元標記儲存,以便將參數(shù)傳遞給主控程序。

            

            2.3 語音播報子程序

            芯片所有操作必須由微控制器控制的操作命令,通過串行通信協(xié)議SPI接口送入。SPI控制寄存器控制芯片的錄放音、信息檢索、上電、掉電、開始和停止等功能,由軟件編程指令改變SPI控制寄存器的控制位來實現(xiàn),SPI控制寄存器的控制位如圖8所示,指令格式是:8位控制碼+16位地址碼。ISD的任何操作在運行位C4置1時開始,置0時結(jié)束,如果遇到EOM或OVF,則產(chǎn)生一個中斷,使用“讀”指令使中斷狀態(tài)位移出ISD的MISO引腳時,控制及地址數(shù)據(jù)也同步從MOSI端移入。因此要注意移入的數(shù)據(jù)是否與器件當前進行的操作兼容。當然,也允許在一個SPI周期里,同時執(zhí)行讀狀態(tài)和開始新的操作(即新移入的數(shù)據(jù)與器件當前的操作可以不兼容)。

            



          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();