帶語音報時功能的萬年歷的設(shè)計_第1頁
帶語音報時功能的萬年歷的設(shè)計_第2頁
帶語音報時功能的萬年歷的設(shè)計_第3頁
帶語音報時功能的萬年歷的設(shè)計_第4頁
帶語音報時功能的萬年歷的設(shè)計_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

北京化工大學(xué)北方學(xué)院畢業(yè)設(shè)計(論文)PAGEPAGE22誠信申明本人申明:我所呈交的本科畢業(yè)設(shè)計(論文)是本人在導(dǎo)師指導(dǎo)下對四年專業(yè)知識而進(jìn)行的研究工作及全面的總結(jié)。盡我所知,除了文中特別加以標(biāo)注和致謝中所羅列的內(nèi)容以外,論文中創(chuàng)新處不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得北京化工大學(xué)或其它教育機(jī)構(gòu)的學(xué)位或證書而已經(jīng)使用過的材料。與我一同完成畢業(yè)設(shè)計(論文)的同學(xué)對本課題所做的任何貢獻(xiàn)均已在文中做了明確的說明并表示了謝意。若有不實之處,本人承擔(dān)一切相關(guān)責(zé)任。本人簽名:年月日帶語音報時功能的的萬年歷的設(shè)計孟超電子信息工程專業(yè)0706班學(xué)號070201161指導(dǎo)教師魯小利講師摘要萬年歷是現(xiàn)代人類生活中必不可少的工具,帶語音功能的萬年歷在電子萬年歷多功能化發(fā)展的今天更是必不可少的一個方向。語音萬年歷有突出的播報時間功能,它被廣泛用在生活中的各種領(lǐng)域。本設(shè)計就是從日常生活著手,通過對語音萬年歷的設(shè)計,讓我對單片機(jī)已經(jīng)進(jìn)入到我們生活的每個領(lǐng)域有了更深的了解。本系統(tǒng)采用凌陽公司的SPCE061A單片機(jī)為控制核心;語音報時系統(tǒng)使用凌陽單片機(jī)本身具有的特色語言功能。本設(shè)計從語音萬年歷設(shè)計原理、設(shè)計方案著手,詳細(xì)介紹了系統(tǒng)的硬件設(shè)計、軟件設(shè)計和調(diào)試。在語音萬年歷的設(shè)計中,要處理好:語音的識別,D/A(數(shù)/模)的轉(zhuǎn)換,人機(jī)接口,程序的設(shè)計。語音的識別技術(shù)和D/A(數(shù)/模)影響到時間的正確播報,播報時間和調(diào)整時間的關(guān)鍵是人機(jī)接口。關(guān)鍵詞:實時萬年歷SPCE061A單片機(jī)語音報時TheDesignoftheSpeechCalendarAbstractCalendarisanessentialtooltothemodernhumanlife.Thecalendarwithspeechfunctionisanindispensabledirectioninthedevelopmentofvariousfunctionsofelectroniccalendartoday.Speechcalendarhaveprominentbroadcastingtimefunction,whichiswidelyusedinvariousfieldsoflife.Thisdesignisstartingfromthedailylife.DesigningthespeechcalendarletmehaveadeeperunderstandingofSCMwhichhasbeingcomingtooureveryareasoflife.ThesystemusesSPCE061Aofthesunpluscompanyascontrolcore.Phonetictimesystemsusethecharacteristicspeechfunctionofsunplusmicrocontrolleritself.Thedesignisfromthestartthatprincipleofdesign,designschemeofspeechcalendartointroduceinhardwaredesign,softwaredesignandcommissioningofthesystemindetail.Inthedesignofspeechcalendar,weshoulddealwithspeechrecognition,D/A(number/die)conversion,man-machineinterfaceandtheprogramdesign.SpeechrecognitiontechnologyandD/A(number/die)affectthecorrecttimebroadcasts,andthekeyofbroadcasttimeandadjusttimeisman-machineinterface.Keywords:CalendarSPCE061ASpeechFunction目錄TOC\o"1-2"\h\u7651前言 114549第1章課題研究價值 217464第1.1節(jié)選題背景 219446第1.2節(jié)本設(shè)計的工作安排 24821第2章語音電子萬年歷的原理和方案 318400第2.1節(jié)設(shè)計原理 324569第2.2節(jié)設(shè)計方案 413679第3章語音電子萬年歷的硬件設(shè)計 520857第3.1節(jié)系統(tǒng)硬件結(jié)構(gòu) 51803第3.2節(jié)系統(tǒng)硬件結(jié)構(gòu) 727767第3.3節(jié)程序下載區(qū) 1657第3.4節(jié)音頻模塊 1813710第3.5節(jié)語音模塊 1819889第3.6節(jié)數(shù)/模轉(zhuǎn)換模塊 1932527第3.7節(jié)電源模塊 1922287第3.8節(jié)SPLC501液晶顯示模組 2015989第4章語音電子萬年歷的軟件設(shè)計 2324323第4.1節(jié)IDE集成開發(fā)環(huán)境 2319010第4.2節(jié)程序設(shè)計 2828222第5章測試與調(diào)試 3411221第5.1節(jié)硬件的測試 349822第5.2節(jié)61板的測試 3519720第5.3節(jié)程序的調(diào)試 3617836附錄 4018317參考文獻(xiàn) 4610607致謝 47前言單片機(jī)自1976年由Intel公司推出MCS-48開始,迄今已有二十多年了。由于單片機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗地、使用方便、價格低廉等一系列優(yōu)點(diǎn),目前已經(jīng)滲入到人們工作和生活的方方面面,幾乎“無處不在,無所不為”。單片機(jī)的應(yīng)用領(lǐng)域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費(fèi)產(chǎn)品、辦公自動化、汽車電子、PC機(jī)外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。單片機(jī)得到了蓬勃的發(fā)展,功能也日趨完善。它集成的資源越來越多,內(nèi)部資源也存儲的日益豐富,用戶無需擴(kuò)充資源即可完成項目的開發(fā),小巧精美,開發(fā)簡單,系統(tǒng)穩(wěn)定性也越來越好。其抗干擾能力的不斷加強(qiáng),使之更適合工業(yè)領(lǐng)域的控制。具有了更廣闊的市場前景。隨著人們對事物要求越來越高,單片機(jī)也發(fā)生了巨大的變化,尤其是應(yīng)用軟件技術(shù)上,從匯編語言到C語言開發(fā),大大提高了語言的結(jié)構(gòu)性、可讀性,也方便了跨平臺的移植操作。第1章課題研究價值第1.1節(jié)選題背景近些年來我們的生活中廣泛出現(xiàn)帶語音功能的電子器件和電子設(shè)備。語音萬年歷是現(xiàn)在電子萬年歷發(fā)展的必然趨勢,把語音加入到萬年歷中實現(xiàn)時間的語音播報功能。本設(shè)計基于凌陽61A單片機(jī)的語音報時系統(tǒng),利用凌陽61A板是一個本身帶有語音識別、播放功能的單片機(jī)來進(jìn)行時間播報。以及用SPLC501液晶顯示器來顯示當(dāng)前時間、農(nóng)歷、日期、星期、鬧鈴開關(guān)。單片機(jī)的應(yīng)用能實現(xiàn)各種控制策略和算法。具有功耗低,體型小,低成本,功能好的特點(diǎn),在國內(nèi)受到廣大用戶的重視和廣泛的應(yīng)用。伴隨著單片機(jī)集成化程度的提高,目前單片機(jī)已經(jīng)具備了數(shù)字信號處理的功能。SPCE061A是由信號處理器芯片以及u’nSPTM16位微控制器組成內(nèi)核的16位單片機(jī),模塊式集成結(jié)構(gòu),片內(nèi)集成了2KB的RAM、32KB的Flash、DAC、ADC和并行I/O等。第1.2節(jié)本設(shè)計的工作安排本設(shè)計是基于凌陽單片機(jī),系統(tǒng)設(shè)計是以單片機(jī)的語音電子萬年歷為基礎(chǔ)。利用凌陽單片機(jī)的方便、處理速度快、具有語音功能等優(yōu)點(diǎn),結(jié)合了SPLC501的強(qiáng)大的顯示功能,設(shè)計出的功能多、精度高的語音電子萬年歷。設(shè)計安排如下:第一章提出設(shè)計原理和方案。第二章按設(shè)計方案進(jìn)行語音電子萬年歷的硬件設(shè)計,電路原理圖的各模塊利用Prote1199繪制。第三章深入研究語音電子萬年歷的功能。畫出各部分的程序流程圖,據(jù)流程圖編寫源程序。第四章硬件測試和軟件調(diào)試。源程序調(diào)試通過集成開發(fā)環(huán)境IDE來進(jìn)行。第五章總結(jié)全文,寫出設(shè)計體會和設(shè)計不足的地方。簡述對本設(shè)計用途的前景。第2章語音電子萬年歷的原理和方案第2.1節(jié)設(shè)計原理帶語音的電子萬年歷要具備的以下功能:(1)時間和日期的語音播報。(2)日期、星期、時間、農(nóng)歷、鬧鐘可以在SPLC501液晶模組上面顯示。(3)能夠整點(diǎn)報時。(4)具備鬧鐘功能。2.1.1萬年歷功能萬年歷功能的設(shè)計利用SPCE061A芯片的定時/計數(shù)器和時鐘頻率。16位節(jié)后的微控制器能夠為語音電子萬年歷提供一個頻率穩(wěn)定的方波信號(32768Hz),另外其特有的校正電容還可以進(jìn)行溫度補(bǔ)償,來提高穩(wěn)定度和頻率精確度,保證了語音萬年歷的走時準(zhǔn)確及穩(wěn)定。系統(tǒng)工作時,整個系統(tǒng)的時基信號是秒信號產(chǎn)生器,秒信號器采用60進(jìn)制計數(shù),它能將標(biāo)準(zhǔn)秒信號送入秒信號器。每60秒發(fā)出一個分脈沖信號,該信號會作為分計數(shù)器的時鐘脈沖。分計數(shù)器也采用60進(jìn)制計數(shù)器,每60分鐘,發(fā)出一個時脈沖信號,此信號會被送到時計數(shù)器。時計數(shù)器采用24進(jìn)制計數(shù)器,能對一天24小時進(jìn)行累計,每累計24小時發(fā)出一個天脈沖信號。周計數(shù)器采用7進(jìn)制計時器,能對一周7天進(jìn)行累計,每累計7天會發(fā)出一個周脈沖信號,該信號將被送到周計數(shù)器。由中斷程序控制年計數(shù)器,年計數(shù)器用365進(jìn)制或366進(jìn)制計數(shù),對年進(jìn)行累計。顯示電路將年、星期、時、分、秒計數(shù)器的輸出狀態(tài)發(fā)送到SPLC501液晶顯示器來顯示。2.1.2語音輸出功能音頻輸出利用外接喇叭和SPY0030A芯片的語音輸出功能進(jìn)行。凌陽公司專門開發(fā)了SY0030A芯片用于語音信號放大。插針外接喇叭和語音輸出接口J3,通過DAC輸出引腳22或21經(jīng)SPY0030A芯片語音集成放大器進(jìn)行放大輸出。第2.2節(jié)設(shè)計方案經(jīng)分析,本設(shè)計采用模塊結(jié)構(gòu)來實現(xiàn)。語音電子萬年歷的組成主要有:SPLC501液晶模組、壓縮編碼模塊和D/A(數(shù)/模)轉(zhuǎn)換模塊、語音輸入與A/D(模/數(shù))轉(zhuǎn)換模塊、輸入按鍵信息模塊、系統(tǒng)初始化模塊。能夠?qū)崿F(xiàn)定時功能,調(diào)整和單獨(dú)播報時、分和年、月、日,以及復(fù)位鍵對設(shè)定值的清零操作。各模塊的功能如下:(1)SPLC501液晶模組:能夠顯示當(dāng)前的時間、日期、農(nóng)歷、星期、鬧鐘。(2)壓縮編碼模塊:數(shù)字信號輸入,進(jìn)過壓縮函數(shù)處理,壓縮編碼輸出。(3)D/A(數(shù)/模)轉(zhuǎn)換模塊:數(shù)字信號輸入,D/A(數(shù)/模)轉(zhuǎn)換,模擬信號輸出。(4)語音輸入及A/D(模/數(shù))轉(zhuǎn)換模塊:語音信號輸入,A/D(模/數(shù))轉(zhuǎn)換,數(shù)字信號輸出。(5)輸入按鍵信息模塊:先進(jìn)行輸值,等待系統(tǒng)中斷并做出中斷處理,把調(diào)用相應(yīng)的處理程序進(jìn)行輸出。(6)系統(tǒng)初始化模塊:輸入子小模塊和一些變量,賦初值處理,把模塊的初始狀態(tài)和變量輸出。第3章語音電子萬年歷的硬件設(shè)計第3.1節(jié)系統(tǒng)硬件結(jié)構(gòu)3.1.1萬年歷功能語音電子萬年歷的系統(tǒng)結(jié)構(gòu)如下圖,整個系統(tǒng)的控制中心是61板,它能負(fù)責(zé)液晶顯示的驅(qū)動;年、月、日、星期以及時間的計算;控制鍵盤掃描;液晶顯示模組能夠顯示:功能選擇菜單和時間日期的調(diào)整菜單以及顯示當(dāng)前的時間、日期;播報當(dāng)前的日期或者時間。電源電源61板KEY1KEY2KEY3KEY1KEY2KEY3I/O口SPLC501A液晶顯示模組I/O口SPLC501A液晶顯示模組電源接口I/O口SPCE061ASPCE061A音頻音頻揚(yáng)聲器揚(yáng)聲器圖3.1帶語音功能電子萬年歷的系統(tǒng)結(jié)構(gòu)圖硬件連接:IOA的高八位以及IOB的4、5、6連接液晶模組。還用到了語音輸出模塊以及三個按鍵。DC4.5V電源DC4.5V電源IOB4IOB5IOB6+SPCE061AIOA8精簡開發(fā)板IOA9IOA10IOA11IOA12IOA13IOA14IOA15—AOR/WEP+DB0SPLC501DB1液晶顯示模組DB2DB3DB4DB5DB6DB7—喇叭喇叭圖3.2帶語音功能電子萬年歷的電路連接圖3.1.2按鍵功能的描述帶語音功能的電子萬年歷的按鍵功能介紹如下:首界面:(1)按KEY1鍵:進(jìn)入功能選擇界面。(2)按KEY2鍵:播報當(dāng)前的時間。(3)按KEY3鍵:播報當(dāng)前的日期。(4)KEY2、KEY3鍵同時按下:控制鬧鐘的開與關(guān)。進(jìn)入功能選擇菜單,KEY1:確定鍵,KEY2:下翻鍵,KEY3:上翻鍵。分別顯示以下選項:(1)時間日期調(diào)整。(KEY1:確定鍵,KEY2:加一鍵,KEY3:減一鍵,液晶顯示器上閃爍的部分為正在調(diào)整的選項,設(shè)置完成后,按KEY1自動退出設(shè)置界面。)(2)鬧鐘設(shè)置。(KEY1:確定鍵,KEY2:加一鍵,KEY3:減一鍵,液晶顯示器上閃爍的部分為正在調(diào)整的選項,設(shè)置完成后,按KEY1自動退出設(shè)置界面。)(3)秒表功能。(KEY1:退出鍵,KEY2:開始/暫停鍵,KEY3:清零鍵,秒表停止運(yùn)行時KEY3有效。)(4)返回。(KEY1:確認(rèn)鍵,按下后,系統(tǒng)回到顯示界面。)圖3.3按鍵功能結(jié)構(gòu)圖第3.2節(jié)系統(tǒng)硬件結(jié)構(gòu)SPCE061A芯片內(nèi)部集成了FLASH(閃存)、SRAM(靜態(tài)內(nèi)存)、ICE(在線實時仿真/出錯器)、通用I/O端口、ADC(模擬數(shù)字轉(zhuǎn)換器)、DAC(數(shù)字模擬轉(zhuǎn)換器)輸出、定時器/計數(shù)器、CPU時鐘鎖相環(huán)(PLL)中斷控制、SIO(串行輸入輸出接口)、UART(同步串行輸入輸出接口)、低電壓監(jiān)測/低電壓復(fù)位模塊。u`nSP的核心由總線、寄存器組、ALU算數(shù)邏輯運(yùn)算單元、堆棧及中斷系統(tǒng)等組成。3.2.1SPCE061A的性能簡介(1)工作電壓為3.0-3.6V,VDDH為3.0-5.5V。(2)16位微處理器。(3)CPU時鐘:0.32-49.152MHz.(4)內(nèi)置32KFLASH。(5)內(nèi)置2KSRAM。(6)晶體振蕩器。(7)可編程音頻處理。(8)32位通用可編程輸出、輸入通道。(9)兩個10位DAC輸出通道。(10)可播放壓縮的語音資源。(11)內(nèi)置麥克風(fēng)放大器,并有自動增益控制功能(12)內(nèi)置在線仿真電路接口。3.2.2SPCE061A的引腳實物圖如下:圖3.4SPCE061A的實物圖結(jié)構(gòu)圖如下:圖3.5SPCE061A的引腳圖3.2.3SPCE061A內(nèi)核的結(jié)構(gòu)SPCE061A內(nèi)核由總線、寄存器組、算數(shù)邏輯運(yùn)算單元(ALU)、中斷體統(tǒng)和堆棧等組成。ALU功能特色:(1)16位基本算數(shù)邏輯運(yùn)算。(2)帶移位操作的16位算數(shù)邏輯運(yùn)算。3.16*16位的乘法運(yùn)算和內(nèi)積運(yùn)算。(1)算數(shù)邏輯運(yùn)算器ALU前面串接一個SHIFTER移位器,可以使操作數(shù)先進(jìn)行移位處理,再經(jīng)ALU進(jìn)行邏輯運(yùn)算。移位包括:算數(shù)右移、邏輯右移、邏輯左移、循環(huán)右移以及循環(huán)左移。因此,SPCE061A指令系統(tǒng)里有一組能完成移位和邏輯運(yùn)算操作兩項功能的復(fù)合式移位算術(shù)邏輯操作指令。(2)片內(nèi)存儲器結(jié)構(gòu)2K的SRAM,地址范圍:0x0000-0x07FF,其中0x0000-0x003F地址可直接尋址,速度為2個時鐘周期,0x0040-0x07FF速度為3個時鐘周期。堆棧是RAM按照“先進(jìn)后出”原則存儲數(shù)據(jù)的工作方式。用于中斷處理斷電的保護(hù)及返回和子程序調(diào)用及返回,最大容量為2K。注意,系統(tǒng)復(fù)位,SP初始化:0x07FF,每執(zhí)行PUSH一次,SP指針減一。32K閃存容量的SPCE061A是一個用閃存代替ROM的MTP芯片??捎瞄W存存儲程序。用戶通過向P-Flash-Ctrl單元寫入0xAAAA;激活閃存存取功能,進(jìn)而訪問閃存。向P-Flash-Ctrl單元寫入0xAAAA擦除頁的內(nèi)容。而寫入0x5533,對閃存變成。中斷、ICE的單步跟蹤等任何其他程序都不能打斷。閃存控制器必須讓閃存處于編程狀態(tài)。。若其他進(jìn)程插到當(dāng)前執(zhí)行隊伍,閃存狀態(tài)改變,編程和擦除頁操作不能繼續(xù)進(jìn)行。另外,用戶必須在編程前擦除頁內(nèi)容。第一頁地址范圍為:0x8000-0x80FF,最后一頁地址范圍為:0xFF00-0xFFFF.頁大小0x100。系統(tǒng)保留0xFC00-0xFFFF范圍內(nèi)的地址,用戶不要用此范圍內(nèi)地址。32K內(nèi)嵌式閃存劃分成128頁,CPU運(yùn)行正常時均可通過程序?qū)懭牖虿脸?。上電后,芯片就處于讀存儲單元狀態(tài),操作與SRAM相同。(3)輸入/輸出接口輸入端口從外界接收鍵盤信號、檢測信號等開關(guān)量信號。輸出端口向外界輸送產(chǎn)生的處理結(jié)果、控制命令、顯示信息、驅(qū)動信號等。u`nSP內(nèi)有串行和并行兩種方式的I/O口。串行口傳輸速率較低但可以節(jié)省大量的電路成本,與串行口相比,并行口線路成本高,但傳輸速率也高。SPCE061A有A口和B口兩個16位通用并行I/O口,他們每一位都可以通過編程單獨(dú)定義為輸入口或輸出口。A口的I0A0-I0A7當(dāng)輸入口時有喚醒功能,當(dāng)輸入電平變化時CPU中斷。CPU的睡眠模式可以降低功耗,需要時按鍵喚醒,使之進(jìn)入工作狀態(tài),廣泛用于電池供電、低耗能的場合。SPCE061A的I/O口每一位都可以被單獨(dú)定義,用于輸入、輸出數(shù)據(jù)。對某一位設(shè)定包括三個基本項:數(shù)據(jù)向量、屬性向量、方向控制向量。三個端口內(nèi)每個對應(yīng)的組位合起來形成一個控制字,來定義輸入狀態(tài)和方式。每個對應(yīng)的狀態(tài)下,I/O端口性質(zhì)電路都是內(nèi)置的,實際電路中不需再接。P_IOA/B_Buffer(讀)上拉P_IOA/B_Buffer(讀)P_IOA/B_Dater(寫)數(shù)據(jù)寄存器和邏輯控制P_IOA/B_Dater(寫)數(shù)據(jù)寄存器和邏輯控制P_IOA/B_Buffer(寫)P_IOA/B_Buffer(寫)P_IOA/B_Dir(讀/寫)P_IOA/B_Dir(讀/寫)P_IOA/B_Attrib(讀/寫)P_IOA/B_Attrib(讀/寫)P_IOA/B_Buffer(讀)P_IOA/B_Buffer(讀)圖3.6I\O端口的結(jié)構(gòu)表3.1I\O組合控制設(shè)置表方向?qū)傩詳?shù)據(jù)功能是否有喚醒功能功能描述000下拉*是**帶下拉電阻的輸入管腳001上拉是**帶下拉電阻的輸入管腳010懸浮是**懸浮式輸出管腳011懸浮否懸浮式輸出管腳***100高電平輸出否帶數(shù)據(jù)反相器的高電平輸出101高電平輸出否帶數(shù)據(jù)反相器的高電平輸出110高電平輸出否帶數(shù)據(jù)緩存器的低電平輸出111高電平輸出否帶數(shù)據(jù)緩存器的低電平輸出注:*:默認(rèn)帶下拉電阻的輸入管腳。**:控制字是000,001,010時,才有喚醒功能。***:ADCIOA(0—6)輸入。3.2.4時鐘電路系統(tǒng)的時鐘是由時間基準(zhǔn)信號、鎖相環(huán)、時鐘發(fā)生器組成的。(1)首先由實時時鐘(32768Hz)經(jīng)過PLL倍頻電路產(chǎn)生了系統(tǒng)時鐘頻率,系統(tǒng)時鐘頻率再經(jīng)過分頻得到CPU時鐘頻率,它可通過對P-SystemClock單元編程來控制。系統(tǒng)時鐘頻率和時鐘頻率分別為24.576MHz和Fosc/8.可以通過對P-SystemClock單元編程來完成對系統(tǒng)時鐘以及CPU時鐘頻率定義。SPCE061AX1/RX020pf20pf圖3.7時鐘電路圖RTC振蕩器的工作方式有兩種:自動弱振模式和強(qiáng)振模式。當(dāng)處于自動弱振模式,系統(tǒng)會在上電復(fù)位后的前7.5s內(nèi)處于強(qiáng)振模式,之后由于需要降低功耗會自動切換到弱振模式。當(dāng)處于強(qiáng)振模式,RTC振蕩器就會始終的運(yùn)行于高耗能狀態(tài)下。當(dāng)CPU被喚醒,此時默認(rèn)的始終頻率是Fosc/8,可以根據(jù)需要進(jìn)行調(diào)整。喚醒進(jìn)過32個時鐘周期的緩沖后再進(jìn)行其他操作。(2)鎖相環(huán)PLL振蕩器,系統(tǒng)默認(rèn)的PLL自激震蕩頻率是24.576MHz。PLL電路可以將實時時鐘的基頻進(jìn)行倍頻,調(diào)節(jié)為20.480MHz、24.576MHz、32.768MHz、40.96MHz、49.152MHz。(3)時間基準(zhǔn)信號,簡稱為時基信號,它的選頻邏輯TMB1為中斷源系統(tǒng)提供中斷信號并為TimerA的時鐘源提供各種頻率選擇信號。另外,時基信號發(fā)生器還可以為中斷系統(tǒng)提供各種實施中斷源信號。(4)定時器/計數(shù)器兩個16位定時/計數(shù)器分別是:TimerA通用計數(shù)器和TimerB多功能計數(shù)器。TimerB的時鐘源僅為時鐘源A,而TimerA的時鐘源是由時鐘源A和B進(jìn)行與操作形成的。定時器溢出后產(chǎn)生溢出信號。(1)它作為4位計數(shù)器計數(shù)的時鐘源信號,會輸出一個4位可調(diào)脈寬調(diào)制占空比輸出信號,調(diào)控馬達(dá)或其他設(shè)備的速度。(2)它會傳輸給CPU中斷系統(tǒng)。(3)可用于DAC輸出的數(shù)據(jù)鎖存和觸發(fā)ADC輸出的自動轉(zhuǎn)換過程。在向定時器的P-TimerA-Data單元或P-TimerB-Data單元寫入計數(shù)值N后,選擇合適時鐘源,定時/計數(shù)器在所選時鐘頻率下以遞增方式計數(shù)。當(dāng)達(dá)到0xFFFF后溢出,產(chǎn)生中斷請求信號,CPU響應(yīng),送入中斷控制器處理。同時,N被重新載入定時/計數(shù)器重新計數(shù)。通過寫入P-TimerA-Ctrl單元的6-9位,可以選擇設(shè)置APWMO的輸出波形脈寬占空比;同理適合P-TimerB-Ctrl.時鐘源A來自帶鎖相環(huán)的晶體振蕩器輸出Fosc,是高頻時鐘源;而時鐘源B則來自時鐘系統(tǒng),可以作為精確計數(shù)器。3.2.5中斷系統(tǒng)SPCE061A單片機(jī)可提供14個中斷源,有兩個中斷優(yōu)先級,能實現(xiàn)兩級中斷嵌套功能。用戶可用開中斷指令使CPU接受中斷請求,也可以用關(guān)中斷指令屏蔽所有中斷請求。每個中斷源可用軟件獨(dú)立控制開或關(guān)中斷狀態(tài),但中斷級別不能用軟件設(shè)置。中斷類型:異常中斷、軟件中斷和事件中斷。(1)異常中斷異常中斷(復(fù)位)一旦發(fā)生,CPU立即進(jìn)行處理。異常中斷可由三種情況引起:上電、系統(tǒng)電源低于電壓底線以及看門狗計數(shù)器溢出。無論哪種情況引起復(fù)位,復(fù)位引腳的電位都會變低,程序指針PC由復(fù)位向量所指的系統(tǒng)復(fù)位程序入口地址。(2)軟件中斷軟件中斷是由軟件指令產(chǎn)生的中斷,向量地址為FFF5H(3)事件中斷此中斷的禁止或開通,由相應(yīng)的FIQ或IRQ總使能控制和相應(yīng)的獨(dú)立使能控制。事件中斷產(chǎn)生于外設(shè)中斷輸入引腳引入的某事件或片內(nèi)設(shè)部件。中斷采用兩種方式:FIQ快速中斷請求和IRQ中斷請求,他,他們都有相應(yīng)的總使能。SPCE061A設(shè)有9個中斷向量,分別為IRQ0-IRQ6、FIQ、UART以及IRQ。他們可安置14個中斷源使用。其中四個可安置在IRQ0-IRQ2中,其他十個安置在IRQ3-IRQ6中。14個中斷源分為兩個外部中斷、兩個定時器溢出中斷、一個串行口中斷、一個觸鍵喚醒中斷、PWM音頻輸出中斷和7個時基信號中斷。其中,快速中斷高于普通中斷優(yōu)先級,IRQ中斷中IRQ1優(yōu)先級高于IRQ2,IRQ2高于IRQ3,序號越高中斷優(yōu)先級越低,中斷優(yōu)先級最低的是UART。IRQ中,中斷查詢有先后,但不能進(jìn)行中斷嵌套。在同中斷向量中,中斷源中斷優(yōu)先級相同。中斷響應(yīng)的過程中斷發(fā)生到被響應(yīng)再到執(zhí)行中斷服務(wù)程序是一個復(fù)雜的過程。此過程都是在CPU控制下有序完成的。(1)中斷的查詢61板會把所有中斷請求匯集到P-INT-Ctrl和P-UART-Command2寄存器中。其中音頻輸出中斷、定時中斷、串行異步中斷、觸鍵喚醒、時基中斷的請求因為發(fā)生在內(nèi)部,可直接去置位P-INT-Ctrl和P-UART-Command2中各自的中斷請求來標(biāo)著,沒有采樣問題,而外中斷需要采樣將中斷請求鎖定在P-TNT-Ctrl寄存器的相應(yīng)標(biāo)志位。中。查詢就是CPU分別測試P-INT-Ctrl和P-UART-Command2中各自的標(biāo)志位狀態(tài),以確定中斷請求是否發(fā)生以及是哪個,中斷請求的匯集是查詢變得更加簡單,只需對兩個寄存器分別查詢。每一個指令周期結(jié)束后中斷查詢開始發(fā)生,按中斷優(yōu)先級查詢,即先查詢FIQ高級中斷在查詢IRQ低級中斷,IRQ0-IRQ1-IRQQ3-IRQ4IRQ5-IRQ6-UART順序查詢。若有標(biāo)志位為“1”,則有中斷請求發(fā)生。中斷請求隨即發(fā)生,CPU無法預(yù)知,所以在每個指令結(jié)束后需不停的進(jìn)行。(2)中斷響應(yīng)中斷響應(yīng)就是中斷查詢后CPU檢測到有效中斷請求,接收中斷請求并進(jìn)行中斷響應(yīng)。主要內(nèi)容為硬件自動生成的一條格式為CALLaddR16(中斷入口,由系統(tǒng)設(shè)定)的調(diào)用指令。中斷響應(yīng)并不是查詢到中斷請求都能立即響應(yīng),當(dāng)存在以下情況,中斷響應(yīng)會被封鎖:CPU處在高級或同級的中斷服務(wù)中。中斷響應(yīng)的時間由兩部分組成,即中斷信號出現(xiàn)到CPU響應(yīng)和CPU響應(yīng)到進(jìn)入中斷程序所用的時間之和。中斷響應(yīng)后,P-INT-Ctrl和P-UART-Command2中中斷請求標(biāo)志需立即清除,否則會造成重復(fù)查詢和響應(yīng)。中斷入口清中斷標(biāo)志位中斷入口清中斷標(biāo)志位現(xiàn)場恢復(fù)關(guān)中斷現(xiàn)場恢復(fù)關(guān)中斷現(xiàn)場保護(hù)現(xiàn)場保護(hù)開中斷開中斷中斷源判斷中斷源判斷進(jìn)入相應(yīng)中斷處理中斷返回進(jìn)入相應(yīng)中斷處理中斷返回圖3.8中斷流程圖3.2.6最小體統(tǒng)和開發(fā)方法(1)圖3.9最小系統(tǒng)電路圖最小系統(tǒng)如上圖所示,晶振和諧振電容連接在OSC0、OSC1上,鎖相環(huán)壓控振蕩器的阻容輸入端上接對應(yīng)的電容電阻。地端和不用的電容接上0.1uF的去耦電容,用以提高抗干擾能力。(2)開發(fā)方法調(diào)試器RPOBE是一個編程器也是一個實時在線調(diào)試器,開發(fā)就是通過它來實現(xiàn)的。它可以代替硬件在線實時仿真器和程序燒寫器,利用了凌陽公司的在線串行編程技術(shù)和內(nèi)置在線仿真電路。PROBE在IDE集成開發(fā)環(huán)境軟件包下工作,它的5芯仿真頭直接插到目標(biāo)電路板上61的相應(yīng)管腳,可以直接在目標(biāo)電路CPU-SPCE061A上調(diào)試,運(yùn)行編程。PROBE的另一頭可直接連到計算機(jī)打印口和上位機(jī)通訊,是標(biāo)準(zhǔn)的25針PC接口,在IED集成開發(fā)環(huán)境軟件包下,進(jìn)行調(diào)試功能。圖3.10開發(fā)調(diào)試下載圖第3.3節(jié)程序下載區(qū)ICE的運(yùn)行是通過ICE偽指令和控制clock方式,來控制緩存器資料和內(nèi)存資料的存取以及控制CPU的運(yùn)行。所以要控制目前CPU的動作必須通過控制設(shè)定緩存器的值。61板上的74HC244是在程序下載時起緩存作用和選擇SDA是用作數(shù)據(jù)下載還是數(shù)據(jù)回送。程序下載電路如圖所示:圖3.11程序下載圖圖3.12芯片引腳線路圖第3.4節(jié)音頻模塊音頻模塊是通過MICROPHONE輸入我們要求的語音信息,再由61板處理采集的語音信號,提出特征參數(shù),與儲存在外擴(kuò)Flash內(nèi)特征參數(shù)模板匹配。圖3.13音頻模塊電路圖第3.5節(jié)語音模塊SPY0030A是專門用于語音信號放大的芯片,與LM386相比優(yōu)勢是:輸出功率高、工作電壓低、低失真。語音模塊電路圖如下:圖3.14語音模塊電路圖第3.6節(jié)數(shù)/模轉(zhuǎn)換模塊音頻輸入就是把聲音信號通過SPCE061A芯片中的模/數(shù)采集、處理后又通過數(shù)/模轉(zhuǎn)換還原后,由功率放大電路把聲音播出。SPCE061A提供了DAC1和DAC2兩條通道,并且有7個10位ADC通道,一個用于語音輸入,其余6個通道引腳共享,可將模擬信號轉(zhuǎn)換成數(shù)字信號。0V-AVdd是模/數(shù)轉(zhuǎn)換的范圍。超過VDD+0.3V或低于VSS-0.3V會影響轉(zhuǎn)換電路從而影響AD性能。第3.7節(jié)電源模塊61板需要由J10接入3節(jié)5號電池供電,為去偶濾波,使其供給芯片更平滑,前后要接兩組電容。加入三端穩(wěn)壓器可獲得標(biāo)準(zhǔn)3.3V電壓。為防止誤將電源接反,加兩個二極管。后面零電阻和不同的幾路電源為減少電磁干擾。電源電路圖如下:圖3.15電路原理圖第3.8節(jié)SPLC501液晶顯示模組3.8.1SPLC501的組成SPLC501液晶顯示模組由復(fù)位鍵、液晶顯示器、模組接口及跳線和電源指示燈表3.2接口引腳說明接口引腳名說明CS1片選,低有效RES復(fù)位腳AO數(shù)據(jù)命令選擇腳R\W6800系列MPU的讀\寫信號8080系列MPU的時鐘信號EP6800系列MPU時鐘信號使能腳8080系列MPU的讀信號DB08位數(shù)據(jù)總線DB1DB2DB3DB4DB5DB6DB7VR端口輸出電壓C86C86=L選擇8080MPU系列C86=H選擇8080MPU系列PS串、并行時序選擇電路原理圖如下:圖3.16顯示器電路原理圖圖3.17顯示器電路原理圖3.8.2SPLC501驅(qū)動控制芯片SPLC501為液晶顯示控制驅(qū)動器,采用SPLC501A芯片為驅(qū)動控制芯片,集成控制器和列驅(qū)動器??芍苯舆B于其他微控制器接口總線。通過串行接口和8位數(shù)據(jù)總線,微控制器將顯示數(shù)據(jù)寫到SPLC501的顯存中。SPLC501采用先進(jìn)的COG技術(shù)和GPG12063YS3LCD模塊,將芯片嵌在LCD玻璃上,如圖所示:128﹡64128﹡6400—127SPLC501CSPLC501C圖3.18SPLC501結(jié)構(gòu)圖3.8.3SPLC501的顯示RAM區(qū)映射顯示器上的顯示點(diǎn)與緩存RAM是一一對應(yīng)的;顯示器的顯示點(diǎn)陣為64X128,而SPLC501A芯片有65X132個位,所以有用的顯示RAM區(qū)為64X128。按Byte劃分,分8個page,每個為8行,每行128位。在驅(qū)動控制芯片顯示RAM區(qū)對應(yīng)屏幕上點(diǎn)的排列方式:低位在上高位在下,縱向排列。3.8.4SPLC501行和列地址要點(diǎn)亮LCD屏上的某點(diǎn),需確定該點(diǎn)所處的行地址、列地址,并對其進(jìn)行置1操作;每個page有8行,列地址表示該點(diǎn)橫坐標(biāo),從左到右排,每Byte對應(yīng)一列,達(dá)128列。據(jù)此控制LCD顯示屏顯示。芯片上每個page的RAM前4個byte沒有對應(yīng)點(diǎn)。第4章語音電子萬年歷的軟件設(shè)計第4.1節(jié)IDE集成開發(fā)環(huán)境IDE開發(fā)環(huán)境,能夠完成編譯、編輯、連接、調(diào)試和仿真等功能。IDE開發(fā)界面如圖:圖4.1u'nSPIDE的開發(fā)界面多窗口操作是u'nSPIDE的一大特色,程序可由多文件組成,采用建立項目對其管理,用戶可隨意刪除、添加程序文件。窗口切換只需單擊鼠標(biāo)左鍵,主界面里還提供工具欄和下拉菜單等。U'nSPIDE有兩種狀態(tài):1.編輯狀態(tài),用戶對工程進(jìn)行設(shè)置操作、文件刪增、程序編寫。2.仿真狀態(tài),運(yùn)行編譯程序,驗證程序正確性,或下載在線調(diào)試。U'nSPIDE仿真調(diào)試可分為軟件仿真和在線調(diào)試。仿真不需要下載線、開發(fā)板或在線調(diào)試;而在線調(diào)試時,需要下載線、開發(fā)板連接好,開發(fā)板供電。4.1.1IDE的工作操作(1)工程內(nèi)各類文件①資源文件:擴(kuò)展名為“re”的文件包括此時工程的所有信息。②工程文件:擴(kuò)展名為“spj”的工程文件包括各種創(chuàng)建一個工程所需的信息。③MakeFile文件④C語言文件⑤資源表文件和資源表頭文件(2)創(chuàng)建工程①在File中選擇New打開,選擇project標(biāo)簽。②輸入工程名。③輸入工程文件路徑。④在SelectBodyHere中選擇Probe。⑤單擊OK。此時,生成新工程,顯示在Workspace窗口中,若沒有窗口,通過在View中選擇Workspace點(diǎn)擊打開窗口。圖4.2創(chuàng)建工程圖(3)生成源文件①在File中選擇New打開對話框。②在File頁中選擇SPIDECFile。③把源文件名稱輸入File框中。④點(diǎn)擊OK。(4)把資料和文件添加到工程中有兩種添加方式,分別是:①在Project中選擇AddtoProject,點(diǎn)擊File\Resource,來激活對話框。②鼠標(biāo)右擊工程窗口的文件夾,選擇AddFileToFolder,激活對話框。在對話框內(nèi)選擇文件后,單擊Open,添加文件。圖4.3源文件的生成圖示圖4.4添加資料和文件(5)打開工程從RecentProject菜單中打開工程。①在File中選擇Open單擊打開。②Type中點(diǎn)擊ProjectFiles(*spj)。③選擇工程,點(diǎn)擊Open。4.1.2IDE的在線仿真SPCE061A的開發(fā)系統(tǒng)是由編程器、軟件開發(fā)、下載線和仿真器結(jié)合而成的,無需插拔芯片、電源、電纜等連線和操作,極大的提高了開發(fā)和學(xué)習(xí)的效率。其片內(nèi)整合了可在線編程控制的模塊,配合下載線就可以輕松的下載編譯代碼到開發(fā)系統(tǒng)上進(jìn)行演示和驗證。整個流程只需利用操作鼠標(biāo)即可。流程如下:程序下載程序下載程序運(yùn)行程序運(yùn)行程序打斷程序打斷圖4.5在線仿真流程圖4.1.3IDE的軟件仿真軟件仿真模擬硬件部分功能無需連接仿真版,通過窗口可觀察程序運(yùn)行情況。其可實現(xiàn)PWM和I\O狀態(tài)的仿真功能。(1)PWM仿真在工具欄中單擊Body,彈出對話框中選擇PWM。出現(xiàn)PWMWave窗口數(shù)字示波器,可以將數(shù)字信號轉(zhuǎn)換模擬信號,再通過PWM輸出聲音數(shù)據(jù)顯示在窗口上。程序運(yùn)行,即可看到PWM波形的占空比,如圖所示:圖4.6PWM軟件仿真(2)狀態(tài)仿真在工具欄中單擊Body,彈出對話框中選擇PortIO。運(yùn)行程序可見I\O現(xiàn)象。若0-f為灰,表示輸出狀態(tài),若為黑,小時輸入狀態(tài)。按下鍵表示輸入高電平,此時I\O對應(yīng)燈亮,不亮表示輸出低電平,如圖:圖4.7I\O狀態(tài)仿真第4.2節(jié)程序設(shè)計編程過程中,運(yùn)用了兩大類程序模塊分別是:程序接口和程序。通過接口高級程序模塊能調(diào)用本級模塊定義的全局變量,或者是本級程序模塊的函數(shù)或子程序。模塊代碼的調(diào)用需遵循調(diào)用協(xié)議,調(diào)用協(xié)議就是:讓不同子程序匯聚,并完成定義子程序返回值和調(diào)用,以及兩個子程序的參數(shù)傳遞和控制的常規(guī)規(guī)則。調(diào)用協(xié)議包含要素:(1)子程序的返回值。(2)參數(shù)傳遞。(3)中間寄存器。協(xié)議具體內(nèi)容:(1)參數(shù)的傳遞參數(shù)被反相壓入棧中。若調(diào)用發(fā)生于聲明前,則參數(shù)不進(jìn)行數(shù)據(jù)轉(zhuǎn)換,若發(fā)生在聲明后,參數(shù)轉(zhuǎn)換成原型被聲明的數(shù)據(jù)類型。(2)堆棧的排列和維護(hù)切忌程序返回時彈出調(diào)用程序壓進(jìn)棧中的參數(shù)。(3)返回值32位返回值存入R1、R2寄存器中,16位返回值存入R1寄存器中;高字在R2,低字在R1中。返回結(jié)構(gòu)需放指針到R1中。4.2.1軟件的結(jié)構(gòu)結(jié)合IDE程序設(shè)計規(guī)則和開發(fā)環(huán)境,可設(shè)計以下軟件結(jié)構(gòu)如圖:Main.cMain.cSystem.cSpeak.cSystem.cSpeak.cKey.cIsr.asmKey.cIsr.asm圖4.8軟件的結(jié)構(gòu)圖功能描述:(1)main.c能夠?qū)崿F(xiàn)開機(jī)畫面的顯示,系統(tǒng)初始化,語音報時以及鍵盤掃描。(2)system.c包含大部分功能函數(shù),了時間日期調(diào)整,顯示界面,秒表的調(diào)整和鬧鐘時間設(shè)定等。(3)key.c實現(xiàn)了查詢方式的鍵盤掃描,定義了延時函數(shù)和掃描鍵盤函數(shù)。(4)speak.c播報語音函數(shù)實現(xiàn)語音播報時間,日期和鬧鐘。(5)isr.asm實現(xiàn)秒表,時間、日期修改以及語音解碼。4.2.2主程序主程序初始化了液晶顯示模塊以及整個工程所用的變量。主程序調(diào)用掃描鍵盤程序,進(jìn)行對I\O口第三位的掃描,若有鍵按下,相應(yīng)鍵值存入變量,通過主程序判斷并執(zhí)行功能。按下KYE1鍵,進(jìn)入選擇功能菜單,這時候KEY1是確定鍵,KEY2是向下翻,KEY3是向上翻;按下KYE2鍵,播報時間;按下KEY3鍵,播報此時日期;若同時按下KEY2鍵和KEY3鍵,控制鬧鐘開關(guān)。開始開始初始化各種變量,初始化各種變量,初始化液晶顯示開機(jī)畫面顯示開機(jī)畫面打開2HZ中斷打開2HZ中斷鬧鐘到鬧鐘到播放樂曲播放樂曲YN報時整點(diǎn)到報時整點(diǎn)到Y(jié)N鍵盤掃描鍵盤掃描判斷按鍵執(zhí)行相應(yīng)功能有鍵按下?判斷按鍵執(zhí)行相應(yīng)功能有鍵按下?YN清看門狗清看門狗圖4.9主程序的流程圖時間日期流程模塊用到2Hz時基中斷,實現(xiàn)日期更新和計時。通過查表實現(xiàn)農(nóng)歷的查詢。開始開始2HZ中斷兩次天=當(dāng)月天數(shù)NN2HZ中斷兩次天=當(dāng)月天數(shù)Y秒加1Y秒加1天清0,月加1天清0,月加1秒=60?N秒=60?查表確定農(nóng)歷當(dāng)月天數(shù)查表確定農(nóng)歷當(dāng)月天數(shù)Y秒清0,分加1天=當(dāng)月天數(shù)N秒清0,分加1天=當(dāng)月天數(shù)分=60?N分=60?Y天清0,月加1Y天清0,月加1分清0,時加1分清0,時加1月=12?N月=12?時=24?N時=24?Y月清0,年加1月清0,年加1Y時清0,天加1時清0,天加1年=2100?N年=2100?由平/閏年確定當(dāng)月天數(shù)Y由平/閏年確定當(dāng)月天數(shù)年=2001年=2001返回返回圖4.10時間日期模塊的流程圖4.2.3中斷服務(wù)程序三個中斷服務(wù)程序分別是:用于播放語音的FIQ中斷服務(wù)程序,用于秒表計時的中斷服務(wù)程序,用于計時的中斷服務(wù)程序。圖4.11FIQ中斷程序的流程圖寄存器入棧寄存器入棧判斷是否為2HZ中斷判斷是否為2HZ中斷調(diào)整時間和日期的修改函數(shù)Y調(diào)整時間和日期的修改函數(shù)N清4HZ中斷標(biāo)志清2HZ中斷標(biāo)志清4HZ中斷標(biāo)志清2HZ中斷標(biāo)志寄存器出棧寄存器出棧中斷返回中斷返回圖4.12IRQ時基中斷的流程圖寄存器入棧寄存器入棧判斷是否1KHZ中斷判斷是否1KHZ中斷YN判斷是否為2KHZ中斷修改秒表數(shù)據(jù)Y判斷是否為2KHZ中斷修改秒表數(shù)據(jù)N清1KHZ中斷標(biāo)志清2KHZ中斷標(biāo)志清4KHZ中斷標(biāo)志清1KHZ中斷標(biāo)志清2KHZ中斷標(biāo)志清4KHZ中斷標(biāo)志寄存器出棧寄存器出棧中斷返回中斷返回圖4.13IRQ時基中斷的流程圖第5章測試與調(diào)試第5.1節(jié)硬件的測試5.1.1引腳測試內(nèi)容(1)電源電壓:5V左右。(2)VDD、VDDH引腳電壓分別為:3V、3.5V。5.1.2電源測試內(nèi)容用萬用表測試板子左上角電源部分的12個點(diǎn)的電壓。調(diào)試1:條件:電源斷開把電池盒拔掉,用跳線帽將J5的2、3腳短接。目的:測試電源是否與地短路。步驟:測量J10兩腳電阻。現(xiàn)象:(1)電阻為零,有短路,需排查電源。(2)電阻大于300,電源電路正常。調(diào)試2:條件:電池盒與J10接通,打開電池盒。目的:測試電源器件是否正?!,F(xiàn)象:(1)D1亮,器件正常。(2)D1不亮,需排查器件。調(diào)試3:條件:把S5的1、2腳用跳線帽短接。目的:測試各器件電源是否供電正常。步驟:測試U1第7腳電壓是否3.3V左右,J4第一腳電壓是否3.3V左右,U4第20腳電壓是否3.3V左右,U2第7、8腳電壓是否4.5V左右,J6、7、8“+”端電壓是否4.5V左右?,F(xiàn)象:(1)電壓正常。(2)電壓不正常,需排查。5.1.3鍵盤測試內(nèi)容條件:不在U1、U2、U3芯片座插任何元件,接通電源,萬用表選電壓檔,負(fù)極接地,正極測試IOA0、IOA1、IOA2。目的:測試鍵盤是否能否正確輸入。步驟:萬用表正端接IOA0,按KEY1鍵,讀取并記錄電壓值,同理測試KEY2、KEY3?,F(xiàn)象:(1)電壓不為零,正常。(2)電壓為零,需更新按鍵。第5.2節(jié)61板的測試5.2.1測試內(nèi)容(1)I\O端口。(2)睡眠功能。(3)模\數(shù)轉(zhuǎn)換功能。(4)語音輸出和MIC輸入功能。5.2.2自檢的具體步驟(1)接通電源,紅色二極管發(fā)光,同時語音會提示“歡迎進(jìn)入自檢模式”,之后提示“I\O測試失敗”,原因是還未連線。把IOA低8位用排線和IOB低8位連接,同理高8位相連,接著按RESET復(fù)位鍵,程序重新執(zhí)行,并提示“歡迎進(jìn)入自檢模式”之后“I\O測試成功”。(2)按下K1鍵,測試睡眠功能。綠色二極管發(fā)光,并提示“睡眠測試成功”,表示測試成功,否則失敗。(3)按K2鍵,測試模\數(shù)轉(zhuǎn)換功能。提示“模\數(shù)測試成功”表示測試成功,否則失敗。(4)拔掉測試1時的排線,按K3測試模\數(shù)轉(zhuǎn)換和MIC輸入是否正常,輕拍幾下MIC,若有聲音輸出則模\數(shù)轉(zhuǎn)換和MIC輸入正常。第5.3節(jié)程序的調(diào)試5.3.1u'nSPIDE調(diào)試工具:表5.1調(diào)試工具的功能簡介內(nèi)容作用熱鍵下載將程序文件編譯、連接,生成可執(zhí)行文件F8復(fù)位調(diào)試模式下,重新運(yùn)行Shift+Ctrl+F5停止調(diào)試退出調(diào)試模式Shift+F5中斷停止運(yùn)行程序Ctrl+Break運(yùn)行調(diào)試模式下,程序運(yùn)行F5單步進(jìn)入單步運(yùn)行,進(jìn)入子程序F11單步跳躍單步運(yùn)行,不進(jìn)入子程序F10單步跳出單步運(yùn)行,跳出子程序Shift+F11運(yùn)行到光標(biāo)處調(diào)試模式,程序運(yùn)行至光標(biāo)處停止Ctrl+F105.3.2Memory窗口介紹在View中選擇Debugwindows打開Memory窗口,如下圖5.1所示。Memory窗口以十六進(jìn)制的存儲單元顯示,可直接改動內(nèi)容,在Address文本框中輸入內(nèi)存地址,可迅速查到內(nèi)容。Memory窗口雙擊鼠標(biāo)激活GotoAddress,在文本框中輸入地址,便能夠顯示連續(xù)內(nèi)存單元的值圖5.1memory的窗口圖5.2gotoaddress的窗口5.3.3Register窗口介紹調(diào)試過程中,在View中選擇DebugWindws點(diǎn)擊Registerwindow打開Register窗口。如圖5.3所示。窗口顯示特殊寄存器和通用寄存器內(nèi)容,可改動中斷標(biāo)志位的值、各寄存器的值,查看指令執(zhí)行周期數(shù)和控制中斷響應(yīng)。按Update鍵更新,通過Reset讓CPU復(fù)位。圖5.3Register的窗口5.3.4Command的窗口介紹調(diào)試過程中,在View中選擇DebugWindws點(diǎn)擊CommandWindws打開command窗口。如圖5.4所示。H輸入文本框中就可以看到所有命令和使用方法。圖5.4Command的窗口5.3.5BreakPoint的窗口介紹調(diào)試過程中,在View中選擇DebugWindws點(diǎn)擊BreakPointsWindws打開BreakPoint窗口。如圖5.5所示.斷點(diǎn)信息是不可缺少的,用戶可自行改動斷點(diǎn)。Addr:預(yù)設(shè)斷點(diǎn)地址。OutputOnly:仿真運(yùn)行時,程序運(yùn)行到斷點(diǎn)后,會發(fā)出一個脈沖信號于指定管腳。TriggleonData:數(shù)據(jù)過濾器。Bitmask:屏蔽斷電地址內(nèi)數(shù)據(jù)。TriggleonWrite&Read:存儲數(shù)據(jù)時,出發(fā)中斷。圖5.5BreakPoints的窗口5.3.6Watch的窗口介紹調(diào)試過程中,在View中選擇DebugWindws點(diǎn)擊BreakPointsWindws打開BreakPoint窗口。如圖5.5所示.用數(shù)據(jù)表顯示變量值。圖5.6Watch的窗口附錄程序代碼#include"SPCE061A.h"#include"SPLC501User.h"#include"model.h"#definering117#definering218Externvoiddisplay();Externvoidplayrespond(unsignedintResult);Externvoidkeyscan();Externvoidnextdisplay();Externvoidsetday();Externvoidset_ring();Externvoidspeaktime();Externvoidspeakday();Externvoidkeyinitial();Unsignedintkeyflag1=0;Unsignedintkeyflag2=0;Unsignedintkeyflag3=0;Unsignedintkeyflag4=0;Unsignedintkeyflag5=0;Unsignedintkeyflag6=0;Unsignedintkeyflag7=0;Unsignedintringflag=0;Unsignedintkeyvalue=0;Unsignedintrunflag=0;Unsignedintnum=0;Unsignedinthour=0;Unsignedintmin=0;Unsignedintsec=0;Unsignedintyear=2006;Unsignedintgmonth=8;Unsignedintgday=1;Unsignedintxqvalue=0;Unsignedintnmonth=7;Unsignedintnday=8;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};Unsignedintnhour=12;Unsignedintnmin=0;Unsignedintmbmin=0;Unsignedintmbsec=0;Unsignedintmmsec=0;Unsignedintmbnum=0;Unsignedintonoff=0;Unsignedintint2hz;Unsignedintringonoff;Charnumber[]={'0','1','2','3','4','5','6','7','8','9'};Unsignedintclockset[]={11,31,51};Unsignedintcounter=0;Unsignedintmapcounter1=0;Unsignedintmapcounter2=0;Constintglunarmonthday[]={0xd954,0xd4a0,0xda50,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,0xd577,0xda50,0x5dd5,0x56a0,0xa6d0,0x55d4,0x52d0,0xa9b8,0xa950,0xb4a0,0xb6a6,0xad50,0x55a0,0xaba4,0xa5b0,0xb273,0x6930,0x7337,0x6aa0,0xad50,0x4b55,0x4b6f,0xa570,0x54e4,0xd260,0xe968,0xd520,0xdaa0,0x6aa6,0x56df,0x4ae0,0xa9d4,0xa4d0,0xd150,0xf252,0x520};Constunsignedint*BMP_Cartoon[]={(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){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;_asm("INTIRQ");While(1){inti=0;Display();While(hour==nhour&&min==nmin&&onoff==0){keyscan();If(keyvalue!=0)Onoff=1;Elseif(ringflag==0)PlayRespond(ring1);ElsePlayRespond(ring2);}If(min==0&&sec=0){speaktime();}Keyscan();*P_Watchdog_Clear=0x001;If(keyvalue==0x0001){keyflag1=1;LCD501_ClrScreen(0);While(keyflag1=1){nextdisplay();LCD501_Bitmap(15,mouse[i],(unsignedint*)encoding_mouse);Keyscan();*P_Watchdog_Clear=0x0001;Switch(keyvalue){case0x0001;{switch(i){case0;{setday()}Break;Case1;{set_ring();}Break;Case2;{setsecond();}Case3;{LCD501_ClrScreen(0);keyflag1=0}Break;}

溫馨提示

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

最新文檔

評論

0/150

提交評論