基于單片機 SPCE061A的數(shù)字電子鐘畢業(yè)設(shè)計
《基于單片機 SPCE061A的數(shù)字電子鐘畢業(yè)設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《基于單片機 SPCE061A的數(shù)字電子鐘畢業(yè)設(shè)計(50頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、目 錄 第一章 前言.1 1.1 系統(tǒng)功能 .2 1.2 基本參數(shù) .2 1.3 注意事項 .2 第二章 模塊特性簡介.3 2.1 SPCE061A 單片機 .3 2.1.1 SPCE061A 簡 介 .3 2.1.2 芯 片 特 性 .4 2.2 SPCE061A 精簡開發(fā)板 .5 2.3 SPLC501A 液晶模組 .6 2.4 語音的設(shè)計及工作原理 .7 2.5 系統(tǒng)總體方案介紹 .8 第三章 系統(tǒng)硬件設(shè)計.11 3.1 SPCE061A 最小系統(tǒng) .11 3.2 電源模塊 .11 3.3 音頻輸出模塊 .12 3.4 液晶顯示模塊 .13 3.4.1 顯 示 RAM 區(qū) 映 射 情 況
2、 .13 3.4.2 SPLC501 驅(qū) 動 控 制 器 芯 片 .15 第四章 系統(tǒng)軟件設(shè)計.17 4.1 軟件的結(jié)構(gòu) .17 4.2 各模塊程序的說明 .18 4.2.1 概 述 .18 4.2.2 主 程 序 .18 4.2.3 中 斷 服 務(wù) 程 序 .19 4.2.4 時 間 日 期 模 塊 .21 4.2.5 SPLC501 液 晶 顯 示 模 組 顯 示 漢 字 .22 4.2.6 常 用 功 能 函 數(shù) 介 紹 ( 用 戶 API) .24 第五章 操作步驟.28 5.1 軟件的操作步驟 .28 5.1.1 LCD 漢 字 顯 示 操 作 步 驟 .28 5.1.2 程 序 燒
3、 入 硬 件 操 作 步 驟 .31 5.1.3 語 音 播 放 操 作 步 驟 .33 5.2 操作界面 .34 第六章 結(jié)論.37 參考文獻.38 致 謝.39 附錄一 軟件編寫程序.40 附錄二 主要元器件清單.48 1 第一章 前言 20世紀末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各 個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性 能進一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 時間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時間。忘記了 要做的事情,當(dāng)事情不是很重要的時候,這種遺忘無傷大雅。但是,一旦重
4、要事情,一時的耽 誤可能釀成大禍。 目前,單片機正朝著高性能和多品種方向發(fā)展趨勢將是進一步向著CMOS化、低功耗、小 體積、大容量、高性能、低價格和外圍電路內(nèi)裝化等幾個方面發(fā)展。下面是單片機的主要發(fā)展 趨勢。 單片機應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計思想和設(shè)計方法。 從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能用單片機通過軟件方法來實現(xiàn)了。 這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。 單片機模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)時、分、秒計時的裝 置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更長的使
5、用壽命,因 此得到了廣泛的使用。 數(shù)字鐘是采用數(shù)字電路實現(xiàn)對時、分、秒、數(shù)字顯示的計時裝置,廣泛用于個人家庭,車站, 碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶 體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠遠超過老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來 了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、按時自動打鈴、 時間程序自動控制、定時廣播芯片自動起閉路燈、定時開關(guān)烘箱、通斷動力設(shè)備、甚至各種定 時電氣的自動啟用等,所有這些,都是以數(shù)字電子鐘具有走時準確,一鐘多用等特點,在生活中 已經(jīng)得到了廣泛的應(yīng)用。隨著科技的發(fā)展,人們對電子產(chǎn)
6、品的應(yīng)用要求越來越高,數(shù)字電子鐘 不但可以顯示當(dāng)前的時間,而且可以顯示日期、農(nóng)歷、以及星期等,給人們的生活帶來了方便。 另外數(shù)字鐘還具備秒表和鬧鐘功能,且鬧鐘鈴聲可自選,使一款電子鐘具備了多媒體的色彩。 本方案利用凌陽科技公司的SPLC501A 液晶模組作為顯示模塊,凌陽 16位單片機SPCE061A 作為主控芯片,充分利用SPCE061A 精簡開發(fā)板(簡稱 61板)上面的三個按鍵,完成一個簡易 的數(shù)字系統(tǒng)數(shù)字電子鐘。 該數(shù)字鐘既可以顯示當(dāng)前的日期和時間,又可以將當(dāng)前的日期和時間播報出來,同時具有 鬧鐘秒表等功能,滿足了不同人的需要。 2 該方案的主要功能是在SPLC501A 液晶模組上顯示時
7、間、日期,能通過 SPCE061A的音頻通 道播報當(dāng)前的日期和時間。61板上面的三個按鍵可以控制實現(xiàn)所有的功能,在顯示日期和時間 狀態(tài)下按KEY1鍵進入功能選擇菜單,此時KEY2為下翻鍵,KEY3為上翻鍵,KEY1 為確定鍵; 在顯示日期和時間狀態(tài)下按KEY2鍵播報當(dāng)前的時間,按KEY3鍵播報當(dāng)前的日期,當(dāng) KEY2、 KEY3鍵同時按下時控制鬧鐘的開/關(guān)。 1.1 系統(tǒng)功能 本系統(tǒng)利用凌陽科技公司的SPCE061A 單片機作為控制器,擴展 SPLC501A液晶模組。系統(tǒng) 具有以下功能: 1. 可以在SPLC501A液晶模組上面顯示時間、日期、農(nóng)歷、星期、鬧鐘; 2. 可以語音播報日期和時間;
8、 3. 整點報時功能; 4. 具備鬧鐘功能; 5. 鬧鐘的鈴聲可以選擇; 6. 具備秒表功能。 1.2 基本參數(shù) 1.工作電壓:4.5V(3節(jié)干電池); 2.日期顯示范圍:2001-2100年; 3.時間采用24小時制。 1.3 注意事項 1請將61板上的J5跳線選擇3.3V; 2. 在安裝電池時注意正負極,否則容易燒壞芯片; 3在印制電路板上的焊接元器件前要認真對照原理圖,仔細查看印制電路板,找到對應(yīng)的 元器件功能區(qū); 4在電源測試期間請勿將單片機芯片插入座中,以免電源部分有問題造成芯片燒壞。 3 第二章 模塊特性簡介 該數(shù)字鐘系統(tǒng)主要由SPCE061A精簡開發(fā)板(簡稱61板)和SPLC50
9、1A液晶模塊構(gòu)成。系統(tǒng)通 過61板上的三個按鍵控制SPLC501A液晶模塊顯示,通過揚聲器播放語音。所以這里主要介紹這 兩個模塊。 2.1 SPCE061A 單片機 2.1.1 SPCE061A 簡 介 SPCE061A是凌陽科技研發(fā)生產(chǎn)的性價比很高的一款十六位單片機,具有易學(xué)易用且效率較 高的一套指令系統(tǒng)和集成開發(fā)環(huán)境。在此環(huán)境中,支持標(biāo)準C語言,可以實現(xiàn)C語言與匯編語言 的互相調(diào)用,并且,提供了語音錄放和語音識別的函數(shù)庫,只要了解庫函數(shù)的使用方法,就可 以很容易完成語音錄放,為軟件開發(fā)提供了方便的條件。 SPCE061A主要包括輸入/輸出端口、定時器/計數(shù)器、數(shù)/模轉(zhuǎn)換、模/數(shù)轉(zhuǎn)換、串行設(shè)
10、備輸 入/輸出、通用異步串行接口、低電壓監(jiān)測和復(fù)位等電路,并且內(nèi)置在線仿真電路ICE接口,使 其能夠快速地處理復(fù)雜的數(shù)字信號。 SPCE061A片內(nèi)還集成了一個ICE(在線仿真電路)接口,使得對該芯片的編程、仿真變得非 常方便,而ICE接口不占用芯片上的硬件資源,結(jié)合凌陽科技提供的集成開發(fā)環(huán)境(unSP IDE), 用戶可以進行在線調(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時
11、鐘: 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位通用可編程輸入/輸出端口; 14個中斷源可來自定時器A / B,時基,2個外部時鐘源輸入,鍵喚醒; 具備觸鍵喚醒的功能; 使用凌陽音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語音數(shù)據(jù); 鎖相環(huán)PLL振蕩器提供系統(tǒng)時鐘信號; 32768Hz實時時鐘; 7通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模
12、 -數(shù)轉(zhuǎn)換器; 聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動增益控制(AGC)功能; 具備串行設(shè)備接口; 低電壓復(fù)位(LVR) 功和低電壓監(jiān)測 (LVD)功能; 內(nèi)置在線仿真板(ICE ,In- Circuit Emulator)。 2.2 SPCE061A 精簡開發(fā)板 SPCE061A精簡開發(fā)板(簡稱61板),是以凌陽16位單片機SPCE061A為核心的精簡開發(fā)仿 真實驗板,大小相當(dāng)于一張撲克牌,是“凌陽科技大學(xué)計劃”專為大學(xué)生、電子愛好者等進 行電子實習(xí)、課程設(shè)計、畢業(yè)設(shè)計、電子制作及電子競賽所設(shè)計的,也可作為單片機項目初期 研發(fā)使用。61板除了具備單片機最小系統(tǒng)電路外,還包括有電源電路
13、、音頻電路(含Mic輸入部 分和DAC音頻輸出部分)、復(fù)位電路等,采用電池供電,方便學(xué)生隨身攜帶!使學(xué)生在掌握軟件 的同時,熟悉單片機硬件的設(shè)計制作,鍛煉學(xué)生的動手能力,也為單片機學(xué)習(xí)者和開發(fā)者創(chuàng)造 了一個良好的學(xué)習(xí)條件和開發(fā)新產(chǎn)品的機會!61板上有調(diào)試器接口(Probe接口)以及下載線 (EZ_Probe)接口,分別可接凌陽科技的在線調(diào)試器、簡易下載線,配合unSP IDE,可方便地 在板上實現(xiàn)程序的下載、在線仿真調(diào)試。 61板上的主要功能模塊如下: 1.SPCE061A單片機最小系統(tǒng)外圍電路模塊; 2.電源輸入模塊; 3.音頻電路(包含Mic輸入、DAC音頻功放輸出)模塊; 6 4.按鍵模
14、塊; 5.I/O端口接口模塊; 6.調(diào)試、下載接口模塊; 圖2為61板的實物圖: 圖 2 61板實物圖 2.3 SPLC501A 液晶模組 SPLC501 液晶顯示模組采用的驅(qū)動控制芯片為凌陽科技的SPLC501A 芯片,SPLC501A 為液晶顯示控制驅(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ū)動輸出(注:模組中的液晶顯示面板僅
15、為64 行、128 列)。SPLC501液晶顯示模組的顯示器上的顯示點與驅(qū)動控制芯片中的顯示緩存RAM 是一一 對應(yīng)的;SPLC501A芯片中共有 65(8 Page 8 bit+1) 132 位的顯示RAM 區(qū)。而顯示器的顯 示點陣大小為64128 點,所以實際上在SPLC501 液晶顯示模組中有用的顯示RAM 區(qū)為 64128 位;按 byte 為單位劃分,共分為8個Page ,每個Page 為8行,而每一行有128位(即128 列)。如要點亮LCD屏上的某一個點時,實際上就是對該點所對應(yīng)的顯示RAM 區(qū)中的某一位 進行置1 操作;所以就要確定該點所處的行地址、列地址。 SPLC501 液
16、晶顯示模組的行地址實 際上就是Page 的信息,每一個 Page應(yīng)有8 行;而列地址則表示該點的橫坐標(biāo),在屏上為從左到 7 右排列,Page 中的一個Byte 對應(yīng)的是一列(8行,即8個點),共128 列??梢愿鶕?jù)這樣的關(guān)系 在程序中控制LCD 顯示屏的顯示。 SPLC501A液晶模組具有以下特性: 1.顯示模式:黃色模式STN液晶; 2.顯示格式:12864 點陣的圖形液晶; 3.輸入數(shù)據(jù):兼容68/80系列MPU時序。 更詳細的資料請參考SPLC501A 的Datasheet ,SPLC501A液晶模組的實物圖如圖3所示: 圖 3 SPLC501A 液晶模組實物圖 2.4 語音的設(shè)計及工作
17、原理 本次設(shè)計的要求為整個系統(tǒng)在運行時能夠根據(jù)要求及時的發(fā)出聲音,以增加效果。為了配 合設(shè)計要求,設(shè)計了語音模塊。語音是SPLC501A的一大特點。應(yīng)用SPLC501A 可以方便的實現(xiàn) 語音的錄放,該芯片擁有8路10位精度的AD。其中1路AD為音頻轉(zhuǎn)化通道,并且內(nèi)置自動增益 電路。這為語音的錄入提供方便的硬件條件。2路10位精度的DA,只需外接1個功放即可完成語 音播放。一般都是用C語言作為主程序,用匯編語言編制各種模塊,供主程序調(diào)用。凌陽音頻 8 格式常用的有3種,將壓縮前的數(shù)據(jù)量比上壓縮后的數(shù)據(jù)量即可以得到凌陽不同音頻格式壓縮比: SACM A2000:壓縮比為8:1,8:1.25,8:1
18、.5 ; SACM S480: 壓縮比為80:3,80:4.5; SACM S240: 壓縮比為80:1.5; 壓縮比越大,存儲空間越小,更加節(jié)省資源。 2.5 系統(tǒng)總體方案介紹 電子鐘的系統(tǒng)結(jié)構(gòu)如圖4,圖5為電子鐘功能結(jié)構(gòu)圖 ,61板作為整個系統(tǒng)的控制中心,負責(zé) 控制鍵盤掃描;年、月、日、星期以及時間的計算; SPLC501A液晶顯示的驅(qū)動;并根據(jù)按鍵 值播報當(dāng)前的日期或者時間。SPLC501A 液晶顯示模組主要用來顯示當(dāng)前的時間,日期,以及 顯示功能選擇菜單和時間日期調(diào)整菜單。在聲音的處理上主要采用凌陽科技的語音壓縮格式, 將需要播放的聲音壓縮存在SPR模組里面,然后通過 61板將語音資源
19、取出播放出來。在圖片的 處理上,采用SPLC501液晶模組,使用配套的DM Tool工具將需要顯示的圖片實現(xiàn)提取出圖片 資源燒寫到SPCE061A中,然后通過 61板控制SPLC501A播放出來。本系統(tǒng)采用了語音的錄入和 輸出播放。 9 圖 4 系統(tǒng)結(jié)構(gòu)框圖 圖 5 功能結(jié)構(gòu)圖 10 用61板控制數(shù)字鐘系統(tǒng),使用了IOA口的高八位、IOB 的4、5、6共11個I/O口連接 SPLC501A液晶模組,另外使用了 61板的語音輸出模塊;以及 61板上的三個按鍵,硬件連接如 圖 7所示: 電路連接如圖7,IOA的高八位接到液晶模組的八個數(shù)據(jù)端,同時也連接了液晶模組的電源, 即直接用一根10pin的排
20、線連接61板“+”、IOA815 、“-”與SPLC501A 液晶顯示模組的“+”、 DB07、“-” ,主要用來向液晶模組傳送命令和數(shù)據(jù);IOB6接EP,IOB5接R/W,IOB4接 AO,用來控制液晶的顯示和工作方式。 注意電源的正負極不要接反;DB0 連接IOA8,DB7連 接IOA15,也不要接反。 圖 6 電路連接圖 11 第三章 系統(tǒng)硬件設(shè)計 3.1 SPCE061A 最小系統(tǒng) SPCE061A最小系統(tǒng)包括SPCE061A芯片及其外圍的基本模塊,其中外圍的基本模塊有:晶 振輸入模塊(OSC)、鎖相環(huán)外圍電路(PLL)、復(fù)位電路( RESET)、指示燈(LED)等, 如圖7所示。 圖
21、 7 SPCE061A最小系統(tǒng) 3.2 電源模塊 SPCE061A 板采用 3 節(jié) 5 號電池進行供電,由 J10 接入,其中前后兩組電容用來去耦濾波, 使其供給芯片的電源更加干凈平滑。為了獲得標(biāo)準的 3.3 伏電壓,在電路上加入 SPY0029 三端穩(wěn) 壓器和兩個二極管,是為了防止誤將電源接反造成不必要損失而設(shè)置的。在操作過程中千萬不要 將電源接反,因為反向電壓超過一定值,二極管將會被損壞,達不到保護的目的。后面的零電 12 阻及其電源分成不同的幾路是為了減少電磁干擾設(shè)置的。圖 8 是電源部分的電路,4.5V 直流電 壓經(jīng)過 SPY0029 后產(chǎn)生 3.3V 給整個系統(tǒng)供電。 SPY0029
22、 是凌陽公司設(shè)計的電壓調(diào)整 IC,采 用 CMOS 工藝。SPY0029 具有靜態(tài)電流低、驅(qū)動能力強、線性調(diào)整出色等特點。4.2 圖中的 VDDH3 為 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 接音頻輸出電路的 AVS
23、S2。 61板電源模塊電路如圖8,SPCE061A 的內(nèi)核供電為 3.3V,而I/O端口可接3.3V5V,所以在 電源模塊(61板上)中有一個端口電平選擇跳線,如圖中的J5。本系統(tǒng)需要的端口高電平為 3.3V,所以圖8中的J5跳線需要跳到2和3上。 圖 8 電源模塊 3.3 音頻輸出模塊 音頻輸出(D/A)部分的原理圖如圖9所示,可以直接聽喇叭輸出的聲音。圖中的 SPY0030 也是凌陽公司的產(chǎn)品。它的詳細說明可以參見SPY0030 data sheet。和LM386相比,SPY0030還 具有下述優(yōu)勢,比如LM386工作電壓需在4V以上, SPY0030僅需2.4V即可工作(兩顆電池即可工
24、作);LM386 輸出功率100mW以下, SPY0030約700mW。芯片將聲音處理后輸出(J2),經(jīng) SPY0030音頻放大輸出( J3)通過揚聲器還原為聲音。 SPY0030A是凌陽公司開發(fā)的專門用于語 音放大的芯片。SPY0030 的輸入電壓的范圍是2.46.0伏,該電路中采用的電壓是3.3伏。 SPCE061A內(nèi)置2路10位DAC ,只需要外接功放電路即可完成語音的播放。 13 圖 9 音頻輸出電路圖 3.4 液晶顯示模塊 3.4.1 顯 示 RAM 區(qū) 映 射 情 況 SPLC501A液晶模組為12864點陣模式,面板采用STN(Super Twisted Nematic)超扭曲相
25、 列技術(shù)制成,非常容易通過接口被訪問。模組上的液晶顯示器采用凌陽科技的SPLC501芯片作 為LCD驅(qū)動和控制器,為128X64點陣圖形液晶顯示器。 表1 SPLC501液晶顯示模組的基本參數(shù) 顯示模式 黃色模式STN液晶 顯示格式 128X64點陣地圖形液晶 顯示 輸入數(shù)據(jù) 兼容68/80系列MPU數(shù)據(jù) 輸入 背光 黃綠色LED 模塊尺寸 72.8(長)73.6(寬) 9.5(高)mm 視屏尺寸 58.84(寬)35.79(長) mm 點大小 0.42(寬)0.51(長)mm 14 注意事項 SPLC501液晶顯示模組中,接口引腳:“+”、“V3”分別為電源輸入端和高電平 引針(供時序選擇跳
26、線用),而“-”、“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 DB2 DB3 DB4 8位數(shù)據(jù)總線 DB5 DB6 DB7 VR 端口輸出電壓 C86 C86=H 選擇6800MPU系列 C86=L 選擇8080MPU系列 PS 串、并行時序選擇 15 3.4.2 SPLC501 驅(qū) 動 控 制 器
27、芯 片 SPLC501液晶顯示模組采用的驅(qū)動控制芯片為凌陽科技的SPLC501A芯片,SPLC501A為液 晶顯示控制驅(qū)動器,集行、列驅(qū)動器和控制器于一體,廣泛應(yīng)用于小規(guī)模液晶顯示模塊。 SPLC501A單芯片液晶驅(qū)動,可以直接與其他微控制器接口總線相連。微控制器可以將顯 示數(shù)據(jù)通過8位數(shù)據(jù)總線或者串行接口寫到SPLC501A的顯存中。下列是SPLC501A 的特點: 內(nèi)置8580位顯示RAM。RAM中的一位數(shù)據(jù)控制液晶屏上的一個象素點的亮、暗狀態(tài)?!?” 亮“0”暗; 具有65行驅(qū)動輸出和132列驅(qū)動輸出(注:模組中的液晶顯示面板僅為64行、128列); 可以直接與80系列和68系列微處理器
28、相連; 內(nèi)置晶振電路,也可以外接晶振; 工作溫度范圍為40攝氏度85攝氏度。 其電路原理圖如圖 10所示: 圖 10 液晶模組電路 16 SPLC501A液晶顯示模組提供了 8080和6800的并行操作時序,也提供了串行的操作時序, 用戶可以通過對PS、C86 引腳接不同的電平來選擇操作的時序(8080操作時序接線圖:(PS 接 VDD, C86接VSS) ,6800操作時序接線圖:(PS接 VDD,C86接VDD) ,行操作時序接線圖: (PS接VSS ,C86接VSS或 VDD都可) )。SPLC501液晶顯示模組中,設(shè)置了PS 和C86的跳線,供 用戶選擇操作時序。 17 第四章 系統(tǒng)軟
29、件設(shè)計 4.1 軟件的結(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)的初始化、顯示開機畫面、鍵盤掃描和語音播報; 2、system.c:包含工程中大部分的功能函數(shù),包括各種界面的顯示、時間和日期的調(diào)整、秒 表的調(diào)整、鬧鐘的時間設(shè)定、鬧鐘的鈴聲選擇等; 3、key.c:鍵盤掃描文件,文件中定義了鍵盤掃描函數(shù)、延時函數(shù)、用來實現(xiàn)對鍵盤的掃描 等功能、鍵盤掃描采用查詢方式; 4、isr.asm:中斷服務(wù)函數(shù)文件,實現(xiàn)語音解碼、秒表以及時間、日期的修改; 5、speak.c:語音播報函數(shù),實現(xiàn)語音播
30、報日期、時間以及鬧鐘。 18 4.2 各模塊程序的說明 4.2.1 概 述 由于凌陽 SPCEA061A,使得外圍電路變的更簡單。制作好系統(tǒng)的硬件電路后,整個系統(tǒng) 的主體任務(wù)主要落在了程序的編寫上。SPCE061A 是凌陽科技研發(fā)生產(chǎn)的性價比很高的一款十 六位單片機,具有易學(xué)易用且效率較高的一套指令系統(tǒng)和集成開發(fā)環(huán)境。在此環(huán)境中,支持標(biāo) 準 C 語言,可以實現(xiàn) C 語言與匯編語言的互相調(diào)用,并且,提供了語音錄放和語音識別的函數(shù) 庫,只要了解庫函數(shù)的使用方法,就可以很容易完成語音錄放,為軟件開發(fā)提供了方便的條件。 此次系統(tǒng)采用了模塊程序結(jié)構(gòu),模塊程序結(jié)構(gòu)包括了初始化,系統(tǒng)主程序模塊,語音播放模塊
31、, 顯示模塊。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)計時。在主程序中調(diào)用了鍵盤掃描程序,對IOA口的低三位進行掃描,如 果有鍵按下,就把相應(yīng)的鍵值存入到一個變量中,通過主程序來判斷是哪個鍵按下,并執(zhí)行相 應(yīng)的功能:若是KEY1鍵按下,則會進
32、入功能選擇菜單,此時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。 20 圖 13 IRQ5時基中斷流程圖 另外一個是FIQ中斷服務(wù)程序,用來播放語音。 圖 14 IRQ4時基中斷流程圖 21 圖 15 FIQ中斷程序
33、 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),所以要先用字模提取工具把漢字提取成字模數(shù)據(jù),才能顯示。 利用SPLC501 液晶顯示模組顯示漢字需要圖17的操作
34、過程。新建一個工程;利用字模提取 工具提取字模數(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液晶顯示模組顯示漢字需要的操作過程。 為了使用戶能夠方便快速地使用SPLC501液晶顯示模組,凌陽大學(xué)計劃提供了基于
35、 SPCE061A單片機的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ū)動程序的頭文件,主要對使用到的寄存器(如端口 控制寄存器等)進行定義,還對SPCE061
36、A與SPLC501液晶顯示模組的接口進行配置;用戶可以根 據(jù)自已的需求來配置此文件,但要使端口的分配符合實際硬件的接線。 SPLC501Driver_IO.asm:該文件為底層驅(qū)動程序,負責(zé)與SPLC501液晶顯示模組進行數(shù)據(jù) 傳輸?shù)娜蝿?wù),主要包括端口初始化、寫控制指令、寫數(shù)據(jù)、讀數(shù)據(jù)等函數(shù);這些函數(shù)僅供 SPLC501User.c調(diào)用,不建議用戶在應(yīng)用程序中調(diào)用這些函數(shù)。 SPLC501User.h:該文件為用戶API功能函數(shù)文件的頭文件,主要對一些記住符進行定義, 以及配置LCD的一些設(shè)置,另外該文件里還對SPLC501User.c 中的函數(shù)作了外部聲明,用戶需要 使用LCD的API功能函
37、數(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 int InitialDat
38、a) 描述:液晶顯示初始化函數(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) 描述:屏幕反色顯示。每
39、執(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) 8x16 6X8 描述::
40、選擇顯示字符的大小類型 參數(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 6X8 描述:顯時8X1
41、6、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 LCD501_Bitmap(uns
42、igned 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表示位圖的寬為 27 43像素,高為23像素。從
43、第二個Word開始描述位圖每個點的顏色( 1-黑色,0-白色)。點對應(yīng) 每個數(shù)據(jù)位的情況為:從下到上,自左到右,以WORD(16bit)為存儲單位,不足16位的補 0??梢岳昧桕柎髮W(xué)計劃提供的DM Tool字模提取工具提取出漢字或BMP圖像的字模數(shù)據(jù),然 后直接引用由其生成的字模數(shù)組3SPLC5401液晶顯示模組控制流程 ,利用模組資料中提供的 SPLC501液晶顯示模組驅(qū)動程序進行LCD顯示編程時,一定要在調(diào)用文本顯示或圖形顯示函數(shù), 以及控制類函數(shù)前調(diào)用LCD的初始化函數(shù);在LCD初始化程序中,會進行端口初始化、LCD初 始設(shè)置以及變量初始化等。 28 第五章 操作步驟 5.1 軟件的操
44、作步驟 5.1.1 LCD 漢 字 顯 示 操 作 步 驟 1.DM Tool 字模提取工具與顯示英文字符(ASCII 碼)不同,漢字不能直接顯示在點陣的 LCD 顯示器上,而是要借助一個工具,先把漢字轉(zhuǎn)換成 LCD 顯示器能顯示的形式。凌陽科技教 育推廣中心提供了針對 unSP 系列 16 位單片機的字模數(shù)據(jù)提取工具DM Tool;可以利用此 工具提取漢字字模、BMP 位圖字模,還可以很方便地提取 ASCII 碼字模。DM Tool 在大學(xué)計劃 網(wǎng)站 SPLC501 液晶模組資料里提供。 下面介紹利用DM Tool 字模提取工具提取漢字字模的步驟。 第一步:安裝好DM Tool 后,在開始-
45、 程序- sunplus- DM Tool打開DM。 圖19 DM Tool 界面 第二步:選擇FileNews 菜單項,新建工程,如圖 20所示: 29 圖 20 新建工程 選擇后,即新建了一個工程;如圖21所示。用戶可以選擇File菜單中的Save菜單項來 保存工程,也可以直接對工程進行操作,進行字模數(shù)據(jù)提取的操作。 圖 21 新建了一個工程 第三步:在輸入?yún)^(qū)中輸入漢字:列如羅江波波制作這時利用快捷鍵組合:“Ctrl+Enter”, 完成漢字的輸入操作,可以看到轉(zhuǎn)換列表中出現(xiàn)“羅江波波制作”四個漢字的列表,而在操作 區(qū)中也會出現(xiàn)漢字的點陣圖。 30 第四步:進行字模數(shù)據(jù)的提取。選擇菜單Fi
46、le中的Export CChar 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”選項;在“c
47、har .c file:” 輸入框的右邊的工具,可以選擇導(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ù)生成窗口,返回到D
48、M Tool 軟件的主窗 口,以便進行其它的操作,DM Tool 的使用方法可以參考DM Tool 的用戶手冊。導(dǎo)出的字模數(shù) 據(jù)以數(shù)組的形式保存,可以直接包含到工程中進行引用。 5.1.2 程 序 燒 入 硬 件 操 作 步 驟 步驟一:根據(jù)圖6數(shù)字鐘連接示意圖連接硬件,并連接好下載線。 步驟二:打開電池盒電源。 步驟三:啟動unSP IDE。打開數(shù)字鐘應(yīng)用實例程序(路徑: 數(shù)字電子鐘禮包參考源代碼 monthdayclock monthdayclock.sp),編譯、鏈接確認沒有錯誤。如圖26所示: 32 圖 26 打開數(shù)字鐘應(yīng)用實例程序 步驟四:下載程序代碼到61板上。 步驟五:下載成功后
49、會有幾秒鐘的開機畫面,隨后會進入時間日期顯示界面,初始時間設(shè) 定為: 00:00:00,日期為2006年8月1日。 按KEY1鍵:進入功能選擇界面。 按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 工程文件夾, b
50、srv222SDL.lib 在實驗儀指導(dǎo)書范例代碼 exampleIntExaex4_Recognise_LCD 路徑可以找到。 3. 拷貝語音識別頭文件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液晶顯
51、示 34 DataOSforLCD.asm、SPLC501Driver_IO.asm、SPLC501Driver_IO.inc、SPLC501User.c 和 SPLC501User.h 五個驅(qū)動程序(提供在實驗儀指導(dǎo)書范例代碼 examplemodel_ExaDriverSPLC501driver)到ex4_Recognise_LCD 工程文件夾。 7. 在IDE 集成開發(fā)環(huán)境的Project Setting link 中鏈接bsrv222SDL.lib 和sacmv26e.lib 庫 到工程中。 8. 添加hardware.asm 、DataOSforLCD.asm、SPLC501Driv
52、er_IO.asm 和SPLC501User.c 到 工程文件的“Source Files”,添加 bsrSD.h、bsrSD.inc、A2000.h、a2000.inc、hardware.h、hardware.inc、SPLC501Driver_IO.inc、S PLC501User.h 八個頭文件到“Head Files”。 8. 拷貝語音資源, 并加載到工程當(dāng)中; 語音資源可以從實驗儀指導(dǎo)書范例代碼 exampleIntExaex4_Recognise_LCDvoice 路徑下可以找到。 9. 提取BMP 圖片的字模數(shù)據(jù),并將數(shù)據(jù)加載到工程中,圖片的資源可以在實驗儀指導(dǎo)書 范例代碼exa
53、mpleIntExaex4_Recognise_LCDPic 路徑下可以找到。 10. 按照程序流程圖編寫程序。 11. Rebuild All。 12. 按照硬件連接圖連接硬件。 13. 下載程序,運行。 5.2 操作界面 1. 時間顯示界面如圖28所示 ,此時按KEY1鍵會進入功能選擇菜單,按KEY2鍵播放當(dāng)前 的時間,按KEY3鍵播放當(dāng)前的日期,KEY2和KEY3同時按下,切換鬧鐘的開與關(guān),當(dāng)鬧鐘響時, 按下三個鍵中的任何一個都可以關(guān)閉鬧鐘。 圖28 時間顯示界面 35 2.功能選擇菜單界面如圖29所示,此時KEY1為確定鍵,KEY2 為下翻鍵,KEY3為上翻鍵。 圖29 功能選擇界面
54、3.時間日期調(diào)整界面如圖30所示:此時KEY1為確定鍵,KEY2 為加一鍵,KEY3為減一鍵, 圖中閃爍的部分表示當(dāng)前正在調(diào)整的選項,當(dāng)設(shè)置完成后,按KEY1會自動退出設(shè)置界面。 圖30 時間日期顯示界面 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
55、 為選擇鍵,KEY3為播放當(dāng)前 選擇的鈴聲鍵。 圖 33 鬧鐘鈴聲選擇界面 7.秒表功能界面如圖34所示,此時KEY1為退出鍵,KEY2 為開始/暫停鍵,KEY3為清零鍵, 只有當(dāng)秒表停止運行時KEY3才有效。 圖 34 秒表功能界面 37 第六章 結(jié)論 SPCE061A芯片強大的語音處理功能,為本系統(tǒng)的設(shè)計提供了便利條件;32個可編程I/O口, 使得擴展外圍設(shè)備非常方便;CPU可工作在0.32MHz49MHz的主頻范圍,并且擁有豐富的中斷 源,使得系統(tǒng)在語音播放、數(shù)據(jù)顯示等方面游刃有余,擴展性強。根據(jù)硬件的選擇和電路的搭 配進行了軟件的設(shè)計和編程,在實現(xiàn)硬件功能時,我們曾遇到一些問題,在參閱
56、了許多資料結(jié)合 實際條件選擇了一種全面和簡單的數(shù)字鐘系統(tǒng),其次在焊接中和元器件的購買都是在胡老師的指 導(dǎo)下購買的。在這次畢業(yè)設(shè)計中鍛煉了我的分析能力、解決問題和動手能力。 顯然,這是一個比較簡單的數(shù)字鐘,在這個基礎(chǔ)上,稍微改動,或者擴展其他模塊可以設(shè) 計出一個更加完善的數(shù)字鐘系統(tǒng)。比如,擴展外部存儲器可以增加鈴聲的數(shù)目、可以改變鈴聲 的播放格式使鈴聲更加動聽、增加掉電保護功能等等,以此來提高同學(xué)們的對單片機的興趣。 本次設(shè)計中,我從基礎(chǔ)做起,做好每一個程序模塊,在最后的硬件調(diào)試中,取得成功,實現(xiàn)了數(shù)字鐘 的基本功能 ,達到了我們預(yù)期的設(shè)計目的。系統(tǒng)實物照片如圖35。 圖 35 系統(tǒng)實物照片 3
57、8 參考文獻 1 李全利,遲榮強.單片機原理及接口技術(shù)M,北京:高等教育出版社,2004.1. 2 黃智偉.全國大學(xué)生電子設(shè)計競賽系統(tǒng)設(shè)計M,北京:北京航空航天大學(xué)出版社,2006.6. 3 黃智偉.凌陽單片機課程設(shè)計指導(dǎo)M,北京:北京航空航天大學(xué)出版社,2006.11. 4 李廣弟,朱月秀,王秀山.單片機基礎(chǔ)M,北京:北京航空航天大學(xué)出版社,2001.7. 5 趙曙光,郭萬有,楊頌華.可編程邏輯器件原理開發(fā)與應(yīng)用M,西安:西安電子科技大學(xué), 2000. 6 候伯亨.VHDL 硬件描述語言與數(shù)字邏輯電路設(shè)計M , 西安:西安電子科技大學(xué)出版社, 1999. 7 康華光. 模擬電子技術(shù)基礎(chǔ)(第四
58、版)M, 武漢:華中理工大學(xué)出版社,1999. 8 譚浩強.C語言程序設(shè)計(第二版)M,北京:清華大學(xué)出版社,1991. 9 陳小忠,黃寧. 單片機接口技術(shù)實用子程序M,北京:北京人民郵電出版社, 2005. 10 歐偉明,周春臨,瞿遂春.電子信息系統(tǒng)設(shè)計M,西安電子科技大學(xué)出版社,2005.9. 11 賈立新,王涌.電子系統(tǒng)設(shè)計與實踐M,北京:清華大學(xué)出版社,2007. 12 羅亞非.凌陽16位單片機應(yīng)用基礎(chǔ)M,北京:北京航空航天大學(xué)出版社,2003. 13 SPLC501A液晶顯示模塊產(chǎn)品說明書 Z.凌陽大學(xué)計劃網(wǎng)站( ). 14 雷思孝.凌陽單片機原理及實用技術(shù)M,西安電子科技大學(xué),20
59、04. 39 致 謝 本論文是在導(dǎo)師教授胡敏的悉心指導(dǎo)下完成的。導(dǎo)師淵博的專業(yè)知識,嚴謹?shù)闹螌W(xué)態(tài)度, 精益求精的工作作風(fēng),誨人不倦的高尚師德,嚴以律己、寬以待人的崇高風(fēng)范,樸實無華、平 易近人的人格魅力對我影響深遠。不僅使我樹了遠大的學(xué)術(shù)目標(biāo)、掌握了基本的研究方法,還 使我明白了許多待人接物與為人處世的道理。本論文從選題到完成,每一步都是在導(dǎo)師的指導(dǎo) 下完成的,傾注了導(dǎo)師大量的心血。在此,謹向?qū)煴硎境绺叩木匆夂椭孕牡母兄x! 羅江波 2008年5月于合肥學(xué)院 40 附錄一 軟件編寫程序 工程名稱: monthdayclock.spj / 功能描述: 萬年歷,農(nóng)歷和電子鐘,具備撥報日期、時間、正
60、點報時、秒表、鬧鐘等功能。 / IDE環(huán)境: SUNPLUS unSPTM IDE 2.0.0(or later) / 涉及的庫: 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)初始化,顯示時間日期界面 / 按KEY1,進入時間調(diào)整和功能選擇菜單。 /
61、按KEY2,撥報當(dāng)前的時間。 / 按KEY3,撥報當(dāng)前的日期。 / KEY2、KEY3同時按下控制鬧鐘的開關(guān) /= #include SPCE061A.h #include SPLC501User.h #include model.h #define ring1 17 /播放第一個鈴聲的序號 #define ring2 18 /播放第二個鈴聲的序號 /= /對主函數(shù)調(diào)用的函數(shù)聲明 /= void Delay(unsigned int tt); extern void display(); extern void PlayRespond(unsigned int Result); extern
62、void speaktime(); extern void keyscan(); extern void nextdisplay(); extern void setday(); extern void set_ring(); extern void setsecond(); extern void speaktime(); extern void speakday(); 41 extern void keyinitial(); /= /= /定義文件中用到的變量以及常數(shù)數(shù)組 /= unsigned int keyflag1=0; /鍵按下標(biāo)志1,控制進入功能選擇菜單 unsigned int
63、 keyflag2=0; /鍵按下標(biāo)志2, unsigned int keyflag3=0; /鍵按下標(biāo)志3,控制進入時間日期調(diào)整界面 unsigned int keyflag4=0; /鍵按下標(biāo)志4,控制進入鬧鐘時間設(shè)置界面 unsigned int keyflag5=0; /鍵按下標(biāo)志5,控制進入秒表設(shè)置界面 unsigned int keyflag6=0; /鍵按下標(biāo)志6,控制進入鬧鐘設(shè)置界面 unsigned int keyflag7=0; /鍵按下標(biāo)志7,控制進入鬧鐘鈴聲選擇界面 unsigned int ringflag=0; /播放鈴聲標(biāo)志位1播放第一首2播放第二首 unsign
64、ed 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=2008; /存放當(dāng)前的年 unsigned int gmonth=4; /存放當(dāng)前的公歷的月 unsigned int gday=21; /存放當(dāng)前的公歷的日 unsigned int xqvalue=1;
65、 /存放當(dāng)前的星期 unsigned int nmonth=3; /存放農(nóng)歷的月 42 unsigned 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,32,48; /箭頭坐標(biāo)數(shù)組 unsigned int nhour=0; /存放鬧鐘的小時 unsigned int nmin=0; /存放鬧鐘的分鐘 unsigned int mbmin=
66、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 number=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
- 溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(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 各種煤礦安全考試試題含答案