版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 本科畢業(yè)設(shè)計</b></p><p><b> ?。?0 屆)</b></p><p> 帶語音提示功能的智能電子鐘設(shè)計</p><p> 所在學(xué)院 </p><p> 專業(yè)班級 電子信息工程
2、 </p><p> 學(xué)生姓名 學(xué)號 </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 </p><p><b> 摘 要</b><
3、;/p><p> 近年來隨著計算機在社會領(lǐng)域的滲透和大規(guī)模集成電路的發(fā)展,單片機的用用正在不斷地走向深入,由于它具有功能強,體積小,功耗低,價格便宜,工作可靠,使用方便的優(yōu)點,因此特別適合于和控制有關(guān)的系統(tǒng),越來越廣泛的應(yīng)用于自動控制,智能化儀器,儀表,數(shù)據(jù)采集,軍工產(chǎn)品以及家用電器等各個領(lǐng)域。單片機往往是作為一個核心部件來使用,在根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,以作完善。</p>
4、<p> 本次做的數(shù)字鐘是以單片機(凌陽SPCE061A)為核心,結(jié)合相關(guān)的元器件(SPLC501液晶顯示器,揚聲器,按鍵,無線模塊PT2262/2272),在配以相應(yīng)的軟件,達到制作智能數(shù)字鐘的目的。</p><p> 該數(shù)字鐘可以清晰的顯示時間,語音報時無雜音,無線傳輸模塊可以控制100m以內(nèi)的繼電器開關(guān)。</p><p> 關(guān)鍵詞:單片機;數(shù)字鐘</p>
5、;<p><b> Abstract</b></p><p> With the computer in the social sphere in recent years, the penetration and the development of large scale integrated circuit, microcontroller is continuous
6、ly used by deepening, because of its powerful function, small size, low power consumption, cheap, reliable, easy to use Advantages, and therefore particularly suitable for control of the system, more and more widely used
7、 in automatic control, intelligent instruments, gauges, data acquisition, military products and household appliances and oth</p><p> The figures do bell on SCM (Sunplus SPCE061A) as the core, combined with
8、the components (SPLC501 LCD monitor, speakers, buttons,wireless module PT2262/2272), in together with the corresponding software, to create intelligent digital clock purposes.</p><p> The digital clock can
9、display the time clearly, voice broadcast no noise, the wireless transmission module can be controlled within 100m relay switch.</p><p> Key word: SCM; Digital Clock</p><p><b> 目 錄</
10、b></p><p><b> 1 引言1</b></p><p> 1.1 數(shù)字鐘的簡介1</p><p> 1.2 數(shù)字鐘的發(fā)展1</p><p> 1.3 本文研究的主要內(nèi)容2</p><p><b> 2 總體設(shè)計3</b></p>
11、;<p> 2.1數(shù)字鐘的原理3</p><p> 2.2基于各種單片機的數(shù)字鐘分析3</p><p> 2.2.1基于硬件實現(xiàn)的數(shù)字鐘3</p><p> 2.2.2基于FPGA的多功能數(shù)字鐘4</p><p> 2.2.3基于單片機的數(shù)字鐘將5</p><p> 2.3總體功能設(shè)
12、計5</p><p><b> 3 硬件設(shè)計7</b></p><p> 3.1微處理器系統(tǒng)(凌陽SPCE061A單片機)7</p><p> 3.1.1凌陽SPCE061A單片機簡介7</p><p> 3.1.2凌陽SPCE061A單片機工作環(huán)境及特點7</p><p>
13、3.2 SPCE061A輔助電路8</p><p><b> 3.3音頻模塊9</b></p><p> 3.4顯示模塊(SPLC501)9</p><p> 3.5無線模塊(PT2262/PT2272)11</p><p> 3.5.1 PT2262/PT2272簡介11</p><
14、;p> 3.5.2 PT2262/PT2272特點和應(yīng)用12</p><p> 3.6按鍵模塊13</p><p> 3.7 執(zhí)行模塊13</p><p><b> 4 軟件設(shè)計15</b></p><p> 4.1軟件開發(fā)工具簡介15</p><p> 4.2軟件流程
15、圖16</p><p> 4.2.1主程序16</p><p> 4.2.2液晶驅(qū)動程序和時間的調(diào)整17</p><p> 4.2.3語音報時程序19</p><p> 4.2.4中斷程序,實現(xiàn)日期時間的調(diào)整,以及秒表的實現(xiàn)20</p><p> 4.2.5初始化鍵盤函數(shù)和掃描鍵盤函數(shù)21<
16、/p><p> 4.2.6無線接收模塊程序22</p><p> 5 制作與調(diào)試23</p><p> 5.1硬件制作與調(diào)試23</p><p> 5.2軟件調(diào)試24</p><p><b> 6 結(jié)論26</b></p><p> 致 謝錯誤!未定義
17、書簽。</p><p><b> 參考文獻27</b></p><p> 附錄1 系統(tǒng)實物圖28</p><p> 附錄2 實驗原理圖29</p><p> 附錄3 畢業(yè)設(shè)計作品說明書30</p><p><b> 1 引言</b></p>&
18、lt;p> 1.1 數(shù)字鐘的簡介</p><p> 20世紀末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力的推動了社會生產(chǎn)力發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。</p><p> 數(shù)字鐘的設(shè)計方法有許多種,例如,可用中小規(guī)模集成電路組成電子鐘;也可以利用專用的電子鐘芯片配以顯示電路及
19、其所需要的外圍電路組成電子鐘;還可以利用單片機來實現(xiàn)電子鐘等等[1]。這些方法都各有其特點,其中利用單片機實現(xiàn)的電子鐘具有編程靈活,并便于功能的擴展。</p><p> 1.2 數(shù)字鐘的發(fā)展</p><p> 數(shù)字鐘自從它發(fā)明的那天起,就成為了人類的朋友,但隨著時間的推移,科學(xué)技術(shù)的不斷發(fā)展,人們對時間計量的精度要求越來越高,應(yīng)用越來越廣。如何才能讓數(shù)字鐘更好的發(fā)揮其作用和更好的為我們
20、服務(wù),這就要求我們不斷地設(shè)計出新型數(shù)字鐘。</p><p> 目前單片機應(yīng)用于各個領(lǐng)域,其應(yīng)用于儀器儀表中顯得更為優(yōu)越。以單片機制成的數(shù)字鐘具有計時準確,功耗低等優(yōu)點,從而得到了各界領(lǐng)域的廣泛應(yīng)用?,F(xiàn)今,高精度的計時工具大多數(shù)采用了石英晶體振蕩器,由于電子鐘,石英鐘,都采用了石英技術(shù),因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計時的時候,譯碼代替機械式傳動,用LED顯示器代替指針
21、顯示進而顯示時間,減少計時誤差,這種表具有時、分、秒顯示時間的功能,還可以進行時分的校對,片選的靈活性好,時鐘電路在計算機系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ),在一個單片機應(yīng)用系統(tǒng)中,時鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準振蕩定時信號,主要有晶振和外圍電路組成,晶振頻率的大小決定了單片機系統(tǒng)工作的快慢;二是指系統(tǒng)的標準定時時鐘,即定時時間,它通常有兩種實現(xiàn)方法:一是用軟件實現(xiàn),即用單片機內(nèi)部的可編程定時/計數(shù)器
22、來實現(xiàn),但誤差很大,主要用在對時間精度要求不高的地方;二是用專門的時鐘芯片來實現(xiàn),在對時間精度要求很高的情況下,通常采用這種方法[2]。典型的時鐘芯片有:DS1302,DS12887,X1203等都可以滿足精</p><p> 1.3 本文研究的主要內(nèi)容</p><p> 在計算機控制技術(shù)、電子技術(shù)飛速發(fā)展的今天,數(shù)字鐘的應(yīng)用越來越廣,對精度高,穩(wěn)定性好的數(shù)字鐘提出越來越高的要求,單一
23、的顯示時間已經(jīng)不能滿足現(xiàn)代電子技術(shù)的高標準要求。因此,研究精度更高,功能更強大,應(yīng)用更廣泛的數(shù)字鐘具有非常重要的意義。</p><p> 隨著科技的飛速發(fā)展,數(shù)字鐘的顯示及功能不斷的更新。不管是用哪一種語言,哪種形式實現(xiàn),系統(tǒng)設(shè)計簡單,程序簡潔易懂,能夠滿足各種環(huán)境、跟中場和需求并且具有很強實用性的數(shù)字鐘的設(shè)計與實現(xiàn)方案一直是我們努力的方向,我們要繼續(xù)研究其更為優(yōu)越的路線。</p><p&g
24、t; 本設(shè)計不僅要實現(xiàn)一般數(shù)字鐘都有的時間顯示功能,還具有語音識別報時功能和定時無線遙控功能。</p><p> 全文共分5章,各章的主要內(nèi)容如下:</p><p> 第一章 引言。介紹課題來源,研究意義及發(fā)展趨勢。</p><p> 第二章 系統(tǒng)的總體設(shè)計及基于各種軟件或單片機的數(shù)字鐘比較。</p><p> 第三章 主要是
25、硬件設(shè)計的實現(xiàn),以模塊為單位分別介紹各個模塊實現(xiàn)其功能的原理及過程。包括SPCE061A,外圍電路,液晶模塊,無線模塊,音頻模塊和按鍵模塊。</p><p> 第四章 軟件開發(fā)工具介紹,實際流程和設(shè)計的實現(xiàn),以模塊為單位分別介紹各個模塊實現(xiàn)其功能的原理及過程。</p><p> 第五章 系統(tǒng)調(diào)試結(jié)果和和本次設(shè)計的成果,及不足之處,還需要改進的地方。</p><p&
26、gt;<b> 2 總體設(shè)計</b></p><p><b> 2.1數(shù)字鐘的原理</b></p><p> 數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更長的使用壽命,已得到廣泛的使用。一般來說,數(shù)字鐘是由石晶體振蕩器、分頻器、計數(shù)器、譯碼器、顯示器和校時電路組成,振蕩器
27、產(chǎn)生的高頻穩(wěn)定脈沖信號作為數(shù)字鐘的時間基準。然后經(jīng)過分頻器輸出準秒脈沖,秒計數(shù)器滿60過后向分計數(shù)器進位;分計數(shù)器滿60過后向小時計數(shù)器進位,小時計數(shù)器按照“24”翻“1”規(guī)律技術(shù)[3]。計數(shù)器的輸出分別經(jīng)譯碼器送顯示器,計時出現(xiàn)誤差時,可以用校時電路校時,校分。</p><p> 數(shù)字鐘的設(shè)計方法有許多種,例如,可用中小規(guī)模集成電路組成電子鐘;也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子
28、鐘;還可以利用單片機來實現(xiàn)電子鐘等等。這些方法都各有其特點,其中利用單片機實現(xiàn)的數(shù)字鐘具有編程靈活,并便于功能的擴展[4]。如今大部分的數(shù)字鐘都是采用AT89C51為最小系統(tǒng)。</p><p> 2.2基于各種單片機的數(shù)字鐘分析</p><p> 2.2.1基于硬件實現(xiàn)的數(shù)字鐘</p><p> 555定時器構(gòu)成的多諧振蕩器,74LSl91、74LS48、74
29、LS90、74LS92等基本邏輯器件設(shè)計一個數(shù)字電子鐘。數(shù)字鐘的原理方框圖如圖2-1所示,它由振蕩器,分頻器,計秒電路,計分電路,計時電路等組成:</p><p> 圖2-1 基于硬件實現(xiàn)的數(shù)字鐘的系統(tǒng)框圖</p><p> 工作時,555構(gòu)成的多諧振蕩器產(chǎn)生穩(wěn)定的脈沖信號,經(jīng)過若干次分頻,得到秒脈沖信號。并送到計秒電路計數(shù),當秒計數(shù)器計滿60秒時,輸出秒進位脈沖,送計分電路計數(shù),當分
30、計數(shù)器計滿60分時,輸出分進位脈沖,送計時電路計數(shù),當計時電路滿24時時,時、分、秒計數(shù)器同時復(fù)零,又開始新一天的計時。</p><p> 數(shù)字鐘由時間計數(shù)電路、晶體振蕩電路、校正電路、防抖動電路、整點報時電路組成,數(shù)字式電子鬧鐘具有時鐘及定時器的獨特功能,特別是其走時精度高的特點,深受人們歡迎。主體電路是由功能部件或單元電路組成的。在設(shè)計這些電路或選擇部件時,盡量選用同類型的器件,如所有功能部件都采用TTL集
31、成電路或都采用CMOS集成電路。整個系統(tǒng)所用的器件種類應(yīng)盡可能少。</p><p> 用硬件電路做數(shù)字電路復(fù)雜,容易出現(xiàn)錯誤,精確度不高。</p><p> 2.2.2基于FPGA的多功能數(shù)字鐘</p><p> 此類數(shù)字鐘是運用EDA技術(shù),采用自頂向下的設(shè)計方法,使用VHDL語言設(shè)計了一個基于FPGA的多功能數(shù)字鐘。它具有時間顯示和設(shè)置、鬧鐘、數(shù)字秒表等功能
32、。能夠利用按鍵實現(xiàn)對鬧鐘時間的設(shè)定并在當前顯示時間到時能夠進行鬧鐘提示。多功能數(shù)字鐘還應(yīng)具有秒表功能,能夠精確到百分之一秒進行計數(shù)并且顯示。能夠利用按鍵實現(xiàn)“較時”、“較分”功能,隨時對數(shù)碼管的顯示進行調(diào)整和較對[5]。</p><p> 圖2-2基于FPGA的數(shù)字鐘系統(tǒng)框圖</p><p> 2.2.3基于單片機的數(shù)字鐘將</p><p> 基于MSP430
33、單片機的多功能數(shù)字鐘,程序用C編寫,可通過下載器裝入到MSP430中。程序主要模塊有:定時器的使用,計數(shù)器的使用,中斷的使用等操作,首先進行系統(tǒng)初始化,包括所有變量參數(shù)初始化,端口設(shè)置,中斷向量初始</p><p> 化,GPQ轉(zhuǎn)換初始化,鍵盤接口初始化,顯示控制初始化等。</p><p> 基于8031單片機控制的數(shù)字鐘,采用24小時制計時利用開發(fā)機上的六個LED顯示器來顯示時、分和
34、秒;使用Pl端口中的Pl.0端口線實現(xiàn)整點報時功能;使用P3端口的P3.0實現(xiàn)鬧鐘功能。</p><p><b> 2.3總體功能設(shè)計</b></p><p> 經(jīng)過幾種方法的研究和比較,無論采用原始的數(shù)字電路芯片,還是單片機將編譯語言和高級預(yù)言結(jié)合,抑或是采用現(xiàn)在的EDA技術(shù),數(shù)字鐘的設(shè)計進程亦是現(xiàn)代電子電路發(fā)展進程的具體體現(xiàn)[6]。</p>&l
35、t;p> 本次設(shè)計的數(shù)字鐘不僅要具有一般數(shù)字鐘的基本功能(顯示當前時間年、月、日、時、分、秒、星期),還具有聲控語音報時,定時開關(guān)控制,校時等一系列功能,當時間一到,通過揚聲器來提供聲音輸出,如圖2-4所示:</p><p> 圖2-4 系統(tǒng)總體設(shè)計圖</p><p><b> 3 硬件設(shè)計</b></p><p> 本系統(tǒng)硬件主
36、要有六大模塊組成:微處理器系統(tǒng)、SPCE061A外圍電路、音頻輸出模塊、顯示模塊、無線模塊和按鍵模塊。</p><p> 3.1微處理器系統(tǒng)(凌陽SPCE061A單片機)</p><p> 單片機自1976年問世以來,作為微型計算機一個很重要的分支,以極高的性能價格比,受到人們的重視和關(guān)注,應(yīng)用廣泛,發(fā)展迅速。目前單片機已滲透到各個領(lǐng)域[7]。例如導(dǎo)彈的導(dǎo)航裝置,飛機上各種儀表的控制,
37、計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領(lǐng)域的機器人和醫(yī)療器械了。</p><p> 本系統(tǒng)的微處理器采用凌陽SPCE061A單片機芯片,實現(xiàn)了正常顯示時鐘,語音報時和定時遠程遙控。</p><p> 3.1.1凌陽SPCE0
38、61A單片機簡介</p><p> SPCE061A 是繼unSP?(Microcontroller and Signal Processor)系列產(chǎn)品SPCE500A等之后凌陽科技推出的又一款16位結(jié)構(gòu)的微控制器。與SPCE500A不同的是,在存儲器資源方面考慮到用戶的較少資源的需求以及便于程序調(diào)試等功能,SPCE061A里只內(nèi)嵌32K字的閃存(FLASH)。</p><p> 3.
39、1.2凌陽SPCE061A單片機工作環(huán)境及特點</p><p> 它的工作電壓(CPU) VDD為2.4~3.6V ,(I/O) VDDH為2.4~5.5V ,CPU時鐘:0.32MHz~49.152MHz ,內(nèi)置2K字SRAM,內(nèi)置32K FLASH,可編程音頻處理,晶體振蕩器,系統(tǒng)處于備用狀態(tài)下(時鐘處于停止狀態(tài)),2個16位可編程定時器/計數(shù)器(可自動預(yù)置初始計數(shù)值),2個10位DAC(數(shù)-模轉(zhuǎn)換)輸出通
40、道,32位通用可編程輸入/輸出端口,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ù)位(L
41、VR)功能和低電壓監(jiān)測(LVD)功能,內(nèi)置在線仿真電路ICE(In- Circuit Emulator)接口,具有保密能力,具有WatchDog功能[8]。如圖3-1所示:</p><p> 圖3-1 凌陽SPCE061A單片機引腳圖</p><p> 3.2 SPCE061A輔助電路</p><p> 16位單片機時鐘電路采用晶體振蕩器,外接晶振采用3276
42、8Hz,圖3-2為時鐘電路的接線圖 。PLL電路的作用是將系統(tǒng)提供的實時時鐘的基頻(32768Hz)進行倍頻,系統(tǒng)默認的PLL自激振蕩頻率為24.576MHz。系統(tǒng)時鐘的信號源為PLL振蕩器,如圖3-3所示:</p><p> 圖3-2 晶振電路圖 圖3-3 瑣相環(huán)電路圖</p><p><b> 3.3音頻模塊</b></
43、p><p> SPCE061A內(nèi)置2路10位精度的DAC,只需要外接功放電路即可完成語音的播放。圖 3-4是音頻輸出電路圖??梢灾苯勇犂容敵龅穆曇?。圖中的SPY0030也是凌陽公司的產(chǎn)品。它的詳細說明可以參見SPY0030 data sheet。和LM386相比,SPY0030還具有下述優(yōu)勢的,比如LM386工作電壓需在4V以上, SPY0030僅需2.4V即可工作(兩顆電池即可工作);LM386輸出功率100m
44、W以下, SPY0030約700mW。</p><p> 圖3-4 音頻電路圖</p><p> 3.4顯示模塊(SPLC501)</p><p> SPLC501液晶顯示模組為128X64點陣,面板采用STN(Super Twisted Nematic)超扭曲向列技術(shù)制成并且由128 Segment和64 Common組成,LCM非常容易通過接口被訪問。模
45、組上的液晶顯示器采用凌陽科技的SPLC501芯片作為LCD驅(qū)動和控制器,為128X64點陣圖形液晶顯示器。圖3-5為SPLC501液晶顯示器的硬件框圖:</p><p> 圖3-5 SPLC501硬件框圖</p><p> SPLC501液晶顯示模組上提供了液晶顯示器的接口,及其所需的復(fù)位電路等,并把對液晶模組的操作接口引出。SPLC501液晶顯示模組引出了時序操作的接口引腳,還引出了
46、對操作時序進行選擇的C86和PS接線。圖3-6為SPCE061A與SPLC501液晶模組的硬件連接:</p><p> 圖3-6 SPCE061A與SPLC501液晶模組的硬件連接圖</p><p> 3.5無線模塊(PT2262/PT2272)</p><p> 3.5.1 PT2262/PT2272簡介</p><p> PT22
47、62/PT2272是臺灣普城公司生產(chǎn)的一種CMOS工藝制造的低功耗低價位通用編解碼電路,PT2262/PT2272最多可有12位(A0-A11)三態(tài)地址端管腳(懸空,接高電平,接低電平),任意組合可提供531441地址碼,PT2262最多可有6位(D0-D5)數(shù)據(jù)端管腳,設(shè)定的地址碼和數(shù)據(jù)碼從17腳串行輸出,可用于無線遙控發(fā)射電路[9]。圖3-7是PT2262與SPCE061A硬件連接圖,圖3-8為PT2262原理圖:</p>
48、;<p> 圖3-7 PT2262與SPCE061A硬件連接圖</p><p> 圖3-8 PT2262原理圖</p><p> 3.5.2 PT2262/PT2272特點和應(yīng)用</p><p> 它的主要特點是COMS工藝制造,低功耗;外部元件少;RC振蕩電阻;工作電壓范圍寬:2.6-15V;數(shù)據(jù)最多可以達到6位;地址碼最多可以有531441
49、種。</p><p> 它的應(yīng)用也非常廣泛:如車輛防盜系統(tǒng)、家庭防盜系統(tǒng)、遙控玩具、其他電器遙控等等。圖3-9是PT2272引腳圖,圖3-10為PT2272原理圖:</p><p> 圖3-9 PT2272引腳圖</p><p> 圖3-10 PT2272原理圖</p><p><b> 3.6按鍵模塊</b>&
50、lt;/p><p> 鍵盤模塊利用61板自帶的3個按鍵K1,K2,K3,其中K1-K3的功能定義為:</p><p> K1是保存鍵,按此鍵會把當前計數(shù)值存到Flash保存;K2是播報鍵,按此鍵可播放當前數(shù)值;K3是清除鍵,按此鍵清楚所有計數(shù)結(jié)果,但設(shè)定值保持不變。如圖3-11所示:</p><p> 圖3-11 鍵盤電路</p><p>
51、<b> 3.7 執(zhí)行模塊</b></p><p> 繼電器是一種電子控制器件,它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路),通常應(yīng)用于自動控制電路中,它實際上是用較小的電流去控制較大電流的一種“自動開關(guān)”。故在電路中起著自動調(diào)節(jié)、安全保護、轉(zhuǎn)換電路等作用[10]。如圖3-12所示:</p><p> 圖3-12 繼電器原理圖</p>
52、<p><b> 4 軟件設(shè)計</b></p><p> 4.1軟件開發(fā)工具簡介</p><p> 我們所用的開發(fā)環(huán)境叫做集成開發(fā)環(huán)境(也稱IDE),具備了1、程序編寫:在開發(fā)環(huán)境里錄入程序。2、編譯程序:負責(zé)把程序翻譯成機器碼。3、程序下載:把機器碼下載到仿真板或開發(fā)系統(tǒng)上。除上面的三個功能外還可以組織多個程序文件形成一個系統(tǒng)開發(fā)的項目,這樣更有利
53、于一些大型系統(tǒng)的開發(fā)和各功能模塊的模塊化。同時它還結(jié)合16位單片機的硬件提供各類在線調(diào)試窗口,使調(diào)試程序變得更加直觀和簡單。unSP IDE集成開發(fā)環(huán)境如圖4-1所示。</p><p> 圖4-1 IDE集成開發(fā)環(huán)境</p><p> 集成開發(fā)環(huán)境IDE具有友好的交互界面、下拉菜單、快捷鍵和快速訪問命令列表等,使編程、調(diào)試工作方便且高效。除此之外,它還提供一些軟件模擬16位單片機仿真的
54、功能,在沒有硬件的情況下也可以完成一些簡單程序的調(diào)試。可以通過集成開發(fā)環(huán)境使用C 語言和匯編語言對16位單片機進行編程。C語言是一種比匯編語言更高級的語言。其優(yōu)點是可以很好的組織程序,并且容易讀懂,可以在多種單片機上運行,是普遍使用的一種計算機語言。缺點是占用硬件資源較多,處理速度和效率沒有匯編高。</p><p> unSP單片機的匯編指令針對C語言進行了優(yōu)化,所以其匯編的指令格式很多地方直接類似于C語言。另
55、外其開發(fā)仿真環(huán)境IDE也直接提供了C語言的開發(fā)環(huán)境,C函數(shù)和匯編函數(shù)可以方便地進行相互調(diào)用。</p><p><b> 4.2軟件流程圖</b></p><p><b> 4.2.1主程序</b></p><p> 主程序用來組織、協(xié)調(diào)各模塊程序相互之間的調(diào)用。它的流程圖如圖4-2。</p><p
56、> 圖4-2 主程序流程圖</p><p> extern void display();</p><p> extern void PlayRespond(unsigned int Result);</p><p> extern void speaktime();</p><p> extern void keyscan(
57、);</p><p> extern void nextdisplay(); </p><p> extern void setday();</p><p> extern void set_ring();</p><p> extern void setsecond(); </p><p> extern
58、 void speaktime();</p><p> extern void speakday();</p><p> extern void keyinitial();</p><p> keyinitial(); //鍵盤初始化</p><p>
59、 LCD501_Init(0); //液晶顯示初始化</p><p> LCD501_Circle(64,32,15,1);</p><p> LCD501_ClrScreen(0);</p><p> LCD501_FontSet(0);</p><p>
60、*P_INT_Ctrl_New = *P_INT_Ctrl_New | 0x0004; //置2HZ中斷標志</p><p> __asm("INT IRQ"); //開放2HZ中斷</p><p> if(min==0 && sec==0)
61、 //正點報時功能</p><p> keyscan(); //鍵盤掃描</p><p> *P_Watchdog_Clear=0x0001;</p><p> if(keyvalue==0x0001)
62、 //如果KEY1鍵按下</p><p> keyflag1=1; //置位鍵按下標志</p><p> LCD501_ClrScreen(0); //調(diào)用清屏函數(shù)</p><p> case 0x0001:
63、 //如果是KEY1按下則進入相應(yīng)的調(diào)整</p><p> case 0x0002: // 如果是KEY2則箭頭下翻</p><p> case 0x0004: //如果是KEY3則箭頭上翻</p>
64、<p> else if(keyvalue==0x0002) //如果KEY2按下報時間</p><p><b> {</b></p><p> speaktime(); //調(diào)用時間撥報函數(shù)</p><p><b>
65、 }</b></p><p> else if(keyvalue==0x0004) // 如果KEY3按下報日期</p><p><b> {</b></p><p> speakday() ; //調(diào)用日期撥報函數(shù)</p>
66、<p><b> }</b></p><p> else if(keyvalue==0x0006) //如果KEKY2\KEY3同時按下則切換鬧鐘</p><p><b> {</b></p><p> switch(onoff) //的開
67、關(guān)</p><p><b> {</b></p><p><b> case 0:</b></p><p><b> onoff=1;</b></p><p> break; //切換鬧鐘的開關(guān)</p>
68、<p><b> case 1:</b></p><p><b> onoff=0;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b&
69、gt;</p><p><b> else</b></p><p> *P_Watchdog_Clear=0x0001; //清看門狗</p><p> 4.2.2液晶驅(qū)動程序和時間的調(diào)整</p><p> extern void keyscan(); //鍵盤掃描
70、函數(shù)聲明</p><p> extern void PlayRespond(unsigned int Result);//語音播放函數(shù)聲明</p><p> void showhour(int showhour); //顯示小時函數(shù)聲明</p><p> void ring_choice();
71、//鈴聲選擇函數(shù)聲明</p><p> extern unsigned int num; //2HZ計數(shù)單元</p><p> extern unsigned int hour; //存放當前的小時</p><p> extern unsigned int min;
72、//存放當前的分鐘</p><p> extern unsigned int sec; //存放當前的秒</p><p> extern unsigned int year; //存放當前的年</p><p> extern unsigned int gmonth; //存
73、放當前的公歷的月</p><p> extern unsigned int gday; //存放當前的公歷的日</p><p> extern unsigned int xqvalue; //存放當前的星期</p><p> extern unsigned int nmonth;
74、//存放農(nóng)歷的月</p><p> extern unsigned int nday; //存放農(nóng)歷的日</p><p> extern unsigned int runxq[]; //閏年星期偏差表</p><p> extern unsigned int pingxq[]; //平
75、年星期偏差表</p><p> extern unsigned int glunarmonthday[]; //農(nóng)歷月天數(shù)表</p><p> void clock() //時鐘運算函數(shù),入口參數(shù)半秒、秒、分、時。</p><p> if(num==0x0002)
76、 //如果半秒到了2,則秒加1</p><p> num = 0x0000;</p><p> sec = sec++;</p><p> counter=counter++; //顯示動畫的楨加一</p><p> if(counter==40)</p><p> counter
77、=0;</p><p> if(sec==60) //如果秒到了60,則秒清零分加1</p><p><b> sec = 0;</b></p><p> if(min==60) //如果分到了60,則分清零,小時加1</p>
78、<p><b> min = 0;</b></p><p> hour = ++hour;</p><p> 4.2.3語音報時程序</p><p> extern unsigned int year;</p><p> extern unsigned int gmonth;</p>
79、<p> extern unsigned int gday;</p><p> extern unsigned int hour;</p><p> extern unsigned int min;</p><p> void PlayRespond(unsigned int Result) </p><p>&l
80、t;b> { </b></p><p> SACM_S480_Initial(1);</p><p> *P_INT_Ctrl_New = *P_INT_Ctrl_New | 0x0004; //使初始化后不影響2KZ中斷</p><p> SACM_S480_Play(Result,3,3);</p><
81、;p> while((SACM_S480_Status()&0x0001) != 0)</p><p><b> { </b></p><p> SACM_S480_ServiceLoop(); </p><p> *P_Watchdog_Clear=0x0001;</p><p><b&
82、gt; }</b></p><p> SACM_S480_Stop();</p><p><b> }</b></p><p><b> 播報當時的時間</b></p><p> void speaktime()</p><p><b> {
83、</b></p><p> PlayRespond(C_BELL); //報時聲 PlaySpeakHour(hour); //時</p><p> PlaySpeakMinute(min); //分</p><
84、p><b> }</b></p><p><b> 播報當時的日期</b></p><p> void speakday()</p><p><b> {</b></p><p> PlaySpeakYear(year);
85、 //播報年</p><p> PlaySpeakMonth(gmonth); //月</p><p> PlaySpeakDay(gday); //日</p><p><b> }</b></p&
86、gt;<p> 4.2.4中斷程序,實現(xiàn)日期時間的調(diào)整,以及秒表的實現(xiàn)</p><p> .INCLUDE SPCE061A.inc</p><p> .INCLUDE s480.inc</p><p> .EXTERNAL _num</p><p> .EXTERNAL _clock</p><p
87、> .EXTERNAL _gyearmonthday</p><p> .EXTERNAL _gxq</p><p> .EXTERNAL _mbnum</p><p> .EXTERNAL _miaobiao</p><p> .EXTERNAL _int2hz</p><p> .EXTERNAL
88、 _mapcounter1</p><p><b> .TEXT</b></p><p> push r1,r5 to [sp]; //判斷是否TimerA中斷</p><p> ?L_FIQ_PWM: //判斷是否為PWM中斷</
89、p><p> ?L_FIQ_TimerA: //TimerA中斷程序</p><p> ?L_FIQ_TimerB: //TimerB中斷程序</p><p> call _clock //調(diào)用
90、時間運算子函數(shù)</p><p> call _gyearmonthday //調(diào)用年月運算子函數(shù) </p><p> call _gxq //調(diào)用星期運算子函數(shù)</p><p> 4.2.5初始化鍵盤函數(shù)和掃描鍵盤函數(shù)</p><p&
91、gt; extern unsigned int keyvalue;</p><p> void Delaytime() //延時子程序</p><p><b> { </b></p><p> unsigned int j;</p><p> for(j=0
92、;j<0xff00;j++);</p><p> *P_Watchdog_Clear=0x0001;</p><p><b> }</b></p><p> void keyinitial() //鍵盤端口的初始化</p><p><b> {</b
93、></p><p> *P_IOA_Dir &= 0xfff0;</p><p> *P_IOA_Attrib &= 0xfff0; //設(shè)置IOA的低四位為低電平輸入口</p><p> *P_IOA_Data &= 0xfff0;</p><p><b> }</
94、b></p><p> void keyscan() //鍵盤掃描子程序</p><p><b> {</b></p><p> unsigned int i=0;</p><p> unsigned int k=0;</p>&
95、lt;p> i=*P_IOA_Data & 0x0007;</p><p> Delaytime();</p><p> k=*P_IOA_Data & 0x0007;</p><p><b> if(i==k)</b></p><p> keyvalue=k;</p>&l
96、t;p><b> else</b></p><p> keyvalue=0;</p><p><b> }</b></p><p> 4.2.6無線接收模塊程序</p><p> #include "SPCE061A.h"</p><p>
97、 #include "pt2272.h"</p><p> unsigned int RxBuf[5];// 接收緩沖,保存接收到的數(shù)據(jù)</p><p> int main()</p><p><b> {</b></p><p> pt2272_Initial();
98、//pt2272初始化</p><p> while((pt2272_RxStatus()) != 1)</p><p><b> {</b></p><p> *P_Watchdog_Clear = 0x0001;// pt2272沒有數(shù)據(jù)請求</p><p><b> }&l
99、t;/b></p><p> pt2272_ReceiveByte(RxBuf);// 接收數(shù)據(jù)</p><p><b> while(1)</b></p><p><b> {</b></p><p> *P_Watchdog_Clear = 0x0001;</p
100、><p><b> }</b></p><p><b> }</b></p><p><b> 5 制作與調(diào)試</b></p><p> 5.1硬件制作與調(diào)試</p><p> PCB在制作的過程中十分復(fù)雜、布線,焊盤等方面需要注意的事項很多,所以
101、制作起來難度很大。布線方面,走線拐角盡可能大于90度,杜絕90度以下的拐角,也盡量少用90度拐角,走線盡量走在焊接面,特別是通孔工藝的PCB。同是地址線或者數(shù)據(jù)線,走線長度差異不要太大,否則短線部分要人為走彎線作補償。</p><p> 完成布線后,要做的就是對文字、個別元件、走線做些調(diào)整以及敷銅(這項工作不宜太早,否則會影響速度,又給布線帶來麻煩),同樣是為了便于進行生產(chǎn)、調(diào)試、維修。</p>
102、<p> 在電路板的設(shè)計過程中,PCB設(shè)計的好壞對電路板抗干擾能力影響很大。為保證其可靠性,在進行PCB設(shè)計時,應(yīng)注意一般原則:應(yīng)盡量加粗電源線寬度,減少環(huán)路電阻。地線應(yīng)盡量加粗,很細,接地電位則隨電流的變化而變化,致使電子設(shè)備的定時信號電平不穩(wěn),抗噪聲性能就會變壞。在考慮布線之前,要特別注意封裝與實際相符合。</p><p> 圖5-1 PT2262與SPCE061A連接的PCB圖</p&g
103、t;<p> 圖5-2 PT2272與SPCE061A連接的PCB圖</p><p><b> 5.2軟件調(diào)試</b></p><p> 軟件調(diào)試主要通過運行程序來檢測,必須分模塊調(diào)試,對程序作一些變動,主要是輸入輸出部分改動,設(shè)計好測試數(shù)據(jù),必要時要單獨編測試程序。在unsp IDE環(huán)境下,用C序言編程,檢查并運行程序有無錯誤,能否實現(xiàn)其功能,盡
104、可能找出潛在的錯誤。經(jīng)過不寫的努力,多次的修改和調(diào)試,終于實現(xiàn)了在液晶上顯示了其功能,如圖5-3,5-4,5-5所示:</p><p><b> 圖5-3 測試圖</b></p><p><b> 圖5-4 菜單顯示</b></p><p><b> 圖5-5 秒表</b></p>
105、<p><b> 6 結(jié)論 </b></p><p> 本設(shè)計方案按照任務(wù)書的要求,在查閱大量資料和實驗室實驗的基礎(chǔ)上,經(jīng)過幾個月的努力,基本上已經(jīng)達到預(yù)期的目標。用戶可通過切換按鍵來控制數(shù)字鐘的時間顯示,語音報時和定時遙控。</p><p> 由于本人的專業(yè)知識和技術(shù)水平有限以及時間等其他方面條件的不足,只能在此基礎(chǔ)上實現(xiàn)簡單的功能,該系統(tǒng)沒有一個
106、好的保護外殼,功能也不是很多,有待在以后的工作學(xué)習(xí)中不斷進步。</p><p><b> 參考文獻</b></p><p> [1] 林軍,謝曉斌.用8031單片機控制的數(shù)字鐘[J].半導(dǎo)體技術(shù),2002,27(2):40~44.</p><p> [2] 彭小軍.用單片機實現(xiàn)電子時鐘[J].新余高專學(xué)報,2004,9(2):54~56.
107、</p><p> [3] 趙淑范.數(shù)字鐘電子鐘的設(shè)計 [J].長春大學(xué)學(xué)報,2004,14(4):36~39.</p><p> [4] 劉睿劼.基于FPGA的多功能數(shù)字鐘[J].電腦與電信,2009,(5):73~75.</p><p> [5] Wing Foon Lee,P. K. Chan.A low-cost programmable clock
108、generator for switched-capacitor circuit applications[J].Analog Integr Circ Sig Process,2006,(47):247~257.</p><p> [6] 李探,李雙雙.數(shù)字鐘設(shè)計方法探究與比較[J].中國電子商務(wù),2010,(3):116.</p><p> [7] 趙鵬.利用單片機設(shè)置的電子秤[J]
109、.中小企業(yè)管理與科技,2009,(19):227.</p><p> [8] 王玉娟. 基于SPCE061A的孔金屬化設(shè)備控制系統(tǒng)的設(shè)計與研究[D].天津大學(xué),2006.</p><p> [9] 俞錦. 集裝箱箱體無線遠程標簽的研究和實現(xiàn)[D].南開大學(xué),2008.</p><p> [10] 樂渝寧. 繼電器常見故障及檢修方法[J].科技廣場,2010,(
110、5):234~236.</p><p> [11] 張景元,陳平.一種基于單片機的多功能數(shù)字鐘[J].微計算機信息,2009,(9):2.</p><p> [12]Ezra N.Hoch,Danny Dolev,Ariel Daliot.Self-stabilizing Byzantine Digital Clock Synchronization[J].Springer-Verla
111、g Berlin Heideberg,2006,350~362.</p><p> [13] 肖冰.數(shù)字電路邏輯設(shè)計實驗技術(shù)[M].北京:北京郵電人學(xué)出版社,2000.</p><p> [14]劉盛雄,周奇,韋云隆.基于單片機的數(shù)字式電子鐘的設(shè)計與制作[J].重慶工學(xué)院學(xué)報,2006(8):91-92.</p><p> [15]盧超.基于單片機的數(shù)字電子鐘
112、的設(shè)計與制作[J].大慶師范學(xué)院學(xué)報,2006(5):48-53.</p><p><b> 附錄1 系統(tǒng)實物圖</b></p><p><b> 附錄2 實驗原理圖</b></p><p> 圖二 protel原理圖1</p><p> 圖三protel原理圖2</p>&l
113、t;p> 附錄3 畢業(yè)設(shè)計作品說明書 </p><p><b> 一、作品名稱</b></p><p> 系統(tǒng)帶語音提示功能的智能電子鐘設(shè)計</p><p><b> 二、作品功能</b></p><p> 1、能夠顯示年、月、日、時、分、秒、星期、農(nóng)歷</p><
114、;p> 2、能夠按鍵控制語音報時</p><p> 3、通過PT2262/2272定時控制LED燈亮燈滅</p><p><b> 三、運行環(huán)境</b></p><p><b> 硬件環(huán)境:</b></p><p><b> SPCE061A</b></p
115、><p><b> 軟件環(huán)境:</b></p><p><b> unsp IDE</b></p><p><b> 四、操作步驟</b></p><p> 1、先將各個硬件相連</p><p> 2、將程序?qū)雞nsp IDE并下載到實驗箱<
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 帶語音提示功能的智能電子鐘設(shè)計【文獻綜述】
- 帶語音提示功能的智能電子鐘設(shè)計【任務(wù)書】
- 數(shù)字電子鐘設(shè)計畢業(yè)論文
- 多功能數(shù)字電子鐘畢業(yè)設(shè)計論文
- plc的數(shù)字電子鐘畢業(yè)論文
- 數(shù)字電子鐘設(shè)計與制作畢業(yè)論文
- 數(shù)字鐘畢業(yè)論文--數(shù)字電子鐘電路的設(shè)計
- 多功能數(shù)字電子鐘畢業(yè)設(shè)計論文
- 畢業(yè)論文---數(shù)字電子鐘的設(shè)計及制作
- 語音電子鐘.rar
- 電子鐘畢業(yè)設(shè)計---數(shù)字電子鐘的設(shè)計
- 語音電子鐘.rar
- 電子鐘課程設(shè)計--多功能電子鐘
- 語音電子鐘.rar
- 語音電子鐘.rar
- 指針式電子鐘畢業(yè)論文
- 基于單片機的電子鐘設(shè)計畢業(yè)論文
- 帶語音提示的自動出題系統(tǒng)設(shè)計【畢業(yè)論文】
- 基于單片機的電子鐘設(shè)計畢業(yè)論文
- 基于單片機的電子鐘設(shè)計畢業(yè)論文
評論
0/150
提交評論