freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于isd4004的語音錄放系統(tǒng)畢業(yè)論文(編輯修改稿)

2025-07-15 16:42 本頁面
 

【文章內(nèi)容簡介】 VDD電源正極7~14DB0~DB7數(shù)據(jù)0~73VL液晶顯示偏壓信號15BLA背光源正極4RS數(shù)據(jù)/命令選擇16BLK背光源負極5R/W讀/寫選擇 在表32中,VSS為電源地,VDD接5V正電源。VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”。使用時,一般在該引腳與地之間接一固定電阻或電位器。RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器,低電平時選擇指令寄存器。R/W為讀/寫信號線,高電平時進行讀操作,地電平時進行寫操作。E段位使能端,當E段由高電平變成低電平時,液晶模塊執(zhí)行命令。DB0~DB7為8位雙向數(shù)據(jù)線。BLA、BLK用于帶背光的模塊,不帶背光的模塊這兩個引腳懸空不接。 通信方式單片機與計算機的通信電路有串行通信和并行通信兩種。并行通信的主要特點:一是同時并行傳送的二進制數(shù)就是數(shù)據(jù)寬度;二是在計算機與外設間采用應答式的聯(lián)絡信號來協(xié)調(diào)雙方的數(shù)據(jù)操作。傳送的數(shù)據(jù)位為1128位,一般為8位,但是并行通信傳輸距離近,傳送方式單一,每次傳送一個字或一個字節(jié)。串行通信是指一個數(shù)據(jù)的所有位按一定的順序和方式,一位一位地通過串行輸入/輸出口進行傳送,由于串行通信是數(shù)據(jù)的逐位順序傳送,在進行串行通信時,只需一根傳輸線,傳送的數(shù)據(jù)位多且通信距離長。串行通信與并行通信相比,具有傳輸距離遠,接口電路與軟件編程簡單等優(yōu)點,所以本設計中采用串行通信。單片機與計算機的通信采用簡化三線的串行通信方式,即把單片機的發(fā)送端TXD直接和計算機的接收端RXD相連,單片機的接收端RXD直接和計算機的發(fā)送端TXD連接,但是單片機的+5V TTL信號電平與PC機的177。10V信號電平不相容,所以必須進行電平轉換[6],本設計中采用MAXIM公司生產(chǎn)的MAX232芯片。MAX232芯片內(nèi)部有一個電源電壓變壓器,可以把輸入的+5V電源電壓變換為RS232輸出電平所需的177。10V電壓。所以,采用此芯片接口電路的串行通信系統(tǒng)只需要單一的+5V電源就可以了。此外,為了數(shù)據(jù)傳輸和指令下載方便,我們采用的是USB轉串口線。MAX232電路也非常方便,輸出標準的RS232接口信號,而且RS232芯片價格不貴。單片機與計算機的通信接口電路如圖315所示:圖315串口電路圖3.9.2 單片機與ISD4004之間的通信 單片機ISD4004之間的通信采用串行外設接口(serial peripheral interface,SPI)總線系統(tǒng)是一種同步串行外設接口,它可以使MCU與各種外圍設備以串行方式通信以交換信息。SPI總線系統(tǒng)可直接與各個廠家生產(chǎn)的多種標準外圍器件直接接口,該接口一般使用4條線:串行時鐘線(SCK)、主機輸入/從機輸出數(shù)據(jù)線MISO、主機輸出/從機輸入數(shù)據(jù)線MOSI和低電平有效的從機選擇SS。由于SPI系統(tǒng)總線一共只需三四位數(shù)據(jù)線和控制,即可實現(xiàn)與具有SPI總線接口功能的各種I/0器進行接口,因此,采用SPI總線接口可以簡化電路設計,節(jié)省很多常規(guī)電路中的接口器件和I/O口線,提高設計的可靠性。由于51單片機不帶SPI串行總線接口,可以使用軟件來模擬SPI的操作,~、數(shù)據(jù)輸入和數(shù)據(jù)輸出。對于不同的串行接口外圍芯片,它們的時鐘時序是不同的。對于在SCK的上升沿輸入(接收)數(shù)據(jù)和下降沿輸出(發(fā)送)數(shù)據(jù)的器件。這樣,MCU在輸出1位SCK時鐘的同時,將使接口芯片串行左移,,,(先為高位)至串行接口芯片。至此,模擬1位數(shù)據(jù)輸入輸出便完成。,模擬下一位數(shù)據(jù)的輸入輸出,以此循環(huán)8次,即可完成一次通過SPI總線傳輸8位數(shù)據(jù)的操作。對于在SCK的下降沿輸入數(shù)據(jù)和上升沿輸出數(shù)據(jù)的器件,則應該串行時鐘輸出的初始狀態(tài)為0,即在接口芯片允許時,,為1,以便外圍接口芯片輸出1位數(shù)據(jù),之后再置時鐘為0,使外圍接口芯片接收1位數(shù)據(jù),從而完成1位數(shù)據(jù)的傳送[1]。如圖316所示,51單片機與ISD4004接口電路。圖316單片機與ISD4004接口電路示意圖4軟件設計 總體方案 該系統(tǒng)的軟件部分包括語音程序,1602液晶顯示和按鍵控制三部分程序。語音程序主要包括驅動程序,1602液晶顯示部分包括顯示驅動程序,按鍵控制部分包括菜單的選擇,可以選擇錄音模式和放音模式。軟件設計采用的是Keil uvision2,C51編程。Keil C51是51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構上、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易懂。Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解,在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。因此本系統(tǒng)采用C51編程語言。 程序流圖單片機上電后,系統(tǒng)默認進入放音模式。在放音模式下,可以選擇相應段的語音,按下播放按鍵就可以播放語音。當按下菜單選擇按鍵時,系統(tǒng)就會切換成錄音模式。在錄音模式下,可以通過按鍵來選擇,任意斷的語音進行錄音。再次按下菜單選擇的按鍵時,就會切換成放音模式。如圖41所示,系統(tǒng)的流程圖,圖42所示,錄放放音子程序。開始開機界面錄音模式溫度顯示是否播報溫度初始化各參數(shù)否是語音播報溫度進入電子時鐘模式是否播報時間語音播報時間是否圖41 系統(tǒng)的軟件流程圖啟動錄音子程序發(fā)送起始地址低八位發(fā)送ISD4004發(fā)送起始地址高八位發(fā)送ISD4004發(fā)送錄音指令啟動定時器T0計時發(fā)送停止指令結束啟動放音子程序發(fā)送起始地址低八位發(fā)送ISD4004發(fā)送起始地址高八位發(fā)送ISD4004發(fā)送放音指令等待外部中斷發(fā)送停止指令結束圖42 錄放音子程序 模塊說明 ISD4004驅動程序(1)SPI串行發(fā)送函數(shù)/********以下是SPI串行發(fā)送函數(shù)********/void spi_send(uchar isdx){ uchar isd_count。 SS=0。 //當ss=0時,選中IS4004芯片,打開SPI通信端 SCLK=0。 for(isd_count=0。isd_count8。isd_count++) //先發(fā)低位再發(fā)高位,依次發(fā)送 { if ((isdxamp。0x01)==1) MOSI=1。 //主機輸出,從機輸入 else MOSI=0。 isdx=isdx1。//8位數(shù)據(jù)右移一位 SCLK=1。 delay(2)。 SCLK=0。 delay(2)。 }} 單片機通過MOSI接口,通過串行的方式來發(fā)送八位數(shù)據(jù),數(shù)據(jù)在是時鐘的上升沿移入,下降沿移出。在判斷數(shù)據(jù)0或1的采用相與的方式,如果相與條件符合,則MOSI輸出1,,否則輸出0。(2)向ISD4004語音芯片發(fā)送上電和掉電指令/********以下是發(fā)送上電指令********/void isd_powerup(void){ delay(10)。 SS=0。 spi_send(0x20)。 SS=1。 Delay_ms(50)。}/********以下是發(fā)送掉電指令函數(shù)********/void isd_poweroff(void){ delay(10)。 spi_send(0x10)。SS=1。Delay_ms(50)。}閱讀ISD4004芯片手冊知,向語音芯片發(fā)送8位的指令,就能控制其上電與掉電,這應用在錄放音的時序控制中。(3)錄放音函數(shù)/********以下是發(fā)送setplay(放音起始地址)指令函數(shù)********/void isd_setplay(uchar adl,uchar adh){ Delay_ms(1)。 spi_send(adl)。 //發(fā)送放音起始地址低位 delay(2)。 spi_send(adh)。 //發(fā)送放音起始地址高位 delay(2)。 spi_send(0xe0)。 //發(fā)送setplay指令字節(jié) SS=1。}/********以下是發(fā)送setrec(錄音起始地址)指令函數(shù)********/void isd_setrec(uchar adl,uchar adh){ Delay_ms(1)。 spi_send(adl)。 //發(fā)送放音起始地址低位 delay(2)。 spi_send(adh)。 //發(fā)送放音起始地址高位 delay(2)。 spi_send(0xa0)。 //發(fā)送setplay指令字節(jié) SS=1。}與ISD4002不同的是,ISD4004內(nèi)部地址是16位的,分為高位和地位兩部分,在發(fā)送地址時,要先發(fā)送地位地址,然后再發(fā)送高位地址。 1602液晶底層驅動(1)LCD判忙程序/********以下是LCD忙碌檢查函數(shù)********/bit lcd_busy() { bit result。 LCD_RS = 0。 LCD_RW = 1。 LCD_EN = 1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 result = (bit)(P2amp。0x80)。 LCD_EN = 0。 return result。 } 當模塊在接受指令前,單片機必須先確認模塊內(nèi)部是否處于忙綠狀態(tài),即讀取lcd_busy()標志時result需為0,方可接受新的指令;如果在送出一個指令前不檢查result標志位,或者延遲時間不夠長,會導致接收出錯。(2)寫指令、寫數(shù)據(jù)程序/********以下是寫指令寄存器IR函數(shù)********/void lcd_wcmd(uchar cmd) { while(lcd_busy())。 LCD_RS = 0。 LCD_RW = 0。 LCD_EN = 0。 _nop_()。 _nop_()。 P2 = cmd。 _nop_()。
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1