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

正文內(nèi)容

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

2025-07-15 16:42 本頁(yè)面
 

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