MSP430單片機與多功能電話(huà)留言系統設計
ISD4004工作于SPI串行接口。SPI協(xié)議是一個(gè)同步穿行數據傳輸協(xié)議,協(xié)議假定微控制器的SPI移位寄存器在SCLK的下降沿工作,因此對ISD4004而言,在時(shí)鐘上升沿鎖存MOSI引腳的數據,下降沿到來(lái)時(shí)將數據送至MISO引腳。協(xié)議具體內容如下:
所用串行數據傳輸開(kāi)始于SS下降沿。
SS在傳輸期間必須保持為低電平,在兩條指令之間則保持為高電平。
數據在時(shí)鐘上升沿移入,在下降沿移出。
SS變低,輸入指令和地址后,ISD才能開(kāi)始錄放操作。
指令格式為8位控制碼外加16位地址碼。
ISD的任何操作如果遇到EOM或OVF,則產(chǎn)生一個(gè)中斷,該終端狀態(tài)在下一個(gè)SPI周期開(kāi)始時(shí)被清除。
使用讀指令使中斷狀態(tài)位移出ISD的MISO引腳時(shí),控制及地址數據也應同步從MOSI端移入。
所有操作在運行位(RUN)置1時(shí)開(kāi)始,置零時(shí)結束。
所有指令都在SS端為上升沿開(kāi)始運行。
本系統由于需要較多的端口,所以選擇MSP430F133作為主控制器。MSP430F133擁有6個(gè)8位的并行端口,且2個(gè)8位端口有中斷能力,同時(shí)它具有FLASH存儲器,方便開(kāi)發(fā)和調試,而且便于擴展,能滿(mǎn)足大多數有關(guān)微處理器開(kāi)發(fā)和應用。
多功能電話(huà)系統的原理圖如圖二所示,其模擬部分基本上援用普通電話(huà)的電路(在此不作介紹)。它主要是由MSP430F133和ISD4004及其外圍設備和接口組成。主要電路有:鍵盤(pán)控制電路,LCD顯示電路,語(yǔ)音IC電路,放大電路和對模擬電話(huà)部分的控制電路。
圖二 多功能電話(huà)系統的電路框圖
鍵盤(pán)控制電路(圖三):我們采用4X4鍵盤(pán),通過(guò)74922鍵盤(pán)掃描集成電路編碼,只要鍵盤(pán)編碼器 IC74922的第12腳(DA)為高電平,便是有按鍵按下,此時(shí)主控制器就可以讀取74922的14-17腳的按鍵值,此時(shí)程序就可以判斷哪個(gè)鍵按下,并對其進(jìn)行相應的操作,只要按鍵持續進(jìn)行,第12腳(DA)就將持續為高電平,一直到按鍵放開(kāi),才為低電平。
LCD顯示電路:我們使用 16X2 兩行英文字形的LCD,要LCD顯示字型必須先設定LCD初值,同時(shí)控制LCD的三條控制線(xiàn)和8條數據線(xiàn),三條控制線(xiàn)分別為暫存器選擇線(xiàn)(RS)、讀/寫(xiě)控制線(xiàn)(R/W)和使能控制端(E)。LCD內部有一塊存儲字型的ROM,里面存儲著(zhù)192個(gè)5X7點(diǎn)陣型的字型,這些字型由存放在LCD內部的DD RAM里的8位元碼(與ASCII碼相同)調出來(lái)顯示,所以我們只要輸入ASCII碼,它就可查出各個(gè)字形的顯示碼,它也可以由使用者自行設計顯示字型,LCD的使能端是高電平,可以直接接在主控制器上,也可以接在74LS139上(如果接多片語(yǔ)音芯片ISD4004,可以一起對使能端進(jìn)行編碼)。
語(yǔ)音IC ISD4004電路(圖四):它的控制腳有4個(gè),這就是所謂的SPI串行傳輸端口,分別為 /SS、SCLK、MOSI、MISO四個(gè)管腳,其中/SS是語(yǔ)音IC的使能管腳,它的使能是通過(guò)74LS139 2X4 解碼器的選擇來(lái)做多功能的使能控制,這樣就可以減少主控制器的端口使用,一片74LS139最多可以接4個(gè)端口的使能。因為該譯碼器的輸出為低電平,所以我們所接的都是低電平使能的引腳。要送數據給語(yǔ)音IC時(shí),/SS必須為低電平,而在每個(gè)指令傳輸完后,/SS必須要維持為高電平,當/SS為低電平時(shí),才可以傳輸數據,而SCLK是語(yǔ)音IC的工作時(shí)鐘,只要在上升沿之前,將數據送到MOSI上,上升沿到來(lái)后,數據就會(huì )被讀入語(yǔ)音IC內,因為語(yǔ)音IC的控制方法是串行的方式,所以所送的數據都必須以單個(gè)比特的方式讀進(jìn)去。在錄音或放音時(shí),每經(jīng)過(guò)400ms,RAC腳都會(huì )產(chǎn)生一個(gè)低脈沖,因為語(yǔ)音IC內共有 2400個(gè)行,每個(gè)行錄音結束時(shí),就會(huì )輸出一個(gè)低脈沖,此引腳可用來(lái)判斷錄音路到哪里并用于位置的記錄控制,而/INT引腳則是在放音時(shí),用于放音結束與否的判斷,當放音結束后,這個(gè)引腳就會(huì )輸出低電平,控制程序就可知放音已經(jīng)結束了。
評論