新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430單片機與多功能電話留言系統設計

        MSP430單片機與多功能電話留言系統設計

        作者: 時間:2012-03-23 來源:網絡 收藏

        ISD4004工作于SPI串行接口。SPI協議是一個同步穿行數據傳輸協議,協議假定微控制器的SPI移位寄存器在SCLK的下降沿工作,因此對ISD4004而言,在時鐘上升沿鎖存MOSI引腳的數據,下降沿到來時將數據送至MISO引腳。協議具體內容如下:

        所用串行數據傳輸開始于SS下降沿。

        SS在傳輸期間必須保持為低電平,在兩條指令之間則保持為高電平。

        數據在時鐘上升沿移入,在下降沿移出。

        SS變低,輸入指令和地址后,ISD才能開始錄放操作。

        指令格式為8位控制碼外加16位地址碼。

        ISD的任何操作如果遇到EOM或OVF,則產生一個中斷,該終端狀態在下一個SPI周期開始時被清除。

        使用讀指令使中斷狀態位移出ISD的MISO引腳時,控制及地址數據也應同步從MOSI端移入。

        所有操作在運行位(RUN)置1時開始,置零時結束。

        所有指令都在SS端為上升沿開始運行。

        三、的電路

        由于需要較多的端口,所以選擇F133作為主控制器。F133擁有6個8位的并行端口,且2個8位端口有中斷能力,同時它具有FLASH存儲器,方便開發和調試,而且便于擴展,能滿足大多數有關微處理器開發和應用。

        的原理圖如圖二所示,其模擬部分基本上援用普通的電路(在此不作介紹)。它主要是由F133和ISD4004及其外圍設備和接口組成。主要電路有:鍵盤控制電路,LCD顯示電路,語音IC電路,放大電路和對模擬電話部分的控制電路。

        3.gif
        圖二 電話系統的電路框圖

        鍵盤控制電路(圖三):我們采用4X4鍵盤,通過74922鍵盤掃描集成電路編碼,只要鍵盤編碼器 IC74922的第12腳(DA)為高電平,便是有按鍵按下,此時主控制器就可以讀取74922的14-17腳的按鍵值,此時程序就可以判斷哪個鍵按下,并對其進行相應的操作,只要按鍵持續進行,第12腳(DA)就將持續為高電平,一直到按鍵放開,才為低電平。

        LCD顯示電路:我們使用 16X2 兩行英文字形的LCD,要LCD顯示字型必須先設定LCD初值,同時控制LCD的三條控制線和8條數據線,三條控制線分別為暫存器選擇線(RS)、讀/寫控制線(R/W)和使能控制端(E)。LCD內部有一塊存儲字型的ROM,里面存儲著192個5X7點陣型的字型,這些字型由存放在LCD內部的DD RAM里的8位元碼(與ASCII碼相同)調出來顯示,所以我們只要輸入ASCII碼,它就可查出各個字形的顯示碼,它也可以由使用者自行顯示字型,LCD的使能端是高電平,可以直接接在主控制器上,也可以接在74LS139上(如果接多片語音芯片ISD4004,可以一起對使能端進行編碼)。

        語音IC ISD4004電路(圖四):它的控制腳有4個,這就是所謂的SPI串行傳輸端口,分別為 /SS、SCLK、MOSI、MISO四個管腳,其中/SS是語音IC的使能管腳,它的使能是通過74LS139 2X4 解碼器的選擇來做多功能的使能控制,這樣就可以減少主控制器的端口使用,一片74LS139最多可以接4個端口的使能。因為該譯碼器的輸出為低電平,所以我們所接的都是低電平使能的引腳。要送數據給語音IC時,/SS必須為低電平,而在每個指令傳輸完后,/SS必須要維持為高電平,當/SS為低電平時,才可以傳輸數據,而SCLK是語音IC的工作時鐘,只要在上升沿之前,將數據送到MOSI上,上升沿到來后,數據就會被讀入語音IC內,因為語音IC的控制方法是串行的方式,所以所送的數據都必須以單個比特的方式讀進去。在錄音或放音時,每經過400ms,RAC腳都會產生一個低脈沖,因為語音IC內共有 2400個行,每個行錄音結束時,就會輸出一個低脈沖,此引腳可用來判斷錄音路到哪里并用于位置的記錄控制,而/INT引腳則是在放音時,用于放音結束與否的判斷,當放音結束后,這個引腳就會輸出低電平,控制程序就可知放音已經結束了。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 炉霍县| 大竹县| 九台市| 托克托县| 酒泉市| 开化县| 马龙县| 吉隆县| 临泽县| 镇远县| 巴东县| 乐清市| 浑源县| 德钦县| 大余县| 遂昌县| 达孜县| 沂源县| 桑日县| 绩溪县| 雅江县| 和平区| 水城县| 吕梁市| 松潘县| 左云县| 民权县| 德令哈市| 逊克县| 渑池县| 南雄市| 景宁| 扎赉特旗| 舒城县| 开封市| 密山市| 遂平县| 嘉兴市| 锦州市| 阿尔山市| 石河子市|