課程設(shè)計(論文)基于AT89S52單片機的多功能萬年歷設(shè)計_第1頁
課程設(shè)計(論文)基于AT89S52單片機的多功能萬年歷設(shè)計_第2頁
課程設(shè)計(論文)基于AT89S52單片機的多功能萬年歷設(shè)計_第3頁
課程設(shè)計(論文)基于AT89S52單片機的多功能萬年歷設(shè)計_第4頁
課程設(shè)計(論文)基于AT89S52單片機的多功能萬年歷設(shè)計_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二屆電子設(shè)計競賽 參賽題目 多功能萬年歷參賽級別 初級組 學(xué)生學(xué)院 信息工程學(xué)院_ 參賽隊員 xxx_xxx xxx_作品編號 x7023 目 錄摘要3第一章 作品設(shè)計4第一節(jié)、方案論證和比較4第二節(jié)、作品硬件設(shè)計51、作品硬件框圖52、設(shè)計總電路圖63、at89s52主控模塊74、實時時鐘模塊95、語音模塊106、 液晶顯示模塊117、18b20溫度測量模塊128、無線編碼發(fā)射與無線接收譯碼模塊139、收音機模塊15第三節(jié)、系統(tǒng)軟件設(shè)計161、液晶顯示模塊182、語音模塊183、18b20溫度傳感測溫模塊184、實時時鐘模塊185、陰陽歷轉(zhuǎn)換模塊19第四節(jié)、protues軟件仿真19第二章

2、 作品功能與特色21第一節(jié)、作品功能與相關(guān)操作介紹211、能顯示當(dāng)前年、月、日、時、分、秒及星期并提示是否為陽歷閏年。212、顯示陰歷月、日,在顯示陰歷時間時能標(biāo)明是否為閏月;213、顯示當(dāng)前溫度;224、可調(diào)整顯示日期和時間;225、可設(shè)置定時鬧鐘提示。226、能夠進行整點和半點語音報時;237、能用語音提示任意時刻的時間、溫度、公歷日期、農(nóng)歷日期。238、能在掉電的情況下保存用戶之前的所有設(shè)置;239、具有日程管理與音樂提示功能2310、能夠?qū)崿F(xiàn)錄音、留言功能;2411、能夠無線控制相關(guān)操作并實現(xiàn)竊聽2412、能夠?qū)崿F(xiàn)秒表計時2413、能夠?qū)崿F(xiàn)收音功能25第二節(jié)、作品特色26第三節(jié)、個別功

3、能指標(biāo)26第三章 設(shè)計問題總結(jié)27附錄a 作品實物圖29附錄b 頁面顯示圖30附錄c 系統(tǒng)源程序部分代碼33參考文獻42摘要隨著科學(xué)技術(shù)的發(fā)展,電子產(chǎn)品的功能正在日益趨向多樣化。低成本、多功能、低耗能已成為產(chǎn)品設(shè)計的主題。鬧鐘也一樣,單一功能的鬧鐘似乎已經(jīng)不能滿足人們的要求,功能多樣化已成為總的趨勢,本作品正是為應(yīng)呼人們需求而設(shè)計的。除基本鬧鐘功能外,還具備有語音報時、溫度顯示、收音機、秒表計時等十多項功能,實用性非常高;采用89s52單片機作為為主控芯片,外加語音、實時時鐘、收音等8個模塊,使得設(shè)計靈活性與穩(wěn)定性高,用戶或制作者可根據(jù)需要隨時更改參數(shù);作品中有些模塊能設(shè)置進入睡眠待機狀態(tài),如

4、采用四節(jié)5號電池直接供電時,正常工作電流2025ma,功耗非常低;設(shè)計時使部分芯片肩負(fù)多個功能,充分利用硬件資源、使作品性價比高、成本低。關(guān)鍵詞:at89s52單片機 多功能 語音 功耗低 睡眠待機 第一章 作品設(shè)計第一節(jié)、方案論證和比較方案1:可提取現(xiàn)有整點報時鬧鐘芯片,用其做主控器,外加功放電路與顯示電路,歌曲采用獨立音樂芯片來達到設(shè)計要求設(shè)計要求,其具有設(shè)計容易、外圍電路也較簡單的特點,但是其功能不完善,資源少,可擴展空間不大。方案2:采用可編程邏輯器件(fpga)作為主控芯片,然后運用ad、da 轉(zhuǎn)換實現(xiàn)語音的采集與播放,外加功放與現(xiàn)實電路來達到設(shè)計要求。采用fpga可以大大縮短設(shè)計時

5、間,減少pcb面積,提高系統(tǒng)的可靠性。但此方案轉(zhuǎn)換電路過多,設(shè)計成本很高,性價比低。方案3: 采用單片機(at89s51)主控,外加isd4002組成語音模塊、ds12cr887組成時間模塊、ds18b20溫度模塊、收音模塊等來實現(xiàn)設(shè)計要求。外圍電路模塊化使作品工作更加穩(wěn)定,而且擴展空間大,作品的功能多,其中有些芯片可同時用于幾個模塊,使設(shè)計成本大大降低,占用空間??;有些模塊可設(shè)置進入睡眠狀態(tài),使得作品功耗低。在有線模式的基礎(chǔ)上特意增加無線模式,使作品的功能更加豐富,實用性更高綜合比較以上三種方案,我們選擇最后一種第二節(jié)、作品硬件設(shè)計1、作品硬件框圖本設(shè)計方案以at89s52單片機為控制核心,

6、外加語音、實時時鐘、溫度采集、無線電發(fā)射與接受、編碼與譯碼、lcd顯示、按鍵控制等模塊。ds12cr887實時時鐘模塊與18b20溫度采集模塊分別給系統(tǒng)提供當(dāng)前時間、日期及溫度信息,muc對信息進行處理后控制lcd 顯示。ds12cr887實時時鐘模塊還作為外部存儲ram。muc再不斷地將用戶設(shè)置與當(dāng)前信息進行監(jiān)測,如果條件符合,就啟動isd4002語音模塊與tda2282功放模塊進行語音提示。isd4002語音模塊作為語音信號存儲器,鍵盤輸入可實現(xiàn)各種模式的切換,與數(shù)值的調(diào)整。無線電發(fā)射與接受、編碼與譯碼模塊實現(xiàn)無線控制。led實現(xiàn)工作提示。整個作品硬件電路方框圖如下圖所示:ds12cr88

7、7實時時鐘模塊18b20溫度測量模塊isd4002語音模塊led燈提示按鍵輸入、模式選擇12864ld顯示譯碼模塊無線接收模塊mucat89s52主機部分編碼模塊無線發(fā)射模塊收音機模塊 遙控器部分 收音機部分圖1-12、設(shè)計總電路圖3、at89s52主控模塊at89s52是一種低功耗、高性能cmos8位微控制器,具有8k 在系統(tǒng)可編程flash 存儲器。使用atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80c51 產(chǎn)品指令和引腳完全兼容。片上flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位cpu 和在系統(tǒng)可編程flash,使得at89s52為眾多嵌入式

8、控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。at89s52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)flash,256字節(jié)ram,32 位i/o 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,at89s52 可降至0hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,cpu停止工作,允許ram、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,ram內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。圖3-1引腳工能介紹vcc : 電源gnd: 地p0 p3 口:p0口是一個8位漏極開路的雙向i/

9、o口。作為輸出口,每位能驅(qū)動8個ttl邏引腳號 第二功能p1.0 t2(定時器/計數(shù)器t2的外部計數(shù)輸入),時鐘輸出p1.1 t2ex(定時器/計數(shù)器t2的捕捉/重載觸發(fā)信號和方向控制)p1.5 mosi(在系統(tǒng)編程用)p1.6 miso(在系統(tǒng)編程用)p1.7 sck(在系統(tǒng)編程用)p3.0 rxd(串行輸入)p3.1 txd(串行輸出)p3.2 int0(外部中斷0)p3.3 int0(外部中斷0)p3.4 t0(定時器0外部輸入)p3.5 t1(定時器1外部輸入)p3.6 wr(外部數(shù)據(jù)存儲器寫選通)p3.7 rd(外部數(shù)據(jù)存儲器寫選通)rst: 復(fù)位輸入。晶振工作時,rst腳持續(xù)2 個

10、機器周期高電平將使單片機復(fù)位。ale/prog:地址鎖存控制信號(ale)是訪問外部程序存儲器時,鎖存低8 位地址的輸出脈沖。在flash編程時,此引腳(prog)也用作編程輸入脈沖。psen:外部程序存儲器選通信號(psen)是外部程序存儲器選通信號。ea/vpp:訪問外部程序存儲器控制信號。為使能從0000h 到ffffh的外部程序存儲器讀取指令,ea必須接gnd。為了執(zhí)行內(nèi)部程序指令,ea應(yīng)該接vcc。xtal1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。xtal2:振蕩器反相放大器的輸出端。主控模塊硬件電路圖3-2其中at89s52的p34、p35、p36分別對應(yīng)接語音芯片的sclk

11、、ss、mosi引腳。通過spi總線實現(xiàn)信息傳輸。p00p07分別對應(yīng)實時時鐘芯片的ad0ad7引腳及12864lcd顯示模塊的eb0!eb7引腳,進行并口通信。p25、p26、p27分別接12864lced的e、r/w、rs控制端。p24接18b20的數(shù)據(jù)傳輸端dq。p20、p21、p22、p23分別接ds12cr87d的/cs、as、r/w、ds讀寫控制端。muc對各模塊的數(shù)據(jù)進行提取與分配。起著主控主用。4、實時時鐘模塊ds12r887是一款集成了ds12r885裸片、32.768khz石英晶體和一個可充電電池的表面鐵封裝器件。該芯片提供實時時鐘/日歷、鬧鐘、控制/狀態(tài)寄存器以及114字

12、節(jié)的非易失、電池備份的靜態(tài)ram。少于31天的月份,月末日期可自動調(diào)整,其中包括閏年補償。該器件還可以工作于24小時或帶am/pm指示的12小時格式。一個精密的溫度補償電路用來監(jiān)視vcc的狀態(tài)。如果監(jiān)測到主電源故障,該器件可以自動切到內(nèi)部封裝的備用電源供電。時鐘、日歷和鬧鐘bcd模式的數(shù)據(jù)存儲方式如下表:表4-1 日歷和鬧鐘bcd模式的數(shù)據(jù)存儲方式模塊電路圖如下圖4-15、語音模塊isd4002屬于美國isd公司4000系列產(chǎn)品,2.73.3v單電源單片語音錄放電路,同時提供相應(yīng)的28引線dip/soic、 tsop硬封。 isd4002采用直接模擬量存貯技術(shù),音質(zhì)好,信息存放在芯片內(nèi)部fla

13、shram中,抗斷 電,無需專用語音開發(fā)工具,能隨意更改內(nèi)容和耗電省等優(yōu)點。 該系列最大特點是錄放時間長,并設(shè)計成和微處理器或微控制器配合使用實現(xiàn) 尋址和控制,使本器件引出端數(shù)減到最少,而使用更加靈活,且該芯片可設(shè)定進入待機狀態(tài),功耗接近為零。其指令由五位地址碼和10地址碼組成。具體操作指令如下表5-1:表5-1指令表模塊電路圖如下圖5-1:圖5-1如圖5-1語音模塊的接口解釋:at89s52的p34、p35、p36分別對應(yīng)接語音芯片的sclk、ss、mosi引腳。通過spi總線實現(xiàn)信息傳輸。在錄音模式下,分段錄好要播放的語音,并分配固定地址。當(dāng)進入語音模式時,單片機發(fā)送發(fā)音指令取出指定地址的

14、語音信息進行播放,從而達到語音報時的目的。6、 液晶顯示模塊如圖6-1,為液晶顯示電路,at89s52單片機的pc5、pc6、pc7做lcd12864的控制線,pa0pa7做數(shù)據(jù)傳輸線圖6-17、18b20溫度測量模塊ds18b20數(shù)字溫度計提供9為溫度讀數(shù),指示器件的溫度。信息經(jīng)過單線接口送入ds18b20或是從ds18b20送出,因此從中央處理器到ds18b20僅需連接一條線(和地)。讀、寫和完成溫度變換所需的電源可以有數(shù)據(jù)本身提供,而不需要外部電源。因為每個ds18b20有唯一的系列號,因此多個ds18b20可以存在于同一條單線總線上,這允許在許多不同的地方放置溫度靈敏器件。ds18b2

15、0可使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。測溫范圍:-55+125。固有測溫分辨率為0.5。溫度測量模塊的硬件電路如圖:通過p24腳對18b20寫命令可以完成表的控制,如下圖7-1所示:圖7-1表2 ds18b20的控制命令指令代碼操作說明溫度轉(zhuǎn)換44h開始啟動ds18b20溫度轉(zhuǎn)換讀rom33h讀rom內(nèi)容匹配rom55h對指定器件操作跳過cch跳過器件識別讀暫存器beh讀暫存器內(nèi)容寫暫存器4eh將數(shù)據(jù)寫入暫存器的th、tl字節(jié)復(fù)制暫存器48h吧暫存器的th、tl字節(jié)寫到e2ram中重新調(diào)用b8h把e2ram中的th、tl字節(jié)寫到暫存器th、tl字節(jié) 8、無線編碼發(fā)射與無線接收譯碼模塊pt2262

16、/pt2272一種cmos工藝制造的低功耗低價位通用編解碼電路,最多可有12位(a0-a11)三態(tài)地址端管腳(懸空,接高電平,接低電平),任意組合可提供531441地址碼,pt2262最多可有6位(d0-d5)數(shù)據(jù)端管腳,設(shè)定的地址碼和數(shù)據(jù)碼從17腳串行輸出,可用于無線遙控發(fā)射電路。編碼芯片pt2262發(fā)出的編碼信號由:地址碼、數(shù)據(jù)碼、同步碼組成一個完整的碼字,解碼芯片pt2272接收到信號后,其地址碼經(jīng)過兩次比較核對后,vt腳才輸出高電平,與此同時相應(yīng)的數(shù)據(jù)腳也輸出高電平。從而實現(xiàn)解碼。pt2262/2272同時具有低功耗,外部元器件少,rc振蕩電阻,工作電壓范圍寬:2.615v 等特點。圖

17、8-1表8-1 pt2262對應(yīng)管腳功能表表8-2 pt2272對應(yīng)管腳功能表twh630/twh631是一對專用的無線發(fā)與無線接收模塊,能夠?qū)崿F(xiàn)數(shù)字信號的傳送,添加頻率調(diào)制器與解調(diào)器也可傳送音頻信號。twh630以315mhz正弦波為載波,自動生成調(diào)制信號;twh631接收到信號后自動解調(diào),輸出源信號。twh630/twh631具有外接電路簡單,功耗小,穩(wěn)定性高等特點。無線編碼發(fā)射模塊硬件電路圖如下圖8-3所示:圖8-2無線接收與譯碼硬件電路圖如下圖所示:圖8-39、收音機模塊圖1是自動搜索調(diào)頻收音機的電原理圖。圖9-1其核心器件是一塊tda7088集成電路,這塊集成電路中包含了調(diào)頻收音機中

18、從天線接收、振蕩器、混頻器、afc(頻率自動控制)電路、中頻放大器(中頻頻率為70khz)、中頻限幅器、中頻濾波器、鑒頻器、低頻靜噪電路、音頻輸出等全部功能,還專門設(shè)有搜索調(diào)諧電路、信號檢測電路及頻率鎖定環(huán)路。自動搜索調(diào)頻收音機采用電調(diào)諧方式選擇電臺,省去了可變電容器,設(shè)置了“搜索”和“復(fù)位”兩個輕觸式按鈕。使用時只要按下搜索按鈕,收音機就會自動搜索電臺,當(dāng)它搜索到一個電臺后,會準(zhǔn)確地調(diào)諧并停止下來。如果想換一個電臺,只需再次按下搜索按鈕,收音機就會繼續(xù)向頻率高端搜索電臺。當(dāng)調(diào)諧到頻率最高端后,就需要按下復(fù)位按鈕,讓收音機本振頻率回到最低端才能重新開始搜索電臺。這種自動搜索調(diào)頻收音機使用方便,

19、調(diào)諧準(zhǔn)確,由于不使用可變電容器,所以使用壽命長。第三節(jié)、系統(tǒng)軟件設(shè)計軟件采用c語言設(shè)計。c語言對數(shù)據(jù)進行了許多專業(yè)性的處理,避免了運行間非異步的破壞;它提供復(fù)雜的數(shù)據(jù)類型,大大增強了程序的處理能力和靈活性;自動為變量分配合理的地址;提供豐富的庫函數(shù),宏定義等;基于以上的優(yōu)點,采用c語言來開發(fā)可以大大提高效率,縮短開發(fā)周期。開發(fā)環(huán)境:keil c51。 keil c51是美國keil software公司出品的51系列兼容單片機c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。keil c51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全

20、windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。作品軟件流程圖鬧鐘標(biāo)志flag=1語音報時日期、時間調(diào)整語音提示時間、溫度、公歷日期、農(nóng)歷日期日程調(diào)整否否否否否00是是是是是是11101初始化溫度測量模塊鍵盤掃描初始化液晶顯示器開始判斷鬧鐘、日程調(diào)整標(biāo)志alarm判斷鬧鐘標(biāo)志flag1初始化實時時鐘模塊語音提示歌曲播放判斷日程提醒標(biāo)志flag3提取當(dāng)前時間及溫度信息陽歷轉(zhuǎn)陰歷液晶顯示相關(guān)信息判斷時間調(diào)整標(biāo)志flag鬧鐘時間比較判斷是否半點或整

21、點判斷key5是否按下判斷key6是否按下判斷key7是否按下判斷key2是否按下鬧鐘調(diào)整進入錄音模式進入放音模式進入秒表計時模式將相關(guān)信息輸入時鐘芯片將相關(guān)信息輸送到外部ram1、液晶顯示模塊液晶顯示采用lcd128*64規(guī)格.程序主要有液顯初始化、數(shù)據(jù)寫入、指令寫入、顯示數(shù)據(jù)、顯示字符串、定行定點顯示數(shù)據(jù)、忙碌狀態(tài)檢查。主要為: void init(void) ; void write_date(uchar date) ; void write_com(uchar com); void writestring(uchar * str);void write_sfm1(uchar add,u

22、char date);bit checkbusy(void);2、語音模塊這個模塊程序主要是用來實現(xiàn)語音提示數(shù)據(jù),錄放相關(guān)信息,此模塊的程序主是包括,語音芯片的初始化,數(shù)據(jù)輸入,上電、掉電、停止、放音等。主要是如下函數(shù)名:void init2(); void isdx(unsigned char d); void up();void stopp();void fangyin(uchar dz,uint time);3、18b20溫度傳感測溫模塊18b20溫度傳感的程序時序要求主要包括溫度信息提取,數(shù)據(jù)轉(zhuǎn)換等程序。調(diào)用get_temper_value()獲取溫度值;調(diào)用conversion1()

23、二-十進制;buf13正負(fù)符號位;buf12百位;buf11十位;buf10個位;4、實時時鐘模塊這個模塊的的程序主要用來實現(xiàn)對實時時鐘芯片ds12r887進行數(shù)據(jù)傳輸。主要包括有時鐘芯片初始化、數(shù)據(jù)寫入、數(shù)據(jù)讀出、指令寫入等程序。主要為:init();void ds_write(uchar add,uchar date);uchar ds_read(uchar add);void set_time();5、陰陽歷轉(zhuǎn)換模塊該模塊主要是實現(xiàn)公歷年、月、日到農(nóng)歷年、月、日的轉(zhuǎn)換;使用時,調(diào)用函數(shù)void conversion(bit c,uchar year,uchar month,uchar d

24、ay) ,輸入公歷年、月、日,函數(shù)會自行進行尋址、運算和轉(zhuǎn)換;然后就可以讀取對應(yīng)農(nóng)歷閏年標(biāo)志(run)世紀(jì)(c_moon),年(year_moon),月(month_moon),日(day_moon)的值。第四節(jié)、protues軟件仿真軟件是來自英國labcenter electronics公司的eda工具軟件,proteus軟件有十多年的歷史,在全球廣泛使用,除了其具有和其它eda工具一樣的原理布圖、pcb自動或人工布線及電路仿真的功能外,其革命性的功能是,他的電路仿真是互動的,針對微處理器的應(yīng)用,還可以直接在基于原理圖的虛擬原型上編程,并實現(xiàn)軟件源碼級的實時調(diào)試,如有顯示及輸出,還能看到運

25、行后輸入輸出的效果,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,您不需要別的,proteus為您建立了完備的電子設(shè)計開發(fā)環(huán)境!打開proteus軟件,并出畫萬年歷測試模塊電路的具體實驗電路圖。檢查所畫電路運行圖,確保沒有錯誤以后,在proteus下對原理圖進行加載keil下的源程序。加載完成后,單擊電路圖框下的開始按鈕,進行仿真,觀察lcd現(xiàn)實情況,此時lcd開始顯示相關(guān)信息。作品設(shè)計過程中有關(guān)模塊的仿真圖如下圖3-1圖3-2第二章 作品功能與特色第一節(jié)、作品功能與相關(guān)操作介紹1、能顯示當(dāng)前年、月、日、時、分、秒及星期并提示是否為陽歷閏年。按下“電源”鍵,系統(tǒng)能夠自動提取實時芯片中年、月、日

26、、星期、時、分、秒等信息,并通過運算判斷輸入年份是否為“閏年”,并用“rn(“閏年”中文首字母)”標(biāo)記出來,最后將數(shù)據(jù)進行處理,通過lcd顯示出來,如圖1-1所示:陽歷閏年圖1-12、顯示陰歷月、日,在顯示陰歷時間時能標(biāo)明是否為閏月;系統(tǒng)能自動將公歷年、月、日進行轉(zhuǎn)換,輸出相應(yīng)的農(nóng)歷年、月、日,并判段是否為陰歷“閏年”以及“閏月”,并用“rn(閏年中文首字母)” 、“ry(閏月中文首字母)”標(biāo)記。結(jié)果通過lcd顯示出來。如圖2-1所示:陰歷閏月陰歷閏年圖2-13、顯示當(dāng)前溫度;作品裝有溫度傳感器,能不斷地提取周邊環(huán)境的溫度信息,經(jīng)轉(zhuǎn)換得出溫度值;再通過lcd顯示出當(dāng)前氣溫。如圖3-1所示。圖3

27、-14、可調(diào)整顯示日期和時間;作品帶有鍵盤輸入模塊,用戶可直接按“設(shè)置”鍵進入時間調(diào)整模式,此時再按“設(shè)置”鍵可實現(xiàn)調(diào)整對象的切換,lcd會以閃爍的形式進行標(biāo)記,通過按“+”或“-”可對具體對象值進行調(diào)整。之后按“設(shè)置”直到退出時間調(diào)整模式。如下圖4-1所示設(shè)置對象閃爍 圖4-15、可設(shè)置定時鬧鐘提示;用戶可直接按“鬧鐘”鍵進入鬧鐘調(diào)整模式,在通過按“設(shè)置”進行時、分、秒調(diào)整的切換,lcd會以閃爍形式標(biāo)記,按“+”、“-”對具體值得調(diào)整。之后按“設(shè)置”直到退出鬧鐘調(diào)整模式。如下圖所示之后按“設(shè)置”知道退出時間調(diào)整模式。如下圖5-1所示圖5-16、能夠進行整點和半點語音報時;系統(tǒng)會自動對當(dāng)前時間

28、進行監(jiān)測,如果是半點、或整點,系統(tǒng)會自行啟動語音模塊,并將當(dāng)前時間輸入,之后通過揚聲器將具體時間用語音方式報出。7、能用語音提示任意時刻的時間、溫度、公歷日期、農(nóng)歷日期;用戶按下“語音提示”鍵后,作品會將當(dāng)前時間,溫度,公歷日期,農(nóng)歷日期全部信息輸入到語音模塊,經(jīng)單片機處理轉(zhuǎn)換后,將全部信息通過揚聲器告知用戶。8、能在掉電的情況下保存用戶之前的所有設(shè)置系統(tǒng)在工作的過程中會將用戶設(shè)置的所有信息輸送到外部ram進行存儲,在掉電的情況下,ram中的信息不會丟失,實時芯片也因嵌有鋰電池可以正常工作,再次上電時,系統(tǒng)會將外部ram的信息重新載入,保證用戶信息的安全。9、具有日程管理與音樂提示功能用戶可直

29、接按“鬧鐘”鍵進入日程管理模式,按“設(shè)置”進行日程設(shè)置對象選擇,其中有多達38個日程可供設(shè)置,用戶設(shè)定日期時間后,系統(tǒng)會將設(shè)置信息傳送到外部ram存儲,然后再定時的進行信息提取與監(jiān)測,如果符合條件,就調(diào)用歌曲就行提示,有五首歌可供選擇。具體數(shù)值可用“+”、“-”鍵進行調(diào)整。歌曲可重復(fù)播放,可按任意鍵退出。圖9-110、能夠?qū)崿F(xiàn)錄音、留言功能;按下“錄音”鍵可實現(xiàn)即時錄音的功能,用戶留言后,可通過按“放音”鍵播放留言信息,用戶可將錄音內(nèi)容設(shè)為鬧鐘響鈴。例如可錄“時間到了”等當(dāng)鬧鐘響鈴。11、能夠無線控制相關(guān)操作并實現(xiàn)竊聽;本作品主機上裝有無線接收與譯碼模塊,與之配合的有一帶有無線發(fā)射與編碼模塊的

30、遙控器。遙控器上帶有與主機對應(yīng)的“-”、“語音提示”、“錄音”、“放音”。用戶可隨時、隨地通過按遙控上“語音提示”鍵控制主機播放有關(guān)信息。按“錄音”鍵可竊聽有關(guān)信息。按“-”鍵退出鬧鐘提示。這樣使得作品的實用性更高。12、能夠?qū)崿F(xiàn)秒表計時;按“秒表”鍵進入秒表計時模式,“-”控制計時開始與暫停,按“*” 實現(xiàn)計時清零,按“+”鍵退出秒表計時模式;回到主頁面。如圖下圖所示:圖12-113、能夠?qū)崿F(xiàn)收音功能;本作品帶有無線收音模塊,能夠作為一臺收音機使用。打開收音機開關(guān),按“復(fù)位”鍵復(fù)位,按“切換”鍵調(diào)節(jié)頻道。第二節(jié)、作品特色本作品除實現(xiàn)要求的所有功能指標(biāo)外。另具有以下多個功能特色。1、語音提示任

31、意時刻的時間、溫度、日期;2、無線進行相關(guān)操做,使用者可在任何時間、地方通過遙控器進行控制或得到相關(guān)信息。3、作品加入收音機模塊,共用無線模塊中的接收電路,實現(xiàn)收音機功能;4、能復(fù)讀、留言、錄音;5、擁有秒表計時功能;6、溫度測量并顯示;7、能精確地推算陽歷閏年、陰歷閏年、以及陰歷閏月;8、模塊睡眠待機等;第三節(jié)、個別功能指標(biāo)(1)溫度測量精確到0.5度;(2)實時時鐘在+25攝氏度的溫度下運行天的誤差不超過兩秒;(3)無線控制距離不小于10m;(4)秒表計時誤差不超過0.01s;第三章 設(shè)計問題總結(jié)從方案的制定到如今的總結(jié),前后經(jīng)歷了整整一個月,其間設(shè)計進程曲曲折折、進進退退。問題更是接二連

32、三出現(xiàn),但事實上,問題正為我們提供了一個學(xué)習(xí)、思考、鍛煉的平臺。從問題的提出到解決就是一個進步成長的過程,參加比賽設(shè)計的目的所在。似乎整個設(shè)計過程就是由問題串聯(lián)起來的。讓我們踏著問題的腳步一起回顧我們的設(shè)計之路。一開始,我們選用isd4002做為語音模塊的主芯片,還未調(diào)試,就碰到的第一個棘手的問題,isd4002的工作電壓為2.73.3v,在5v的電壓環(huán)境下無法正常工作,更別說上電調(diào)試,當(dāng)時我們只好參考其他類似電壓轉(zhuǎn)換問題的解決方法,之后采用3v電壓單獨供電,通信口串1k上拉電阻的方法減小電平差距,解決了這一問題。接下來就是isd4002錄放音指令問題。按照芯片pdf資料,芯片正常上電后,發(fā)送

33、地址,在發(fā)送錄放音指令即可,但我們實際操作中上述方法總會出現(xiàn)失誤,高失誤率是這一模塊所不予許的,為此我們用整整10天進行調(diào)試,終于我們發(fā)現(xiàn)上電后,先發(fā)送一錄放音指令(不會有響應(yīng),但系統(tǒng)會標(biāo)志后面的初始地址),然后發(fā)送地址,再發(fā)送錄放音指令進行錄放操作,能過大大減小失誤率。問題到此也得到解決。這點要特別注意。引腳共用問題。本來實時時鐘模塊的硬軟件設(shè)計進程都非常順利,單獨操作基本不會出現(xiàn)問題,這是我們一開始覺得欣慰的地方,但后來為節(jié)省設(shè)計中引腳接口的使用,實時時鐘模塊與液晶顯示模塊共用了p0數(shù)據(jù)接口。但這樣以來,兩模塊經(jīng)常出現(xiàn)亂碼;為什么呢,理論上應(yīng)該可以的;這問題困擾了我們整整4天。后來通過比較

34、亂碼規(guī)律,終于我們推測出可能是接口的灌電流加大了,所以導(dǎo)致引腳的電平轉(zhuǎn)換時間發(fā)生變化。因此兩模塊的電路時序圖也要相應(yīng)改變,最后我們在兩個模塊的每個操作環(huán)節(jié)都實行了延時,成功的解決了這一問題。因此我們士氣大振。響應(yīng)時間問題,在溫度測量這一模塊中,上電后我們直接對模塊初始化,然后采集溫度數(shù)據(jù),但測出的的溫度總是85攝氏度,也就是說錯誤,一開始我們百思不得其解,都完全符合元件的時序圖,一番周折后,我們才意思到,可能是元件含有電容等元件,上電充電需要一定的響應(yīng)時間,果然我們上電后先延時300ms后再初始化測量,數(shù)據(jù)就完全正確了。這一點也是容易被忽略的。干擾問題,在模塊組合時,本來收音機模塊在外面單獨使

35、用十分正常,但一組合起來信號就十分不穩(wěn)定,干擾很大,以至聽不清。開始大家以為天線不夠長,就加長了天線,但于事無補;后有認(rèn)為實驗場地信號不好或擺設(shè)角度不對,結(jié)果去空曠場地全方位調(diào)試也沒用,隊伍大受打擊,但大家并不氣餒,參考市場上相關(guān)產(chǎn)品后,我們發(fā)現(xiàn)大部分產(chǎn)品是給收音機這一模塊單獨供電的。我們就將供電電源分開來,結(jié)果大快人心。接著我們又做了其他門面的調(diào)試,最后總結(jié)出問題的所在單片機的晶振頻率較高,對收音機的干擾很大,如果同用一電源,模塊間相連干擾大。這在以后的高頻設(shè)計中因十分注意。還有就是內(nèi)存問題。一開始,各模塊編程時我們是以功能實現(xiàn)和編譯能通過為首要目的。但當(dāng)所有模塊一組合,問題就來了,ram嚴(yán)

36、重不足,開始還在找ram較大的單片機,后來發(fā)現(xiàn)者根本解決不了問題,那路在何方,之后我們回到了程序上,通過請教前輩和查找書籍我們總于認(rèn)識到了是我們編程時沒合理安排數(shù)據(jù)類型,全局變量設(shè)置過多,還有數(shù)組存儲安排錯誤,問題關(guān)鍵知道了接下來就好辦了,果然我們通過認(rèn)真調(diào)配終于也解決了這一問題。其實我們還碰到硬件布局安排,接口分配等問題,它們也在我們的設(shè)計實驗過程中得到的解決,這就是學(xué)習(xí)成長,是比賽設(shè)計的真正目的,也是一種樂趣,過程是辛苦的,也是快樂的。其實沒有比難題解決的那一刻更讓人興奮地了。路漫漫其修遠(yuǎn)兮,吾等將上下而求索。附錄a 作品實物圖主機圖一 主機圖二 圖三 遙控器附錄b 頁面顯示圖圖一 主頁面

37、圖二 時間、日期設(shè)置圖三 日程、鬧鐘頁面圖四 日程、鬧鐘調(diào)整圖五 秒表計時頁面附錄c 系統(tǒng)源程序部分代碼#include#include#include#include #include#includemain() uchar t=2,h1,h2,m1,m2,y1,y2,d1,d2,ym1,ym2,dm1,dm2,i,temp12,time1,time2,time3,time4,time5,time6;bit u,v;tmod=0x01;th0=-(5200/256);tl0=-(5200%256);ie=0x82; init(); /初始化溫度測量模塊、實時時鐘模塊、液晶顯示模塊while(

38、1) keyscan(); if(alarm=0) / 判斷鬧鐘、日程調(diào)整標(biāo)志alarm if(flag1=1) /判斷鬧鐘標(biāo)志位 led=0; init2();isdh=0xe2;isdl=0x40; isdx(isdl);isdx(isdh);ss=1;delay2(3000);isdx(0xf0);ss=1;stopp();led=1; if(flag3=1)/判斷日程提醒標(biāo)志位 init2();/初始化語音模塊if(rmusic=1)/歌曲播放isdh=0xe1;isdl=0x00; if(rmusic=2)isdh=0xe1;isdl=0x32; if(rmusic=3)isdh=0

39、xe1;isdl=0x70; if(rmusic=4)isdh=0xe1;isdl=0xb0; if(rmusic=5)isdh=0xe1;isdl=0xff; isdx(isdl);isdx(isdh);ss=1;delay2(20000);isdx(0xf0);ss=1; stopp();led=1; if(flag=0) /判斷時間調(diào)整標(biāo)志位 sec=ds_read(0); /提取時、分、秒信息 min=ds_read(2); hour=ds_read(4); write_sfm2(2,hour); writestring(xianshi13); /顯示時、分、秒信息 write_sfm

40、2(4,min); writestring(xianshi14); write_sfm2(6,sec); writestring(xianshi15); if(e|hour=0&min=0&sec=0)/顯示切換、初始化主頁面 day=ds_read(6); /提取年、月、日信息date=ds_read(7);month=ds_read(8);year=ds_read(9);write_com(0x80); writestring(xianshi234);panduan1(d,year);if(leap)write_data(0x52);write_data(0x4e); elsewrites

41、tring(xianshi17);if(d) write_sfm1(3,19); else write_sfm1(3,20); write_sfm1(4,year); /顯示年、月、日等信息 writestring(xianshi10);write_sfm1(6,month); writestring(xianshi11);write_sfm2(0,date); writestring(xianshi12);write_com(0x88);writestring(xianshi235); conversion(d,year,month,date); /公歷轉(zhuǎn)農(nóng)歷if(leap2)write_d

42、ata(0x52);write_data(0x4e); elsewritestring(xianshi17);if(run)write_com(0x8a);write_data(0x52);write_data(0x59);writestring(xianshi5month_moon);writestring(xianshi11);writestring(xianshi2day_moon);if(month_moon11)writestring(xianshi17);write_com(0x98); writestring(xianshi3day); write_com(0x9b);write

43、string(xianshi17);get_temper_value(); /采集溫度信息 conversion1();p=buf11;q=buf10; write_com(0x9c); write_data(0x30+p);write_data(0x30+q); write_com(0x9d);writestring(xianshi30); e=0; if(hour=ahour&min=amin&sec=asec)/鬧鐘時間比較 flag1=1; /鬧鐘標(biāo)志flag1=1; if(min=0&sec=30) /檢查日程 for(i=1;i4); rmusic=(temp12&0x0f); i

44、f(month=rmonth&date=rdate&rhour=hour) flag3=1;break; if(t) delaym(300); /提取并顯示溫度信息 get_temper_value(); conversion1();p=buf11;q=buf10; write_com(0x9c); write_data(0x30+p);write_data(0x30+q);t-; if(sec=0|sec=10|sec=20|sec=30|sec=40|sec=50) /調(diào)整溫度 get_temper_value(); conversion1();p=buf11;q=buf10; write

45、_com(0x9c); write_data(0x30+p);write_data(0x30+q); if(min=30|min=0)&sec=0) /整點半點報時 init2();led=0;h1=hour/10;h2=hour%10;m1=min/10;m2=min%10;h1=shiweih1; h2=geweih2; m1=shiweim1; m2=geweim2;fangyin(0x96,3000);fangyin(h1,3000);fangyin(h2,3000);fangyin(0xa0,3000);fangyin(m1,3000);fangyin(m2,3000);if(min

46、!=0) fangyin(0xaa,3000);stopp();led=1; if(key5=0) /任意時間語音提示 delay1(5);if(key5=0)init2();led=0;h1=hour/10;h2=hour%10;m1=min/10;m2=min%10;h1=shiweih1; h2=geweih2;m1=shiweim1;m2=geweim2;p=shiweip;q=geweiq;y1=month/10;y2=month%10;d1=date/10;d2=date%10;ym1=month_moon/10;ym2=month_moon%10;dm1=day_moon/10;dm2=day_moon%10;y1=shiweiy1;y2=geweiy2;d1=shiweid1;d2=geweid2;ym1=shiweiym1;ym2=geweiym2;dm1=shiweidm1;dm2=geweidm2;fangyin(0x96,3000);fangyin(h1,3000);fangyin(h2,3000);fangyin(0xa0,3000);fangyin(m1,3000);fangyin(m2,3000);fangyin(0xaa,

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論