




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于單片機(jī)的語(yǔ)音報(bào)時(shí)系統(tǒng)中文摘要本文主要介紹了利用凌陽(yáng)科技公司的 SPCE061A單片機(jī)作為主控制器設(shè)計(jì)的語(yǔ)音報(bào)時(shí)系統(tǒng)方 案。結(jié)合SPCE061A強(qiáng)大的語(yǔ)音功能,語(yǔ)音報(bào)時(shí)、播報(bào)日期的功能。這是一種用新型凌陽(yáng)單片機(jī) 來(lái)實(shí)現(xiàn)的SPCE061單片機(jī)作為控制器制作的語(yǔ)音報(bào)時(shí)系統(tǒng)。該方案充分利用單片機(jī)強(qiáng)大的編程、 語(yǔ)音處理、以及中斷,并且操作簡(jiǎn)單、易于修改,是理想的數(shù)字控制系統(tǒng)。本文首先簡(jiǎn)介凌陽(yáng)單片機(jī)的發(fā)展,緊接著詳細(xì)描述了凌陽(yáng)單片機(jī) SPCE061A的組成原理及其 功能。根據(jù)它的組成原理及其指令系統(tǒng),設(shè)計(jì)了語(yǔ)音報(bào)時(shí)系統(tǒng)的軟件部分,包括主程序,語(yǔ)音播 放程序。此類(lèi)單片機(jī)特別是在數(shù)字處理及語(yǔ)音處理方面有著
2、明顯的優(yōu)越性,所以本次設(shè)計(jì)中采用凌陽(yáng)SPCE061單片機(jī),它能夠使所設(shè)計(jì)的產(chǎn)品更具智能化和先進(jìn)性。關(guān)鍵詞: 電子鐘;SPCE061A語(yǔ)音SCM Production Using digital clockABSTRACTThis paper describes the use of Sun plus Tech no logy, Inc. SPCE061A SCM as the mai n con troller of digital electro nic bell programme. Sun plus SPLC501A use of LCD module, with SPCE061A po
3、werful voice and realized the Gregoria n cale ndar. Lunar New Year, stopwatch, alarm clock and voice broadcast, the broadcast date, and other fun cti ons. This is a New Sun plus microc on troller to achieve the SPCE061A SCM as a controller and LCD module SPLC501A a digital clock. The programme full
4、use of a powerful microc on troller program ming, voice process ing, and multi-f unction in terrupt in put / output and simple, easy to modify,is the ideal digital con trol system.This paper first brief Sun plus the developme nt of SCM, followed by a detailed descripti on of the compositi on of Sun
5、plus SCM SPCE061A prin ciple and fun cti on. Accordi ng to its compositi on and its comma nd system theory and desig n of digital electro nic clock con trol system software, in clud ing the main program, display, voice player. SCM especially in such digital processing and voice processing there are
6、disti net adva ntages, so this desig n in the use of Sun plus SPCE061A SCM, it can make the products more in tellige nt desig n and adva need.KEY WORD: clock; SPCE061A; PRONUNCIATION TIME WATCH TOC o 1-5 h z HYPERLINK l bookmark4 o Current Document 第一章前言 1 HYPERLINK l bookmark6 o Current Document 1.
7、1系統(tǒng)功能 2 HYPERLINK l bookmark8 o Current Document 1.2基本參數(shù) 2 HYPERLINK l bookmark10 o Current Document 1.3注意事項(xiàng) 2 HYPERLINK l bookmark12 o Current Document 第二章模塊特性簡(jiǎn)介 2 HYPERLINK l bookmark14 o Current Document SPCE061A單片機(jī) 3SPCE061A 簡(jiǎn)介 3芯片特性 4 HYPERLINK l bookmark16 o Current Document SPCE061A精簡(jiǎn)開(kāi)發(fā)板 4SPL
8、C501A夜晶模組 錯(cuò)誤!未定義書(shū)簽。 HYPERLINK l bookmark18 o Current Document 2.4語(yǔ)音的設(shè)計(jì)及工作原理 6 HYPERLINK l bookmark20 o Current Document 2.5系統(tǒng)總體方案介紹 6 HYPERLINK l bookmark22 o Current Document 第三章 系統(tǒng)硬件設(shè)計(jì) 8 HYPERLINK l bookmark24 o Current Document SPCE061A最小系統(tǒng) 8 HYPERLINK l bookmark26 o Current Document 3.2電源模塊 8 HY
9、PERLINK l bookmark28 o Current Document 3.3音頻輸出模塊 93.4液晶顯示模塊 錯(cuò)誤!未定義書(shū)簽。顯示RAM區(qū)映射情況 錯(cuò)誤!未定義書(shū)簽。SPLC501驅(qū)動(dòng)控制器芯片 錯(cuò)誤!未定義書(shū)簽。 HYPERLINK l bookmark30 o Current Document 第四章系統(tǒng)軟件設(shè)計(jì) 10 HYPERLINK l bookmark32 o Current Document 4.1軟件的結(jié)構(gòu) 10 HYPERLINK l bookmark34 o Current Document 4.2各模塊程序的說(shuō)明 11概述 11主程序 11中斷服務(wù)程序 12
10、時(shí)間日期模塊 14SPLC501液晶顯示模組顯示漢字 錯(cuò)誤!未定義書(shū)簽。常用功能函數(shù)介紹(用戶(hù) API) 錯(cuò)誤!未定義書(shū)簽。 HYPERLINK l bookmark36 o Current Document 第五章操作步驟 16 HYPERLINK l bookmark38 o Current Document 5.1軟件的操作步驟 16LCD漢字顯示操作步驟 錯(cuò)誤!未定義書(shū)簽。程序燒入硬件操作步驟 16語(yǔ)音播放操作步驟 錯(cuò)誤!未定義書(shū)簽。5.2操作界面 錯(cuò)誤!未定義書(shū)簽。 HYPERLINK l bookmark40 o Current Document 第六章結(jié)論 18 HYPERLIN
11、K l bookmark42 o Current Document 參考文獻(xiàn) 19致 謝 錯(cuò)誤!未定義書(shū)簽。 HYPERLINK l bookmark44 o Current Document 附錄一軟件編寫(xiě)程序 20 HYPERLINK l bookmark46 o Current Document 附錄二主要元器件清單 51 第一章前言20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè) 領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高, 同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn) 一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來(lái)越快。時(shí)間對(duì)人們來(lái)說(shuō)總是那么寶貴,工作的忙碌性和繁雜
12、性容易使人忘記當(dāng)前的時(shí)間。忘記了要 做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無(wú)傷大雅。但是,一旦重要事情,一時(shí)的耽誤可 能釀成大禍。目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。 下面是單片機(jī)的主要發(fā)展趨勢(shì)。單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。 從 前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過(guò)軟件方法來(lái)實(shí)現(xiàn)了。 這 種軟件代替硬件的控制技術(shù)也稱(chēng)為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。單片機(jī)模塊中最常見(jiàn)的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)
13、實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置, 與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性, 且無(wú)機(jī)械裝置,具有更長(zhǎng)的使用壽命,因此得到 了廣泛的使用。數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)時(shí)、分、秒、數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車(chē)站,碼 頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?,由于?shù)字集成電路的發(fā)展和石英晶體 振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了 極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間 程序自動(dòng)控制、定時(shí)廣播芯片自動(dòng)起閉路燈、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣 的自動(dòng)啟用等,所有這些,都是以數(shù)字電
14、子鐘具有走時(shí)準(zhǔn)確,一鐘多用等特點(diǎn),在生活中已經(jīng)得到了廣泛的應(yīng)用。隨著科技的發(fā)展,人們對(duì)電子產(chǎn)品的應(yīng)用要求越來(lái)越高,數(shù)字電子鐘不但可以 顯示當(dāng)前的時(shí)間,而且可以顯示日期、農(nóng)歷、以及星期等,給人們的生活帶來(lái)了方便。另外數(shù)字 鐘還具備秒表和鬧鐘功能,且鬧鐘鈴聲可自選,使一款電子鐘具備了多媒體的色彩。本方案利用凌陽(yáng)16位單片機(jī)SPCE061A作為主控芯片,充分利用SPCE061A精簡(jiǎn)開(kāi)發(fā)板(簡(jiǎn) 稱(chēng)61板)上面的三個(gè)按鍵,完成一個(gè)簡(jiǎn)易的數(shù)字系統(tǒng) 一一數(shù)字電子鐘。該數(shù)字鐘可以將當(dāng)前的日期和時(shí)間播報(bào)出來(lái),以及調(diào)時(shí)功能,具有較強(qiáng)的可擴(kuò)展性,滿足了不同人的需要。該方案的主要功能是能通過(guò)SPCE061A的音頻通道
15、播報(bào)當(dāng)前的日期和時(shí)間。61板上面的三個(gè) 按鍵可以控制實(shí)現(xiàn)所有的功能,在播報(bào)日期和時(shí)間狀態(tài)下按Keyl播報(bào)年、月、日,再按一下播報(bào)時(shí)、分長(zhǎng)按Keyl鍵達(dá)到1.5秒,則進(jìn)入日期時(shí)間調(diào)整模式,Key2 -在調(diào)整模式下,使年、月、 日、時(shí)、分、秒增加,Key3 -在調(diào)整模式下,使年、月、日、時(shí)、分、秒減小。1.1系統(tǒng)功能本系統(tǒng)利用凌陽(yáng)科技公司的SPCE061A單片機(jī)作為控制器。系統(tǒng)具有以下功能:可以語(yǔ)音播報(bào)日期和時(shí)間;具有調(diào)整日期和時(shí)間功能;1.2基本參數(shù)工作電壓:4.5V( 3節(jié)干電池);日期顯示范圍:2001-2100年;時(shí)間采用24小時(shí)制。1.3注意事項(xiàng)1 .請(qǐng)將61板上的J5跳線選擇3.3V
16、;在安裝電池時(shí)注意正負(fù)極,否則容易燒壞芯片;在印制電路板上的焊接元器件前要認(rèn)真對(duì)照原理圖,仔細(xì)查看印制電路板,找到對(duì)應(yīng)的元器件功能區(qū);在電源測(cè)試期間請(qǐng)勿將單片機(jī)芯片插入座中,以免電源部分有問(wèn)題造成芯片燒壞。第二章模塊特性簡(jiǎn)介該數(shù)字鐘系統(tǒng)主要由SPCE061精簡(jiǎn)開(kāi)發(fā)板(簡(jiǎn)稱(chēng)61板)構(gòu)成。系統(tǒng)通過(guò)61板上的三個(gè)按鍵控 制揚(yáng)聲器播放語(yǔ)音。所以這里主要介紹 SPCE061精簡(jiǎn)開(kāi)發(fā)板。2.1 SPCE061A 單片機(jī)2.1.1 SPCE061A 簡(jiǎn)介SPCE061是凌陽(yáng)科技研發(fā)生產(chǎn)的性?xún)r(jià)比很高的一款十六位單片機(jī),具有易學(xué)易用且效率較高 的一套指令系統(tǒng)和集成開(kāi)發(fā)環(huán)境。在此環(huán)境中,支持標(biāo)準(zhǔn)C語(yǔ)言,可以實(shí)現(xiàn)C
17、語(yǔ)言與匯編語(yǔ)言的互 相調(diào)用,并且,提供了語(yǔ)音錄放和語(yǔ)音識(shí)別的函數(shù)庫(kù),只要了解庫(kù)函數(shù)的使用方法,就可以很容 易完成語(yǔ)音錄放,為軟件開(kāi)發(fā)提供了方便的條件。SPCE061主要包括輸入/輸出端口、定時(shí)器/計(jì)數(shù)器、數(shù)/模轉(zhuǎn)換、模/數(shù)轉(zhuǎn)換、串行設(shè)備輸 入/輸出、通用異步串行接口、低電壓監(jiān)測(cè)和復(fù)位等電路,并且內(nèi)置在線仿真電路 ICE接口,使其 能夠快速地處理復(fù)雜的數(shù)字信號(hào)。SPCE061片內(nèi)還集成了一個(gè)ICE (在線仿真電路)接口,使得對(duì)該芯片的編程、仿真變得非常方便,而ICE接口不占用芯片上的硬件資源,結(jié)合凌陽(yáng)科技提供的集成開(kāi)發(fā)環(huán)境(unSPIDE),用戶(hù)可以進(jìn)行在線調(diào)試、仿真;而程序的下載(燒寫(xiě))也是通
18、過(guò)該接口完成。IOA15-0IOBI&-Q圖1 SPCE061A內(nèi)部結(jié)構(gòu)圖2.1.2 芯片特性16位叮nS微處理器;工作電壓:內(nèi)核工作電壓VDD為3.03.6V(CPU), I/O 口工作電壓VDDH為VDD5.5V(I/O);CPU寸鐘:0.32MHz49.152MHz ;內(nèi)置2K字SRAM ;內(nèi)置32K閃存ROM ;可編程音頻處理;晶體振蕩器;系統(tǒng)處于備用狀態(tài)下(時(shí)鐘處于停止?fàn)顟B(tài));個(gè)16位可編程定時(shí)器/計(jì)數(shù)器(可自動(dòng)預(yù)置初始計(jì)數(shù)值);個(gè)10位DAC(數(shù)-模轉(zhuǎn)換)輸出通道;3位通用可編程輸入/輸出端口;1個(gè)中斷源可來(lái)自定時(shí)器A / B,時(shí)基,2個(gè)外部時(shí)鐘源輸入,鍵喚醒;具備觸鍵喚醒的功能;
19、使用凌陽(yáng)音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語(yǔ)音數(shù)據(jù);鎖相環(huán)PLL振蕩器提供系統(tǒng)時(shí)鐘信號(hào);3268Hz實(shí)時(shí)時(shí)鐘;通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模-數(shù)轉(zhuǎn)換器;聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動(dòng)增益控制(AGC)功能;具備串行設(shè)備接口;低電壓復(fù)位(LVR)功和低電壓監(jiān)測(cè)(LVD)功能;內(nèi)置在線仿真板(ICE, In- Circuit Emulator)。2.2 SPCE061A精簡(jiǎn)開(kāi)發(fā)板SPCE061精簡(jiǎn)開(kāi)發(fā)板(簡(jiǎn)稱(chēng)61板),是以凌陽(yáng)16位單片機(jī)SPCE061為核心的精簡(jiǎn)開(kāi)發(fā)仿真-實(shí)驗(yàn)板,大小相當(dāng)于一張撲克牌,是“凌陽(yáng)科技大學(xué)計(jì)劃”專(zhuān)為大
20、學(xué)生、電子愛(ài)好者等進(jìn)行電子實(shí)習(xí)、課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)、電子制作及電子競(jìng)賽所設(shè)計(jì)的,也可作為單片機(jī)項(xiàng)目初期研發(fā)使 用。61板除了具備單片機(jī)最小系統(tǒng)電路外,還包括有電源電路、音頻電路(含Mic輸入部分和DAC音頻輸出部分)、復(fù)位電路等,采用電池供電,方便學(xué)生隨身攜帶!使學(xué)生在掌握軟件的同時(shí), 熟悉單片機(jī)硬件的設(shè)計(jì)制作,鍛煉學(xué)生的動(dòng)手能力,也為單片機(jī)學(xué)習(xí)者和開(kāi)發(fā)者創(chuàng)造了一個(gè)良好 的學(xué)習(xí)條件和開(kāi)發(fā)新產(chǎn)品的機(jī)會(huì)! 61板上有調(diào)試器接口( Probe接口)以及下載線(EZ_Probe) 接口,分別可接凌陽(yáng)科技的在線調(diào)試器、簡(jiǎn)易下載線,配合un SPIDE,可方便地在板上實(shí)現(xiàn)程序的下載、在線仿真調(diào)試。61板上
21、的主要功能模塊如下:1.SPCE061A單片機(jī)最小系統(tǒng)外圍電路模塊;電源輸入模塊;音頻電路(包含Mic輸入、DAC音頻功放輸出)模塊;按鍵模塊;5.1/0端口接口模塊;6.調(diào)試、下載接口模塊;圖2為61板的實(shí)物圖:圖2 61板實(shí)物圖2.3語(yǔ)音的設(shè)計(jì)及工作原理本次設(shè)計(jì)的要求為整個(gè)系統(tǒng)在運(yùn)行時(shí)能夠根據(jù)要求及時(shí)的發(fā)出聲音,以增加效果。為了配合設(shè)計(jì)要求,設(shè)計(jì)了語(yǔ)音模塊。語(yǔ)音是 SPCE061A的一大特點(diǎn)。應(yīng)用SPCE061A可以方便的實(shí)現(xiàn)語(yǔ)音 的錄放,該芯片擁有8路10位精度的AD。其中1路AD為音頻轉(zhuǎn)化通道,并且內(nèi)置自動(dòng)增益電路。 這為語(yǔ)音的錄入提供方便的硬件條件。2路 10位精度的DA,只需外接1
22、個(gè)功放即可完成語(yǔ)音播放。 一般都是用C語(yǔ)言作為主程序,用匯編語(yǔ)言編制各種模塊,供主程序調(diào)用。凌陽(yáng)音頻格式常用的 有3種,將壓縮前的數(shù)據(jù)量比上壓縮后的數(shù)據(jù)量即可以得到凌陽(yáng)不同音頻格式壓縮比:SACM A2000 :壓縮比為 8: 1,8: 1.25,8:1.5;SACM S480:壓縮比為 80:3, 80:4.5;SACM S240:壓縮比為 80:1.5;壓縮比越大,存儲(chǔ)空間越小,更加節(jié)省資源。2.5系統(tǒng)總體方案介紹電子鐘的系統(tǒng)結(jié)構(gòu)如圖3,圖4為電子鐘功能結(jié)構(gòu)圖,61板作為整個(gè)系統(tǒng)的控制中心,負(fù)責(zé) 控制鍵盤(pán)掃描;年、月、日、星期以及時(shí)間的計(jì)算;并根據(jù)按鍵值播報(bào)當(dāng)前的日期或者時(shí)間。在 聲音的處
23、理上主要采用凌陽(yáng)科技的語(yǔ)音壓縮格式,將需要播放的聲音壓縮存在SPF模組里面,然后通過(guò)61板將語(yǔ)音資源取出播放出來(lái)。本系統(tǒng)采用了語(yǔ)音的錄入和輸出播放。圖3系統(tǒng)結(jié)構(gòu)框圖圖4功能結(jié)構(gòu)圖用61板控制數(shù)字鐘系統(tǒng),使用了 IOA 口的IOA0 IOA2位連接SPCE061A上的三個(gè)按鍵,另夕卜 使用了 61板的語(yǔ)音輸出模塊;以及61板上的三個(gè)按鍵,電路連接如圖5。第三章系統(tǒng)硬件設(shè)計(jì)3.1 SPCE061A最小系統(tǒng)SPCE061A最小系統(tǒng)包括SPCE061A芯片及其外圍的基本模塊,其中外圍的基本模塊有:晶 振輸入模塊(OSC)、鎖相環(huán)外圍電路(PLL)、復(fù)位電路(RESET)、指示燈(LED )等,如 圖7
24、所示。aacc o-zcOSC 320JTTKTLrTDDLiNCNGNGNCNC 卜+- toon OBifC17.iDCmVSSvd口14X1CE X1GECLK KJ匚赳!3 口既VS5Ail :JAC2 VRF2 VSSAOCOP1 WCOUTUICN=FU5BKGWTKMI&Ad22A /L :- *31F =KjSLEE?VSSCMI4 g佶 3門(mén) Crtll 3DICA95OE1;5GE 1353DE 1454:E 15虻5LZE.JSA2曲5Q“ h57IQA13=EOK115EA1C343#、r i:;-圖5 SPCE061A最小系統(tǒng)3.2電源模塊J10接入,其中前后兩組電容
25、用來(lái)去耦濾波,SPCE061A板采用3節(jié)5號(hào)電池進(jìn)行供電,由使其供給芯片的電源更加干凈平滑。為了獲得標(biāo)準(zhǔn)的3.3伏電壓,在電路上加入SPY0029三端穩(wěn)壓器和兩個(gè)二極管,是為了防止誤將電源接反造成不必要損失而設(shè)置的。在操作過(guò)程中千萬(wàn)不要 將電源接反,因?yàn)榉聪螂妷撼^(guò)一定值,二極管將會(huì)被損壞,達(dá)不到保護(hù)的目的。后面的零電阻 及其電源分成不同的幾路是為了減少電磁干擾設(shè)置的。圖6是電源部分的電路,4.5V直流電壓經(jīng)過(guò)SPY0029后產(chǎn)生3.3V給整個(gè)系統(tǒng)供電。SPY0029是凌陽(yáng)公司設(shè)計(jì)的電壓調(diào)整IC,采用CMOS工藝。SPY0029具有靜態(tài)電流低、驅(qū)動(dòng)能力強(qiáng)、線性調(diào)整出色等特點(diǎn)。4.2圖中的VDD
26、H3 為SPCE061A的I/O電平參考,接 SPCE061A的51腳,這種接法使得I/O輸出高電平為3.3V ; VDDP為PLL鎖相環(huán)電源,接SPCE061A的7腳;VDD和VDDA分別為數(shù)字電源與模擬電源, 分別接SPCE061A的15腳和36腳;AVSS1是模擬地,接SPCE061A的24腳;VSS是數(shù)字地, 接SPCE061A的38腳;AVSS2接音頻輸出電路的 AVSS2。61板電源模塊電路如圖8,SPCE061A的內(nèi)核供電為3.3V,而I/O端口可接3.3V5V,所以在 電源模塊(61板上)中有一個(gè)端口電平選擇跳線,如圖中的J5。本系統(tǒng)需要的端口高電平為3.3V, 所以圖8中的J
27、5跳線需要跳到2和3上。圖6 電源模塊3.3音頻輸出模塊音頻輸出(D/A)部分的原理圖如圖7所示,可以直接聽(tīng)喇叭輸出的聲音。圖中的 SPY0030 也是凌陽(yáng)公司的產(chǎn)品。它的詳細(xì)說(shuō)明可以參見(jiàn) SPY0030 data sheet和LM386相比,SPY0030還具 有下述優(yōu)勢(shì),比如LM386工作電壓需在4V以上,SPY0030&需2.4V即可工作(兩顆電池即可工作); LM386輸出功率100mW以下,SPY0030約700mW。芯片將聲音處理后輸出(J2),經(jīng)SPY0030音 頻放大輸出(J3)通過(guò)揚(yáng)聲器還原為聲音。SPY0030A是凌陽(yáng)公司開(kāi)發(fā)的專(zhuān)門(mén)用于語(yǔ)音放大的芯 片。SPY0030的輸入
28、電壓的范圍是2.4 6.0伏,該電路中采用的電壓是3.3伏。SPCE061A內(nèi)置2路10位 DAC,只需要外接功放電路即可完成語(yǔ)音的播放第四章 系統(tǒng)軟件設(shè)計(jì)4.1軟件的結(jié)構(gòu)下圖中可以看出各文件之間的調(diào)用關(guān)系圖8軟件結(jié)構(gòu)數(shù)字鐘主要還是軟件實(shí)現(xiàn)的,數(shù)字鐘的軟件設(shè)計(jì)由以下程序構(gòu)成:1、main.c:實(shí)現(xiàn)系統(tǒng)的初始化、鍵盤(pán)掃描和語(yǔ)音播報(bào);2、system.c包含工程中大部分的功能函數(shù),包括時(shí)間和日期的調(diào)整等;3、key.c:鍵盤(pán)掃描文件,文件中定義了鍵盤(pán)掃描函數(shù)、延時(shí)函數(shù)、用來(lái)實(shí)現(xiàn)對(duì)鍵盤(pán)的掃描等 功能、鍵盤(pán)掃描采用查詢(xún)方式;4、isr.asm中斷服務(wù)函數(shù)文件,實(shí)現(xiàn)語(yǔ)音解碼以及時(shí)間、日期的修改;5、sp
29、eak.c語(yǔ)音播報(bào)函數(shù),實(shí)現(xiàn)語(yǔ)音播報(bào)日期、時(shí)間。4.2各模塊程序的說(shuō)明4.2.1概述由于凌陽(yáng)SPCEA061A,使得外圍電路變的更簡(jiǎn)單。制作好系統(tǒng)的硬件電路后,整個(gè)系統(tǒng)的 主體任務(wù)主要落在了程序的編寫(xiě)上。SPCE061A是凌陽(yáng)科技研發(fā)生產(chǎn)的性?xún)r(jià)比很高的一款十六位 單片機(jī),具有易學(xué)易用且效率較高的一套指令系統(tǒng)和集成開(kāi)發(fā)環(huán)境。在此環(huán)境中,支持標(biāo)準(zhǔn)C語(yǔ)言,可以實(shí)現(xiàn)C語(yǔ)言與匯編語(yǔ)言的互相調(diào)用,并且,提供了語(yǔ)音錄放和語(yǔ)音識(shí)別的函數(shù)庫(kù), 只要了解庫(kù)函數(shù)的使用方法,就可以很容易完成語(yǔ)音錄放,為軟件開(kāi)發(fā)提供了方便的條件。此次 系統(tǒng)采用了模塊程序結(jié)構(gòu),模塊程序結(jié)構(gòu)包括了初始化,系統(tǒng)主程序模塊,語(yǔ)音播放模塊,顯示
30、 模塊。C語(yǔ)言屬于高級(jí)語(yǔ)言,有著匯編語(yǔ)言無(wú)法比擬的優(yōu)點(diǎn),而SPCE061A開(kāi)發(fā)系統(tǒng)抓住了這個(gè) 關(guān)鍵,兩者結(jié)合,充分發(fā)揮各自的優(yōu)勢(shì)。在用到語(yǔ)音的時(shí)候,一般都是用C語(yǔ)言作為主程序,用匯編語(yǔ)言編制各種模塊,供主程序調(diào)用。本系統(tǒng)采用了這種編制方法使得相互調(diào)用非常簡(jiǎn)單。4.2.2主程序主程序流程如圖9所示,在主程序中初始化了整個(gè)工程中用到的變量,初始化了液晶顯 示模塊。開(kāi)2Hz中斷實(shí)現(xiàn)計(jì)時(shí)。在主程序中調(diào)用了鍵盤(pán)掃描程序,對(duì)IOA 口的低三位進(jìn)行掃描,如果有 鍵按下,就把相應(yīng)的鍵值存入到一個(gè)變量中, 通過(guò)主程序來(lái)判斷是哪個(gè)鍵按下, 并執(zhí)行相應(yīng)的功 能:按Key1播報(bào)年、月、日,再按一下播報(bào)時(shí)、分長(zhǎng)按 Ke
31、y1鍵達(dá)到1.5秒,則進(jìn)入日期時(shí)間調(diào)整 模式,Key2 -在調(diào)整模式下,使年、月、日、時(shí)、分、秒增加,Key3 -在調(diào)整模式下,使年、月、日、時(shí)、分、秒減小。423中斷服務(wù)程序中斷服務(wù)程序有三個(gè):一個(gè)是2Hz中斷服務(wù)程序,用來(lái)計(jì)時(shí);一個(gè)是1KHz中斷服務(wù)程序, 用于秒表計(jì)時(shí);另外一個(gè)是FIQ中斷服務(wù)程序,用來(lái)播放語(yǔ)音。程序的流程分別如圖 10、圖11、 圖12。圖10 IRQ5時(shí)基中斷流程圖另外一個(gè)是FIQ中斷服務(wù)程序,用來(lái)播放語(yǔ)音424時(shí)間日期模塊時(shí)間日期程序模塊的流程圖如圖13所示,該模塊用到了 2Hz的時(shí)基中斷,用來(lái)實(shí)現(xiàn)計(jì)時(shí),同 時(shí)實(shí)現(xiàn)了日期的更新。圖13時(shí)間日期模塊流程圖第五章操作步驟
32、5.1軟件的操作步驟5.1.1程序燒入硬件操作步驟步驟一:根據(jù)圖5數(shù)字鐘連接示意圖連接硬件,并連接好下載線步驟二:打開(kāi)電池盒電源步驟三:?jiǎn)?dòng)u nSRDE。打開(kāi)數(shù)字鐘應(yīng)用實(shí)例程序(路徑:數(shù)字電子鐘禮包 參考源代碼monthdayclock monthdayclock.sp),編譯、鏈接確認(rèn)沒(méi)有錯(cuò)誤。如圖 14所示:圖14打開(kāi)數(shù)字鐘應(yīng)用實(shí)例程序步驟四:下載程序代碼到61板上。步驟五:下載成功后會(huì)有幾秒鐘的開(kāi)機(jī)畫(huà)面,隨后會(huì)進(jìn)入時(shí)間日期顯示界面,初始時(shí)間設(shè)定為:00: 00: 00,日期為2006年8月1日。按Keyl播報(bào)年、月、日,再按一下播報(bào)時(shí)、分長(zhǎng)按 Keyl鍵達(dá)到1.5秒,則進(jìn)入日期時(shí)間調(diào)整
33、 模式,Key2 -在調(diào)整模式下,使年、月、日、時(shí)、分、秒增加,Key3 -在調(diào)整模式下,使年、月、日、時(shí)、分、秒減小。具體操作流程圖如圖15:圖15具體操作流程圖第六章結(jié)論SPCE061A芯片強(qiáng)大的語(yǔ)音處理功能,為本系統(tǒng)的設(shè)計(jì)提供了便利條件;32個(gè)可編程I/O 口,使得擴(kuò)展外圍設(shè)備非常方便;CPU可工作在0.32MHz49MHz的主頻范圍,并且擁有豐富的中斷 源,使得系統(tǒng)在語(yǔ)音播放、數(shù)據(jù)顯示等方面游刃有余,擴(kuò)展性強(qiáng)。根據(jù)硬件的選擇和電路的搭配 進(jìn)行了軟件的設(shè)計(jì)和編程,在實(shí)現(xiàn)硬件功能時(shí),我們?cè)龅揭恍﹩?wèn)題,在參閱了許多資料結(jié)合實(shí)際 條件選擇了一種全面和簡(jiǎn)單的數(shù)字鐘系統(tǒng),其次在焊接中和元器件的購(gòu)
34、買(mǎi)都是在胡老師的指導(dǎo)下 購(gòu)買(mǎi)的。在這次畢業(yè)設(shè)計(jì)中鍛煉了我的分析能力、解決問(wèn)題和動(dòng)手能力。顯然,這是一個(gè)比較簡(jiǎn)單的數(shù)字鐘,在這個(gè)基礎(chǔ)上,稍微改動(dòng),或者擴(kuò)展其他模塊可以設(shè)計(jì) 出一個(gè)更加完善的數(shù)字鐘系統(tǒng)。 比如,擴(kuò)展外部存儲(chǔ)器可以增加鈴聲的數(shù)目、 可以改變鈴聲的播 放格式使鈴聲更加動(dòng)聽(tīng)、增加掉電保護(hù)功能等等,以此來(lái)提高同學(xué)們的對(duì)單片機(jī)的興趣。本次設(shè) 計(jì)中,我從基礎(chǔ)做起,做好每一個(gè)程序模塊,在最后的硬件調(diào)試中,取得成功,實(shí)現(xiàn)了數(shù)字鐘的基本 功能,達(dá)到了我們預(yù)期的設(shè)計(jì)目的。系統(tǒng)實(shí)物照片如圖 16。圖16系統(tǒng)實(shí)物照片參考文獻(xiàn)1李全利,遲榮強(qiáng)單片機(jī)原理及接口技術(shù)M,北京:高等教育出版社,2004.1.2黃智
35、偉.全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽系統(tǒng)設(shè)計(jì)M,北京:北京航空航天大學(xué)出版社,2006.6.3黃智偉.凌陽(yáng)單片機(jī)課程設(shè)計(jì)指導(dǎo)M,北京:北京航空航天大學(xué)出版社,2006.11.4李廣弟,朱月秀,王秀山.單片機(jī)基礎(chǔ)M,北京:北京航空航天大學(xué)出版社,2001.7. 趙曙光,郭萬(wàn)有,楊頌華.可編程邏輯器件原理開(kāi)發(fā)與應(yīng)用M,西安:西安電子科技大學(xué), 2000. 候伯亨.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)M,西安:西安電子科技大學(xué)出版社, 1999.7康華光.模擬電子技術(shù)基礎(chǔ)(第四版)M,武漢:華中理工大學(xué)出版社,1999.8譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)(第二版)M,北京:清華大學(xué)出版社,1991.9陳小忠,黃寧.單
36、片機(jī)接口技術(shù)實(shí)用子程序M,北京:北京人民郵電出版社,2005.10歐偉明,周春臨,瞿遂春.電子信息系統(tǒng)設(shè)計(jì)M,西安電子科技大學(xué)出版社,2005.9.11賈立新,王涌.電子系統(tǒng)設(shè)計(jì)與實(shí)踐M,北京:清華大學(xué)出版社,2007.12羅亞非.凌陽(yáng)16位單片機(jī)應(yīng)用基礎(chǔ)M,北京:北京航空航天大學(xué)出版社,2003.13SPLC501A液晶顯示模塊產(chǎn)品說(shuō)明書(shū)Z.凌陽(yáng)大學(xué)計(jì)劃網(wǎng)站().14雷思孝.凌陽(yáng)單片機(jī)原理及實(shí)用技術(shù)M,西安電子科技大學(xué),2004.附錄一軟件編寫(xiě)程序主程序:/ 工程名稱(chēng):61_SpeechClock/功能描述:61展程序示例-具有語(yǔ)音播報(bào)功能的電子鐘/涉及的庫(kù):使用61板上的三個(gè)按鍵控制報(bào)時(shí)和
37、時(shí)間調(diào)整:Keyl -按一下播報(bào)年、月、日,再按一下播報(bào)時(shí)、分長(zhǎng)按Keyl鍵達(dá)到1.5秒,則進(jìn)入日期時(shí)間調(diào)整模式 Key2 -在調(diào)整模式下,使年、月、日、時(shí)、分、秒增加 Key3 -在調(diào)整模式下,使年、月、日、時(shí)、分、秒減小CMacro1016.lib/SacmV26e.lib/ 組成文件:main.c, Soun d.c, Clock.c, Clock_Speech.c, Clock_Adjust.c/ 硬件連接:Key.asm, hardware.asm, ISR.asmA2000.h, Sou nd.h, Clock.h, Clock_Speech.h, Clock_Adjust.h,
38、Key.h, SPCE061A.h, 61板自帶的三個(gè)按鍵已經(jīng)連接在IOAOIOA2上/ 維護(hù)記錄: 2006-8-30 v1.0/=/=/文件名稱(chēng):main.c/功能描述:主程序/維護(hù)記錄:2006-08-30v1.0/=#in clude spce061a.h#in clude Sou nd.h#i nclude Key.h#i nclude Clock.h#i nclude Clock_Speech.h#i nclude Clock_Adjust.h/:/:int mai n() un sig ned int KeyCode; un sig ned int Flag = 0;語(yǔ)法格式:i
39、nt mai n(void);實(shí)現(xiàn)功能:主函數(shù)參數(shù):無(wú)返回值:無(wú)Key_I ni t();Clock_Start();/初始化按鍵掃描程序/初始化計(jì)時(shí)程序while(1)KeyCode = Key_Get(); switch(KeyCode) case KEY_1: if(Flag=O) PlayDate(); Flag = 1; elsePlayTime(); Flag = 0; break;case KEY_LONG_1: Adjust。; break;default: break;*P_Watchdog_Clear = 0 x01; *P_SystemClock = 0 x001F;II
40、獲取按鍵值/ Key1鍵,播放日期/時(shí)間II Key1鍵長(zhǎng)按,調(diào)整日期和時(shí)間/清看門(mén)狗II進(jìn)入睡眠模式子程序:1/= II文件名稱(chēng):Clock.cII功能描述:計(jì)時(shí)模塊,使用2Hz時(shí)基中斷II 維護(hù)記錄:2006-08-30v1.0/=II定義時(shí)鐘結(jié)構(gòu)體#in clude spce061a.h typedef struct STR_CLOCK -un sig ned int Year; un sig ned int Mon; un sig ned int Day;un sig ned int Hour; un sig ned int Min;un sig ned int Sec; un sig
41、 ned int HalfSec; CLOCK;CLOCK Clock = 2006, 1, 1,0, 0, 0, 0;II時(shí)鐘初始值2006年1月1日0點(diǎn)0分const un sig ned int Mon th_Day12 = 31,28, 31,30, 31,30, 31,31, 30, 31,30, 31;II每月包含的天數(shù)/:/:void Clock_ISR() 語(yǔ)法格式: 實(shí)現(xiàn)功能: 參數(shù): 返回值:void Clock_ISR(void);計(jì)時(shí)模塊的2Hz中斷服務(wù)程序,應(yīng)在IRQ5_2Hz中斷中調(diào)用 無(wú)無(wú)if(Clock.HalfSec=0)Clock.HalfSec = 1;
42、else/ 0.5 秒Clock.HalfSec = 0;Clock.Sec += 1; if(Clock.Sec=60) Clock.Sec = 0; Clock.Min += 1; if(Clock.Mi n=60) Clock.Min = 0; Clock.Hour += 1; if(Clock.Hour=24) /處理秒進(jìn)位/處理分進(jìn)位/處理小時(shí)進(jìn)位Clock.Hour = 0;Clock.Day += 1;if(Clock.Day Mon th_DayClock.Mo n-1) -/處理天進(jìn)位if(Clock.Mon!=2 | (Clock.Year&0 x03)!=0 | Cloc
43、k.Day29) Clock.Day = 1; Clock.M on += 1; if(Clock.Mon 12) Clock.M on = 1;Clock.Year += 1;II如果是閏年則2月29日不進(jìn)位/處理月進(jìn)位/=/ 語(yǔ)法格式: void Clock_Start(void);/實(shí)現(xiàn)功能:開(kāi)始計(jì)時(shí)-/參數(shù):無(wú)/返回值:無(wú)/=void Clock_Start() -*P_INT_Ctrl_New |= C_IRQ5_2H z; _asm(IRQ ON);/=/ 語(yǔ)法格式: unsigned int Clock_GetYear();/實(shí)現(xiàn)功能:查詢(xún)當(dāng)前年/參數(shù):無(wú)/返回值:當(dāng)前年/= u
44、n sig ned int Clock_GetYear() -retur n Clock.Year;/=/ 語(yǔ)法格式:un sig ned int Clock_GetM on (void);/實(shí)現(xiàn)功能:查詢(xún)當(dāng)前月/參數(shù):無(wú)/返回值:當(dāng)前月/= un sig ned int Clock_GetMo n() -return Clock.M on; /=/ 語(yǔ)法格式: unsigned int Clock_GetDay(void);/實(shí)現(xiàn)功能:查詢(xún)當(dāng)前日/參數(shù):無(wú)/返回值:當(dāng)前日/= un sig ned int Clock_GetDay() -return Clock.Day; /=/ 語(yǔ)法格式:
45、 unsigned int Clock_GetHour(void);/實(shí)現(xiàn)功能:查詢(xún)當(dāng)前小時(shí)/參數(shù):無(wú)/返回值:當(dāng)前時(shí)/= un sig ned int Clock_GetHour() -retur n Clock.Hour;/=/ 語(yǔ)法格式:unsigned int Clock_GetMin(void);/實(shí)現(xiàn)功能:查詢(xún)當(dāng)前分/參數(shù):無(wú)/返回值:當(dāng)前分/= un sig ned int Clock_GetMi n() -return Clock.Mi n;/=/ 語(yǔ)法格式:unsigned int Clock_GetSec(void);/實(shí)現(xiàn)功能:查詢(xún)當(dāng)前秒/參數(shù):無(wú)/返回值:當(dāng)前秒/= u
46、n sig ned int Clock_GetSec() -return Clock.Sec; /=/ 語(yǔ)法格式:void Clock_SetYear(unsigned int Year);/實(shí)現(xiàn)功能:設(shè)置年/參數(shù):Year -年/返回值:無(wú)/= void Clock_SetYear( un sig ned int Year) -Clock.Year = Year;/=/語(yǔ)法格式:void Clock_SetMo n(un sig ned int Mon);/實(shí)現(xiàn)功能:設(shè)置月/參數(shù):Mon -月/返回值:無(wú)/= void Clock_SetMo n(u nsig ned int Mon) -C
47、lock.Mon = Mon;/=/語(yǔ)法格式:void Clock_SetDay (un sig ned int Day);/實(shí)現(xiàn)功能:設(shè)置日/參數(shù):Day -日/返回值:無(wú)/= void Clock_SetDay (un sig ned int Day)Clock.Day = Day;/=/ 語(yǔ)法格式:void Clock_SetHour(unsigned int Hour);/實(shí)現(xiàn)功能:設(shè)置小時(shí)-/參數(shù):Hour -時(shí)/返回值:無(wú)/= void Clock_SetHour( un sig ned int Hour) -Clock.Hour = Hour;/=/語(yǔ)法格式:void Clock
48、_SetMin(unsigned int Min);/實(shí)現(xiàn)功能:設(shè)置分/參數(shù):Min -分/返回值:無(wú)/= void Clock_SetMi n(u nsig ned int Min) -Clock.Min = Mi n;/=/ 語(yǔ)法格式:void Clock_SetSec(unsigned int Sec);/實(shí)現(xiàn)功能:設(shè)置秒/參數(shù):Sec -秒/返回值:無(wú)/= void Clock_SetSec( un sig ned int Sec) -*P_TimeBase_Clear = 0 x01;/ 時(shí)基計(jì)數(shù)器清零Clock.Sec = Sec;Clock.HalfSec = 0;/半秒計(jì)數(shù)清零
49、子程序:2/=/文件名稱(chēng):Clock_Adjust.c/功能描述:調(diào)整日期和時(shí)間的函數(shù)集/維護(hù)記錄:2006-08-30v1.0/=#in elude spce061a.h#in elude Sou nd.h#i nclude Clock.h#i nclude Clock_Speech.h#i nclude Key.h/=/語(yǔ)法格式:un sig ned int AdjustYear( un sig ned int Year);/實(shí)現(xiàn)功能:調(diào)整年/參數(shù):Year - 調(diào)整前的年/返回值:調(diào)整后的年/:un sig ned int AdjustYear( un sig ned int Year)
50、 un sig ned int KeyCode;un sig ned int TempYear = Year;PlayYear(TempYear);while(1)*P_Watchdog_Clear = 0 x01;KeyCode = Key_Get(); switch(KeyCode)case KEY_1:return TempYear;case KEY_2:/播放當(dāng)前年/獲取按鍵/按Key1鍵返回調(diào)整后的年TempYear+;/按Key2鍵,年數(shù)加1PlayYear(TempYear);break;case KEY_3:TempYear-;/ 按 Key3 鍵,年數(shù)減 1PlayYear(
51、TempYear);break;default:break;/=/語(yǔ)法格式:un sig ned int AdjustM on(un sig ned int Mon);/實(shí)現(xiàn)功能:調(diào)整月/參數(shù):Mon -調(diào)整前的月/返回值:調(diào)整后的月/:un sig ned int AdjustM on(un sig ned int Mon) un sig ned int KeyCode;un sig ned int TempM on = Mon;/播報(bào)調(diào)整前的月PlayMo n(TempMo n); while(1)*P_Watchdog_Clear = 0 x01;KeyCode = Key_Get();
52、switch(KeyCode)case KEY_1:return TempM on;case KEY_2:TempM on+;if(TempMon12) TempMon = 1;PlayMo n(TempMo n);break;case KEY_3:TempM on-;if(TempM o*1) TempMon = 12;PlayMo n(TempMo n);break;default:break;/ Key1 ,返回調(diào)整后的月/ Key2 ,月數(shù)加1,至U 12后回復(fù)為1II Key3,月數(shù)減1,至U 1后變?yōu)?2/=II語(yǔ)法格式:un sig ned int AdjustDay (un s
53、ig ned int Year, un sig ned int Mon, un sig ned int Day);II實(shí)現(xiàn)功能:調(diào)整日II參數(shù):Year -調(diào)整后的年IIMon -調(diào)整后的月IIDay -調(diào)整前的日II返回值:調(diào)整后的日/= un sig ned int AdjustDay (un sig ned int Year, un sig ned int Mon, un sig ned int Day) un sig ned int KeyCode;un sig ned int TempDay = Day;if(TempDay Mon th_DayMo n-1)數(shù)則日期置為1if(Te
54、mpDay=29)if(Year&0 x03)!=0) TempDay = 1;else TempDay = 1;PlayDay(TempDay);while(1)*P_Watchdog_Clear = 0 x01;KeyCode = Key_Get();switch(KeyCode)case KEY_1:retur n TempDay;case KEY_2:TempDay+;1if(TempDay Mon th_DayMo n-1)/如果當(dāng)前的日期已經(jīng)超過(guò)調(diào)整后月的最大天/處理閏年/播放調(diào)整前日/ Key1 ,返回調(diào)整后日/ Key2,日數(shù)加1,達(dá)到當(dāng)月最大日之后回復(fù)為/處理閏年/=/語(yǔ)法格
55、式:/實(shí)現(xiàn)功能:/參數(shù):if(TempDay=29) if(Year&0 x03)!=0) TempDay = 1;else TempDay = 1;PlayDay(TempDay);break;case KEY_3:TempDay-;/ Key3,日數(shù)減1,減到0時(shí)轉(zhuǎn)為當(dāng)月最大日if(TempDay23) TempHour = 0;PlayHour(TempHour);break;case KEY_3:if(TempHour=0) TempHour = 23;else TempHour-;PlayHour(TempHour);break;default:break;/播報(bào)整前小時(shí)數(shù)/ Key
56、1 ,返回調(diào)整后的小時(shí)/ Key2 ,時(shí)數(shù)加1,至U 23后回復(fù)為0/ Key3,時(shí)數(shù)減1,至U 0后回復(fù)為23/=/語(yǔ)法格式:un sig ned int AdjustM in(un sig ned int Min);/實(shí)現(xiàn)功能:調(diào)整分/參數(shù):Min -調(diào)整前的分/返回值:調(diào)整后的分/:un sig ned int AdjustM in(un sig ned int Min) un sig ned int KeyCode;un sig ned int TempM in = Min;PlayNum(TempMi n);PlayS nd(S_Fe n);while(1)*P_Watchdog_C
57、lear = 0 x01;KeyCode = Key_Get(); switch(KeyCode)case KEY_1:return TempMi n;case KEY_2:TempM in+;/播報(bào)調(diào)整前的分鐘數(shù)/ Key1 ,返回調(diào)整后的分/ Key2,分鐘數(shù)加1,到59后變?yōu)?if(TempMi n59) TempMin = 0;PlayNum(TempMi n);PlayS nd(S_Fe n);break;case KEY_3:if(TempMin=0) TempMin = 59;/ Key3,分鐘數(shù)減 1,至U 0 后變?yōu)?59else TempMi n-;PlayNum(Temp
58、Mi n);PlayS nd(S_Fe n);break;default:break;/=/語(yǔ)法格式:un sig ned int AdjustSec( un sig ned int Sec);/實(shí)現(xiàn)功能:調(diào)整秒/參數(shù):Sec -調(diào)整前的秒/返回值:調(diào)整后的秒/=un sig ned int AdjustSec( un sig ned int Sec)un sig ned int KeyCode;un sig ned int TempSec = Sec;PlaySec(TempSec);/播報(bào)調(diào)整前的秒數(shù)while(1)*P_Watchdog_Clear = 0 x01;KeyCode = K
59、ey_Get();switch(KeyCode)case KEY_1:return TempSec;case KEY_2:TempSec+;if(TempSec59) TempSec = 0;PlaySec(TempSec);break;case KEY_3:if(TempSec=0) TempSec = 59;else TempSec-;PlaySec(TempSec);break;default:break;/ Key1 ,返回調(diào)整后的秒/ Key2,秒加1,到59后變?yōu)?/ Key3,秒減1,到0后變?yōu)?9/:/語(yǔ)法格式:/實(shí)現(xiàn)功能:/參數(shù):/返回值:void Adjust(void);
60、調(diào)整日期時(shí)間無(wú)無(wú)/:void Adjust()un sig ned int TempYear, TempM on, TempDay, TempHour, TempMi n, TempSec;TempYear = AdjustYear(Clock_GetYear();/調(diào)整年TempMon = AdjustMo n( Clock_GetM on ();/調(diào)整月TempDay = AdjustDay(TempYear, TempM on, Clock_GetDay(); /調(diào)整日TempHour = AdjustHour(Clock_GetHour();/ 調(diào)整時(shí)TempMin = AdjustM
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高三女生心理健康教育
- 華南虎說(shuō)課課件
- 衡水九月高考數(shù)學(xué)試卷
- 湖北省高三三模數(shù)學(xué)試卷
- 貴州黔東南初中數(shù)學(xué)試卷
- 《網(wǎng)絡(luò)綜合布線》教案 項(xiàng)目5任務(wù)1 施工員崗前培訓(xùn)
- 健康管理中心課件教學(xué)
- 陜西新建鋼絲項(xiàng)目可行性研究報(bào)告-圖文
- 避雷器鐵路用行業(yè)深度研究分析報(bào)告(2024-2030版)
- 重慶市九校聯(lián)盟2025年物理高一第二學(xué)期期末復(fù)習(xí)檢測(cè)模擬試題含解析
- 2022年助理公路水運(yùn)試驗(yàn)檢測(cè)師《公共基礎(chǔ)》考試真題及答案(完整版)
- GC/T 1401-2022國(guó)家物資儲(chǔ)備標(biāo)志及使用規(guī)范
- QC小組活動(dòng)記錄【范本模板】
- JJF 1334-2012混凝土裂縫寬度及深度測(cè)量?jī)x校準(zhǔn)規(guī)范
- GB/T 3683-2011橡膠軟管及軟管組合件油基或水基流體適用的鋼絲編織增強(qiáng)液壓型規(guī)范
- GB/T 3003-2017耐火纖維及制品
- GB/T 1094.1-2013電力變壓器第1部分:總則
- 二維動(dòng)畫(huà)課件
- 經(jīng)濟(jì)責(zé)任審計(jì)報(bào)告
- 五年級(jí)語(yǔ)文上冊(cè)各單元作文范文
- 貴港市國(guó)有建設(shè)用地改變土地使用條件方案
評(píng)論
0/150
提交評(píng)論