基于單片機(jī) SPCE061A的數(shù)字電子鐘畢業(yè)設(shè)計
《基于單片機(jī) SPCE061A的數(shù)字電子鐘畢業(yè)設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《基于單片機(jī) SPCE061A的數(shù)字電子鐘畢業(yè)設(shè)計(50頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、目 錄第一章 前言.11.1 系統(tǒng)功能 .21.2 基本參數(shù) .21.3 注意事項 .2第二章 模塊特性簡介.32.1 SPCE061A 單片機(jī) .32.1.1 SPCE061A 簡介 .32.1.2 芯片特性 .42.2 SPCE061A 精簡開發(fā)板 .52.3 SPLC501A 液晶模組 .62.4 語音的設(shè)計及工作原理.72.5 系統(tǒng)總體方案介紹.8第三章 系統(tǒng)硬件設(shè)計.113.1 SPCE061A 最小系統(tǒng) .113.2 電源模塊.113.3 音頻輸出模塊.123.4 液晶顯示模塊.133.4.1 顯示 RAM 區(qū)映射情況 .133.4.2 SPLC501 驅(qū)動控制器芯片.15第四章
2、系統(tǒng)軟件設(shè)計.174.1 軟件的結(jié)構(gòu) .174.2 各模塊程序的說明 .184.2.1 概述 .184.2.2 主程序 .184.2.3 中斷服務(wù)程序 .194.2.4 時間日期模塊 .214.2.5 SPLC501 液晶顯示模組顯示漢字.224.2.6 常用功能函數(shù)介紹(用戶API) .24第五章 操作步驟.285.1 軟件的操作步驟.285.1.1 LCD 漢字顯示操作步驟 .285.1.2 程序燒入硬件操作步驟 .315.1.3 語音播放操作步驟 .335.2 操作界面 .34第六章 結(jié)論.37參考文獻(xiàn).38致 謝.39附錄一 軟件編寫程序.40附錄二 主要元器件清單.481第一章第一章
3、 前言前言20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 時間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時間。忘記了要做的事情,當(dāng)事情不是很重要的時候,這種遺忘無傷大雅。但是,一旦重要事情,一時的耽誤可能釀成大禍。目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內(nèi)裝化等幾個方面發(fā)展。下面是單片機(jī)的主要發(fā)展趨勢。單片機(jī)應(yīng)用的重要意義還在于,它從根本上
4、改變了傳統(tǒng)的控制系統(tǒng)設(shè)計思想和設(shè)計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。單片機(jī)模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)時、分、秒計時的裝置,與機(jī)械式時鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更長的使用壽命,因此得到了廣泛的使用。 數(shù)字鐘是采用數(shù)字電路實現(xiàn)對時、分、秒、數(shù)字顯示的計時裝置,廣泛用于個人家庭,車站, 碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表
5、, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴(kuò)展了鐘表原先的報時功能。諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播芯片自動起閉路燈、定時開關(guān)烘箱、通斷動力設(shè)備、甚至各種定時電氣的自動啟用等,所有這些,都是以數(shù)字電子鐘具有走時準(zhǔn)確,一鐘多用等特點,在生活中已經(jīng)得到了廣泛的應(yīng)用。隨著科技的發(fā)展,人們對電子產(chǎn)品的應(yīng)用要求越來越高,數(shù)字電子鐘不但可以顯示當(dāng)前的時間,而且可以顯示日期、農(nóng)歷、以及星期等,給人們的生活帶來了方便。另外數(shù)字鐘還具備秒表和鬧鐘功能,且鬧鐘鈴聲可自選,使一款電子鐘具備了多媒體的色彩。 本方案利用凌陽科技公司的SPLC501A液晶模組作為顯示模塊,凌陽1
6、6位單片機(jī)SPCE061A作為主控芯片,充分利用SPCE061A精簡開發(fā)板(簡稱61板)上面的三個按鍵,完成一個簡易的數(shù)字系統(tǒng)數(shù)字電子鐘。 該數(shù)字鐘既可以顯示當(dāng)前的日期和時間,又可以將當(dāng)前的日期和時間播報出來,同時具有鬧鐘秒表等功能,滿足了不同人的需要。 2該方案的主要功能是在SPLC501A液晶模組上顯示時間、日期,能通過SPCE061A的音頻通道播報當(dāng)前的日期和時間。61板上面的三個按鍵可以控制實現(xiàn)所有的功能,在顯示日期和時間狀態(tài)下按KEY1鍵進(jìn)入功能選擇菜單,此時KEY2為下翻鍵,KEY3為上翻鍵,KEY1為確定鍵;在顯示日期和時間狀態(tài)下按KEY2鍵播報當(dāng)前的時間,按KEY3鍵播報當(dāng)前的
7、日期,當(dāng)KEY2、KEY3鍵同時按下時控制鬧鐘的開/關(guān)。 1.11.1 系統(tǒng)功能系統(tǒng)功能 本系統(tǒng)利用凌陽科技公司的SPCE061A單片機(jī)作為控制器,擴(kuò)展SPLC501A液晶模組。系統(tǒng)具有以下功能: 1. 可以在SPLC501A液晶模組上面顯示時間、日期、農(nóng)歷、星期、鬧鐘; 2. 可以語音播報日期和時間; 3. 整點報時功能; 4. 具備鬧鐘功能; 5. 鬧鐘的鈴聲可以選擇; 6. 具備秒表功能。 1.21.2 基本參數(shù)基本參數(shù) 1.工作電壓:4.5V(3節(jié)干電池); 2.日期顯示范圍:2001-2100年; 3.時間采用24小時制。1.31.3 注意事項注意事項 1請將61板上的J5跳線選擇3
8、.3V; 2. 在安裝電池時注意正負(fù)極,否則容易燒壞芯片;3在印制電路板上的焊接元器件前要認(rèn)真對照原理圖,仔細(xì)查看印制電路板,找到對應(yīng)的元器件功能區(qū);4在電源測試期間請勿將單片機(jī)芯片插入座中,以免電源部分有問題造成芯片燒壞。3第二章第二章 模塊特性簡介模塊特性簡介該數(shù)字鐘系統(tǒng)主要由SPCE061A精簡開發(fā)板(簡稱61板)和SPLC501A液晶模塊構(gòu)成。系統(tǒng)通過61板上的三個按鍵控制SPLC501A液晶模塊顯示,通過揚聲器播放語音。所以這里主要介紹這兩個模塊。 2.12.1 SPCE061ASPCE061A 單片機(jī)單片機(jī) 2.1.1 SPCE061A 簡介 SPCE061A是凌陽科技研發(fā)生產(chǎn)的性
9、價比很高的一款十六位單片機(jī),具有易學(xué)易用且效率較高的一套指令系統(tǒng)和集成開發(fā)環(huán)境。在此環(huán)境中,支持標(biāo)準(zhǔn)C語言,可以實現(xiàn)C語言與匯編語言的互相調(diào)用,并且,提供了語音錄放和語音識別的函數(shù)庫,只要了解庫函數(shù)的使用方法,就可以很容易完成語音錄放,為軟件開發(fā)提供了方便的條件。 SPCE061A主要包括輸入/輸出端口、定時器/計數(shù)器、數(shù)/模轉(zhuǎn)換、模/數(shù)轉(zhuǎn)換、串行設(shè)備輸入/輸出、通用異步串行接口、低電壓監(jiān)測和復(fù)位等電路,并且內(nèi)置在線仿真電路ICE接口,使其能夠快速地處理復(fù)雜的數(shù)字信號。SPCE061A片內(nèi)還集成了一個ICE(在線仿真電路)接口,使得對該芯片的編程、仿真變得非常方便,而ICE接口不占用芯片上的硬
10、件資源,結(jié)合凌陽科技提供的集成開發(fā)環(huán)境(unSP IDE),用戶可以進(jìn)行在線調(diào)試、仿真;而程序的下載(燒寫)也是通過該接口完成。 4圖 1 SPCE061A內(nèi)部結(jié)構(gòu)圖2.1.2 芯片特性 16位nSP微處理器; 工作電壓:內(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)下(時鐘處于停止?fàn)顟B(tài)); 2個16位可編程定時器/計數(shù)器(可自動預(yù)置初始計數(shù)值);5 2個10位DAC(數(shù)-模轉(zhuǎn)換)輸出通道; 32位通
11、用可編程輸入/輸出端口; 14個中斷源可來自定時器A / B,時基,2個外部時鐘源輸入,鍵喚醒; 具備觸鍵喚醒的功能; 使用凌陽音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語音數(shù)據(jù); 鎖相環(huán)PLL振蕩器提供系統(tǒng)時鐘信號; 32768Hz實時時鐘; 7通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模-數(shù)轉(zhuǎn)換器; 聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動增益控制(AGC)功能; 具備串行設(shè)備接口; 低電壓復(fù)位(LVR)功和低電壓監(jiān)測(LVD)功能; 內(nèi)置在線仿真板(ICE,In- Circuit Emulator)。2.22.2 SPCE061ASPCE061A 精簡
12、開發(fā)板精簡開發(fā)板 SPCE061A精簡開發(fā)板(簡稱61板),是以凌陽16位單片機(jī)SPCE061A為核心的精簡開發(fā)仿真實驗板,大小相當(dāng)于一張撲克牌,是“凌陽科技大學(xué)計劃”專為大學(xué)生、電子愛好者等進(jìn)行電子實習(xí)、課程設(shè)計、畢業(yè)設(shè)計、電子制作及電子競賽所設(shè)計的,也可作為單片機(jī)項目初期研發(fā)使用。61板除了具備單片機(jī)最小系統(tǒng)電路外,還包括有電源電路、音頻電路(含Mic輸入部分和DAC音頻輸出部分)、復(fù)位電路等,采用電池供電,方便學(xué)生隨身攜帶!使學(xué)生在掌握軟件的同時,熟悉單片機(jī)硬件的設(shè)計制作,鍛煉學(xué)生的動手能力,也為單片機(jī)學(xué)習(xí)者和開發(fā)者創(chuàng)造了一個良好的學(xué)習(xí)條件和開發(fā)新產(chǎn)品的機(jī)會!61板上有調(diào)試器接口(Pro
13、be接口)以及下載線(EZ_Probe)接口,分別可接凌陽科技的在線調(diào)試器、簡易下載線,配合unSP IDE,可方便地在板上實現(xiàn)程序的下載、在線仿真調(diào)試。 61板上的主要功能模塊如下: 1.SPCE061A單片機(jī)最小系統(tǒng)外圍電路模塊; 2.電源輸入模塊; 3.音頻電路(包含Mic輸入、DAC音頻功放輸出)模塊; 64.按鍵模塊; 5.I/O端口接口模塊; 6.調(diào)試、下載接口模塊; 圖2為61板的實物圖: 圖 2 61板實物圖2.32.3 SPLC501ASPLC501A 液晶模組液晶模組SPLC501 液晶顯示模組采用的驅(qū)動控制芯片為凌陽科技的SPLC501A 芯片,SPLC501A 為液晶顯
14、示控制驅(qū)動器,SPLC501A 單芯片液晶驅(qū)動,可以直接與其他微控制器接口總線相連。微控制器可以將顯示數(shù)據(jù)通過8位數(shù)據(jù)總線或者串行接口寫到SPLC501A的顯存中。SPLC501A 內(nèi)置8580位顯示RAM。RAM中的一位數(shù)據(jù)控制液晶屏上的一個象素點的亮、暗狀態(tài):“1”亮“0”暗。具有65行驅(qū)動輸出和132 列驅(qū)動輸出(注:模組中的液晶顯示面板僅為64 行、128 列)。SPLC501液晶顯示模組的顯示器上的顯示點與驅(qū)動控制芯片中的顯示緩存RAM 是一一對應(yīng)的;SPLC501A芯片中共有65(8 Page 8 bit+1) 132 位的顯示RAM 區(qū)。而顯示器的顯示點陣大小為64128 點,所
15、以實際上在SPLC501 液晶顯示模組中有用的顯示RAM 區(qū)為64128 位;按byte 為單位劃分,共分為8個Page,每個Page為8行,而每一行有128位(即128 列)。如要點亮LCD屏上的某一個點時,實際上就是對該點所對應(yīng)的顯示RAM 區(qū)中的某一位進(jìn)行置1 操作;所以就要確定該點所處的行地址、列地址。SPLC501 液晶顯示模組的行地址實際上就是Page的信息,每一個Page應(yīng)有8 行;而列地址則表示該點的橫坐標(biāo),在屏上為從左到7右排列,Page中的一個Byte對應(yīng)的是一列(8行,即8個點),共128 列??梢愿鶕?jù)這樣的關(guān)系在程序中控制LCD 顯示屏的顯示。SPLC501A液晶模組具
16、有以下特性: 1.顯示模式:黃色模式STN液晶; 2.顯示格式:12864點陣的圖形液晶; 3.輸入數(shù)據(jù):兼容68/80系列MPU時序。 更詳細(xì)的資料請參考SPLC501A的Datasheet,SPLC501A液晶模組的實物圖如圖3所示: 圖 3 SPLC501A 液晶模組實物圖2.42.4 語音的設(shè)計及工作原理語音的設(shè)計及工作原理本次設(shè)計的要求為整個系統(tǒng)在運行時能夠根據(jù)要求及時的發(fā)出聲音,以增加效果。為了配合設(shè)計要求,設(shè)計了語音模塊。語音是SPLC501A的一大特點。應(yīng)用SPLC501A可以方便的實現(xiàn)語音的錄放,該芯片擁有8路10位精度的AD。其中1路AD為音頻轉(zhuǎn)化通道,并且內(nèi)置自動增益電路
17、。這為語音的錄入提供方便的硬件條件。2路10位精度的DA,只需外接1個功放即可完成語音播放。一般都是用C語言作為主程序,用匯編語言編制各種模塊,供主程序調(diào)用。凌陽音頻8格式常用的有3種,將壓縮前的數(shù)據(jù)量比上壓縮后的數(shù)據(jù)量即可以得到凌陽不同音頻格式壓縮比:SACM A2000:壓縮比為8:1,8:1.25,8:1.5;SACM S480: 壓縮比為80:3,80:4.5;SACM S240: 壓縮比為80:1.5;壓縮比越大,存儲空間越小,更加節(jié)省資源。2.52.5 系統(tǒng)總體方案介紹系統(tǒng)總體方案介紹 電子鐘的系統(tǒng)結(jié)構(gòu)如圖4,圖5為電子鐘功能結(jié)構(gòu)圖 ,61板作為整個系統(tǒng)的控制中心,負(fù)責(zé)控制鍵盤掃描
18、;年、月、日、星期以及時間的計算; SPLC501A液晶顯示的驅(qū)動;并根據(jù)按鍵值播報當(dāng)前的日期或者時間。SPLC501A液晶顯示模組主要用來顯示當(dāng)前的時間,日期,以及顯示功能選擇菜單和時間日期調(diào)整菜單。在聲音的處理上主要采用凌陽科技的語音壓縮格式,將需要播放的聲音壓縮存在SPR模組里面,然后通過61板將語音資源取出播放出來。在圖片的處理上,采用SPLC501液晶模組,使用配套的DM Tool工具將需要顯示的圖片實現(xiàn)提取出圖片資源燒寫到SPCE061A中,然后通過61板控制SPLC501A播放出來。本系統(tǒng)采用了語音的錄入和輸出播放。 9圖 4 系統(tǒng)結(jié)構(gòu)框圖圖 5 功能結(jié)構(gòu)圖10用61板控制數(shù)字鐘
19、系統(tǒng),使用了IOA口的高八位、IOB的4、5、6共11個I/O口連接SPLC501A液晶模組,另外使用了61板的語音輸出模塊;以及61板上的三個按鍵,硬件連接如圖 7所示:電路連接如圖7,IOA的高八位接到液晶模組的八個數(shù)據(jù)端,同時也連接了液晶模組的電源,即直接用一根10pin的排線連接61板“+”、IOA815、“-”與SPLC501A液晶顯示模組的“+”、DB07、“-”,主要用來向液晶模組傳送命令和數(shù)據(jù);IOB6接EP,IOB5接R/W,IOB4接AO,用來控制液晶的顯示和工作方式。 注意電源的正負(fù)極不要接反;DB0連接IOA8,DB7連接IOA15,也不要接反。圖 6 電路連接圖11第
20、三章第三章 系統(tǒng)硬件設(shè)計系統(tǒng)硬件設(shè)計3.13.1 SPCE061ASPCE061A 最小系統(tǒng)最小系統(tǒng) SPCE061A最小系統(tǒng)包括SPCE061A芯片及其外圍的基本模塊,其中外圍的基本模塊有:晶振輸入模塊(OSC)、鎖相環(huán)外圍電路(PLL)、復(fù)位電路(RESET)、指示燈(LED)等,如圖7所示。 圖 7 SPCE061A最小系統(tǒng)3.23.2 電源模塊電源模塊 SPCE061A 板采用 3 節(jié) 5 號電池進(jìn)行供電,由 J10 接入,其中前后兩組電容用來去耦濾波,使其供給芯片的電源更加干凈平滑。為了獲得標(biāo)準(zhǔn)的 3.3 伏電壓,在電路上加入 SPY0029 三端穩(wěn)壓器和兩個二極管,是為了防止誤將電
21、源接反造成不必要損失而設(shè)置的。在操作過程中千萬不要將電源接反,因為反向電壓超過一定值,二極管將會被損壞,達(dá)不到保護(hù)的目的。后面的零電12阻及其電源分成不同的幾路是為了減少電磁干擾設(shè)置的。圖 8 是電源部分的電路,4.5V 直流電壓經(jīng)過 SPY0029 后產(chǎn)生 3.3V 給整個系統(tǒng)供電。 SPY0029 是凌陽公司設(shè)計的電壓調(diào)整 IC,采用 CMOS 工藝。SPY0029 具有靜態(tài)電流低、驅(qū)動能力強(qiáng)、線性調(diào)整出色等特點。4.2 圖中的VDDH3 為 SPCE061A 的 I/O 電平參考,接 SPCE061A 的 51 腳,這種接法使得 I/O 輸出高電平為 3.3V;VDDP 為 PLL 鎖相
22、環(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板上)中有一個端口電平選擇跳線,如圖中的J5。本系統(tǒng)需要的端口高電平為3.3V,所以圖8中的J5跳線需要跳到2和3上。 圖 8 電源模塊3.33.3 音頻輸出模塊音頻輸出模塊音頻輸出(D/
23、A)部分的原理圖如圖9所示,可以直接聽喇叭輸出的聲音。圖中的SPY0030也是凌陽公司的產(chǎn)品。它的詳細(xì)說明可以參見SPY0030 data sheet。和LM386相比,SPY0030還具有下述優(yōu)勢,比如LM386工作電壓需在4V以上, SPY0030僅需2.4V即可工作(兩顆電池即可工作);LM386輸出功率100mW以下, SPY0030約700mW。芯片將聲音處理后輸出(J2),經(jīng)SPY0030音頻放大輸出(J3)通過揚聲器還原為聲音。SPY0030A是凌陽公司開發(fā)的專門用于語音放大的芯片。SPY0030的輸入電壓的范圍是2.46.0伏,該電路中采用的電壓是3.3伏。SPCE061A內(nèi)置
24、2路10位DAC,只需要外接功放電路即可完成語音的播放。 13圖 9 音頻輸出電路圖3.43.4 液晶顯示模塊液晶顯示模塊3.4.1 顯示 RAM 區(qū)映射情況 SPLC501A液晶模組為12864點陣模式,面板采用STN(Super Twisted Nematic)超扭曲相列技術(shù)制成,非常容易通過接口被訪問。模組上的液晶顯示器采用凌陽科技的SPLC501芯片作為LCD驅(qū)動和控制器,為128X64點陣圖形液晶顯示器。 表1 SPLC501液晶顯示模組的基本參數(shù)顯示模式 黃色模式STN液晶 顯示格式 128X64點陣地圖形液晶顯示 輸入數(shù)據(jù) 兼容68/80系列MPU數(shù)據(jù)輸入 背光 黃綠色LED 模
25、塊尺寸 72.8(長)73.6(寬)9.5(高)mm 視屏尺寸 58.84(寬)35.79(長)mm 點大小 0.42(寬)0.51(長)mm 14注意事項 SPLC501液晶顯示模組中,接口引腳:“+”、“V3”分別為電源輸入端和高電平引針(供時序選擇跳線用),而“-”、“GND”都是接地引腳。 表2 接口引腳名接口引腳名 說明 CS1 片選,低有效 RES 復(fù)位腳 A0 數(shù)據(jù)命令選擇腳 對于6800系列MPU的讀/寫信號(R/W) R/W 對于8080系列MPU的寫信號(W/R) 對于6800系列MPU的時鐘信號使能腳(EP) EP 對于8080系列MPU的讀信號(RD) DB0 DB1
26、DB2 DB3 DB4 8位數(shù)據(jù)總線 DB5 DB6 DB7 VR 端口輸出電壓 C86 C86=H 選擇6800MPU系列 C86=L 選擇8080MPU系列 PS 串、并行時序選擇 153.4.2 SPLC501 驅(qū)動控制器芯片 SPLC501液晶顯示模組采用的驅(qū)動控制芯片為凌陽科技的SPLC501A芯片,SPLC501A為液晶顯示控制驅(qū)動器,集行、列驅(qū)動器和控制器于一體,廣泛應(yīng)用于小規(guī)模液晶顯示模塊。 SPLC501A單芯片液晶驅(qū)動,可以直接與其他微控制器接口總線相連。微控制器可以將顯示數(shù)據(jù)通過8位數(shù)據(jù)總線或者串行接口寫到SPLC501A的顯存中。下列是SPLC501A的特點: 內(nèi)置85
27、80位顯示RAM。RAM中的一位數(shù)據(jù)控制液晶屏上的一個象素點的亮、暗狀態(tài)。“1”亮“0”暗; 具有65行驅(qū)動輸出和132列驅(qū)動輸出(注:模組中的液晶顯示面板僅為64行、128列); 可以直接與80系列和68系列微處理器相連; 內(nèi)置晶振電路,也可以外接晶振; 工作溫度范圍為40攝氏度85攝氏度。其電路原理圖如圖 10所示:圖 10 液晶模組電路16SPLC501A液晶顯示模組提供了8080和6800的并行操作時序,也提供了串行的操作時序,用戶可以通過對PS、C86引腳接不同的電平來選擇操作的時序(8080操作時序接線圖:(PS接VDD,C86接VSS) ,6800操作時序接線圖:(PS接VDD,
28、C86接VDD) ,行操作時序接線圖:(PS接VSS,C86接VSS或VDD都可) )。SPLC501液晶顯示模組中,設(shè)置了PS和C86的跳線,供用戶選擇操作時序。17第四章第四章 系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計4.14.1 軟件的結(jié)構(gòu)軟件的結(jié)構(gòu)下圖中可以看出各文件之間的調(diào)用關(guān)系。 圖 11 軟件結(jié)構(gòu)數(shù)字鐘主要還是軟件實現(xiàn)的,數(shù)字鐘的軟件設(shè)計由以下程序構(gòu)成:1、main.c:實現(xiàn)系統(tǒng)的初始化、顯示開機(jī)畫面、鍵盤掃描和語音播報;2、system.c:包含工程中大部分的功能函數(shù),包括各種界面的顯示、時間和日期的調(diào)整、秒表的調(diào)整、鬧鐘的時間設(shè)定、鬧鐘的鈴聲選擇等;3、key.c:鍵盤掃描文件,文件中定義了
29、鍵盤掃描函數(shù)、延時函數(shù)、用來實現(xiàn)對鍵盤的掃描等功能、鍵盤掃描采用查詢方式;4、isr.asm:中斷服務(wù)函數(shù)文件,實現(xiàn)語音解碼、秒表以及時間、日期的修改;5、speak.c:語音播報函數(shù),實現(xiàn)語音播報日期、時間以及鬧鐘。184.24.2 各模塊程序的說明各模塊程序的說明4.2.1 概述由于凌陽 SPCEA061A,使得外圍電路變的更簡單。制作好系統(tǒng)的硬件電路后,整個系統(tǒng)的主體任務(wù)主要落在了程序的編寫上。SPCE061A 是凌陽科技研發(fā)生產(chǎn)的性價比很高的一款十六位單片機(jī),具有易學(xué)易用且效率較高的一套指令系統(tǒng)和集成開發(fā)環(huán)境。在此環(huán)境中,支持標(biāo)準(zhǔn) C 語言,可以實現(xiàn) C 語言與匯編語言的互相調(diào)用,并且
30、,提供了語音錄放和語音識別的函數(shù)庫,只要了解庫函數(shù)的使用方法,就可以很容易完成語音錄放,為軟件開發(fā)提供了方便的條件。此次系統(tǒng)采用了模塊程序結(jié)構(gòu),模塊程序結(jié)構(gòu)包括了初始化,系統(tǒng)主程序模塊,語音播放模塊,顯示模塊。C 語言屬于高級語言,有著匯編語言無法比擬的優(yōu)點,而 SPCE061A 開發(fā)系統(tǒng)抓住了這個關(guān)鍵,兩者結(jié)合,充分發(fā)揮各自的優(yōu)勢。在用到語音的時候,一般都是用 C 語言作為主程序,用匯編語言編制各種模塊,供主程序調(diào)用。本系統(tǒng)采用了這種編制方法使得相互調(diào)用非常簡單。4.2.2 主程序主程序流程如圖12所示,在主程序中初始化了整個工程中用到的變量,初始化了液晶顯 示模塊。開2Hz中斷實現(xiàn)計時。在
31、主程序中調(diào)用了鍵盤掃描程序,對IOA口的低三位進(jìn)行掃描,如果有鍵按下,就把相應(yīng)的鍵值存入到一個變量中,通過主程序來判斷是哪個鍵按下,并執(zhí)行相應(yīng)的功能:若是KEY1鍵按下,則會進(jìn)入功能選擇菜單,此時KEY1就會為確定鍵,KEY2為下翻鍵,KEY3為上翻鍵;若是KEY2鍵按下,播報時間;若是KEY3鍵按下,播報當(dāng)前的日期;KEY2、KEY3鍵同時按下控制鬧鐘的開/關(guān)。19圖 12 主程序流程圖4.2.3 中斷服務(wù)程序 中斷服務(wù)程序有三個:一個是2Hz中斷服務(wù)程序,用來計時;一個是1KHz中斷服務(wù)程序,用于秒表計時;另外一個是FIQ中斷服務(wù)程序,用來播放語音。程序的流程分別如圖13、圖14、圖15。
32、20圖 13 IRQ5時基中斷流程圖另外一個是FIQ中斷服務(wù)程序,用來播放語音。圖 14 IRQ4時基中斷流程圖21圖 15 FIQ中斷程序4.2.4 時間日期模塊時間日期程序模塊的流程圖如圖16所示,該模塊用到了2Hz的時基中斷,用來實現(xiàn)計時,同時實現(xiàn)了日期的更新,其中農(nóng)歷是使用查表的方法來實現(xiàn)的。22圖 16 時間日期模塊流程圖4.2.5 SPLC501 液晶顯示模組顯示漢字利用SPLC501 液晶顯示模組顯示漢字比顯示英文字符稍微復(fù)雜一點,因為英文字符在ASCII 碼中都有對應(yīng)字符,而SPLC501 液晶顯示模組顯示的都是ASCII 碼,漢字卻不能與ASCII 碼對應(yīng),所以要先用字模提取
33、工具把漢字提取成字模數(shù)據(jù),才能顯示。利用SPLC501 液晶顯示模組顯示漢字需要圖17的操作過程。新建一個工程;利用字模提取工具提取字模數(shù)據(jù);把字模數(shù)據(jù)文件保存在工程文件夾,以方便工程調(diào)用;添加字模數(shù)據(jù)文件23到工程,程序可以直接使用這些字模數(shù)據(jù);拷貝并添加驅(qū)動程序文件;編寫程序;運行顯示。利用SPLC501 液晶顯示模組顯示漢字的過程見圖17,和顯示英文字符的方法類似,所不同的是顯示漢字的API 函數(shù)為LCD501_Bitmap(unsigned int x,unsigned int y,unsigned int *word)。 圖 17 利用SPLC501液晶顯示模組顯示漢字需要的操作過程
34、。為了使用戶能夠方便快速地使用SPLC501液晶顯示模組,凌陽大學(xué)計劃提供了基于SPCE061A單片機(jī)的SPLC501液晶顯示模組的驅(qū)動程序,包括文本顯示、幾何圖形繪制和位圖顯示等功能函數(shù),SPLC501液晶顯示模組的驅(qū)動程序架構(gòu)如圖所示: 圖 18 驅(qū)動程序架構(gòu)24驅(qū)動程序由5個文件組成,分別為:底層驅(qū)動程序文件:SPLC501Driver_IO.inc、SPLC501Driver_IO.asm;用戶API功能接口函數(shù)文件:SPLC501User.h、SPLC501User.c、DataOSforLCD.asm。 SPLC501Driver_IO.inc:該文件為底層驅(qū)動程序的頭文件,主要對
35、使用到的寄存器(如端口控制寄存器等)進(jìn)行定義,還對SPCE061A與SPLC501液晶顯示模組的接口進(jìn)行配置;用戶可以根據(jù)自已的需求來配置此文件,但要使端口的分配符合實際硬件的接線。 SPLC501Driver_IO.asm:該文件為底層驅(qū)動程序,負(fù)責(zé)與SPLC501液晶顯示模組進(jìn)行數(shù)據(jù)傳輸?shù)娜蝿?wù),主要包括端口初始化、寫控制指令、寫數(shù)據(jù)、讀數(shù)據(jù)等函數(shù);這些函數(shù)僅供SPLC501User.c調(diào)用,不建議用戶在應(yīng)用程序中調(diào)用這些函數(shù)。 SPLC501User.h:該文件為用戶API功能函數(shù)文件的頭文件,主要對一些記住符進(jìn)行定義,以及配置LCD的一些設(shè)置,另外該文件里還對SPLC501User.c中
36、的函數(shù)作了外部聲明,用戶需要使用LCD的API功能函數(shù)時,需要把該文件包含在用戶的C文件中,好可調(diào)用。 SPLC501User.c:文件中定義了針對LCD顯示的各種API功能函數(shù)。 DataOSforLCD.asm:該文件中提供了一些供API功能函數(shù)調(diào)用的數(shù)據(jù)處理子程序,主要完成顯示效果的疊加、畫圓偏差量的計算等。 4.2.6 常用功能函數(shù)介紹(用戶 API)SPLC501User.c文件中定義了常用的顯示函數(shù),包括:液晶顯示控制函數(shù)、文本顯示、圖形顯示等;下面介紹部分常用功能函數(shù): 液晶顯示控制類: 1,LCD501_Init 液晶初始化 程序:LCD501_Init(unsigned in
37、t InitialData) 描述:液晶顯示初始化函數(shù) 參數(shù):unsigned int InitialData 初始化顯示的字,低八位有效 返回:無 注意:在使用LCD前,首先應(yīng)執(zhí)行該函數(shù),使LCD處于可以正常顯示的狀態(tài) 2,LCD501_ClrScreen 清屏 程序:LCD501_ClrScreen(unsigned int Mode) 25描述:液晶整屏清屏函數(shù) C語言調(diào)用 參數(shù):unsigned int Mode 清屏類型Mode=1則全點亮,Mode=0內(nèi)全清零 3,LCD501_ReverseColor 顯示翻轉(zhuǎn) 程序:void LCD501_ReverseColor(void)
38、描述:屏幕反色顯示。每執(zhí)行一次該函數(shù),屏幕顏色翻轉(zhuǎn)一次 5,LCD501_GetPaintMode 獲取當(dāng)前顯示模式 程序:unsigned int LCD501_GetPaintMode(void) 描述:設(shè)置圖形顯示模式 參數(shù):無 返回:ModeCode - 圖形顯示模式,可以是下列數(shù)值之一: 0 PAINT_COVER: 1 PAINT_SET: 2 PAINT_CLR: 3 PAINT_REV: 4 PAINT_RECO: 注意:無 文本顯示類函數(shù): 1,LCD501_FontSet 設(shè)置文本字體 程序:void LCD501_FontSet(unsinged int Font) 8x
39、16 6X8 描述::選擇顯示字符的大小類型 參數(shù):Font 字符的類型選擇 1 8X16 0 6X8 返回:無 注意:只針對顯示驅(qū)動中包含的ASCII碼顯示 2,LCD501_FontGet 獲取當(dāng)前文本字體 程序:unsigned int LCD501_FontGet(void) 8x16 6X8 26描述:獲取當(dāng)前顯示字符的大小類型 返回:字符的類型選擇 1 8X16 0 6X8 注意:只針對顯示驅(qū)動中包含的ASCII碼顯示 3,LCD501_PutChar 顯示單個字符 程序:void LCD501_PutChar(int x,int y,unsigned int a) 8x16 6X
40、8 描述:顯時8X16、6X8的自帶ASCII字符,任意行定位 參數(shù):x 顯示字符的起始列(0128) y 顯示字符的起始行(063) a ASCII碼 返回:無 注意:無 4,LCD501_PutString 顯示字符串 程序:void LCD501_PutString(int x,int y,unsigned int a) 8x16 6X8 描述:顯時8X16、6X8的自帶ASCII字符,任意行定位 參數(shù):x 顯示字符的起始列(0128) y 顯示字符的起始行(063) a ASCII碼 返回:無 注意:無 5,LCD501_Bitmap 位圖顯示/ /漢字顯示 程序:void LCD50
41、1_Bitmap(unsigned int x,unsigned int y,unsigned int *word) 描述:DM Tool取的漢字字模、位圖字模顯示函數(shù) 參數(shù):x 顯示字符的起始列(0128) y 要顯示的字模的起始行(064-y_whide) *word 要顯示的漢字字模的數(shù)據(jù)首地址 返回:無 注意:只顯示用DM Tool取字模軟件所取的漢字字模數(shù)據(jù);該函數(shù)可以在指定位置顯示位圖。參數(shù)x和y是位圖的左上角坐標(biāo)。word是“位圖數(shù)據(jù)”的起始地址?!拔粓D數(shù)據(jù)”的第一個Word聲明了位圖的大小,低8位代表位圖寬度,高8位代表位圖高度。如0 x172B表示位圖的寬為2743像素,高為
42、23像素。從第二個Word開始描述位圖每個點的顏色(1-黑色,0-白色)。點對應(yīng)每個數(shù)據(jù)位的情況為:從下到上,自左到右,以WORD(16bit)為存儲單位,不足16位的補(bǔ)0??梢岳昧桕柎髮W(xué)計劃提供的DM Tool字模提取工具提取出漢字或BMP圖像的字模數(shù)據(jù),然后直接引用由其生成的字模數(shù)組3SPLC5401液晶顯示模組控制流程 ,利用模組資料中提供的SPLC501液晶顯示模組驅(qū)動程序進(jìn)行LCD顯示編程時,一定要在調(diào)用文本顯示或圖形顯示函數(shù),以及控制類函數(shù)前調(diào)用LCD的初始化函數(shù);在LCD初始化程序中,會進(jìn)行端口初始化、LCD初始設(shè)置以及變量初始化等。 28第五章第五章 操作步驟操作步驟5.15
43、.1 軟件的操作步驟軟件的操作步驟5.1.1 LCD 漢字顯示操作步驟1.DM Tool 字模提取工具與顯示英文字符(ASCII 碼)不同,漢字不能直接顯示在點陣的LCD 顯示器上,而是要借助一個工具,先把漢字轉(zhuǎn)換成 LCD 顯示器能顯示的形式。凌陽科技教育推廣中心提供了針對 unSP 系列 16 位單片機(jī)的字模數(shù)據(jù)提取工具DM Tool;可以利用此工具提取漢字字模、BMP 位圖字模,還可以很方便地提取 ASCII 碼字模。DM Tool 在大學(xué)計劃網(wǎng)站 SPLC501 液晶模組資料里提供。下面介紹利用DM Tool 字模提取工具提取漢字字模的步驟。第一步:安裝好DM Tool 后,在開始-程
44、序-sunplus-DM Tool打開DM。圖19 DM Tool 界面第二步:選擇FileNews菜單項,新建工程,如圖 20所示:29圖 20 新建工程選擇后,即新建了一個工程;如圖21所示。用戶可以選擇File菜單中的Save菜單項來保存工程,也可以直接對工程進(jìn)行操作,進(jìn)行字模數(shù)據(jù)提取的操作。圖 21 新建了一個工程第三步:在輸入?yún)^(qū)中輸入漢字:列如羅江波波制作這時利用快捷鍵組合:“Ctrl+Enter”,完成漢字的輸入操作,可以看到轉(zhuǎn)換列表中出現(xiàn)“羅江波波制作”四個漢字的列表,而在操作區(qū)中也會出現(xiàn)漢字的點陣圖。30第四步:進(jìn)行字模數(shù)據(jù)的提取。選擇菜單File中的Export CChar
45、file菜單項,或者直接用工具欄最右邊的“Export”工具,打開字模數(shù)據(jù)生成窗口。第五步:在字模數(shù)據(jù)生成窗口中,選擇File菜單中的Export CChar file菜單項,或工具欄中的“Export CChar file”工具,開始生成數(shù)據(jù),即打開了“Export CChar file”對話框,如圖22和圖23所示:圖 22 選擇“Export CChar file”選項打開對話框圖 23 “Export CChar file”對話框第六步:在對話框的“Select”選項中,選擇“Down to Up,Left to Right”選項;在“char .c file:”輸入框的右邊的工具,可
46、以選擇導(dǎo)出文件的路徑和文件名,這里保存在“我的文檔”中,文件名為Mychar”,如圖24所示;然后點擊“保存”返回“Export CChar file”對話框;再在“Export CCharfile”中點擊“OK”,即可生成保存有字模數(shù)據(jù)的兩個文件:“Mychar.c”和“Mychar.h”;如圖25所示:31圖 24 選擇路徑和保存文件名圖 25 導(dǎo)出的字模數(shù)據(jù)文件這時,漢字字模數(shù)據(jù)的生成操作已完成,已經(jīng)生成了所需的字模數(shù)據(jù)文件:“Mychar.c”和“Mychar.h”。導(dǎo)出文件后,用戶可以關(guān)閉字模數(shù)據(jù)生成窗口,返回到DM Tool 軟件的主窗口,以便進(jìn)行其它的操作,DM Tool 的使用
47、方法可以參考DM Tool 的用戶手冊。導(dǎo)出的字模數(shù)據(jù)以數(shù)組的形式保存,可以直接包含到工程中進(jìn)行引用。5.1.2 程序燒入硬件操作步驟步驟一:根據(jù)圖6數(shù)字鐘連接示意圖連接硬件,并連接好下載線。 步驟二:打開電池盒電源。 步驟三:啟動unSP IDE。打開數(shù)字鐘應(yīng)用實例程序(路徑:數(shù)字電子鐘禮包參考源代碼monthdayclock monthdayclock.sp),編譯、鏈接確認(rèn)沒有錯誤。如圖26所示: 32圖 26 打開數(shù)字鐘應(yīng)用實例程序步驟四:下載程序代碼到61板上。 步驟五:下載成功后會有幾秒鐘的開機(jī)畫面,隨后會進(jìn)入時間日期顯示界面,初始時間設(shè)定為: 00:00:00,日期為2006年8
48、月1日。 按KEY1鍵:進(jìn)入功能選擇界面。 按KEY2鍵:播報當(dāng)前的時間。 按KEY3鍵:播報當(dāng)前的日期。 KEY2、KEY3鍵同時按下:控制鬧鐘的開與關(guān)。具體操作流程圖如圖27:33圖 27 具體操作流程圖5.1.3 語音播放操作步驟1. 新建一個工程ex4_ Recognise_LCD,在工程里建立一個新的C語言文件。2. 程序中會用到語音識別的API函數(shù),先拷貝語音識別庫bsrv222SDL.lib 到ex4_Recognise_LCD 工程文件夾, bsrv222SDL.lib 在實驗儀指導(dǎo)書范例代碼exampleIntExaex4_Recognise_LCD 路徑可以找到。3. 拷貝
49、語音識別頭文件bsrSD.h、bsrSD.inc到ex4_Recognise_LCD 工程文件夾。4. 拷貝語音播放庫sacmv26e.lib 和頭文件A2000.h、a2000.inc到ex4_Recognise_LCD 工程文件夾。5. 拷貝支持sacmv26e.lib 的匯編語言文件hardware.asm 和頭文件hardware.h、hardware.inc 到ex4_Recognise_LCD 工程文件夾。6. 拷貝SPLC501液晶顯示34DataOSforLCD.asm、SPLC501Driver_IO.asm、SPLC501Driver_IO.inc、SPLC501User.
50、c 和SPLC501User.h 五個驅(qū)動程序(提供在實驗儀指導(dǎo)書范例代碼examplemodel_ExaDriverSPLC501driver)到ex4_Recognise_LCD 工程文件夾。7. 在IDE 集成開發(fā)環(huán)境的ProjectSettinglink 中鏈接bsrv222SDL.lib 和sacmv26e.lib 庫到工程中。8. 添加hardware.asm、DataOSforLCD.asm、SPLC501Driver_IO.asm 和SPLC501User.c 到工程文件的“Source Files”,添加bsrSD.h、bsrSD.inc、A2000.h、a2000.inc、
51、hardware.h、hardware.inc、SPLC501Driver_IO.inc、SPLC501User.h 八個頭文件到“Head Files”。8. 拷貝語音資源, 并加載到工程當(dāng)中; 語音資源可以從實驗儀指導(dǎo)書范例代碼exampleIntExaex4_Recognise_LCDvoice 路徑下可以找到。9. 提取BMP 圖片的字模數(shù)據(jù),并將數(shù)據(jù)加載到工程中,圖片的資源可以在實驗儀指導(dǎo)書范例代碼exampleIntExaex4_Recognise_LCDPic 路徑下可以找到。10. 按照程序流程圖編寫程序。11. Rebuild All。12. 按照硬件連接圖連接硬件。13.
52、下載程序,運行。5.25.2 操作界面操作界面 1. 時間顯示界面如圖28所示 ,此時按KEY1鍵會進(jìn)入功能選擇菜單,按KEY2鍵播放當(dāng)前的時間,按KEY3鍵播放當(dāng)前的日期,KEY2和KEY3同時按下,切換鬧鐘的開與關(guān),當(dāng)鬧鐘響時,按下三個鍵中的任何一個都可以關(guān)閉鬧鐘。圖28 時間顯示界面352.功能選擇菜單界面如圖29所示,此時KEY1為確定鍵,KEY2為下翻鍵,KEY3為上翻鍵。圖29 功能選擇界面 3.時間日期調(diào)整界面如圖30所示:此時KEY1為確定鍵,KEY2為加一鍵,KEY3為減一鍵,圖中閃爍的部分表示當(dāng)前正在調(diào)整的選項,當(dāng)設(shè)置完成后,按KEY1會自動退出設(shè)置界面。 圖30 時間日期
53、顯示界面4.鬧鐘設(shè)置界面如圖31所示,此時KEY1為確定鍵,KEY2為下翻鍵,KEY3為上翻鍵圖 31 鬧鐘功能設(shè)置界面5.鬧鐘時間設(shè)置界面如圖32所示,此時KEY1為確定鍵,KEY2為加一鍵,KEY3為減一鍵,圖中閃爍的部分表示當(dāng)前正在調(diào)整的選項,當(dāng)設(shè)置完成后,按KEY1會自動退出設(shè)置界面。 36圖32 鬧鐘時間設(shè)置界面6.鬧鐘鈴聲設(shè)置界面如圖33所示,此時KEY1為確定鍵,KEY2為選擇鍵,KEY3為播放當(dāng)前選擇的鈴聲鍵。圖 33 鬧鐘鈴聲選擇界面 7.秒表功能界面如圖34所示,此時KEY1為退出鍵,KEY2為開始/暫停鍵,KEY3為清零鍵,只有當(dāng)秒表停止運行時KEY3才有效。 圖 34
54、秒表功能界面37第六章第六章 結(jié)論結(jié)論 SPCE061A芯片強(qiáng)大的語音處理功能,為本系統(tǒng)的設(shè)計提供了便利條件;32個可編程I/O口,使得擴(kuò)展外圍設(shè)備非常方便;CPU可工作在0.32MHz49MHz的主頻范圍,并且擁有豐富的中斷源,使得系統(tǒng)在語音播放、數(shù)據(jù)顯示等方面游刃有余,擴(kuò)展性強(qiáng)。根據(jù)硬件的選擇和電路的搭配進(jìn)行了軟件的設(shè)計和編程,在實現(xiàn)硬件功能時,我們曾遇到一些問題,在參閱了許多資料結(jié)合實際條件選擇了一種全面和簡單的數(shù)字鐘系統(tǒng),其次在焊接中和元器件的購買都是在胡老師的指導(dǎo)下購買的。在這次畢業(yè)設(shè)計中鍛煉了我的分析能力、解決問題和動手能力。 顯然,這是一個比較簡單的數(shù)字鐘,在這個基礎(chǔ)上,稍微改動
55、,或者擴(kuò)展其他模塊可以設(shè)計出一個更加完善的數(shù)字鐘系統(tǒng)。比如,擴(kuò)展外部存儲器可以增加鈴聲的數(shù)目、可以改變鈴聲的播放格式使鈴聲更加動聽、增加掉電保護(hù)功能等等,以此來提高同學(xué)們的對單片機(jī)的興趣。本次設(shè)計中,我從基礎(chǔ)做起,做好每一個程序模塊,在最后的硬件調(diào)試中,取得成功,實現(xiàn)了數(shù)字鐘的基本功能 ,達(dá)到了我們預(yù)期的設(shè)計目的。系統(tǒng)實物照片如圖35。圖 35 系統(tǒng)實物照片38參考文獻(xiàn)參考文獻(xiàn)1 李全利,遲榮強(qiáng).單片機(jī)原理及接口技術(shù)M,北京:高等教育出版社,2004.1.2 黃智偉.全國大學(xué)生電子設(shè)計競賽系統(tǒng)設(shè)計M,北京:北京航空航天大學(xué)出版社,2006.6.3 黃智偉.凌陽單片機(jī)課程設(shè)計指導(dǎo)M,北京:北京航
56、空航天大學(xué)出版社,2006.11.4 李廣弟,朱月秀,王秀山.單片機(jī)基礎(chǔ)M,北京:北京航空航天大學(xué)出版社,2001.7.5 趙曙光,郭萬有,楊頌華.可編程邏輯器件原理開發(fā)與應(yīng)用M,西安:西安電子科技大學(xué), 2000.6 候伯亨.VHDL 硬件描述語言與數(shù)字邏輯電路設(shè)計M, 西安:西安電子科技大學(xué)出版社, 1999.7 康華光. 模擬電子技術(shù)基礎(chǔ)(第四版)M, 武漢:華中理工大學(xué)出版社,1999.8 譚浩強(qiáng).C語言程序設(shè)計(第二版)M,北京:清華大學(xué)出版社,1991.9 陳小忠,黃寧. 單片機(jī)接口技術(shù)實用子程序M,北京:北京人民郵電出版社, 2005.10 歐偉明,周春臨,瞿遂春.電子信息系統(tǒng)設(shè)
57、計M,西安電子科技大學(xué)出版社,2005.9.11 賈立新,王涌.電子系統(tǒng)設(shè)計與實踐M,北京:清華大學(xué)出版社,2007.12 羅亞非.凌陽16位單片機(jī)應(yīng)用基礎(chǔ)M,北京:北京航空航天大學(xué)出版社,2003.13 SPLC501A液晶顯示模塊產(chǎn)品說明書Z.凌陽大學(xué)計劃網(wǎng)站().14 雷思孝.凌陽單片機(jī)原理及實用技術(shù)M,西安電子科技大學(xué),2004.39致致 謝謝本論文是在導(dǎo)師教授胡敏的悉心指導(dǎo)下完成的。導(dǎo)師淵博的專業(yè)知識,嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,嚴(yán)以律己、寬以待人的崇高風(fēng)范,樸實無華、平易近人的人格魅力對我影響深遠(yuǎn)。不僅使我樹了遠(yuǎn)大的學(xué)術(shù)目標(biāo)、掌握了基本的研究方法,還使我
58、明白了許多待人接物與為人處世的道理。本論文從選題到完成,每一步都是在導(dǎo)師的指導(dǎo)下完成的,傾注了導(dǎo)師大量的心血。在此,謹(jǐn)向?qū)煴硎境绺叩木匆夂椭孕牡母兄x! 羅江波 2008年5月于合肥學(xué)院40附錄一附錄一 軟件編寫程序軟件編寫程序工程名稱: monthdayclock.spj/功能描述: 萬年歷,農(nóng)歷和電子鐘,具備撥報日期、時間、正點報時、秒表、鬧鐘等功能。/ IDE環(huán)境: SUNPLUS unSPTM IDE 2.0.0(or later)/涉及的庫: CMacro1016.lib/ sacmv26e.lib/組成文件: main.c/system./Key.c/speak.c/IRQ.asm
59、/miaobiao/asm/硬件連接:/ IOA8-15接液晶顯示模塊DB0-DB7/ IOB4接液晶顯示模塊AO/ IOB5接液晶顯示模塊的R/W/ IOB6接液晶顯示模塊的EP/文件名稱: main.c/功能描述: 系統(tǒng)初始化,顯示時間日期界面/ 按KEY1,進(jìn)入時間調(diào)整和功能選擇菜單。/ 按KEY2,撥報當(dāng)前的時間。/ 按KEY3,撥報當(dāng)前的日期。/ KEY2、KEY3同時按下控制鬧鐘的開關(guān)/=#include SPCE061A.h#include SPLC501User.h#include model.h#define ring1 17 /播放第一個鈴聲的序號#define ring2
60、 18 /播放第二個鈴聲的序號/=/對主函數(shù)調(diào)用的函數(shù)聲明/=voidDelay(unsignedint tt);extern void display();extern void PlayRespond(unsigned int Result);extern void speaktime();extern void keyscan();extern void nextdisplay(); extern void setday();extern void set_ring();extern void setsecond(); extern void speaktime();extern voi
61、d speakday();41extern void keyinitial();/=/=/定義文件中用到的變量以及常數(shù)數(shù)組/=unsigned int keyflag1=0; /鍵按下標(biāo)志1,控制進(jìn)入功能選擇菜單unsigned int keyflag2=0; /鍵按下標(biāo)志2,unsigned int keyflag3=0; /鍵按下標(biāo)志3,控制進(jìn)入時間日期調(diào)整界面unsigned int keyflag4=0; /鍵按下標(biāo)志4,控制進(jìn)入鬧鐘時間設(shè)置界面unsigned int keyflag5=0; /鍵按下標(biāo)志5,控制進(jìn)入秒表設(shè)置界面unsigned int keyflag6=0; /鍵按
62、下標(biāo)志6,控制進(jìn)入鬧鐘設(shè)置界面unsigned int keyflag7=0; /鍵按下標(biāo)志7,控制進(jìn)入鬧鐘鈴聲選擇界面unsigned int ringflag=0; /播放鈴聲標(biāo)志位1播放第一首2播放第二首unsigned int keyvalue=0; /存放按下的鍵值unsigned int runflag=0; /當(dāng)年閏月標(biāo)志位unsigned int num=0; /2HZ計數(shù)單元unsigned int hour=12; /存放當(dāng)前的小時unsigned int min=0; /存放當(dāng)前的分鐘unsigned int sec=0; /存放當(dāng)前的秒unsigned int year
63、=2008; /存放當(dāng)前的年unsigned int gmonth=4; /存放當(dāng)前的公歷的月unsigned int gday=21; /存放當(dāng)前的公歷的日unsigned int xqvalue=1; /存放當(dāng)前的星期unsigned int nmonth=3; /存放農(nóng)歷的月42unsigned int nday=16; /存放農(nóng)歷的日unsigned int runxq=3,6,0,3,5,1,3,6,2,4,0,2; /潤年星期偏差表unsigned int pingxq=4,0,0,3,5,1,3,6,2,4,0,2; /平年星期偏差表unsigned int mouse=1,17
64、,32,48; /箭頭坐標(biāo)數(shù)組unsigned int nhour=0; /存放鬧鐘的小時unsigned int nmin=0; /存放鬧鐘的分鐘unsigned int mbmin=0; /存放秒表的分unsigned int mbsec=0; /存放秒表的秒unsigned int mmsec=0; /存放秒表的毫秒unsigned int mbnum=0; /1KHZ中斷標(biāo)志位unsigned int onoff=0; /鬧鐘開關(guān)標(biāo)志unsigned int int2hz; /設(shè)置一個2HZ中斷標(biāo)志 unsigned int ringonoff; /鬧鐘響時關(guān)閉標(biāo)志 char numb
65、er=0,1,2,3,4,5,6,7,8,9; /設(shè)置待顯示的數(shù)字。 unsigned int clockset=11,31,51; /設(shè)置鬧鐘鈴聲時的光標(biāo) unsigned int counter=0; /設(shè)置顯示SUNPLUS計數(shù)器unsigned int mapcounter1=0;unsigned int mapcounter2=0; const int glunarmonthday= /存放2001-2100的陰歷月天數(shù)表b15-b14表征1-12月的天數(shù)特征 /為1則當(dāng)月為30天,為0則為29天。低四位為當(dāng)年閏月的月份 0 xd954,0 xd4a0,0 xda50,0 x7552
66、,0 x56a0,0 xabb7,0 x25d0,0 x92d0,0 xcab5,0 xa950,0 xb4a0,0 xbaa4,0 xad50,0 x55d9,0 x4ba0,0 xa5b0,0 x5176,0 x52bf,0 xa930,0 x7954,0 x6aa0,0 xad50,0 x5b52,0 x4b60,0 xa6e6,0 xa4e0,0 xd260,0 xea65,0 xd530,0 x5aa0,0 x76a3,0 x96d0,0 x4afb,0 x4ad0,0 xa4d0,0 xd0b6,0 xd25f,0 xd520,0 xdd45,0 xb5a0, 0 x56d0,0 x55b2,0 x49b0,0 xa577,0 xa4b0,0 xaa50,0 xb255,0 x6d2f,0 xada0,0 x4b63,0 x937f,0 x49f8,0 x4970,0 x64b0,0 x68a6,0 xea5f,0 x6b20,0 xa6c4,0 xaaef,0 x92e0,430 xd2e3,0 xc960,0 xd557,0 xd4a0,0 xda50,0 x5dd5,
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案