【正文】
定之后,利用一種算法計(jì)算鍵值, 例 如當(dāng) S2 按下時(shí),在 IOA 口高八位得到的值應(yīng)該為 10000100B,這時(shí)候利用一種算法可以讓鍵值為“ 8”;或者直接當(dāng)這里的行掃描值為 1000、讀到列碼 0100 時(shí),讓返回的鍵值為“ 8”。這不僅增長(zhǎng)了我的知識(shí),也增進(jìn)了同學(xué)之間的感情。 unsigned char KeyFlag。 Initial_INT()。 break。 break。 break。break。break。break。break。break。break。break。break。break。 } } SACM_S480_ServiceLoop()。 第 25 頁(yè) 共 26 頁(yè) break。 break。 //掃描鍵盤 if(Keycode!=0) { Keycode = KeyDataChange(Keycode)。 //0, 1, 2, 3, 4, 5, 6, 7, 8, 9 int main(void) { KeyFlag = 0。在此,我非常感謝我的指導(dǎo)老師和同學(xué)們。經(jīng)過(guò)仔細(xì)檢查改正后,才獲得了正確的實(shí)驗(yàn)結(jié)構(gòu)。 注 意 : 1) 自檢過(guò)程中,當(dāng)檢測(cè)到相應(yīng)部分,再將其短接上即可(其中 JP3 的 B8 用跳線將右端兩腳短接)。 a b c d e f g DP 6 位數(shù)碼管 1 2 3 4 5 6 DD I O A 0 I O A 1 I O A 2 I O A 3 I O A 4 I O A 15 I O A 5 I O A 14 I O A 6 I O A 13 I O A 7 I O A 12 S P C E06 1A I O B 15 I O A 1 1 I O B 14 I O A 10 I O B 13 I O A 9 I O B 12 I O A 8 I O B 2 I O B 1 I O B 0 L1 L2 L3 L4 4X 4 鍵盤 C1 C2 C3 C4 圖 硬件連接圖 第 13 頁(yè) 共 26 頁(yè) 4 系統(tǒng)軟件設(shè)計(jì) 集成開(kāi)發(fā)環(huán)境 IDE概述 集成開(kāi)發(fā)環(huán)境 IDE,為凌陽(yáng)科技股份有限公司提供的支持單片機(jī)開(kāi)發(fā)的軟件環(huán)境,它集程序的編輯、編譯、鏈接、調(diào)試以及仿真等功能為一體。先使行掃描線輸出高電平,然后讀取列掃描線的狀態(tài),得到與按鍵橫向位置對(duì)應(yīng)的 4 位列碼;如果是有鍵被按下時(shí),則對(duì)應(yīng)的列掃描線必然會(huì)被讀 回高電平,如果是無(wú)鍵盤按下時(shí),則讀取的列碼必定全是 0(低電平)。 4 4 鍵盤電路原理圖如圖 所示。在圖 中可以看到兩組排針 J8和 J13,可以用來(lái)測(cè) 量 DAC 的輸出波形;另外拔掉跳線,可以斷開(kāi) DAC 到實(shí)驗(yàn)箱的音頻放大通路,使得 DAC 通道處于開(kāi)路狀態(tài)。只需將 5V DC 直接從“外接 5V 輸入”端即 J1 輸入,為系統(tǒng)供電即可。這兩個(gè)口的每一位都可 以通過(guò)編程單獨(dú)定義為輸入或輸出口。 ( 9) 接口,提供完整的單片機(jī)固體程序、上位機(jī)驅(qū)動(dòng)程序源代碼及其完整的軟件包和應(yīng)用范例,可直接進(jìn)行 USB 通訊。 系統(tǒng) 組成結(jié)構(gòu) 及原理 系統(tǒng)組成結(jié)構(gòu) 1)實(shí)驗(yàn)箱功能區(qū)域劃分圖 圖 實(shí)驗(yàn)箱功能區(qū)域劃分圖 2)硬件配置 以下是為凌陽(yáng)科技大學(xué)計(jì)劃實(shí)驗(yàn)箱的主要硬件配置: ( 1)主控芯片 SPCE061A,凌陽(yáng) 16 位單片機(jī),詳細(xì)請(qǐng)參見(jiàn)第三章。具體的鍵和語(yǔ)音的對(duì)應(yīng)關(guān)系如表 1。本次課程設(shè)計(jì)是基于凌陽(yáng) 16 位單片機(jī) SPCE061A 的 4X4鍵盤語(yǔ)音播放設(shè)計(jì),當(dāng)按不同鍵值會(huì) 自動(dòng) 播放不同的語(yǔ)音,并且在第一個(gè)數(shù)碼管上顯示鍵值。 利用凌陽(yáng)單片機(jī) SPCE061A 可以方便的實(shí)現(xiàn)鍵盤控制的語(yǔ)音自動(dòng)播放功能。按鍵以后, SPCE061A 單片機(jī)進(jìn)行行掃描,確定哪個(gè)鍵按下; 確定之后,利用一種算法計(jì)算鍵值,比如當(dāng) S5 按下時(shí),在 IOA 口高八位得到的值應(yīng)該為 01001000B,這時(shí)候利用一種算法可以讓鍵值為“ 4”;或者直接當(dāng)這里的行掃描值為 0100、讀到列碼 1000 時(shí),讓返回的鍵值為“ 4”。 ( 6)雙色 8 8 LED 點(diǎn)陣,可以完成圖形、字模顯示。 SPCE061A 單片機(jī) 1) 功能特點(diǎn) 本系統(tǒng)以凌陽(yáng)自主開(kāi)發(fā)的十六位單片機(jī) SPCE061A 作為主控芯片,它是凌陽(yáng)十六位單片機(jī)系列中的一款,具有以下功能特性: ( 1) 16 位 unsp 系列微處理器; ( 2) 工作電壓: VDD 為 ~(cpu), VDDH 為 ~(I/O); ( 3) CPU 時(shí)鐘: ~ ; ( 4) 內(nèi)置 2K 字 SRAM; ( 5) 內(nèi)置 32K 字 FLASH; ( 6) 內(nèi)置可編程音頻處理電路; ( 7) 時(shí)鐘電路采用晶體振蕩器電路 。此時(shí)須將 J37 的 V3和 VDDH 短接起來(lái)。其中 J9 為 2V A/D 參考電壓輸入端口,當(dāng)用跳線將 J9 的 2 腳短接,為選擇 2V 的 A/D 參考電壓;如果選擇使用外部參考電壓,則將電壓從 J9 左邊的引腳( 1 腳)輸入即可,外部參考電壓范圍為 0- 。 第 9 頁(yè) 共 26 頁(yè) 圖 音頻輸出電路實(shí)物圖 4 4 鍵盤和 6位 8段數(shù)碼管 4 4 鍵盤和 6 位 8 段數(shù)碼管,能滿足按鍵顯示的基礎(chǔ)實(shí)驗(yàn),以及電子鐘之類的相關(guān)興趣實(shí)驗(yàn)。 S19 詳細(xì)含義見(jiàn)表 。按照 4 4 鍵盤的工作原理,先只把 IOA12 輸 第 12 頁(yè) 共 26 頁(yè) 出高電平,其他都輸出低電平,掃描 IOA8 到 IOA11 四個(gè)輸入口的值,如果每個(gè)輸入口的值還是 0;再把 IOA13 輸出高電平,其他都輸出低電平,掃描 IOA8 到IOA11 四個(gè)輸入口的值,如果每個(gè)輸入口還沒(méi)有檢測(cè)到高電平;從 IOA14 輸出高電平掃描,從 IOA15 輸出高電平掃描,直到檢測(cè)到高電平,保存掃描行值和列碼。 第 14 頁(yè) 共 26 頁(yè) 程序主流程圖 主程序流程圖如 圖 ,先要初始化鍵盤掃描和顯示以及中斷,因?yàn)橐シ耪Z(yǔ)音,要對(duì)語(yǔ)音播放進(jìn)行初始化,這里初始化為自動(dòng)播放的方式;調(diào)用鍵盤程序取鍵值,這里可以用前幾個(gè)實(shí)驗(yàn)的鍵盤程序;用第一個(gè)數(shù)碼管顯示取到的鍵值;把語(yǔ)音播放音量設(shè)置為最大音量 15,這個(gè)主要受語(yǔ)音資源的影響,如果能聽(tīng)清楚,可以不設(shè)置音量,默認(rèn)的音量為 8;根據(jù)鍵值播放實(shí)驗(yàn)要求相應(yīng)的語(yǔ)音語(yǔ)句;執(zhí)行清看門狗操作,返回繼續(xù)掃描鍵盤。 SPCE061A 單片機(jī)取得鍵值后,利用自動(dòng)播放的方式播放相應(yīng)索引號(hào)的語(yǔ)音資源。 通過(guò)這次課程設(shè)計(jì)我基本學(xué)會(huì)了智能儀器設(shè)計(jì)的步聚和基本方法,提高了動(dòng)手能力,增強(qiáng)了理論聯(lián)系實(shí)際的能力,分組工作的方式給了我與同學(xué)合作的機(jī)會(huì),提高了與人合作的意識(shí)與能力,同時(shí)也培養(yǎng)和發(fā)展了同學(xué)之間的感情,對(duì)此我感到非常欣慰。 //按鍵標(biāo)識(shí) // 語(yǔ)法格式: int main(void) // 實(shí)現(xiàn)功能: 主函數(shù) // 參數(shù): 無(wú) // 返回值: 0 unsigned int KeyDataChange(unsigned int Key_Data)。 SACM_S480_Initial(Auto)。 //播放語(yǔ)音資源 s1 case 2: SACM_S480_Play(1,DAC1+DAC2,Ramp_UpDn_On)。//播放語(yǔ)音資源 s5 case 6: SACM_S480_Play(5,DAC1+DAC2,Ramp_UpDn_On)。//播放語(yǔ)音資源 s9 case 0:SACM_S480_Play(9,DAC1+DAC2,Ramp_UpDn_On)。 case KEY_1: Key_Data = 8。 第 26 頁(yè) 共 26 頁(yè) case KEY_5: Key_Data = 5。 case KEY_9: Key_Data = 2。 case KEY_D: Key_Data = 0。 } ret