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

正文內(nèi)容

畢業(yè)論文-基于stc89c52單片機(jī)的智能音樂演奏器設(shè)計【終稿】(編輯修改稿)

2024-09-16 19:12 本頁面
 

【文章內(nèi)容簡介】 檢測) MOSI(在系統(tǒng)編程用) 智能音樂演奏器設(shè)計10 MISO(在系統(tǒng)編程用) SCK(在系統(tǒng)編程用) P2 口:功能同 P1 口。P3 口:P3 口的驅(qū)動能力和其他口一樣。不同之處是 P3 口也能成為 89C52的特殊功能(復(fù)用第二功能)來使用,如下表所示。P3 口含有單片機(jī)的特殊功能,如燒錄及中斷。描述如表 1 所示:表 1 P3 口引腳功能表RST:復(fù)位輸入。 XTAL1:振蕩時鐘輸入端。 XTAL2:振蕩時鐘輸入端。 單片機(jī)最小系統(tǒng)設(shè)計單片機(jī)最小的組成單位是由復(fù)位電路、電源電路、時鐘電路所組成的。而時鐘信號是單片機(jī)運行的基礎(chǔ)。時鐘相當(dāng)于是整個系統(tǒng)運行的時間準(zhǔn)則,只有當(dāng)時間安排精準(zhǔn),程序才能有條不絮的運行,才能各司其職。復(fù)位操作使它內(nèi)部所有程序全部重新開始。當(dāng)單片機(jī)的復(fù)位引腳檢測到 2 個機(jī)器周期(1us 左右)以上的高電平以后,單片機(jī)就會執(zhí)行復(fù)位操作。STC89C52 的最小系統(tǒng)設(shè)計圖如 Error! Reference source not :P3 口引腳 P3 口第二功能 RXD(串行口輸入) TXD(串行口輸出) INT0(外部中斷 0 輸入) INT1(外部中斷 1 輸入) T0(定時器/計數(shù)器 0) T1(定時器/計數(shù)器 1) WR(寫信號輸入) RD(讀信號輸出) 寧波大學(xué)信息學(xué)院本科畢業(yè)設(shè)計(論文) 11圖 8 STC89C52 的最小系統(tǒng)設(shè)計圖 LCD 顯示電路設(shè)計相關(guān)數(shù)據(jù)的顯示是智能音樂演奏器的一項重要功能,是整個系統(tǒng)的主要組成部分,所以對顯示電路的設(shè)計,也必須著重考慮。顯示的設(shè)計功能是:將主控讀取到的歌曲按鍵等相關(guān)數(shù)據(jù)經(jīng)過器處理后直觀的顯示出來。 LCD1602 操作時序及引腳定義對 LCD1602 的讀寫有嚴(yán)格的時序要求。讀時序如圖 9 所示,寫時序如圖10 所示。 圖 9 LCD1602 讀時序 (引自《LCD1602 數(shù)據(jù)手冊》 ) 智能音樂演奏器設(shè)計12圖 10 LCD1602 寫時序 (引自《LCD1602 數(shù)據(jù)手冊》 )引腳號 引腳名稱引腳功能定義1 VSS 地引腳(GND)2 VDD +5V 電源引腳(VCC )3 VO 液晶背光電壓(0~5V) ,可接電位器調(diào)節(jié)4 RS 數(shù)據(jù)狀態(tài)控制端端,RS=0 時命令或狀態(tài);RS=1 時數(shù)據(jù)5 R/W 讀寫控制,高為讀,低為寫6 E 數(shù)據(jù)讀寫操作使能端7~14 DB0DB7數(shù)據(jù)線,可以用 8 位連接,也可以只用高四位連接,其目的是為了節(jié)約資源15 A 背光控制正電源16 K 背光控制地 表 2 LCD1602 引腳定義 LCD1602 的讀操作,主要是讀取 LCD 的狀態(tài),判斷 LCD 是否在轉(zhuǎn)換及合成顯示狀態(tài)。LCD1602 的寫操作,主要是對 LCD1602 進(jìn)行控制操作,包括清除指令,控制指令及相關(guān)的數(shù)據(jù)接收。 LCD1602 的硬件設(shè)計根據(jù)上面的分析,我設(shè)計出了如圖 11 所示 LCD1602 顯示電路。其中 V0通過 R1 變阻器分壓得到電壓,通過對該電壓的修改可以達(dá)到不同對比度的顯示效果。數(shù)據(jù)口我們選用 P0 外接上拉電阻實現(xiàn),控制口我們選用 P2 口實現(xiàn)。 寧波大學(xué)信息學(xué)院本科畢業(yè)設(shè)計(論文) 13圖 11 LCD1602 顯示電路 語音轉(zhuǎn)換模塊設(shè)計 語音模塊概述根據(jù)以上的方案對比,我們可以知道 NV 的確是個有著非常強(qiáng)大的可編程語音芯片。它的音頻輸出方式可選為 PWM 和 DAC。多樣的輸出方式選擇,使它的運用場合也越來越大。NV 芯片內(nèi)通過串口控制字的輸入,用戶可以選擇高分辨率的 DA 音頻輸出方式,而且 NV 芯片內(nèi)部濾波功率的放大,致使模塊后可以自動驅(qū)動 的喇叭響動。該芯片內(nèi)部還集成 PSG 可編程語音合成技術(shù),這種效果使得音樂的音質(zhì)極好,發(fā)出的噪聲極低。此芯片設(shè)計時就考慮了眾多的外圍搭配電路,配合其有的極強(qiáng)的可編程能力,NV 解碼模塊不僅能實現(xiàn)標(biāo)準(zhǔn)的控制方式,亦可根據(jù)不同的控制需求,做出各種不同功能的音樂解碼器件。 功能特點用戶靈活且多變的操作模式供選擇(串口數(shù)據(jù)命令操作、并口數(shù)據(jù)命令操作、按鍵操作) ; 20 秒語音長度(在 6KHz 采樣率) ; 有忙狀態(tài)輸出指示供主控查詢,并且主控可以通過軟件調(diào)節(jié)音量大??; 音質(zhì)好,性能高,物美價廉; 多樣的封裝可供選擇,使用更方便,開發(fā)應(yīng)用更靈活; 智能音樂演奏器設(shè)計14極簡的外圍電路,配合芯片內(nèi)部豐富的資源,能夠輕松實現(xiàn)用戶提出的各種功能要求;靜態(tài)工作電流:2uA; 有音頻輸出時的 Ia 在 20mA~120mA 之間; 語音模塊芯片引腳定義與功能封裝引腳 引腳標(biāo)號 簡述 功能描述1 P01 K1/A0/CS 控制方式 1 選擇端 2 GND GND 地3 EQI OPI 芯片內(nèi)部的功率放大電路的反饋輸入端4 EQO OPO 內(nèi)部功放反饋輸出5 VCC VCC 芯片模擬電源 ~6 SPKP SPKP DAC 及 PWM 輸出7 SPKN SPKN DAC 及 PWM 輸出8 P06 BUSY 語音播放忙信號9 P05 K3/A2/DI/RXD 控制方式 2 選擇端 10 P04 K2/A1/SCK 控制方式 3 選擇端 11 VPP VPP 芯片編程電源12 VDD VDD 芯片數(shù)字電源 ~13 P10 A3 按鍵口14 P11 D5 按鍵口15 RESETB RESETB 芯片復(fù)位端,低有效 表 3 語音模塊引腳及相關(guān)功能描述 語音模塊觸發(fā)時序語音模塊可分為:一線制和三線制。一線串口控制方式,很特殊,它只有一條數(shù)據(jù)通信線,芯片確定不同的數(shù)據(jù)位是根據(jù)分辨電平占空比。這一點很特別,數(shù)據(jù)解調(diào)的方法同脈寬調(diào)制方法,即通過判斷脈沖高低電平的時間不同,來確定是高電平還是低電平。低電平在后,高電平在前,這種規(guī)定是脈沖時間所具有的。3 條通信控制線組成了三線串口控制,線程分別是 SS,DI ,SCK??刂频臅r序仿照標(biāo)準(zhǔn) SPI 通信格式。通信的準(zhǔn)則是:復(fù)位信號線在發(fā)碼之前先將數(shù)據(jù)線拉低 1ms~5ms 左右,然后再拉高并等待 5ms 以上。時序圖如圖 12 所 寧波大學(xué)信息學(xué)院本科畢業(yè)設(shè)計(論文) 15示。通過該三線串口即可以實現(xiàn)對 NV020 芯片的命令控制、語音播放。D0 位為語音測試口。根據(jù)智能音樂演奏器的設(shè)計要求,我們選用三線制對語音模塊進(jìn)行控制。 ramp up350us ramp down30uS2mSSSSCKSDIBUSYVOICERST 1~5mS5mS圖 12 三線串口控制時序圖(引自《語音模塊數(shù)據(jù)手冊》 )4 智能音樂演奏器的軟件設(shè)計 開發(fā)軟件簡介系統(tǒng)的軟件部分主要是利用 C 語言編程來完成程序的設(shè)計,進(jìn)一步設(shè)計帶來了便利。匯編語言和 C 語言組成了單片機(jī)開發(fā)語言,由于匯編語言的冗長及復(fù)雜,所以智能音樂演奏器選用 C 語言為開發(fā)語言。對單片機(jī)進(jìn)行編程,Keil軟件當(dāng)仁不讓的是最好的工具,它有利于程序更好的設(shè)計實現(xiàn)。Keil 的 C51 系列軟件是該公司獨自設(shè)計的,面向 51 單片機(jī)系列并且可以兼容國產(chǎn)單片機(jī)的軟件開發(fā)系統(tǒng)。C 和其他編程語言相比較,它的優(yōu)點還是有很多的,而且該單片機(jī)的平臺提供大量的、可操作性強(qiáng)的調(diào)試工具,有利于集成開發(fā)。 應(yīng)用程序設(shè)計那些設(shè)計類軟件,如果大腦中沒有很清楚的思路和很好的方案,那么設(shè)計東西是非常困難的。程序設(shè)計真的很繁瑣,很乏味但是它的重要性不言而喻。智能音樂演奏器設(shè)計16為了枯燥乏味的設(shè)計工作條理化,就必須要有相應(yīng)的步驟和方法。通過系統(tǒng)的分析,其設(shè)計流程可以簡單的分為以下若干種:(1)整體分析系統(tǒng)控制要求:什么要被控制,什么要被顯示,什么要被讀取。然后在根據(jù)處理值得不同,確定算法。(2)然后根據(jù)它的算法來畫流程:第一步是什么,第二步是什么,再者又是什么。畫框圖的優(yōu)點可以把算法和程序設(shè)計的流程方法更加具體化(3)最后再編寫程序:可以通過框圖的算法和步驟,選取合適的指令實現(xiàn)功能,然后把它們組成一個有機(jī)的整體,就構(gòu)成了整體程序。下面給出各個模塊的軟件設(shè)計,最終來達(dá)到設(shè)計的要求,實現(xiàn)其功能。 主程序的設(shè)計智能音樂演奏器的軟件設(shè)計構(gòu)成主要有如下幾種:由按鍵檢測及控制發(fā)出的主程序、系統(tǒng) LCD 及解碼模塊的初始化程序、1602 的數(shù)據(jù)顯示程序、控制解碼程序等。主程序設(shè)計流程 Error! Reference source not 所示。 圖 13 主程序設(shè)計流程圖是否是是開始初始化 LCD1602 初始化 NV020 模塊是否有 TF 卡插 入?初始化文件系統(tǒng)查找音樂文件數(shù)據(jù)送至 NV020 目錄循環(huán)播放音樂是否有鍵按下?執(zhí)行相應(yīng)功能結(jié)束否是 寧波大學(xué)信息學(xué)院本科畢業(yè)設(shè)計(論文) 17 LCD 顯示程序設(shè)計顯示程序設(shè)計流程圖,如是其他需要調(diào)用的程序之一,所以它的設(shè)計重要性不言而喻。 是 否智能音樂演奏器設(shè)計18 圖 4 所示。顯示的目的是直觀的向用戶提供用戶想要的信息,并且在設(shè)計時,應(yīng)該充分考慮設(shè)計顯示的內(nèi)容,和顯示的時間。因為LCD1602 顯示子程序是其他需要調(diào)用的程序之一,所以它的設(shè)計重要性不言而喻。 是 否入口對 1602 初始化寫入顯示設(shè)置命令延時一段時間檢查忙標(biāo)志BF=7?設(shè)置字符顯示位置延時一段時間向 1602 中寫入數(shù)據(jù)LCD 顯示內(nèi)容返回主程序 寧波大學(xué)信息學(xué)院本科畢業(yè)設(shè)計(論文) 19 圖 14 顯示子程序流程圖顯示程序如下所示:static void delayms(unsigned int n){unsigned int x,y。for(x=n。x0。x)for(y=110。y0。y)。} void lcd_w(unsigned char ) //lcd1602 寫命令函數(shù){rs=0。 //選擇指令寄存器 rw=0。 //選擇寫P0=。 //把命令字送入 P2 delayms(5)。en=1。en=0。 }void lcd_wdat(unsigned char dat) //1602 寫數(shù)據(jù)函數(shù){rs=1。 //選擇數(shù)據(jù)寄存器 rw=0。P0=dat。delayms(5)。 en=1。en=0。 }void lcd_wstr(unsigned char *s){智能音樂演奏器設(shè)計20unsigned char i=0。while(*s!=39。\039。amp。amp。i32){if(i==16)lcd_w(0x80+0x40)。lcd_wdat(*s)。s++。i++。}}void lcd_init() // 1602 初始化函數(shù) {lcd_w(0x38)。lcd_w(0x0c)。lcd_w(0x06)。lcd_w(0x01)。 } 按鍵檢測程序設(shè)計按鍵檢測的難度主要是處理按鍵的去抖。針對硬件的設(shè)計,我們視按鍵按下時為低電平。其主要的設(shè)計思路是,時刻檢測按鍵端口是否為“0” ,當(dāng)檢測為 0 時,軟件延時 10ms 之后,再對其進(jìn)行讀取,若該端口仍為“0” ,說明按鍵確實按下,并對其進(jìn)行相應(yīng)處理;若延時之后,該端口為“1” ,說明按鍵存在抖動,在處理鍵值的時候,應(yīng)該將該類情況處理為錯誤信號。按鍵檢測程序如下:uchar getkey(){if(key1==0){Delay_ms(15)。 寧波大學(xué)信息學(xué)院本科畢業(yè)設(shè)計(論文) 21if(key1==0) {while(!key1)。 return 1。}}if(key2==0){Delay_ms(15)。if(key2==0){while(!key2)。return 2。}}if(key3==0){Delay_ms(15)。if(key3==0){while(!key3)。return 3。}}if(key4==0){Delay_ms(15)。if(key4==0){while(!key4)。智能音樂演奏器設(shè)計22retur
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1