基于單片機(jī)設(shè)計(jì)的語音控制電子鐘-大學(xué)畢業(yè)論文畢業(yè)設(shè)計(jì)學(xué)位論文范文模板參考資料_第1頁
基于單片機(jī)設(shè)計(jì)的語音控制電子鐘-大學(xué)畢業(yè)論文畢業(yè)設(shè)計(jì)學(xué)位論文范文模板參考資料_第2頁
基于單片機(jī)設(shè)計(jì)的語音控制電子鐘-大學(xué)畢業(yè)論文畢業(yè)設(shè)計(jì)學(xué)位論文范文模板參考資料_第3頁
基于單片機(jī)設(shè)計(jì)的語音控制電子鐘-大學(xué)畢業(yè)論文畢業(yè)設(shè)計(jì)學(xué)位論文范文模板參考資料_第4頁
基于單片機(jī)設(shè)計(jì)的語音控制電子鐘-大學(xué)畢業(yè)論文畢業(yè)設(shè)計(jì)學(xué)位論文范文模板參考資料_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

摘要鐘是現(xiàn)代人類日常生活必不可少的工具,語音時(shí)鐘更是現(xiàn)在電子時(shí)鐘多功能化開展的一個(gè)方向。語音電子鐘具有突出的播報(bào)時(shí)間的功能,它被廣泛用在生活中的各種場(chǎng)合。本設(shè)計(jì)就是從日常生活中常見的事物入手,通過對(duì)語音電子鐘的設(shè)計(jì),讓我認(rèn)識(shí)到單片機(jī)已經(jīng)深入到我們生活的每個(gè)領(lǐng)域。本文從語音電子鐘的設(shè)計(jì)原理、設(shè)計(jì)方案入手,詳細(xì)介紹了系統(tǒng)硬件設(shè)計(jì)、軟件設(shè)計(jì)及調(diào)試。在語音電子鐘的設(shè)計(jì)中,要處理好以下幾個(gè)關(guān)鍵:D/A〔數(shù)/?!侈D(zhuǎn)換,語音識(shí)別,人機(jī)接口,程序設(shè)計(jì)。D/A〔數(shù)/模〕和語音識(shí)別技術(shù)關(guān)系到時(shí)間的正確播報(bào),人機(jī)接口是播報(bào)時(shí)間和調(diào)整時(shí)間的關(guān)鍵。利用凌陽SPCE061A單片機(jī)在語音識(shí)別和處理方面的優(yōu)點(diǎn),結(jié)合實(shí)踐,設(shè)計(jì)出有特色的語音電子鐘。關(guān)鍵字:SPCE061A單片機(jī)SPLC501液晶顯示器語音報(bào)時(shí)第一章緒論第一節(jié)選題的目的和意義帶有語音功能的電子產(chǎn)品和電子設(shè)備近年來廣泛地出現(xiàn)在我們的生活中。語音時(shí)鐘是現(xiàn)在電子時(shí)鐘多功能化開展的一個(gè)方向,將語音引入到時(shí)鐘中實(shí)現(xiàn)時(shí)間的語音播報(bào)。本設(shè)計(jì)是一個(gè)基于凌陽61A單片機(jī)的語音報(bào)時(shí)系統(tǒng),利用凌陽61A板這樣一種本身就帶有語音識(shí)別和播放功能的單片機(jī)來進(jìn)行時(shí)間的播報(bào)。并且用SPLC501液晶顯示器顯示當(dāng)前的時(shí)間、日期、星期、農(nóng)歷、鬧鈴開關(guān)。單片機(jī)是實(shí)現(xiàn)各種控制策略和算法的載體。因其功耗低,超小型,低本錢,功能完整,非常適用于便攜式儀表和就地式顯示控制儀表,在國內(nèi)越來越受到用戶的重視和廣泛的應(yīng)用。隨著單片機(jī)集成化程度的不斷提高,現(xiàn)代單片機(jī)已經(jīng)具備了數(shù)字信號(hào)處理功能,使語音信號(hào)處理用單片機(jī)實(shí)現(xiàn)成為可能。SPCE061A是以μ'nSPTM16位微控制器及信號(hào)處理器芯片為內(nèi)核的16位單片機(jī),采用模塊式集成結(jié)構(gòu),片內(nèi)集成了2KBRAM、32KBFlash、ADC、DAC、并行I/O等。第二節(jié)單片機(jī)的介紹單片機(jī),亦稱單片微電腦或單片微型計(jì)算機(jī)。它是把中央處理器(CPU)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、輸入/輸出端口(I/O)等主要計(jì)算機(jī)功能部件都集成在一塊集成電路芯片上的微型計(jì)算機(jī)。一、單片機(jī)的開展如果將8位單片機(jī)的推出作為起點(diǎn),那么單片機(jī)的開展歷史大致可分為以下幾個(gè)階段。1.第一階段〔1976-1978〕:?jiǎn)纹瑱C(jī)的控索階段。以Intel公司的MCS–48為代表。MCS–48的推出是在工控領(lǐng)域的控索,參與這一控索的公司還有Motorola、Zilog等,都取得了滿意的效果。這就是SCM的誕生年代,“單機(jī)片〞一詞即由此而來。2.第二階段〔1978-1982〕單片機(jī)的完善階段。Intel公司在MCS–48根底上推出了完善的、典型的單片機(jī)系列MCS–51。它在以下幾個(gè)方面奠定了典型的通用總線型單片機(jī)體系結(jié)構(gòu)。1〕完善的外部總線。MCS-51設(shè)置了經(jīng)典的8位單片機(jī)的總線結(jié)構(gòu),包括8位數(shù)據(jù)總線、16位地址總線、控制總線及具有多機(jī)通信功能的串行通信接口。2〕CPU外圍功能單元的集中管理模式。3〕表達(dá)工控特性的位地址空間及位操作方式。4〕指令系統(tǒng)趨于豐富和完善,并且增加了許多突出控制功能的指令。3.第三階段〔1982-1990〕:8位單片機(jī)的穩(wěn)固開展及16位單片機(jī)的推出階段,也是單片機(jī)向微控制器開展的階段。Intel公司推出的MCS–96系列單片機(jī),將一些用于測(cè)控系統(tǒng)的模數(shù)轉(zhuǎn)換器、程序運(yùn)行監(jiān)視器、脈寬調(diào)制器等納入片中,表達(dá)了單片機(jī)的微控制器特征。隨著MCS–51系列的廣泛應(yīng)用,許多電氣廠商競(jìng)相使用80C51為內(nèi)核,將許多測(cè)控系統(tǒng)中使用的電路技術(shù)、接口技術(shù)、多通道A/D〔模/數(shù)〕轉(zhuǎn)換部件、可靠性技術(shù)等應(yīng)用到單片機(jī)中,增強(qiáng)了外圍電路的功能,強(qiáng)化了智能控制的特征。4.第四階段〔1990—現(xiàn)在〕:微控制器的全面開展階段。隨著單片機(jī)在各個(gè)領(lǐng)域全面深入地開展和應(yīng)用,出現(xiàn)了高速、大尋址范圍、強(qiáng)運(yùn)算能力的8位/16位/32位通用型單片機(jī),以及小型廉價(jià)的專用型單片機(jī)。單片機(jī)的主要開展趨勢(shì)。1.CMOS化。近年,由于CHMOS技術(shù)的進(jìn)步,大地促進(jìn)了單片機(jī)的CMOS化。。單片機(jī)芯片多數(shù)是采用CMOS〔金屬柵氧化物〕半導(dǎo)體工藝生產(chǎn)。CMOS電路的特點(diǎn)是低功耗、高密度、低速度、低價(jià)格。2.低功耗化。單片機(jī)的功耗已從Ma級(jí),甚至1uA以下;使用電壓在3V-6V之間,完全適應(yīng)電池工作。3.低電壓化。幾乎所有的單片機(jī)都有WAIT、STOP等省電運(yùn)行方式。目前0.8V供電的單片機(jī)已經(jīng)問世。4.低噪聲與高可靠性。5.大容量化。目前,單片機(jī)內(nèi)ROM最大可達(dá)64KB,RAM最大為2KB。6.高性能化。主要是指進(jìn)一步改良CPU的性能,加快指令運(yùn)算的速度和提高系統(tǒng)控制的可靠性。7.小容量、低價(jià)格化。以4位、8位機(jī)為中心的小容量、低價(jià)格化也是開展動(dòng)向之一。8.外圍電路內(nèi)裝化。隨著集成度的不斷提高,有可能把眾多的各種處圍功能器件集成在片內(nèi)。片內(nèi)集成的部件還有模/數(shù)轉(zhuǎn)換器、DMA控制器、聲音發(fā)生器、監(jiān)視定時(shí)器、液晶顯示驅(qū)動(dòng)器、彩色電視機(jī)和錄像機(jī)用的鎖相電路等。單片機(jī)是微型機(jī)的一個(gè)主要分支,在結(jié)構(gòu)上的最大特點(diǎn)是把CPU、存儲(chǔ)器、定時(shí)器和多種輸入/輸出接口電路集成在一塊超大規(guī)模集成電路芯片上。就其組成和功能而言,一塊單片機(jī)芯片就是一臺(tái)計(jì)算機(jī)。1.單片機(jī)的組成它通過內(nèi)部總線把計(jì)算機(jī)的各主要部件接為一體,其內(nèi)部總線包括地址總線、數(shù)據(jù)總線和控制總線。其中,地址總線的作用是在進(jìn)行數(shù)據(jù)交換時(shí)提供地址,CPU通過它們將地址輸出到存儲(chǔ)器或I/O接口;數(shù)據(jù)總線的作用是在CPU與存儲(chǔ)器或I/O接口之間,或存儲(chǔ)器與外設(shè)之間交換數(shù)據(jù);控制總線包括CPU發(fā)出的控制信號(hào)線和外部送入CPU的應(yīng)答信號(hào)線等。2.單片機(jī)的特點(diǎn)1〕有優(yōu)異的性能價(jià)格比。2〕集成度高、體積小、有很高的可靠性。3〕控制功能強(qiáng)。4〕低功耗、低電壓,便于生產(chǎn)便攜式產(chǎn)品。5〕外部總線增加了IC〔Inter-IntegratedCircuit〕及SPI〔SerialPeripheralInterface〕等串行總線方式,進(jìn)一步縮小了體積,簡(jiǎn)化了結(jié)構(gòu)。6〕單片機(jī)的系統(tǒng)擴(kuò)展和系統(tǒng)配置較典型、標(biāo)準(zhǔn),容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。1.單片機(jī)在智能儀表中的應(yīng)用2.單片機(jī)在機(jī)電一體化中的應(yīng)用3.單片機(jī)在實(shí)時(shí)控制中的應(yīng)用第二章語音電子鐘的原理和方案第一節(jié)設(shè)計(jì)原理根據(jù)設(shè)計(jì)要求,語音電子鐘要具備的功能:1.可以語音播報(bào)日期和時(shí)間。2.可以在SPLC501液晶模組上面顯示時(shí)間、日期、農(nóng)歷、星期、鬧鐘。3.整點(diǎn)報(bào)時(shí)功能。4.具備鬧鐘功能。5.鬧鐘的鈴聲可以選擇。6.具備秒表功能。時(shí)鐘功能是利用SPCE061A芯片的時(shí)鐘頻率和定時(shí)/計(jì)數(shù)器設(shè)計(jì)。SPCE061A芯片為語音電子鐘提供一個(gè)頻率穩(wěn)定準(zhǔn)確的32768Hz方波信號(hào),此外還有一校正電容可以對(duì)溫度進(jìn)行補(bǔ)償,以提高頻率準(zhǔn)確度和穩(wěn)定度,可保證語音電子鐘的走時(shí)準(zhǔn)確及穩(wěn)定。整個(gè)系統(tǒng)工作時(shí),秒信號(hào)產(chǎn)生器是整個(gè)系統(tǒng)的時(shí)基信號(hào),它直接決定計(jì)時(shí)系統(tǒng)的精度,將標(biāo)準(zhǔn)秒信號(hào)送入“秒計(jì)數(shù)器〞,“秒計(jì)數(shù)器〞采用60進(jìn)制計(jì)數(shù)。每累計(jì)60秒發(fā)出一個(gè)“分脈沖〞信號(hào),該信號(hào)將作為“分計(jì)數(shù)器〞的時(shí)鐘脈沖?!胺钟?jì)數(shù)器〞也采用60進(jìn)制計(jì)數(shù)器,每累計(jì)60分鐘,發(fā)出一個(gè)“時(shí)脈沖〞信號(hào),該信號(hào)將被送到“時(shí)計(jì)數(shù)器〞。“時(shí)計(jì)數(shù)器〞采用24進(jìn)制計(jì)時(shí)器,可實(shí)現(xiàn)對(duì)一天24小時(shí)的累計(jì),每累計(jì)24小時(shí),發(fā)出一個(gè)“星期脈沖〞信號(hào),該信號(hào)將被送到“星期計(jì)數(shù)器〞,“星期計(jì)數(shù)器〞采用7進(jìn)制計(jì)時(shí)器,可實(shí)現(xiàn)對(duì)一周7天的累計(jì)。每累計(jì)24小時(shí)發(fā)出一個(gè)“天脈沖〞信號(hào)。該信號(hào)將作為“年計(jì)數(shù)器〞的時(shí)鐘脈沖信號(hào)。由中斷程序控制“年計(jì)數(shù)器〞采用365或366進(jìn)制計(jì)數(shù),實(shí)現(xiàn)對(duì)年的累計(jì)。顯示電路將“時(shí)〞、“分〞、“秒〞、“星期〞、“年〞計(jì)數(shù)器的輸出狀態(tài)送到SPLC501液晶顯示器顯示出來。語音輸出功能利用SPY0030A芯片和外接喇叭進(jìn)行音頻輸出。SPY0030A是凌陽公司開發(fā)的專門用于語音信號(hào)放大的芯片。J3是語音輸出接口,一個(gè)2pin的插針外接喇叭,由DAC輸出引腳21或22經(jīng)語音集成放大器SPYOO30A放大,然后輸出。SPY0030A相當(dāng)于LM386,但是比386音質(zhì)好,它可以工作在2.4-6.0V范圍內(nèi),最大輸出功率可達(dá)700mW。第二節(jié)設(shè)計(jì)方案通過對(duì)設(shè)計(jì)要求和設(shè)計(jì)原理的仔細(xì)分析,本次設(shè)計(jì)采用模塊結(jié)構(gòu)實(shí)現(xiàn)。語音電子鐘主要由系統(tǒng)初始化模塊、輸入按鍵信息模塊、語音輸入與A/D〔模/數(shù)〕轉(zhuǎn)換模塊、壓縮編碼模塊和D/A〔數(shù)/?!侈D(zhuǎn)換模塊、SPLC501液晶模組組成。實(shí)現(xiàn)單獨(dú)播報(bào)年、月、日和時(shí)、分,實(shí)現(xiàn)定時(shí)功能,并且能夠?qū)λ鼈兎謩e進(jìn)行調(diào)整。設(shè)計(jì)復(fù)位鍵對(duì)設(shè)定值進(jìn)行清零操作。組成電路板各模塊應(yīng)具有如下功能:1.系統(tǒng)初始化模塊:輸入一些變量與子小模塊,進(jìn)行賦初值等處理,輸出變量和模塊的初始狀態(tài)。2.輸入按鍵信息模塊:輸入鍵值,等待系統(tǒng)中斷并進(jìn)行相應(yīng)的中斷處理,輸出為調(diào)用相應(yīng)的鍵處理程序。3.語音輸入與A/D〔模/數(shù)〕轉(zhuǎn)換模塊:輸入語音信號(hào),進(jìn)行A/D〔模/數(shù)〕轉(zhuǎn)換,輸出語音的數(shù)字信號(hào)。4.壓縮編碼模塊:輸入語音的數(shù)字信號(hào),經(jīng)過語音壓縮函數(shù)的處理,輸出語音的壓縮編碼。5.D/A〔數(shù)/模〕轉(zhuǎn)換模塊:輸入語音的數(shù)字信號(hào),進(jìn)行D/A〔數(shù)/?!侈D(zhuǎn)換輸出語音的模擬信號(hào)。6.SPLC501液晶顯示器:顯示當(dāng)前的時(shí)間、日期、農(nóng)歷、星期、鬧鐘。第三章語音電子鐘的硬件設(shè)計(jì)第一節(jié)系統(tǒng)總體硬件結(jié)構(gòu)語音電子鐘的系統(tǒng)結(jié)構(gòu)如圖3.1,61板作為整個(gè)系統(tǒng)的控制中心,負(fù)責(zé)控制鍵盤掃描;年、月、日、星期以及時(shí)間的計(jì)算;SPLC501A液晶顯示的驅(qū)動(dòng);并根據(jù)按鍵值播報(bào)當(dāng)前的日期或者時(shí)間。圖3.1語音電子鐘的系統(tǒng)結(jié)構(gòu)圖硬件功能模塊連接:用61板控制語音電子鐘系統(tǒng),使用IOA口的高八位、IOB的4、5、6共11個(gè)I/O口連接SPLC501A液晶模組,另外使用了61板的語音輸出模塊;以及61板上的三個(gè)按鍵。硬件連接如圖3.2所示:圖3.2語音電子鐘的電路連接圖語音電子鐘的連接示意圖見圖3.2,IOA的高八位接到液晶模組的八個(gè)數(shù)據(jù)端,同時(shí)也連接了液晶模組的電源,即直接用一根10pin的排線連接61板“+〞、IOA8-15、“-〞與SPLC501A液晶顯示模組的“+〞、DB0-7、“-〞,主要用來向液晶模組傳送命令和數(shù)據(jù);IOB6接EP,IOB5接R/W,IOB4接AO,用來控制液晶的顯示和工作方式。語音電子鐘的各個(gè)按鍵功能如圖3.3所示,按KEY1鍵:進(jìn)入功能選擇界面。按KEY2鍵:播報(bào)當(dāng)前的時(shí)間。按KEY3鍵:播報(bào)當(dāng)前的日期。KEY2、KEY3鍵同時(shí)按下:控制鬧鐘的開與關(guān)。在時(shí)間顯示界面上按KEY1鍵會(huì)進(jìn)入功能選擇菜單,功能菜單界面上有4個(gè)選項(xiàng)。分別是時(shí)間日期調(diào)整、鬧鐘設(shè)置、秒表功能、返回。功能選擇菜單界面里KEY1為確定鍵,KEY2為下翻鍵,KEY3為上翻鍵??梢噪S意選擇所要實(shí)現(xiàn)的操作。時(shí)間日期調(diào)整界面里KEY1為確定鍵,KEY2為加一鍵,KEY3為減一鍵,SPLC501液晶顯示器上閃爍的局部表示當(dāng)前正在調(diào)整的選項(xiàng),當(dāng)設(shè)置完成后,按KEY1會(huì)自動(dòng)退出設(shè)置界面。鬧鐘設(shè)置界面里KEY1為確定鍵,KEY2為下翻鍵,KEY3為上翻鍵。鬧鐘設(shè)置界面里有鬧鐘時(shí)間設(shè)置和鬧鐘鈴聲選擇兩個(gè)選項(xiàng)。鬧鐘時(shí)間設(shè)置界面KEY1為確定鍵,KEY2為加一鍵,KEY3為減一鍵,SPLC501液晶顯示器上閃爍的局部表示當(dāng)前正在調(diào)整的選項(xiàng),當(dāng)設(shè)置完成后,按KEY1會(huì)自動(dòng)退出設(shè)置界面。.鬧鐘鈴聲設(shè)置界面里KEY1為確定鍵,KEY2為選擇鍵,KEY3為播放當(dāng)前選擇的鈴聲鍵。當(dāng)鬧鐘響時(shí),按下三個(gè)鍵中的任何一個(gè)都可以關(guān)閉鬧鐘。秒表功能界面里KEY1為退出鍵,KEY2為開始/暫停鍵,KEY3為清零鍵,只有當(dāng)秒表停止運(yùn)行時(shí)KEY3才有效。返回功能里KEY1為確認(rèn)鍵,按下后,系統(tǒng)會(huì)回到顯示界面。圖3.3語音電子鐘的按鍵功能結(jié)構(gòu)圖硬件設(shè)計(jì)按照SPCE061A、音頻輸出、語音輸入、數(shù)模轉(zhuǎn)換、分模塊設(shè)計(jì)。利用Protel99來繪制各個(gè)局部的電路原理圖。第二節(jié)SPCE061A芯片SPCE061A芯片內(nèi)部集成了ICE(在線實(shí)時(shí)仿真/除錯(cuò)器)、FLASH(閃存)、SRAM(靜態(tài)內(nèi)存)、通用I/O端口、定時(shí)器/計(jì)數(shù)器、中斷控制、CPU時(shí)鐘鎖相環(huán)(PLL)、ADC(模擬數(shù)字轉(zhuǎn)換器)、DAC(數(shù)字模擬轉(zhuǎn)換器)輸出、UART(同步串行輸入輸出接口)、SIO(串行輸入輸出接口)、低電壓監(jiān)測(cè)/低電壓復(fù)位模塊。μ’nSP的核心由總線、ALU算術(shù)邏輯運(yùn)算單元、存放器組、中斷系統(tǒng)及堆棧等局部組成。1.16位μ’nSP微處理器。2.工作電壓〔CPU〕VDD為3.0-3.6V,〔I/O〕VDDH為3.0-5.5V。3.CPU時(shí)鐘:0.32-49.152MHz。4.內(nèi)置2K字SRAM。5.內(nèi)置32K字FLASH。6.可編程音頻處理。7.晶體振蕩器。8.系統(tǒng)處于備用狀態(tài)下〔時(shí)鐘處于停止?fàn)顟B(tài)〕,耗電僅為2uA/3.6V。9.2個(gè)16位可編程定時(shí)器/計(jì)數(shù)器〔可自動(dòng)預(yù)置初始計(jì)數(shù)值〕。10.2個(gè)10位DAC〔數(shù)/模轉(zhuǎn)換〕輸出通道。11.32位通用可編程輸入/輸出通道。12.14個(gè)中斷源可來自定時(shí)器A/B、時(shí)基、2個(gè)外部時(shí)鐘源輸入和鍵喚醒。13.具備觸鍵喚醒的功能。14.用凌陽音頻編碼SACM_S480可以播放壓縮的語音資源。15.鎖相環(huán)PLL振蕩器提供系統(tǒng)時(shí)鐘信號(hào)。16、32768Hz實(shí)時(shí)時(shí)鐘。17.7通道10位電壓模/數(shù)轉(zhuǎn)換器〔ADC〕和單通道聲音模/數(shù)轉(zhuǎn)換器。18.聲音模/數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器,并具有自動(dòng)增益控制〔AGC〕功能。19.具備串行設(shè)備接口。20.具備低電壓復(fù)位功能和低電壓檢測(cè)功能。21.內(nèi)置在線仿真電路接口。22.具有WatchDog功能。SPCE061A實(shí)物如圖3.4所示。圖3.4SPCE061A實(shí)物排列圖SPCE061A的結(jié)構(gòu)如圖3.5所示:圖3.5SPCE061A的PLCC84封裝引腳SPCE061A的PLCC84封裝管腳說明如表3.1所示。引腳說明IOA0-IOA15(41-48、53、54-60)I/O口A,共16個(gè)IOB0-IOB15(5-1、81-76、68-64)I/O口B,共16個(gè)OSCI〔13腳〕32768Hz晶振輸入管腳OSCO〔12腳〕32768Hz晶振輸出管腳RES_B(6腳)復(fù)位輸入XICE〔16腳〕ICE使能端,接PROBE的使能腳ICE_ENXICECLK〔17腳〕ICE時(shí)鐘端,接PROBE的時(shí)鐘腳ICE_SCKXICESDA〔18腳〕ICE數(shù)據(jù)端,接PROBE的數(shù)據(jù)腳ICE_SDAPVIN〔20腳〕程序保密設(shè)定腳PFUSE〔29腳〕程序保密設(shè)定腳DAC1〔21腳〕音頻輸出通道1DAC2〔22腳〕音頻輸出通道2VREF2〔23腳〕2V參考電壓輸出腳AGC〔25腳〕語音輸入自動(dòng)增益控制引腳OPI〔26腳〕Microphone的第二運(yùn)放輸入腳MICOUT〔27腳〕Microphone的第一運(yùn)放輸出腳MICN〔28腳〕Microphone的負(fù)向輸入腳MICP〔33腳〕Microphone的正向輸入腳VRT〔35腳〕A/D轉(zhuǎn)換外部參考電壓輸入腳VCM〔34腳〕ADC參考電壓輸出腳VMIC〔37腳〕Microphone的電源XSLEEP〔63腳〕睡眠狀態(tài)指示腳VCP〔8腳〕鎖相環(huán)壓控振蕩器的阻容輸入XROMT、PVPP、XTEXST〔61、69、14〕出廠測(cè)試引腳,懸空即可VDDH〔51、52、75腳〕I/O電平參考。VDD〔7腳〕PLL鎖相環(huán)電源VSS〔9腳〕鎖相環(huán)地VSS〔19、24腳〕模擬地VSS〔38、49、50、62腳〕數(shù)字地VDD〔15、36腳〕數(shù)字電源注:在PLCC84封裝中,有15個(gè)空余腳,使用時(shí)這15個(gè)空余腳懸浮??蓪FUSE接5V,PVIN接GND并維持1s以上即可將內(nèi)部保險(xiǎn)絲熔化,此后就無法讀取和向閃存加載數(shù)據(jù)。表3.1SPCE061A的PLCC84封裝管腳說明SPCE061A系統(tǒng)的特性參數(shù)如表3.2所示:特性參數(shù)SPCE061A工作電壓2.6V-3.6V最大工作速率49.152MHzCPU16位SRAM容量2K字ROM容量(字)32K閃存并行I/O端口AIOA15-0并行I/O端口BIOB15-0音頻輸出DAC×2中斷源TimerA/B時(shí)基信號(hào)發(fā)生器外部中斷觸鍵喚醒喚醒源IOA7-0其它中斷定時(shí)器/計(jì)數(shù)器雙16位加計(jì)數(shù)定時(shí)器/計(jì)數(shù)器雙通道PWM輸出UART7通道10位電壓模數(shù)轉(zhuǎn)換器(ADC)單通道聲音模數(shù)轉(zhuǎn)換器(ADC)串行SRAM接口具備晶振具備低電壓復(fù)位具備低電壓監(jiān)測(cè)具備內(nèi)置ICE接口具備上電復(fù)位具備麥克風(fēng)放大器和自動(dòng)增益控單通道節(jié)電功能具備中斷控制功能具備觸鍵喚醒功能具備表3.2系統(tǒng)特性參數(shù)SPCE061A的內(nèi)核由總線、算術(shù)邏輯運(yùn)算單元、存放器組、中斷系統(tǒng)及堆棧等局部組成。算術(shù)邏輯運(yùn)算單元ALU:SPCE061A的ALU在運(yùn)算能力上很有特色,它不僅能做16位根本的算術(shù)邏輯運(yùn)算,也能做帶移位操作的16位算術(shù)邏輯運(yùn)算,同時(shí)還能做用于數(shù)字信號(hào)處理的16位×16位的乘法運(yùn)算和內(nèi)積運(yùn)算。1.算術(shù)邏輯運(yùn)算器SPCE061A的ALU前面串接有一個(gè)移位器SHIFTER,也就是說,操作數(shù)在經(jīng)過ALU的算數(shù)邏輯操作前可先進(jìn)行移位處理,然后再經(jīng)ALU完成算邏運(yùn)算操作。移位包括:算術(shù)右移、邏輯左移、邏輯右移、循環(huán)左移以及循環(huán)右移。所以,SPCE061A的指令系統(tǒng)里專有一組復(fù)合式的‘移位算術(shù)邏輯操作’指令;此一條指令完成移位和算術(shù)邏輯操作兩項(xiàng)功能。SPCE061A的CPU存放器組里有8個(gè)16位存放器,可分為通用型存放器和專用型存放器兩大類別。通用型存放器包括:R1-R4,作為算術(shù)邏輯運(yùn)算的源及目標(biāo)存放器。專用型存放器包括SP、BP、SR、PC,是與CPU特定用途相關(guān)的存放器。2.SPCE061A片內(nèi)存儲(chǔ)器結(jié)構(gòu)SPCE061A單片機(jī)的存儲(chǔ)器有2K字的SRAM〔包括堆棧區(qū)〕和32K字閃存〔FLASH〕。SPCE061A有2K字的SRAM(包括堆棧區(qū)),其地址范圍從0x0000到0x07FF。前64個(gè)字,即0x0000-0x003F地址范圍內(nèi)可采用6位地址直接地址尋址方法,尋訪速度為2個(gè)CPU時(shí)鐘周期;其余0x0040-0x07FF地址范圍內(nèi)存儲(chǔ)器的尋訪速度那么為3個(gè)CPU時(shí)鐘周期。堆棧是在內(nèi)存RAM區(qū)專門開辟出來的按照“先進(jìn)后出〞原那么進(jìn)行數(shù)據(jù)存取的一種工作方式,主要用于子程序調(diào)用及返回和中斷處理斷點(diǎn)的保護(hù)及返回。堆棧的最大容量范圍限制在2K字RAM內(nèi),即其地址范圍從0X07FF到0X0000的存儲(chǔ)器范圍中。值得注意的是堆棧的生長(zhǎng)方向,SPCE061A系統(tǒng)復(fù)位后,SP初始化為0x07FF,每執(zhí)行PUSH指令一次,SP指針減一。SPCE061A是一個(gè)用閃存替代掩膜ROM的MTP(屢次編程)芯片,具有32K字閃存容量。用戶可用閃存來存儲(chǔ)用戶程序。為了平安起見,不對(duì)用戶開放整體擦除功能。用戶必須通過向P_Flash_Ctrl(寫)($7555H)單元寫入0xAAAA來激活閃存的存取功能,從而訪問閃存。然后,向P_Flash_Ctrl(寫)($7555H)單元寫入0x5511,來擦除頁的內(nèi)容。寫入0x5533,對(duì)閃存編程。這些指令不能被任何其他的操作包括中斷、ICE的單步跟蹤動(dòng)作打斷。這是因?yàn)殚W存控制器必須保證閃存處于編程狀態(tài)。如果一些其它的進(jìn)程插入到當(dāng)前的執(zhí)行隊(duì)列里,閃存的狀態(tài)將發(fā)生改變,擦除頁和編程的操作不能再繼續(xù)進(jìn)行。此外,為保證程序的正確編寫,用戶必須在編程之前擦除頁的內(nèi)容。頁大小為0x100。第一頁地址范圍:0x8000-0x80FF,最后一頁的地址范圍:0xFF00-0xFFFF。0xFC00-0xFFFF范圍內(nèi)的地址由系統(tǒng)保存,用戶最好不要用本范圍內(nèi)的地址。32K字的內(nèi)嵌式閃存被劃分為128個(gè)頁,它們?cè)贑PU正常運(yùn)行狀態(tài)下均可通過程序擦除或?qū)懭?。全?2K字閃存均可在ICE工作方式下被編程寫入或被擦除。在芯片上電以后,芯片就處于讀存儲(chǔ)單元狀態(tài),讀存儲(chǔ)單元的操作與SRAM相同。3.SPCE061A輸入/輸出接口輸入/輸出接口是單片機(jī)與外設(shè)交換信息的通道。輸入端口負(fù)責(zé)從外界接收檢測(cè)信號(hào)、鍵盤信號(hào)等各種開關(guān)量信號(hào)。輸出端口負(fù)責(zé)向外界輸送由內(nèi)部電路產(chǎn)生的處理結(jié)果、顯示信息、控制命令、驅(qū)動(dòng)信號(hào)等。μ’nSP內(nèi)有并行和串行兩種方式的I/O口。并行口線路本錢較高,但是傳輸速率也很高;與并行口相比,串行口的傳輸速率較低但可以節(jié)省大量的線路本錢。SPCE061A有兩個(gè)16位通用的并行I/O口:A口和B口。這兩個(gè)口的每一位都可通過編程單獨(dú)定義成輸入或輸出口。A口的IOA0-IOA7用作輸入口時(shí)具有喚醒功能,即具有輸入電平變化引起CPU中斷功能。在那些用電池供電、追求低能耗的應(yīng)用場(chǎng)合,可以應(yīng)用CPU的睡眠模式〔通過軟件設(shè)置〕以降低功耗,需要時(shí)以按鍵來喚醒CPU,使其進(jìn)入工作狀態(tài)。I/O端口結(jié)構(gòu)如圖3.6所示,SPCE061A提供了位控制結(jié)構(gòu)的I/O端口,每一位都可以被單獨(dú)定義用于輸入或輸出數(shù)據(jù)。通常,對(duì)某一位的設(shè)定包括以下3個(gè)根本項(xiàng):數(shù)據(jù)向量Data、屬性向量Attribution和方向控制向量Direction。I/O端口組合控制設(shè)置如表3.3所列。3個(gè)端口內(nèi)每個(gè)對(duì)應(yīng)的位組合在一起,形成一個(gè)控制字,用來定義相應(yīng)I/O口位的輸入輸出狀態(tài)和方式。與其它的單片機(jī)相比,除了每個(gè)I/O端口可以單獨(dú)定義其狀態(tài)外,每個(gè)對(duì)應(yīng)狀態(tài)下的I/O端口性質(zhì)電路都是內(nèi)置的,在實(shí)際的電路中不需要再次外接。P_IOA/B_Buffer(讀)P_IOA/B_Buffer(讀)P_IOA/B_Date(寫)P_IOA/B_Buffer(寫)P_IOA/B_Dir(讀/寫)P_IOA/B_Attrib(讀/寫)P_IOA/B_Date(讀)數(shù)據(jù)存放器和邏輯控制上拉下拉I/O管腳圖3.6I/O端口結(jié)構(gòu)方向?qū)傩詳?shù)據(jù)功能是否帶有喚醒功能功能描述000下拉*是**帶下拉電阻的輸入管腳001上拉是**帶上拉電阻的輸入管腳010懸浮是**懸浮式輸入管腳011懸浮否懸浮式輸入管腳***100高電平輸出否帶數(shù)據(jù)反相器的高電平輸出101低電平輸出否帶數(shù)據(jù)反相器的低電平輸出110低電平輸出否帶數(shù)據(jù)緩存器的低電平輸出111高電平輸出否帶數(shù)據(jù)緩存器的高電平輸出注:*:口位默認(rèn)為帶下拉電阻的輸入管腳;**:只有當(dāng)IOA[7-0]內(nèi)位的控制字為000,001和010時(shí),相應(yīng)位才具有喚醒的功能;***:此種懸浮輸入作為ADCIOA[6-0]的輸入。表3.3I/O端口的組合控制設(shè)置P_IOA_Data(讀/寫)(7000H)A口的數(shù)據(jù)單元,用于向A口寫入或從A口讀出數(shù)據(jù)。當(dāng)A口處于輸入狀態(tài)時(shí),讀出是讀A口管腳電平狀態(tài);寫入是將數(shù)據(jù)寫入A口的數(shù)據(jù)存放器。當(dāng)A口處于輸出狀態(tài)時(shí),寫入輸出數(shù)據(jù)到A口的數(shù)據(jù)存放器。P_IOA_Buffer(讀/寫)(7001H)A口的數(shù)據(jù)向量單元,用于向數(shù)據(jù)向量存放器寫入或從該存放器讀出數(shù)據(jù)。當(dāng)A口處于輸入狀態(tài)時(shí),寫入是將A口的數(shù)據(jù)向量寫入A口的數(shù)據(jù)存放器;讀出那么是從A口數(shù)據(jù)存放器內(nèi)讀其數(shù)值。當(dāng)A口處于輸出狀態(tài)時(shí),寫入輸出數(shù)據(jù)到A口的數(shù)據(jù)存放器。P_IOB_Data(讀/寫)(7005H)B口的數(shù)據(jù)單元,用于向B口寫入或從B口讀出數(shù)據(jù)。當(dāng)B口處于輸入狀態(tài)時(shí),讀出是讀B口管腳電平狀態(tài);寫入是將數(shù)據(jù)寫入B口的數(shù)據(jù)存放器。當(dāng)B口處于輸出狀態(tài)時(shí),寫入輸出數(shù)據(jù)到B口的數(shù)據(jù)存放器。P_IOB_Buffer(讀/寫)(7006H)B口的數(shù)據(jù)向量單元,用于向數(shù)據(jù)存放器寫入或從該存放器內(nèi)讀出數(shù)據(jù)。當(dāng)B口處于輸入狀態(tài)時(shí),寫入是將數(shù)據(jù)寫入B口的數(shù)據(jù)存放器;讀出那么是從B口數(shù)據(jù)存放器里讀其數(shù)值。當(dāng)B口處于輸出狀態(tài)時(shí),寫入數(shù)據(jù)到B口的數(shù)據(jù)存放器。4.SPCE061A時(shí)鐘電路SPCE061A的系統(tǒng)時(shí)鐘由時(shí)鐘發(fā)生器〔32768Hz晶振〕、鎖相環(huán)〔PLL〕和時(shí)間基準(zhǔn)信號(hào)〔RTC〕組成。SPCE061A時(shí)鐘電路的接線圖如圖3.7所示:1.32768Hz的實(shí)時(shí)時(shí)鐘經(jīng)過PLL倍頻電路產(chǎn)生系統(tǒng)時(shí)鐘頻率(Fosc),F(xiàn)osc再經(jīng)過分頻得到CPU時(shí)鐘頻率(CPUCLK)可通過對(duì)P_SystemClock(寫)(7013H)單元編程來控制。默認(rèn)的Fosc、CPUCLK分別為24.576MHz和Fosc/8。用戶可以通過對(duì)P_SystemClock單元編程完成對(duì)系統(tǒng)時(shí)鐘和CPU時(shí)鐘頻率的定義。圖3.7SPCE061A時(shí)鐘電路的接線圖32768HzRTC振蕩器有兩種工作方式:強(qiáng)振模式和自動(dòng)弱振模式。處于強(qiáng)振模式時(shí),RTC振蕩器始終運(yùn)行在高耗能的狀態(tài)下。處于自動(dòng)弱振模式時(shí),系統(tǒng)在上電復(fù)位后的前7.5s內(nèi)處于強(qiáng)振模式,然后自動(dòng)切換到弱振模式以降低功耗。CPU被喚醒后默認(rèn)的時(shí)鐘頻率為Fosc/8,用戶可以根據(jù)需要調(diào)整該值。CPU被喚醒后經(jīng)過32個(gè)時(shí)鐘周期的緩沖時(shí)間后再進(jìn)行其它的操作,這樣可以防止在系統(tǒng)被喚醒后造成ROM讀取錯(cuò)誤。2.鎖相環(huán)PLL(PhaseLockLoop)振蕩器,PLL電路的作用是將系統(tǒng)提供的實(shí)時(shí)時(shí)鐘的基頻(32768Hz)進(jìn)行倍頻,調(diào)整至49.152MHz、40.96MHz、32.768MHz、24.576MHz或20.480MHz。系統(tǒng)默認(rèn)的PLL自激振蕩頻率為24.576MHz。3.時(shí)間基準(zhǔn)信號(hào),簡(jiǎn)稱時(shí)基信號(hào),來自于32768Hz實(shí)時(shí)時(shí)鐘,通過頻率選擇組合而成。時(shí)基信號(hào)發(fā)生器的選頻邏輯TMB1為TimerA的時(shí)鐘源B提供各種頻率選擇信號(hào)并為中斷系統(tǒng)提供中斷源(IRQ6)信號(hào)。此外,時(shí)基信號(hào)發(fā)生器還可以通過分頻產(chǎn)生2Hz、4Hz、1024Hz、2048Hz以及4096Hz的時(shí)基信號(hào),為中斷系統(tǒng)提供各種實(shí)時(shí)中斷源(IRQ4、IRQ5)信號(hào)。5.SPCE061A定時(shí)器/計(jì)數(shù)器SPCE061A提供了兩個(gè)16位的定時(shí)/計(jì)數(shù)器:TimerA和TimerB。TimerA為通用計(jì)數(shù)器;TimerB為多功能計(jì)數(shù)器。TimerA的時(shí)鐘源由時(shí)鐘源A和時(shí)鐘源B進(jìn)行“與〞操作而形成;TimerB的時(shí)鐘源僅為時(shí)鐘源A。定時(shí)器發(fā)生溢出后會(huì)產(chǎn)生一個(gè)溢出信號(hào)(TAOUT/TBOUT)。一方面,它會(huì)作為定時(shí)器中斷信號(hào)傳輸給CPU中斷系統(tǒng);另一方面,它又會(huì)作為4位計(jì)數(shù)器計(jì)數(shù)的時(shí)鐘源信號(hào),輸出一個(gè)具有4位可調(diào)的脈寬調(diào)制占空比輸出信號(hào)APWMO或BPWMO(分別從IOB8和IOB9輸出),可用來控制馬達(dá)或其它一些設(shè)備的速度。此外,定時(shí)器溢出信號(hào)還可以用于觸發(fā)ADC輸入的自動(dòng)轉(zhuǎn)換過程和DAC輸出的數(shù)據(jù)鎖存。向定時(shí)器的P_TimerA_Data(讀/寫)(700AH)單元或P_TimerB_Data(讀/寫)(700CH)單元寫入一個(gè)計(jì)數(shù)值N后,選擇一個(gè)適宜的時(shí)鐘源,定時(shí)器/計(jì)數(shù)器將在所選的時(shí)鐘頻率下開始以遞增方式計(jì)數(shù)N,N+1,N+2,…0xFFFE,0xFFFF。當(dāng)計(jì)數(shù)到達(dá)0xFFFF后,定時(shí)器/計(jì)數(shù)器溢出,產(chǎn)生中斷請(qǐng)求信號(hào),被CPU響應(yīng)后送入中斷控制器進(jìn)行處理。同時(shí),N值將被重新載入定時(shí)器/計(jì)數(shù)器并重新開始計(jì)數(shù)。通過寫入P_TimerA_Ctrl(700BH)單元的第6-9位,可選擇設(shè)置APWMO輸出波形的脈寬占空比;同理,寫入P_TimerB_Ctrl(700DH)單元的第6-9位,便可選擇設(shè)置BPWMO輸出波形的脈寬占空比。時(shí)鐘源A是高頻時(shí)鐘源,來自帶鎖相環(huán)的晶體振蕩器輸出Fosc;時(shí)鐘源B的頻率來自32768Hz實(shí)時(shí)時(shí)鐘系統(tǒng),也就是說,時(shí)鐘源B可以作為精確的計(jì)時(shí)器。例如,2Hz定時(shí)器可以作為實(shí)時(shí)時(shí)鐘的時(shí)鐘源。SPCE061A系列單片機(jī)中斷系統(tǒng)是單片機(jī)中中斷功能較強(qiáng)的一種,它可以提供14個(gè)中斷源,具有兩個(gè)中斷優(yōu)先級(jí),可實(shí)現(xiàn)兩級(jí)中斷嵌套功能。用戶可以用關(guān)中斷指令〔或復(fù)位〕屏蔽所有的中斷請(qǐng)求,也可以用開中斷指令使CPU接受中斷申請(qǐng)。每一個(gè)中斷源可以用軟件獨(dú)立控制為開或關(guān)中斷狀態(tài);但中斷級(jí)別不可用軟件設(shè)置。SPCE061A的中斷類型SPCE061A的結(jié)構(gòu)給出了三種類型的中斷:軟件中斷、異常中斷和事件中斷。1.軟件中斷軟件中斷是由軟件指令break產(chǎn)生的中斷。軟件中斷的向量地址為FFF5H2.異常中斷異常中斷表示為非常重要的事件,一旦發(fā)生,CPU必須立即進(jìn)行處理。目前SPCE061A定義的異常中斷只有‘復(fù)位’一種。通常,SPCE061A系統(tǒng)復(fù)位可以由以下三種情況引起:上電、看門狗計(jì)數(shù)器溢出以及系統(tǒng)電源低于電壓低限。不管什么情況引起復(fù)位,都會(huì)使復(fù)位引腳的電位變低,進(jìn)而使程序指針PC指向由一個(gè)復(fù)位向量〔FFF7H〕所指的系統(tǒng)復(fù)位程序入口地址。3.事件中斷事件中斷一般產(chǎn)生于片內(nèi)設(shè)部件或由外設(shè)中斷輸入引腳引入的某個(gè)事件。這種中斷的開通/禁止,由相應(yīng)獨(dú)立使能和相應(yīng)的IRQ或FIQ總使能控制。SPCE061A的事件中斷可采用兩種方式:快速中斷請(qǐng)求即FIQ中斷和中斷請(qǐng)求即IRQ中斷。這兩種中斷都有相應(yīng)的總使能。SPCE061A共有9個(gè)中斷向量即FIQ、IRQ0-IRQ6及UARTIRQ。這9個(gè)中斷向量共可安置14個(gè)中斷源供使用,其中有4個(gè)中斷源可安置在FIQ或IRQ0-IRQ2中,另有10個(gè)中斷源那么可安置在IRQ3-IRQ6中。還有一個(gè)專門用于通用異步串行口UART的中斷源,須安置在UARTIRQ向量中。SPCE061A單片機(jī)的中斷系統(tǒng)有14個(gè)中斷源分為兩個(gè)定時(shí)器溢出中斷、兩個(gè)外部中斷、一個(gè)串行口中斷、一個(gè)觸鍵喚醒中斷、7個(gè)時(shí)基信號(hào)中斷、PWM音頻輸出中斷。SPCE061A單片機(jī)中,快速中斷的優(yōu)先級(jí)高于普通中斷的優(yōu)先級(jí),在IRQ中斷中IRQ1的中斷優(yōu)先級(jí)高于IRQ2,IRQ2的中斷優(yōu)先級(jí)高于IRQ3,按照IRQ的序號(hào),序號(hào)越高那么中斷優(yōu)先級(jí)越低,UART的中斷優(yōu)先級(jí)最低。在IRQ中斷中,只是中斷查詢有先后,不能進(jìn)行中斷嵌套。同中斷向量?jī)?nèi)的中斷源中斷優(yōu)先級(jí)相同。中斷響應(yīng)過程從中斷請(qǐng)求發(fā)生到被響應(yīng),從中斷響應(yīng)到轉(zhuǎn)向執(zhí)行中斷效勞程序,完成中斷所要求的操作任務(wù),是一個(gè)復(fù)雜的過程。整個(gè)過程都是在CPU的控制下有序進(jìn)行的,SPCE061A單片機(jī)中斷響應(yīng)過程。1.中斷查詢SPCE061A把所有的中斷請(qǐng)求都聚集到P_INT_Ctrl和P_UART_Command2〔該存放器用于檢測(cè)串行傳輸中斷標(biāo)志位〕存放器中。其中外中斷是使用采樣的方法將中斷請(qǐng)求鎖定在P_INT_Ctrl存放器的相應(yīng)標(biāo)志位中,而音頻輸出中斷、觸鍵喚醒、定時(shí)中斷、時(shí)基中斷、串行異步中斷的中斷請(qǐng)求由于都發(fā)生在芯片的內(nèi)部,可以直接去置位P_INT_Ctrl和P_UART_Command2中各自的中斷請(qǐng)求標(biāo)志,不存在采樣的問題,所謂查詢就是由CPU測(cè)試P_INT_Ctrl和P_UART_Command2中各標(biāo)志位的狀態(tài),已確定有沒有中斷請(qǐng)求發(fā)生以及是哪一個(gè)中斷請(qǐng)求,中斷請(qǐng)求聚集使中斷查詢變得簡(jiǎn)單,因?yàn)橹恍鑼?duì)兩存放器查詢即可。SPCE061A中斷查詢發(fā)生在每一個(gè)指令周期結(jié)束后,按中斷優(yōu)先級(jí)順序?qū)χ袛嗾?qǐng)求進(jìn)行查詢,即先查詢高級(jí)中斷后,再查詢低級(jí)中斷,即先查詢FIQ再查詢IRQ,同級(jí)中斷按IRQ0→IRQ1→IRQ2→IRQ3→IRQ4→IRQ5→IRQ6→UART的順序查詢。如果查詢到有標(biāo)志位為“1”2.中斷響應(yīng)中斷響應(yīng)就是CPU對(duì)中斷源提出的中斷請(qǐng)求的接受,是在中斷查詢后進(jìn)行的,當(dāng)查詢到有效的中斷請(qǐng)求時(shí),緊接著就進(jìn)行中斷響應(yīng)。中斷響應(yīng)的主要內(nèi)容可以理解為是硬件自動(dòng)生成一條調(diào)用指令,其格式為CALLaddR16,這里的addR16就是存儲(chǔ)器中斷區(qū)中相應(yīng)中斷入口地址。在SPCE061A單片機(jī)中,這些入口地址已經(jīng)由系統(tǒng)設(shè)定。中斷響應(yīng)是有條件的,并不是查詢到所有中斷請(qǐng)求都能被立即響應(yīng),當(dāng)存在以下情況時(shí),中斷響應(yīng)被封鎖:CPU正處在為一個(gè)同級(jí)或高級(jí)的中斷效勞中。因?yàn)楫?dāng)一個(gè)中斷被響應(yīng)時(shí),要求把對(duì)應(yīng)的優(yōu)先級(jí)觸發(fā)器置位,封鎖低級(jí)和同級(jí)中斷。中斷響應(yīng)的時(shí)間應(yīng)首先從中斷信號(hào)出現(xiàn)到CPU響應(yīng)的時(shí)間與CPU響應(yīng)中斷信號(hào)到進(jìn)入中斷效勞程序的時(shí)間之和。首先中斷信號(hào)出現(xiàn),CPU查詢到后,再執(zhí)行下一條指令結(jié)束后去響應(yīng)中斷,這個(gè)時(shí)間可以根據(jù)指令周期長(zhǎng)短來確定;一般指令周期最長(zhǎng)為182個(gè)時(shí)鐘周期,原因是累乘加指令需要的時(shí)間最長(zhǎng)為182個(gè)時(shí)鐘周期;其次CPU響應(yīng)中斷后,到CPU執(zhí)行中斷效勞程序又需要8個(gè)時(shí)鐘,原因是需要堆棧PC指針和SR存放器及將中斷向量賦值給PC及跳轉(zhuǎn)到中斷效勞程序,這些操作共需要8個(gè)時(shí)鐘周期。因此,SPCE061A從中斷信號(hào)出現(xiàn)到進(jìn)入中斷效勞最長(zhǎng)需要190個(gè)時(shí)鐘周期。當(dāng)然,如果出現(xiàn)有同級(jí)或高級(jí)中斷正在響應(yīng)或效勞中須等待的時(shí)候,那么響應(yīng)時(shí)間是無法計(jì)算的。中斷響應(yīng)后,P_INT_Ctrl和P_UART_Command2中的中斷請(qǐng)求標(biāo)志應(yīng)及時(shí)去除。否那么就意味著中斷請(qǐng)求仍然存在,弄不好就會(huì)造成中斷的重復(fù)查詢和響應(yīng),因此就存在一個(gè)中斷請(qǐng)求的撤銷問題。在SPCE061A中斷中,中斷撤銷只是標(biāo)志位的置“0〞問題。SPCE061A中斷除UART中斷外,所有的中斷均需軟件去除標(biāo)志位,即將P_INT_Ctrl中相應(yīng)的中斷位清零。即可將中斷請(qǐng)求撤銷。而UART中斷,那么是硬件自動(dòng)清零,不需要軟件操作。如當(dāng)接收到數(shù)據(jù)后,P_UART_Command2中的接收標(biāo)志位自動(dòng)置“1〞,進(jìn)入U(xiǎn)ART中斷,在UART中斷中讀出數(shù)據(jù),P_UART_Command2相應(yīng)的中斷標(biāo)志位自動(dòng)清零。SPCE061A單片機(jī)的中斷效勞流程圖3.8所示圖3.8中斷效勞流程圖所謂中斷的入口即中斷的入口地址,每個(gè)中斷源都有自己的入口地址,中斷入口地址表如表3.4:中斷向量中斷優(yōu)先級(jí)別FFF7H〔復(fù)位向量〕RESETFFF6HFIQFFF8HIRQ0FFF9HIRQ1FFFAHIRQ2FFFBHIRQ3FFFCHIRQ4FFFDHIRQ5FFFEHIRQ6FFFFHUARTIRQ表3.4中斷入口地址表當(dāng)CPU響應(yīng)中斷后,就是通過中斷入口地址進(jìn)入中斷效勞程序。1.SPCE061A最小系統(tǒng)最小系統(tǒng)接線如圖3.9所示,在OSC0、OSC1端接上晶振及諧振電容,在鎖相環(huán)壓控振蕩器的阻容輸入VCP端接上相應(yīng)的電容電阻后即可工作。其它不用的電源端和地端接上0.1μF的去藕電容提高抗干擾能力。圖3.9最小系統(tǒng)電路圖2.SPCE061A開發(fā)方法SPCE061A的開發(fā)是通過在線調(diào)試器PROBE實(shí)現(xiàn)的。它既是一個(gè)編程器〔即程序燒寫器〕,又是一個(gè)實(shí)時(shí)在線調(diào)試器。用它可以替代在單片機(jī)應(yīng)用工程的開發(fā)過程中常用的軟件工具——硬件在線實(shí)時(shí)仿真器和程序燒寫器。它利用了SPCE061A片內(nèi)置的在線仿真電路ICE〔In-CircuitEmulator〕接口和凌陽公司的在線串行編程技術(shù)。PROBE工作于凌陽IDE集成開發(fā)環(huán)境軟件包下,其5芯的仿真頭直接連接到目標(biāo)電路板上SPCE061A相應(yīng)管腳,直接在目標(biāo)電路板上的CPU---SPCE061A調(diào)試、運(yùn)行用戶編制的程序。PROBE的另一頭是標(biāo)準(zhǔn)25針PC接口,直接連接到計(jì)算機(jī)打印口與上位機(jī)通訊,在計(jì)算機(jī)IDE集成開發(fā)環(huán)境軟件包下,完成在線調(diào)試功能。如圖3.10所示:25針25針并口至PC外圍接口電路VDDXICESPCE061AICECLKICESDAVSS5V電源〔當(dāng)I/O口外接5V器件時(shí)〕3.3V電源32768H晶振VDDXICEICECLKICESDAVSS用戶目標(biāo)板在線調(diào)試器PROBE圖3.10SPCE061A的開發(fā)調(diào)試下載過程圖第三節(jié)程序下載區(qū)ICE根本運(yùn)行方式是通過控制clock及通過ICE偽指令方式,來控制CPU的運(yùn)行及緩存器資料和內(nèi)存資料的存取,因此必須通過控制緩存器值的設(shè)定來控制目前CPU的動(dòng)作。61板上的74HC244主要是在我們用下載線進(jìn)行程序下載時(shí)起作用,主要起緩存的作用和完成對(duì)SDA是用來作為數(shù)據(jù)回送還是數(shù)據(jù)下載進(jìn)行選擇。程序下載電路圖如圖3.11所示。圖3.11程序下載電路圖74HC244芯片可以控制SDA信號(hào)的上下電平,這樣可以使用ResWriter工具發(fā)出符合燒寫芯片的時(shí)序信號(hào)。74HC244芯片的引腳圖如圖3.12所示圖3.1274HC244芯片引腳圖第四節(jié)音頻模塊此模塊主要通過MICROPHONE把我們所要求語音信息進(jìn)行的輸入。再由SPCE061A對(duì)采集的語音信號(hào)進(jìn)行處理提取的說話人特征參數(shù)與存儲(chǔ)在外擴(kuò)FLASH內(nèi)的特征參數(shù)模板進(jìn)行匹配。音頻輸入電路圖如3.13所示。圖3.13音頻輸入電路圖第五節(jié)語音輸出模塊可以直接聽喇叭輸出的聲音。SPY0030A是凌陽公司開發(fā)的專門用于語音信號(hào)放大的芯片。和LM386相比,SPY0030A還具有工作電壓低、輸出功率高及低失真的優(yōu)勢(shì)。語音輸出電路圖如圖3.14所示。圖3.14語音輸出電路圖第六節(jié)數(shù)/模轉(zhuǎn)換模塊D/A〔數(shù)/?!车淖饔镁褪前褦?shù)字量轉(zhuǎn)換為模擬量的局部,音頻輸出就是這個(gè)過程,A/D〔模/數(shù)〕的作用就是把模擬量轉(zhuǎn)換為數(shù)字量的局部,音頻輸入就是這個(gè)過程把人講話的聲音波形通過SPCE061A芯片中的A/D〔模/數(shù)〕采集后,處理后又通過D/A〔數(shù)/?!侈D(zhuǎn)換復(fù)原后,通過功率放大電路播出聲音。SPCE061A提供了兩路的D/A〔數(shù)/?!侈D(zhuǎn)換通道,分別是DAC1、DAC2。SPCE061A有7個(gè)10位ADC通道,其中一個(gè)通道(MIC_In)用于語音輸入,模擬信號(hào)經(jīng)過自動(dòng)增益控制器和放大器放大后進(jìn)行A/D〔模/數(shù)〕轉(zhuǎn)換。其余6個(gè)通道(Line_In)和IOA[0-6]引腳共享,可以將輸入的模擬信號(hào)(如電壓信號(hào))轉(zhuǎn)換為數(shù)字信號(hào)。SPCE061A的A/D轉(zhuǎn)換范圍是整個(gè)輸入范圍,即0V-AVdd。無效的A/D〔模/數(shù)〕模擬信號(hào)(超過VDD+0.3V或是低于VSS–0.3V)將影響轉(zhuǎn)換電路的工作范圍,從而降低AD的性能。由于Line_In通道和IOA[0-6]共享引腳,建議用戶選擇其它的IO引〔非IOA[0-6]〕,以防止由于無效的IO信號(hào)造成電壓不穩(wěn)。第七節(jié)電源模塊61板采用3節(jié)5號(hào)電池進(jìn)行供電,由J10接入,其中的前后兩組電容用來去耦濾波,使其供應(yīng)芯片更加平滑。為了獲得標(biāo)準(zhǔn)3.3V電壓,在板子上參加SPY0029A三端穩(wěn)壓器。兩個(gè)二極管,是為防止誤將電源接反造成不必要損失而設(shè)置的,在操作過程中千萬不要將電源接反,因?yàn)榉聪螂妷撼^一定的值,二極管將會(huì)被損壞,達(dá)不到保護(hù)的目的。后面的零電阻及其電源分不同的幾路是為了減少電磁干擾設(shè)置的。圖3.15電源電路圖第八節(jié)SPLC501液晶顯示模組SPLC501液晶顯示模組為128X64點(diǎn)陣,面板采用STN〔SuperTwistedNematic〕超扭曲向列技術(shù)制成并且由128Segment和64Common組成。SPLC501液晶顯示模組主要有液晶顯示器〔帶驅(qū)動(dòng)、控制器的液晶面板〕、復(fù)位按鍵、電源指示燈和模組接口及跳線。SPLC501液晶顯示器的接口引腳說明:接口引腳名說明CS1片選,低有效RES復(fù)位腳AO數(shù)據(jù)命令選擇腳R/W對(duì)于6800系列MPU的讀/寫信號(hào)〔R/W〕對(duì)于8080系列MPU的寫信號(hào)〔W/R〕EP對(duì)于6800系列MPU的時(shí)鐘信號(hào)使能腳〔EP〕對(duì)于8080系列MPU的讀信號(hào)〔RD〕DB08位數(shù)據(jù)總線DB1DB2DB3DB4DB5DB6DB7VR端口輸出電壓C86C86=H選擇6800MPU系列C86=L選擇8080MPU系列PS串、并行時(shí)序選擇表3.5接口引腳說明SPLC501液晶顯示器的電路原理圖如圖3.16所示。圖3.16SPLC501液晶顯示器的電路原理圖SPLC501液晶顯示模組采用的驅(qū)動(dòng)控制芯片為凌陽科技的SPLC501A芯片,SPLC501為液晶顯示控制驅(qū)動(dòng)器,集行、列驅(qū)動(dòng)器和控制器于一體,廣泛應(yīng)用于小規(guī)模液晶顯示模塊。SPLC501單芯片液晶驅(qū)動(dòng),可以直接與其他微控制器接口總線相連。微控制器可以將顯示數(shù)據(jù)通過8位數(shù)據(jù)總線或者串行接口寫到SPLC501的顯存中。SPLC501的特點(diǎn):1.內(nèi)置8580位顯示RAM。RAM中的一位數(shù)據(jù)控制液晶屏上的一個(gè)象素點(diǎn)的亮、暗狀態(tài)?!?”亮“02.具有65行驅(qū)動(dòng)輸出和132列驅(qū)動(dòng)輸出。3.可以直接與80系列和68系列微處理器相連。4.內(nèi)置晶振電路,也可以外接晶振。5.工作溫度范圍為-40攝氏度和+85攝氏度之間。SPLC501液晶顯示模組采用GPG12063YS3LCD模塊,此模塊內(nèi)嵌SPLC501芯片,采用先進(jìn)的COG技術(shù),將芯片嵌在LCD第四章語音電子鐘的軟件設(shè)計(jì)程序下載程序下載程序運(yùn)行程序打斷圖4.5在線仿真操作流程第一節(jié)程序設(shè)計(jì)根據(jù)語音電子鐘的硬件模塊化設(shè)計(jì),結(jié)合IDE集成開發(fā)環(huán)境及程序設(shè)計(jì)規(guī)那么,提出如圖4.8所示的軟件結(jié)構(gòu)。從圖中可以看出各文件之間的調(diào)用關(guān)系。圖4.8軟件結(jié)構(gòu)圖圖4.9主程序流程圖圖4.10時(shí)間日期模塊流程圖圖4.11IRQ5時(shí)基中斷流程圖圖4.12FIQ中斷程序流程圖圖4.13IRQ4時(shí)基中斷流程圖第五章測(cè)試和調(diào)試上圖是本設(shè)計(jì)的實(shí)物圖。設(shè)計(jì)的最后即是按照以下步驟進(jìn)行硬件和軟件的調(diào)試。第一節(jié)硬件測(cè)試測(cè)試一些重要引腳上的電壓是否是正常的工作電壓,主要有:1.電源電壓5V或接近5V。2.VDDH、VDD引腳上的電壓分別是3.5v和3v。電源局部:在板子的左上角。采用萬用表分別測(cè)試以下12個(gè)點(diǎn)的電壓,注意數(shù)字萬用表的使用方式(黑色的表筆接電源“-〞端,紅色的表筆接電源“+〞端),歇時(shí)請(qǐng)勿將芯片插入座中,以免電源局部有問題造成芯片燒壞。調(diào)試1:目的:測(cè)試61板電路源和地是否有短路。條件:斷開電源并拔掉電池盒,將J5的2、3腳用跳線帽短接。步驟:用萬用表測(cè)量J10的兩腳的電阻是否為零。現(xiàn)象一:電阻為零,表示焊接過程中可能有短路,應(yīng)進(jìn)行電源局部的排查?,F(xiàn)象二:電阻大于300歐,表示正常。調(diào)試2:目的:測(cè)試61板電源局部器件是否工作正常。條件:電池盒接到J10處,將電池盒開關(guān)拔到ON處?,F(xiàn)象:D1亮了表示正常。D1沒點(diǎn)亮,電源器件有問題,逐一進(jìn)行排查。最后對(duì)電源局部一些器件引腳的電壓進(jìn)行測(cè)試,如果電壓正常,那么進(jìn)行下一步的測(cè)試,不正常那么分析它的原因。調(diào)試3:目的:測(cè)試61板上各器件電源供電是否正常。條件:用跳線冒把S5的1、2腳短接。步驟:測(cè)試U1的第7腳電壓——3.3v左右。測(cè)試U4的第20腳電壓——3.3v左右。測(cè)試J4的第1腳電壓——3.3v左右。測(cè)試U2的第7、8腳電壓——4.5v左右。測(cè)試J6、J7、J8、J9的+端電壓——4.5v左右。現(xiàn)象:電壓正常進(jìn)入下一步測(cè)試。不正常在供電的某個(gè)傳輸方向上出現(xiàn)了問題,對(duì)照原理一步一步的進(jìn)行排查。鍵盤局部:目的:測(cè)試鍵盤輸入是否正確。條件:U1U2U4芯片座中不安放元件:給61板通電,萬第二節(jié)SPCE061A板的測(cè)試1.主要測(cè)試局部1〕I/O口〔A口作為輸入,B口作為輸出〕。2〕睡眠功能〔進(jìn)入睡眠狀態(tài),綠色指示燈點(diǎn)亮〕。3〕A/D〔模/數(shù)〕轉(zhuǎn)換輸入〔B口的低7位作為模擬電壓源,否那么提示“A/D。斷功能:連續(xù)運(yùn)行分兩種:一種是全速運(yùn)行〔Go〕,另一種是在調(diào)試的模式下,程序全速運(yùn)行到光標(biāo)處停止。操作:如果程序編譯通過,需要軟件或硬件仿真是可選擇Build→StartDebug→Go或快捷鍵F5,也可以單擊按鈕,即可出現(xiàn)全速運(yùn)行的界面。如果在調(diào)試過程中,需要使程序全速運(yùn)行到某一處停止,可以將鼠標(biāo)放在該命令的某一條指令前,然后選擇Debug→RuntoCursor即可。2.單步執(zhí)行功能:當(dāng)進(jìn)行程序調(diào)試時(shí),需要單步跟蹤,IDE提供三種單步執(zhí)行方式。單步進(jìn)入〔StepInto〕:?jiǎn)尾竭\(yùn)行時(shí),進(jìn)入子程序。單步跳躍〔StepOver〕:?jiǎn)尾竭\(yùn)行時(shí),不進(jìn)入子程序。單步跳出〔StepOut〕 :?jiǎn)尾竭\(yùn)行時(shí),跳出子程序。操作:在進(jìn)行程序調(diào)試時(shí),設(shè)置了斷點(diǎn)后,程序?qū)?huì)停在斷點(diǎn)處。這時(shí),如果需要單步繼續(xù)往下執(zhí)行,選擇StepInto或選擇BuildTool工具條中的按鈕〔快捷鍵F11〕,那么會(huì)單步跟蹤,如運(yùn)行一個(gè)子程序,那么會(huì)進(jìn)入子程序運(yùn)行;選擇StepOver或單擊BuildTool工具條中的按鈕〔快捷鍵F10〕,那么會(huì)單步跟蹤,不進(jìn)入子程序;程序在進(jìn)入子程序后,如果選擇StepOut或單擊按鈕,那么會(huì)跳出該子程序。3.設(shè)置斷點(diǎn)功能:F9是設(shè)置斷點(diǎn)的快捷鍵,在調(diào)試程序時(shí),有時(shí)需要根據(jù)自己的實(shí)際情況設(shè)置斷點(diǎn)。操作:將鼠標(biāo)放在需要程序停止的地方,然后按功能鍵F9即可,再單擊全速運(yùn)行,PC指針那么會(huì)停在剛設(shè)置的斷點(diǎn)處。語音電子鐘的程序下載步驟:1.電源連接,可接3節(jié)電池,也可以直接連接5V的穩(wěn)壓源;2.在線調(diào)試〔PROBE〕的連接,一端接PC機(jī)并口,一端接61板的5針接口J4,跳線要連接S5的1與2。如果使用EZ-PROBE,將一端接PC機(jī)的并口,一端接61板的5針接口J11,跳線要連接S5的2與3;3.喇叭連接,直接接61板的J3。4.啟動(dòng)u’nSPIDE。翻開語音電子鐘應(yīng)用實(shí)例程序,編譯、鏈接確認(rèn)沒有錯(cuò)誤。5.下載程序代碼到61板上。總結(jié)在這幾個(gè)月期間我主要是學(xué)習(xí)61板的硬件和軟件以及SPLC501液晶顯示器。本次畢業(yè)設(shè)計(jì)首先是查閱關(guān)于單片機(jī)的應(yīng)用知識(shí),深入研究本設(shè)計(jì)要實(shí)現(xiàn)的功能,確定用SPCE061A單片機(jī)來實(shí)現(xiàn)功能。然后是熟悉61板的根本功能,詳細(xì)學(xué)習(xí)了凌陽單片機(jī)內(nèi)部器件、SPCE061A的各種I/O接口以及如何進(jìn)行編程。最后根據(jù)單片機(jī)的功能提出語音電子鐘的設(shè)計(jì)方案。在設(shè)計(jì)過程中學(xué)習(xí)用protel99se繪制電路原理圖,再由各種報(bào)表與網(wǎng)絡(luò)表來實(shí)現(xiàn)PCB板的設(shè)計(jì)。通過本設(shè)計(jì),使我明白了凌陽單片機(jī)的系統(tǒng)各模塊工作原理。意識(shí)到理論與實(shí)際相結(jié)合,根底實(shí)驗(yàn)與綜合技能訓(xùn)練相結(jié)合的學(xué)習(xí)方法。本次設(shè)計(jì)使我認(rèn)識(shí)到單片機(jī)真正的已經(jīng)進(jìn)入我們的日常生活,而且正發(fā)揮著不可替代的作用,尤其是在智能控制方面。它正在以獨(dú)有的優(yōu)勢(shì)占領(lǐng)著市場(chǎng)。參考文獻(xiàn)[1]陳明熒。8051單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材。清華大學(xué)出版社。2004年[2]羅亞非。凌陽16位單片機(jī)應(yīng)用根底。北京:北航出版社,2003年。[3]賈好來。MCS—51單片機(jī)原理及應(yīng)用。機(jī)械工業(yè)出版社。2007年[4]李晶皎。嵌入式語音技術(shù)及凌陽單片機(jī)應(yīng)用。北京:北航出版社,2003年。[5]閻石。數(shù)字電路技術(shù)根底。北京:高等教育出版社,1998年。[6]童詩白、華成英。模擬電子技術(shù)根底。北京:高等教育出版社,2001年。[7]樓然苗、李光飛。單片機(jī)課程設(shè)計(jì)指導(dǎo)。2007年[9]譚浩強(qiáng)。C語言程序設(shè)計(jì)。清華出版社。[10]彭傳正、林春景。凌陽單片機(jī)原理與實(shí)踐。北京航空航天大學(xué)出版社。2006年。[11]侯媛彬。凌陽單片機(jī)原理及畢業(yè)設(shè)計(jì)精選??茖W(xué)出版社。2005年。[12]耿文靜、錢珊珠。單片機(jī)原理與接口技術(shù)。國防工業(yè)出版社。2007年。[13]徐江海。單片機(jī)實(shí)用教程。機(jī)械工業(yè)出版社。2007年。[14]龔運(yùn)新。單片機(jī)C語言開發(fā)技術(shù)。清華大學(xué)出版社。2006年。[15]凌陽科技。凌陽16位單片機(jī)開發(fā)實(shí)例。北京航空航天大學(xué)出版社。2006年[16]劉秀英。單片機(jī)應(yīng)用設(shè)計(jì)200例。北京航空航天大學(xué)出版// 功能描述: 具備播報(bào)日期、時(shí)間、整點(diǎn)報(bào)時(shí)、秒表、鬧鐘、萬年歷、農(nóng)歷和電子鐘等功能。//IDE環(huán)境:SUNPLUSu'nSPTMIDE// 涉及的庫:CMacro1016.lib//sacmv26e.lib// 組成文件: main.c/system./Key.c/speak.c/IRQ.asm/miaobiao/asm// 硬件連接: //IOA8-15接液晶顯示模塊DB0-DB7//IOB4接液晶顯示模塊AO//IOB5接液晶顯示模塊的R/W//IOB6接液晶顯示模塊的EP//======================================================================// 文件名稱: main.c// 功能描述:系統(tǒng)初始化,顯示時(shí)間日期界面//按KEY1,進(jìn)入時(shí)間調(diào)整和功能選擇菜單。//按KEY2,撥報(bào)當(dāng)前的時(shí)間。//按KEY3,撥報(bào)當(dāng)前的日期。//KEY2、KEY3同時(shí)按下控制鬧鐘的開關(guān)//======================================================================#include"SPCE061A.h"#include"SPLC501User.h"#include"model.h"#definering117//播放第一個(gè)鈴聲的序號(hào)#definering218//播放第二個(gè)鈴聲的序號(hào)//======================================================================//對(duì)主函數(shù)調(diào)用的函數(shù)聲明//======================================================================externvoiddisplay();externvoidPlayRespond(unsignedintResult);externvoidspeaktime();externvoidkeyscan();externvoidnextdisplay();externvoidsetday();externvoidset_ring();externvoidsetsecond();externvoidspeaktime();externvoidspeakday();externvoidkeyinitial();//=======================================================================//定義文件中用到的變量以及常數(shù)數(shù)組//=======================================================================unsignedintkeyflag1=0;//鍵按下標(biāo)志1,控制進(jìn)入功能選擇菜單unsignedintkeyflag2=0;//鍵按下標(biāo)志2,unsignedintkeyflag3=0;//鍵按下標(biāo)志3,控制進(jìn)入時(shí)間日期調(diào)整界面unsignedintkeyflag4=0;//鍵按下標(biāo)志4,控制進(jìn)入鬧鐘時(shí)間設(shè)置界面unsignedintkeyflag5=0;//鍵按下標(biāo)志5,控制進(jìn)入秒表設(shè)置界面unsignedintkeyflag6=0;//鍵按下標(biāo)志6,控制進(jìn)入鬧鐘設(shè)置界面unsignedintkeyflag7=0;//鍵按下標(biāo)志7,控制進(jìn)入鬧鐘鈴聲選擇界面unsignedintringflag=0;//播放鈴聲標(biāo)志位1播放第一首2播放第二首u(yù)nsignedintkeyvalue=0;//存放按下的鍵值unsignedintrunflag=0;//當(dāng)年閏月標(biāo)志位unsignedintnum=0;//2HZ計(jì)數(shù)單元unsignedinthour=0;//存放當(dāng)前的小時(shí)unsignedintmin=0;//存放當(dāng)前的分鐘unsignedintsec=0;//存放當(dāng)前的秒unsignedintyear=2006;//存放當(dāng)前的年unsignedintgmonth=8;//存放當(dāng)前的公歷的月unsignedintgday=1;//存放當(dāng)前的公歷的日unsignedintxqvalue=0;//存放當(dāng)前的星期unsignedintnmonth=7;//存放農(nóng)歷的月unsignedintnday=8;//存放農(nóng)歷的日unsignedintrunxq[]={3,6,0,3,5,1,3,6,2,4,0,2};//潤年星期偏差表unsignedintpingxq[]={4,0,0,3,5,1,3,6,2,4,0,2};//平年星期偏差表unsignedintmouse[]={1,17,32,48};//箭頭坐標(biāo)數(shù)組unsignedintnhour=12;//存放鬧鐘的小時(shí)unsignedintnmin=0;//存放鬧鐘的分鐘unsignedintmbmin=0;//存放秒表的分unsignedintmbsec=0;//存放秒表的秒unsignedintmmsec=0;//存放秒表的毫秒unsignedintmbnum=0;//1KHZ中斷標(biāo)志位unsignedintonoff=0;//鬧鐘開關(guān)標(biāo)志unsignedintint2hz;//設(shè)置一個(gè)2HZ中斷標(biāo)志unsignedintringonoff;//鬧鐘響時(shí)關(guān)閉標(biāo)志charnumber[]={'0','1','2','3','4','5','6','7','8','9'};//設(shè)置待顯示的數(shù)字。 unsignedintclockset[]={11,31,51};//設(shè)置鬧鐘鈴聲時(shí)的光標(biāo)unsignedintcounter=0;//設(shè)置顯示SUNPLUS計(jì)數(shù)器unsignedintmapcounter1=0;unsignedintmapcounter2=0;constintglunarmonthday[]=//存放2001-2100的陰歷月天數(shù)表b15-b14表征1-12月的天數(shù)特征{//為1那么當(dāng)月為30天,為0那么為29天。低四位為當(dāng)年閏月的月份0xd954,0xd4a0,0xda50,0x7552,0x56a0,0xabb7,0x25d0,0x92d0,0xcab5,0xa950,0xb4a0,0xbaa4,0xad50,0x55d9,0x4ba0,0xa5b0,0x5176,0x52bf,0xa930,0x7954,0x6aa0,0xad50,0x5b52,0x4b60,0xa6e6,0xa4e0,0xd260,0xea65,0xd530,0x5aa0,0x76a3,0x96d0,0x4afb,0x4ad0,0xa4d0,0xd0b6,0xd25f,0xd520,0xdd45,0xb5a0,0x56d0,0x55b2,0x49b0,0xa577,0xa4b0,0xaa50,0xb255,0x6d2f,0xada0,0x4b63,0x937f,0x49f8,0x4970,0x64b0,0x68a6,0xea5f,0x6b20,0xa6c4,0xaaef,0x92e0,0xd2e3,0xc960,0xd557,0xd4a0,0xda50,0x5dd5,0x56a0,0xa6d0,0x55d4,0x52d0,0xa9b8,0xa950,0xb4a0,0xb6a6,0xad50,0x55a0,0xaba4,0xa5b0,0x52b0,0xb273,0x6930,0x7337,0x6aa0,0xad50,0x4b55,0x4b6f,0xa570,0x54e4,0xd260,0xe968,0xd520,0xdaa0,0x6aa6,0x56df,0x4ae0,0xa9d4,0xa4d0,0xd150,0xf252,0xd520};constunsignedint*BMP_Cartoon[]=//動(dòng)畫幀數(shù)據(jù)鏈表〔sunplus標(biāo)志〕{(unsignedint*)encoding_00,(unsignedint*)encoding_01,(unsignedint*)encoding_02, (unsignedint*)encoding_03,(unsignedint*)encoding_04,(unsignedint*)encoding_05, (unsignedint*)encoding_06,(unsignedint*)encoding_07,(unsignedint*)encoding_08, (unsignedint*)encoding_sunplus, (unsignedint*)encoding_08,(unsignedint*)encoding_07,(unsignedint*)encoding_06, (unsignedint*)encoding_05,(unsignedint*)encoding_04,(unsignedint*)encoding_03, (unsignedint*)encoding_02,(unsignedint*)encoding_01,(unsignedint*)encoding_00, (unsignedint*)encoding_sunplus, (unsignedint*)encoding_00,(unsignedint*)encoding_01,(unsignedint*)encoding_02, (unsignedint*)encoding_03,(unsignedint*)encoding_04,(unsignedint*)encoding_05, (unsignedint*)encoding_06,(unsignedint*)encoding_07,(unsignedint*)encoding_08, (unsignedint*)encoding_sunplus, (unsignedint*)encoding_08,(unsignedint*)encoding_07,(unsignedint*)encoding_06, (unsignedint*)encoding_05,(unsignedint*)encoding_04,(unsignedint*)encoding_03, (unsignedint*)encoding_02,(unsignedint*)encoding_01,(unsignedint*)encoding_00, (unsignedint*)encoding_sunplus};//=======================================================================// 語法格式: intmain(void)// 實(shí)現(xiàn)功能:鍵盤控制語音播報(bào)日期時(shí)間及功能選擇// 參數(shù): 無// 返回值: 無//=======================================================================intmain(void){keyinitial();//鍵盤初始化 LCD501_Init(0);//液晶顯示初始化 LCD501_Circle(64,32,15,1); LCD501_ClrScreen(0); LCD501_FontSet(0); *P_INT_Ctrl_New=*P_INT_Ctrl_New|0x0004;//置2HZ中斷標(biāo)志 __asm("INTIRQ");//開放2HZ中斷while(1) {inti=0;//定義一個(gè)循環(huán)變量,用來對(duì)數(shù)組尋址. display();//用顯示日期時(shí)間界面 while(hour==nhour&&min==nmin&&onoff==0)//當(dāng)鬧鐘開時(shí),判斷鬧鐘時(shí)間是否到了 {keyscan();//當(dāng)鬧鐘響時(shí)如果有任何鍵按下,那么關(guān)閉鬧鐘。 if(keyvalue!=0) onoff=1; elseif(ringflag==0) PlayRespond(ring1);//播放樂曲1 else PlayRespond(ring2);}//播放樂曲2 if(min==0&&sec==0)//

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論