版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、鄭州科技學(xué)院 帶有液晶顯示的定時(shí)鬧鐘 院(系): 電子工程系 專(zhuān)業(yè)班級(jí): 11機(jī)電一體化技術(shù) 學(xué) 號(hào): 201129012 學(xué)生姓名: 郭月華 指導(dǎo)教師: 張軍 2013年11月-2014年3月鄭州大學(xué)畢業(yè)設(shè)計(jì)(論文)開(kāi)題報(bào)告課題名稱(chēng) 基于單片機(jī)液晶定時(shí)鬧鐘的設(shè)計(jì)課題來(lái)源教師命題課題類(lèi)型ex指導(dǎo)教師 張軍學(xué)生姓名郭月華學(xué) 號(hào)201129012專(zhuān) 業(yè) 電子工程開(kāi)題報(bào)告內(nèi)容:(調(diào)研資料的準(zhǔn)備,設(shè)計(jì)的目的、要求、思路與預(yù)期成果;任務(wù)完成的階段內(nèi)容及時(shí)間安排;完成設(shè)計(jì)(論文)所具備的條件因素等。)一、調(diào)研資料準(zhǔn)備學(xué)習(xí)電子繪圖protel 99 se、multisim2001、keil等相關(guān)軟件通過(guò)網(wǎng)絡(luò)
2、及各種相關(guān)書(shū)籍查找相關(guān)信息二、設(shè)計(jì)目的 1了解lcd顯示器顯示的基本原理 2. 了解用lcd液晶顯示有什么好處3. 掌握并學(xué)會(huì)用單片機(jī)at89c52控制的硬件電路的設(shè)計(jì)和軟件設(shè)計(jì) 4. 能夠正確實(shí)現(xiàn)基于單片機(jī)的液晶屏顯示的定時(shí)電子鬧鐘設(shè)計(jì)功能三、設(shè)計(jì)要求1、顯示器可顯示輸出定時(shí)時(shí)間,顯示格式為“時(shí)時(shí) 分分 秒秒”2. 可顯示日期,具有萬(wàn)年歷的功能,同時(shí)可修改時(shí)間 2、由lcd閃動(dòng)來(lái)做秒表計(jì)數(shù)表示 3、用戶(hù)可通過(guò)按鍵調(diào)整時(shí)間,按鍵數(shù)量盡可能少四、設(shè)計(jì)思路1. 利用at89c52單片機(jī)芯片作為程序控制系統(tǒng)再加上其它外圍電路進(jìn)行輔 助,具體電路的設(shè)計(jì)包括:?jiǎn)纹瑱C(jī)最小系統(tǒng)、鍵盤(pán)、液晶顯示等電路。 2.
3、 按設(shè)計(jì)要求編寫(xiě)程序并調(diào)試3. 輸出用液晶屏顯示五、預(yù)期成果1、設(shè)計(jì)一個(gè)基于單片機(jī)的可調(diào)節(jié)時(shí)間、可定時(shí)的液晶顯示鬧鐘 2、軟件編程及功能調(diào)試六、論文階段內(nèi)容及時(shí)間安排第1周至第2周:收集材料,撰寫(xiě)開(kāi)題報(bào)告第3周至第4周:撰寫(xiě)文獻(xiàn)綜述和外文翻譯,設(shè)計(jì)電路總體方案第5周至第7周:進(jìn)行系統(tǒng)軟件功能分析,軟件模塊的確定,編寫(xiě)軟件第8周至第9周:整體系統(tǒng)的軟硬件調(diào)試第10周至第11周:總結(jié)分析數(shù)據(jù),畢業(yè)論文的撰寫(xiě) 第12周:提交畢業(yè)設(shè)計(jì)(論文)成果,準(zhǔn)備答辯六、完成設(shè)計(jì)(論文)所具備的條件因素硬件條件:?jiǎn)纹瑱C(jī)、lcd液晶顯示屏、萬(wàn)能板、放大器、按鍵、蜂鳴器等軟件條件:電子繪圖軟件protel 99 se
4、、multisim2001、keil。方法:(1)通過(guò)網(wǎng)絡(luò)及各種相關(guān)書(shū)籍查找相關(guān)信息,確定使用的元器件。(2)以單片機(jī)at89s52為核心,開(kāi)發(fā)一個(gè)完整的系統(tǒng),包括硬件設(shè)計(jì)和軟件的編程。(3)使用protel軟件,繪制原理圖、pcb,并進(jìn)行元器件安裝、焊接及調(diào)試檢測(cè)達(dá)到預(yù)期的目的。指導(dǎo)教師簽名: 日期: 鄭州大學(xué)畢業(yè)設(shè)計(jì)(論文)任務(wù)書(shū)題目 基于stc89c52 專(zhuān)業(yè) 電子工程 學(xué)號(hào) 201129012 姓名 郭月華 主要內(nèi)容、基本要求、主要參考資料等:一、 主要內(nèi)容采用stc89c52單片機(jī)為核心,復(fù)位電路,時(shí)鐘電路,鬧鐘指示電路,lcd顯示電路等組成,軟件選用匯編語(yǔ)言編程。利用單片機(jī)可將數(shù)字
5、顯示于lcd顯示屏上,并能通過(guò)按鍵來(lái)調(diào)節(jié)時(shí)間和定時(shí)。二、 基本要求1、顯示器可顯示輸出定時(shí)時(shí)間,顯示格式為“時(shí)時(shí) 分分 秒秒”。2、由lcd液晶顯來(lái)做秒表計(jì)數(shù)表示。3、用戶(hù)可通過(guò)按鍵調(diào)整時(shí)間,按鍵數(shù)量盡可能少。三、 主要參考資料1 余發(fā)山 單片機(jī)原理及應(yīng)用技術(shù) 中國(guó)礦業(yè)大學(xué)出版社2 張毅剛 單片機(jī)應(yīng)用設(shè)計(jì) 哈出爾濱工業(yè)大學(xué)版社3 李剛 51系列單片機(jī)系統(tǒng)設(shè)計(jì)與應(yīng)用技巧4 房小翠 王金鳳 單片機(jī)微型計(jì)算機(jī)與機(jī)電接口技術(shù) 北京:國(guó)防工業(yè)出版社5 李珍 單片機(jī)原理與控制技術(shù) 北京:清華大學(xué)出版社6 范立南 單片機(jī)接口與控制技術(shù) 沈陽(yáng):遼寧大學(xué)出版社7 張友德 單片機(jī)微型原理應(yīng)用與實(shí)踐 上海:復(fù)旦大學(xué)
6、出版社8 李華 mcs51系列單片機(jī)實(shí)用接口技術(shù) 北京:北京航空大學(xué)出版社 完 成 期 限: 指導(dǎo)教師簽名: 專(zhuān)業(yè)負(fù)責(zé)人簽名: 年 月 日郭總的沒(méi)有摘要,而且沒(méi)有英文摘要,無(wú)法插入附錄有點(diǎn)亂,圖形和和你的一樣,結(jié)束語(yǔ)和致謝也沒(méi)有任務(wù)書(shū)也是和你的一樣至于其他的不是什么太大的毛病,我可以幫你們改記得征文的開(kāi)頭用tob 鍵,別按空格目 錄第1章 設(shè)計(jì)方案1 設(shè)計(jì)方案論證71.1 應(yīng)用71.2 方案選擇71.3 總設(shè)計(jì)框圖及分析82 硬件電路設(shè)計(jì)102.1 系統(tǒng)時(shí)鐘電路設(shè)計(jì)102.2系統(tǒng)復(fù)位電路的設(shè)計(jì)102.3鬧鐘指示電路設(shè)計(jì)102.4 電子鬧鐘的顯示電路設(shè)計(jì)102.5 仿真圖113.1 概述133.
7、2 主模塊的設(shè)計(jì)133.3 基本顯示模塊設(shè)計(jì)133.4 時(shí)間設(shè)定模塊設(shè)計(jì)143.5 鬧鈴功能的實(shí)現(xiàn)153.6程序174 設(shè)計(jì)總結(jié)38摘要單片機(jī)自20世紀(jì)70年代問(wèn)世以來(lái),以其,除了cpu外,使用lcd液晶顯示來(lái)進(jìn)行輸出顯示,使用stc89c52單片機(jī)進(jìn)行驅(qū)動(dòng)。通過(guò)lcd能夠較為準(zhǔn)確地顯示時(shí)、分、秒。四個(gè)簡(jiǎn)單的按鍵實(shí)現(xiàn)對(duì)時(shí)間的調(diào)整。軟件方面采用c語(yǔ)言編程。整個(gè)電子鐘系統(tǒng)能完成時(shí)間的顯示、調(diào)時(shí)、校時(shí)和三組定時(shí)鬧鐘的功能。選用單片機(jī)最小系統(tǒng)應(yīng)用程序,添加比較程序、時(shí)間調(diào)整程序及蜂鳴程序,通過(guò)時(shí)間比較程序觸發(fā)發(fā)蜂鳴,實(shí)現(xiàn)鬧鐘功能,完成設(shè)計(jì)所需求的軟件環(huán)境。介紹并使用keil單片機(jī)模擬調(diào)試軟件,測(cè)試程序
8、的可行性并用proteus進(jìn)行仿真。關(guān)鍵詞:?jiǎn)纹瑱C(jī),定時(shí)器,中斷,鬧鐘,lcdabstractbecause of its extremely high performance-price ratio, the single-chip computer (scc) has been paid great attention to ever since it came out in 1970s of 20th century, and has gained an extensive applicable field and fast development. among all kinds of
9、 sccs, 51 scc is the most typical and representative one.this design, adopting stc89c52 chip as the core part with some necessary peripheral circuits, is a simple electronic clock which uses 5v dc as the power supply. in hardware aspect, besides the cpu, eight seven-segment lcd digi-tubes are used f
10、or display, which work in a dynamically scanning display mode and driven by stc89c52chip. the lcds can accurately indicate hour 、 minute and second. four buttons can be used to adjust the time. while in the software aspect, the programming language is c language. the whole electronic clock system ha
11、s functions of time display, adjustment 、timing and three groups of alarm function. choose the smallest scm system applications,add comparison procedures, time to adjust procedures and faint buzzing procedures, through relatively faint buzzing trigger procedures to achieve alarm clock function, comp
12、leted the design needs of the software environment. keil introduced and the use of scm software simulation debugging, testing the feasibility and proteus by simulation.keyword: single slice machine,in fixed time machine,break off,alarm clock,lcd1 設(shè)計(jì)方案論證1.1 應(yīng)用近幾年,單片機(jī)在各個(gè)領(lǐng)域得到廣泛的應(yīng)用。從工業(yè)到人們的日常生活,大部分的科技產(chǎn)品都
13、是通過(guò)單片機(jī)來(lái)控制。在它問(wèn)世之前,自動(dòng)控制設(shè)備不能被廣泛的應(yīng)用,這是因?yàn)榭刂圃O(shè)備的體積龐大,耗電量大,價(jià)格昂貴。在第一臺(tái)微處理器成功研制不久,第一個(gè)單片機(jī)就問(wèn)世了。因?yàn)槠湫∏傻捏w積,低功耗,以及高效的性能,單片機(jī)受到了大家的歡迎。今天,單片機(jī)成為了解決低復(fù)雜度,中等復(fù)雜度控制問(wèn)題的傳統(tǒng)選擇。我們選擇的方法是單片機(jī)開(kāi)發(fā)設(shè)計(jì)使用的傳統(tǒng)方法,通過(guò)本次設(shè)計(jì),可以了解整個(gè)單片機(jī)開(kāi)發(fā)的流程。 利用stc89c52單片機(jī)結(jié)合七段顯示器完成的簡(jiǎn)易的定時(shí)鬧鈴時(shí)鐘,干電路系統(tǒng)由秒信號(hào)發(fā)生器、“時(shí)、分、秒”計(jì)數(shù)器、譯碼器及顯示器、校時(shí)電路、鬧鐘電路組成。秒信號(hào)產(chǎn)生器是整個(gè)系統(tǒng)的時(shí)基信號(hào),它直接決定計(jì)時(shí)系統(tǒng)的精度,一
14、般用石英晶體振蕩器加分頻器來(lái)實(shí)現(xiàn)。譯碼顯示電路將“時(shí)”、“分”、“秒”計(jì)數(shù)器的輸出送到七段顯示譯碼驅(qū)動(dòng)器譯碼驅(qū)動(dòng),通過(guò)lcd液晶顯示屏顯示出來(lái)。鬧鐘電路是用比較器來(lái)比較計(jì)時(shí)系統(tǒng)和定時(shí)系統(tǒng)的輸出狀態(tài),如果計(jì)時(shí)系統(tǒng)和定時(shí)系統(tǒng)的輸出狀態(tài)相同,則發(fā)出一個(gè)脈沖信號(hào),再和一個(gè)高頻信號(hào)混合,送到放大電路驅(qū)動(dòng)揚(yáng)聲器發(fā)聲,從而實(shí)現(xiàn)定時(shí)鬧響的功能。通過(guò)設(shè)置現(xiàn)在的時(shí)間及顯示鬧鈴設(shè)置時(shí)間,并在定時(shí)時(shí)間發(fā)出一陣聲響,可以進(jìn)步擴(kuò)充控制電器的啟停等。1.2 方案選擇用單片機(jī)來(lái)設(shè)計(jì)數(shù)字鐘,軟件實(shí)現(xiàn)各種功能比較方便,但因軟件的執(zhí)行需要一定的時(shí)間,所以就會(huì)出現(xiàn)誤差。因此我進(jìn)一步努力,通過(guò)對(duì)比實(shí)際的時(shí)鐘,查找出誤差的來(lái)源,并作出調(diào)
15、整,使得誤差盡可能減小,達(dá)到實(shí)際數(shù)字鐘系統(tǒng)的允許誤差范圍。在程序設(shè)計(jì)中,采用模塊化的程序設(shè)計(jì)思想,對(duì)整個(gè)設(shè)計(jì)劃分了若干個(gè)模塊,先對(duì)各個(gè)模塊分別進(jìn)行設(shè)計(jì),然后整合各個(gè)模塊,進(jìn)行仿真模擬,對(duì)出現(xiàn)的錯(cuò)誤進(jìn)行分析,然后找出問(wèn)題的所在,改進(jìn)程序,再仿真模擬,觀察結(jié)果、分析結(jié)果,直至最終結(jié)果滿(mǎn)足設(shè)置要求。電子鬧鐘應(yīng)包括秒信號(hào)發(fā)生器、時(shí)間顯示電路、按鍵電路、供電電源以及鬧鈴指示電路等幾部分。按鍵功能說(shuō)明:k1,設(shè)置時(shí)間和鬧鐘的小時(shí);k2,設(shè)置小時(shí)以及設(shè)置鬧鐘的開(kāi)關(guān);k3,設(shè)置分鐘和鬧鐘的分鐘;k4;設(shè)置完成退出。1.3 總設(shè)計(jì)框圖及分析cpu按鈕電路復(fù)位、時(shí)鐘等電路電源系統(tǒng)鬧鈴聲指示電路液晶顯示器顯示電路
16、圖 1電子鬧鐘的主電路指的是圖中cpu線框內(nèi)部分,主要涉及到cpu電路和按鍵按鈕電路。主機(jī)的設(shè)計(jì)具體地說(shuō)有:1)系統(tǒng)時(shí)鐘電路設(shè)計(jì);2)系統(tǒng)復(fù)位電路設(shè)計(jì);3)按鍵與按鈕電路設(shè)計(jì);4)鬧鈴聲指示電路設(shè)計(jì)。本設(shè)計(jì)是定時(shí)鬧鐘的設(shè)計(jì),由單片機(jī)stc89c52芯片和lcd顯示器為核心,輔以必要的電路,構(gòu)成的一個(gè)單片機(jī)電子定時(shí)鬧鐘。電子鐘設(shè)計(jì)可采用數(shù)字電路實(shí)現(xiàn),也可以采用單片機(jī)來(lái)完成。數(shù)字電子鐘是用數(shù)字集成電路構(gòu)成的,用數(shù)碼管顯示“時(shí)”,“分”,“秒”的現(xiàn)代計(jì)時(shí)裝置。若用數(shù)字電路完成,所設(shè)計(jì)的電路相當(dāng)復(fù)雜,大概需要十幾片數(shù)字集成塊,其功能也主要依賴(lài)于數(shù)字電路的各功能模塊的組合來(lái)實(shí)現(xiàn),焊接的過(guò)程比較復(fù)雜,成本
17、也非常高。若用單片機(jī)來(lái)設(shè)計(jì)制作完成,由于其功能的實(shí)現(xiàn)主要通過(guò)軟件編程來(lái)完成,那么就降低了硬件電路的復(fù)雜性,而且其成本也有所降低,所以在該設(shè)計(jì)中采用單片機(jī)利用stc89c52,它是低功耗、高性能的cmos型8位單片機(jī)。片內(nèi)帶有4kb的flash存儲(chǔ)器,且允許在系統(tǒng)內(nèi)改寫(xiě)或用編程器編程。另外, stc89c52的指令系統(tǒng)和引腳與8051完全兼容,片內(nèi)有128b 的ram、32條i/o口線、2個(gè)16位定時(shí)計(jì)數(shù)器、5個(gè)中斷源、一個(gè)全雙工串行口等。stc89c52單片機(jī)結(jié)合七段顯示器設(shè)計(jì)的簡(jiǎn)易定時(shí)鬧鈴時(shí)鐘,可以設(shè)置現(xiàn)在的時(shí)間及顯示鬧鈴設(shè)置時(shí)間,若時(shí)間到則發(fā)出一陣聲響,進(jìn)步可以擴(kuò)充控制電器的啟停。設(shè)計(jì)內(nèi)容
18、包括了秒信號(hào)發(fā)生器、時(shí)間顯示電路、按鍵電路、供電電源以及鬧鈴指示電路等幾部分的設(shè)計(jì)。采用四個(gè)開(kāi)關(guān)來(lái)控制定時(shí)鬧鐘的工作狀態(tài),分別為:k1、設(shè)置時(shí)間和鬧鐘的小時(shí);k2、設(shè)置小時(shí)以及設(shè)置鬧鐘的開(kāi)關(guān);k3、設(shè)置分鐘和鬧鐘的分鐘;k4、設(shè)置完成退出。設(shè)計(jì)完成的定時(shí)鬧鐘達(dá)到課程設(shè)計(jì)的要求,在到達(dá)到定時(shí)的時(shí)間時(shí)就會(huì)立即發(fā)出蜂鳴聲音,持續(xù)一分鐘。顯示采用的六位數(shù)碼管電路,如果亮度感覺(jué)不夠,可以通過(guò)提升電阻來(lái)調(diào)節(jié),控制程序中延遲時(shí)間的長(zhǎng)短,可以獲得不同的效果。也可以改蜂鳴器為繼電器,通過(guò)控制繼電器從而進(jìn)一步擴(kuò)展的來(lái)控制一些家電開(kāi)關(guān)。2 硬件電路設(shè)計(jì)2.1 系統(tǒng)時(shí)鐘電路設(shè)計(jì)對(duì)于時(shí)間要求不是很高的系統(tǒng),只要按圖進(jìn)行
19、設(shè)計(jì)就能使系統(tǒng)可靠起振并穩(wěn)定運(yùn)行。但由于原理圖中的c1、c2電容起著系統(tǒng)時(shí)鐘頻率微調(diào)和穩(wěn)定的作用,因此,在本鬧鐘系統(tǒng)的實(shí)際應(yīng)用中一定要注意正確選擇參數(shù)(30±10 pf),并保證對(duì)稱(chēng)性(盡可能匹配),選用正牌廠家生產(chǎn)的瓷片或云母電容,如果可能的話(huà),溫度系數(shù)要盡可能低。實(shí)驗(yàn)表明,這2個(gè)電容元件對(duì)鬧鐘的走時(shí)誤差有較大關(guān)系。2.2系統(tǒng)復(fù)位電路的設(shè)計(jì)智能系統(tǒng)一般應(yīng)有手動(dòng)或上電復(fù)位電路。復(fù)位電路的實(shí)現(xiàn)通常有兩種方式:)rc復(fù)位電路;)專(zhuān)用µf監(jiān)控電路。前者實(shí)現(xiàn)簡(jiǎn)單,成本低,但復(fù)位可靠性相對(duì)較低;后者成本較高,但復(fù)位可靠性高,尤其是高可靠重復(fù)復(fù)位。對(duì)于復(fù)位要求高、并對(duì)電源電壓進(jìn)行監(jiān)視的
20、場(chǎng)合,大多采用這種方式。2.3鬧鐘指示電路設(shè)計(jì)鬧鈴指示可以有聲或光兩種形式。本系統(tǒng)采用聲音指示。關(guān)鍵元件是蜂鳴器。蜂鳴器有無(wú)源和有源兩種,前者需要輸入聲音頻率信號(hào)才能正常發(fā)聲,后者則只需外加適當(dāng)直流電源電壓即可,元件內(nèi)部已封裝了音頻振蕩電路,在得電狀態(tài)下即起振發(fā)聲。市場(chǎng)上的有源蜂鳴器分為3、5、6等系列,以適應(yīng)不同的應(yīng)用需要。鬧鐘電路是用比較器來(lái)比較計(jì)時(shí)系統(tǒng)和定時(shí)系統(tǒng)的輸出狀態(tài),如果計(jì)時(shí)系統(tǒng)和定時(shí)系統(tǒng)的輸出狀態(tài)相同,則發(fā)出一個(gè)脈沖信號(hào),再和一個(gè)高頻信號(hào)混合,送到放大電路驅(qū)動(dòng)揚(yáng)聲器發(fā)聲,從而實(shí)現(xiàn)定時(shí)鬧響的功能。其電路設(shè)計(jì)參見(jiàn)系統(tǒng)原理圖。2.4 電子鬧鐘的顯示電路設(shè)計(jì)本次課程設(shè)計(jì)采用了液晶顯示電路
21、。液晶顯示是一種被動(dòng)式的顯示器,即液晶本身不發(fā)光,而是利用液晶處理后能夠改變光纖傳輸方向的特性,達(dá)到顯示字符或者圖形的目的。這類(lèi)顯示器具有體積小、重量輕、功耗較低、顯示內(nèi)容豐富等特點(diǎn)。lcd顯示模塊把lcd顯示屏、背景光源、線路板和驅(qū)動(dòng)集成電路等部件構(gòu)成一個(gè)整體,作為一個(gè)獨(dú)立部件使用,具有功能較強(qiáng)、易于控制、接口簡(jiǎn)單等優(yōu)點(diǎn)。lcd顯示模塊按顯示功能可分為:lcd段式顯示模塊、lcd字符型顯示模塊、lcd圖形式顯示模塊三類(lèi),在本設(shè)計(jì)中將會(huì)采用字符型顯示模塊。lcd顯示器內(nèi)部共有14個(gè)引腳,包括:8個(gè)數(shù)據(jù)引腳,3個(gè)控制引腳,3個(gè)電源引腳。利用該顯示器來(lái)顯示“時(shí)”、“分”、“秒”計(jì)數(shù)器的輸出狀態(tài)。到
22、達(dá)定時(shí)電路時(shí)根據(jù)計(jì)時(shí)系統(tǒng)的輸出狀態(tài)產(chǎn)生一脈沖信號(hào),然后去觸發(fā)一音頻發(fā)生器實(shí)現(xiàn)鬧鈴。校時(shí)電路時(shí)用來(lái)對(duì)“時(shí)”、“分”、“秒”顯示數(shù)字進(jìn)行校對(duì)調(diào)整的。2.5 仿真圖運(yùn)行仿真圖3 程序設(shè)計(jì)3.1 概述軟件設(shè)計(jì)的重點(diǎn)在于秒脈沖信號(hào)的產(chǎn)生、顯示的實(shí)現(xiàn)、以及按鍵的處理等方面?;谲浖拿朊}沖信號(hào)通常有延時(shí)法和定時(shí)中斷法。延時(shí)法一般采用查詢(xún)方式,在延時(shí)子程序前后必然需要查詢(xún)和處理的程序,導(dǎo)致誤差的產(chǎn)生,因此其秒脈沖的精度不高;中斷法的原理是,利用單片機(jī)內(nèi)部的定時(shí)器溢出中斷來(lái)實(shí)現(xiàn)。例如,設(shè)定某定時(shí)器每100ms中斷1次,則10次的周期為1s。這種實(shí)現(xiàn)法的特點(diǎn)是精度高,秒脈沖的發(fā)生和其他處理可以并行進(jìn)行。本系統(tǒng)中
23、所使用的晶振頻率為12mhz。3.2 主模塊的設(shè)計(jì)主模塊是系統(tǒng)軟件的主框架。結(jié)構(gòu)化程序設(shè)計(jì)一般有“自上而下”和“自下而上”兩種方式,“自上而下”法的核心就是主框架的構(gòu)建。它的合理與否關(guān)系到程序最終的功能的多少和性能的好壞。本系統(tǒng)的主模塊的程序框圖如下圖2所示:系統(tǒng)初始化定時(shí)初始化中斷初始化串口初始化顯示待機(jī)指示符設(shè)定鬧鈴時(shí)間判設(shè)置鬧鈴時(shí)間否?顯示刷新啟動(dòng)走時(shí)有關(guān)變量初始化刷新顯示判時(shí)或分變化否?秒指示判秒到否?鬧鈴判是否到鬧鈴時(shí)間?延時(shí)yyyy圖 23.3 基本顯示模塊設(shè)計(jì)基本顯示模塊設(shè)計(jì)的重點(diǎn)是由顯示代碼取得相應(yīng)的段碼,顯示段碼數(shù)據(jù)的并行發(fā)送,高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由
24、于電子鐘,石英表,石英鐘都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用lcd顯示器代替顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有時(shí),分,秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),片選的靈活性好。程序流程如圖3所示將進(jìn)制時(shí)分秒數(shù)據(jù)轉(zhuǎn)化為顯示代碼 關(guān)顯示以免顯示抖動(dòng)通過(guò)串口將時(shí)分秒數(shù)據(jù)傳入數(shù)碼管打開(kāi)顯示圖 33.4 時(shí)間設(shè)定模塊設(shè)計(jì)時(shí)間設(shè)定模塊的設(shè)計(jì)要點(diǎn)是按鍵的去抖處理與“一鍵多態(tài)”的處理。即只涉及4個(gè)鍵完成了6位時(shí)間參數(shù)的設(shè)定。軟件法去抖動(dòng)的實(shí)質(zhì)是軟件延時(shí),即檢測(cè)到某一鍵狀態(tài)變化后延時(shí)一段時(shí)間,再檢測(cè)該按
25、鍵的狀態(tài)是否還保持著,如是則作為按鍵處理,否則,視為抖動(dòng),不予理睬。去抖中的延時(shí)時(shí)間一般參考資料多描述為10ms左右,實(shí)際應(yīng)用中,應(yīng)大于20ms,否則,會(huì)導(dǎo)致按一次作多次處理,影響程序正常執(zhí)行?!耙绘I多態(tài)”即多功能鍵的實(shí)現(xiàn)思想是,根據(jù)按鍵時(shí)刻的系統(tǒng)狀態(tài),決定按鍵采取何種動(dòng)作,即何種功能。其流程圖如下圖4所示:設(shè)置鍵嗎?設(shè)置模塊初始化將在編參數(shù)送顯示緩沖區(qū)閃爍標(biāo)志為真?將當(dāng)前位的顯示代碼置暗代碼調(diào)基本顯示模塊刷新顯示設(shè)置鍵嗎?當(dāng)前編輯位下移(下一位)當(dāng)前編輯的是分各位?結(jié)束設(shè)定鍵嗎?根據(jù)當(dāng)前位的性質(zhì)分別進(jìn)行處理(含上下限判斷) 圖 43.5 鬧鈴功能的實(shí)現(xiàn)鬧鈴功能的實(shí)現(xiàn)涉及到兩個(gè)方面:鬧鈴時(shí)間設(shè)
26、定和是否鬧鈴判別與相應(yīng)處理。鬧鈴時(shí)間設(shè)定模塊的設(shè)計(jì)可參照時(shí)間設(shè)定模塊,這里著重闡述鬧鈴判別與處理模塊的設(shè)計(jì)問(wèn)題。鬧鈴判別與鬧鈴處理的關(guān)鍵在于判別何時(shí)要進(jìn)行鬧鈴。當(dāng)時(shí)十位、時(shí)個(gè)位、分十位、分個(gè)位中任一位發(fā)生改變(進(jìn)位)時(shí),就必須進(jìn)行鬧鈴判別。譯碼顯示電路將“時(shí)”、“分”、“秒”計(jì)數(shù)器的輸出送到七段顯示譯碼驅(qū)動(dòng)器譯碼驅(qū)動(dòng),通過(guò)六個(gè)七段lcd顯示器顯示出來(lái)。鬧鈴電路根據(jù)計(jì)時(shí)系統(tǒng)的輸出狀態(tài)產(chǎn)生一脈沖信號(hào),然后加上一個(gè)高頻或低頻信號(hào)送到放大電路驅(qū)動(dòng)蜂鳴器發(fā)聲實(shí)現(xiàn)報(bào)時(shí)。校時(shí)電路是直接加一個(gè)脈沖信號(hào)到時(shí)計(jì)數(shù)器或者分計(jì)數(shù)器或者秒計(jì)數(shù)器來(lái)對(duì)“時(shí)”、“分”、“秒”顯示數(shù)字進(jìn)行校對(duì)調(diào)整。其流程圖如下所示:時(shí)十位、個(gè)
27、位,分十位、個(gè)位改變了設(shè)置鬧鈴標(biāo)志是否設(shè)置了鬧鈴清除鬧鈴標(biāo)志判當(dāng)前時(shí)間是設(shè)定時(shí)間中斷返回中斷返回鬧鈴判別處理圖5.1 圖5.2慮到實(shí)用性,在該電子鐘的設(shè)計(jì)中修改定時(shí)或調(diào)整時(shí)間時(shí)采用了閃爍,而且以定時(shí)20組鬧鐘。在編程上,首先進(jìn)行了初始化定義了程序的入口地址以及中斷的入口地址,在主程序的開(kāi)始定義了一組固定單元用來(lái)存儲(chǔ)計(jì)數(shù)的秒,分,時(shí)以及定時(shí)時(shí)間的序號(hào)等。在顯示程序段中主要進(jìn)行了閃爍的處理,采用定時(shí)器中斷置標(biāo)志位,再與位選相互結(jié)合的方法來(lái)控制調(diào)時(shí)或定時(shí)中的閃爍。時(shí),分,秒顯示則是用了軟件譯碼(查表)的方式,再用了一段固定的程序段進(jìn)行進(jìn)制轉(zhuǎn)化。初始化之后,用中斷方式對(duì)其計(jì)數(shù),計(jì)數(shù)的同時(shí)采用了定時(shí)器比
28、較的方法,比較當(dāng)前計(jì)數(shù)時(shí)間與定時(shí)時(shí)間是否相等,若相等則將鬧鈴標(biāo)志位置數(shù)。由于定義了定時(shí)鬧鐘組,在這里采用中斷組次,每中斷一次比較一組鬧鐘,避免了一次比較中斷時(shí)間過(guò)長(zhǎng),影響下次中斷時(shí)間。顯示之后查詢(xún)鬧鈴標(biāo)志位是否與前面所置數(shù)相等,若相等則響鈴。為了避免響鈴影響顯示,采用了每顯示幾屏以后在顯示程序中出現(xiàn)脈沖,驅(qū)動(dòng)喇叭,不會(huì)影響顯示。之后用查詢(xún)方式對(duì)按鍵進(jìn)行判斷,若有鍵按下,則進(jìn)行軟件延時(shí)消抖,避免了抖動(dòng)引起的干擾,執(zhí)行相應(yīng)的定時(shí),選時(shí)或調(diào)時(shí)程序段。對(duì)當(dāng)前時(shí)間或定時(shí)時(shí)間修改后又返回到最初的顯示程序段,如此循環(huán)下去。3.6程序*版本號(hào)01 */* 模塊構(gòu)成: */#include <reg51.
29、h>#include"hdy.h" #include"hs.c"#include"iap_ds1302.h" #include"lcd1602.h" #include"zd.h"#include"isp_52.h"/#include"szxt.h"#include"ajjc.h"#define bgsjcl 30 /背光時(shí)間#define xssjcl 100 /顯示時(shí)間#define jbjcyssj 2 /警報(bào)解除延時(shí)/定義端
30、口sbit fmqdk=p03; /鬧鐘端口sbit lcd_bg=p32; /背光/時(shí)間相關(guān)變量uchar mmzc=0; /秒暫存uchar nzsj42=0,0,0,0,0; /警戒時(shí)間bit bjsnbzw=0;char xlys_t=0;struct nzjg /定義結(jié)構(gòu)體鬧鐘數(shù)據(jù)結(jié)構(gòu) / 包含: uchar nzsj_ss; /鬧鐘時(shí)間_時(shí) uchar nzsj_ff; /鬧鐘時(shí)間_分 uchar nzsnbz; /鬧鐘標(biāo)志 0:禁止 1:允許 uchar xlsj; /響鈴時(shí)間 ;struct nzjg nz1,nz2,nz3,nz4,nz5,nz6; /模式 菜單 相關(guān)變量 顯
31、示相關(guān)變量char msbz=0,xxbz=0; /模式標(biāo)志位,選項(xiàng)標(biāo)志位 bit xsgxbzw=0,xscshbzw=0,xssnbzw=1,bgsnbzw=1; /顯示更新標(biāo)志位,顯示初始化標(biāo)志位,char bgsj_t=bgsjcl,xssj_t=xssjcl; /顯示相關(guān) 顯示使能時(shí)間,背光使能時(shí)間/調(diào)試用變量int a_ts=50,b_ts=50,c_ts=0,d_ts=0,e_ts=0,f_ts=0;bit bzw_ts=0;/* * */* * */void csmk()/ ksdqsj(); / lcd1602xssz (2,0x1e,mm);/測(cè)試模塊/測(cè)試模塊/測(cè)試模塊/
32、測(cè)試模塊/測(cè)試模塊/測(cè)試模塊/測(cè)試模塊/測(cè)試模塊/測(cè)試模塊/* * */* * */設(shè)定基礎(chǔ)程序/功能加減設(shè)定/參數(shù)1:設(shè)定變量指針 uchar *sdbl/參數(shù)2:加上限 uchar shang/參數(shù)3:減下線 uchar xia/返回值:是否越界 char 上限越界:1 下線越界-1 否則:0uchar jjcl(uchar sdbl,uchar shang,uchar xia)char a=0; if(k1bzw=1) k1bzw=0; if(sdbl>=shang) (sdbl)+; sdbl=xia; a=1; else (sdbl)+; if(k2bzw=1) k2bzw=0
33、; if(sdbl<=xia) (sdbl)-; sdbl=shang; a=-1; else (sdbl)-; return sdbl;/時(shí)間設(shè)定void ajsd2()uchar sx,xx,*szbl; if(xxbz!=0) switch(xxbz) case 1:sx=99;xx=0;szbl=&nnn;break; case 2:sx=12;xx=1;szbl=&yyy;break; case 3:sx=31;xx=1;szbl=&rrr;break; case 4:sx=23;xx=0;szbl=&sss;break; case 5:sx=5
34、9;xx=0;szbl=&fff;break; case 6:sx=0 ;xx=0;szbl=&mmm;break; *szbl=jjcl(*szbl,sx,xx); /鬧鐘時(shí)間設(shè)定void ajsd3() / struct nzjg *nzzz; if(xxbz!=0) switch(msbz) case 2:nzzz=&nz1;break; case 3:nzzz=&nz2;break; case 4:nzzz=&nz3;break; case 5:nzzz=&nz4;break; case 6:nzzz=&nz5;break; ca
35、se 7:nzzz=&nz6;break; if(xxbz=1) nzzz->nzsj_ss=jjcl(nzzz->nzsj_ss,23,0); else if(xxbz=2) nzzz->nzsj_ff=jjcl(nzzz->nzsj_ff,59,0); else if(xxbz=3) nzzz->xlsj=jjcl(nzzz->xlsj,99,5); else if(xxbz=4) if(k2bzw=1)|(k1bzw=1) k2bzw=0; k1bzw=0; if(nzzz->nzsnbz=1) nzzz->nzsnbz=0; el
36、se nzzz->nzsnbz=1; /按鍵處理模塊void ajclmk() ajjc(); if(k0bzw=1)|(k1bzw=1)|(k2bzw=1)|(k3bzw=1) if(xssj_t=0) k0bzw=0; msbz=0; xsgxbzw=1; bgsj_t=bgsjcl; /使能顯示相關(guān)變量 xssj_t=xssjcl; if(k0bzw=1) k0bzw=0; xxbz=0; xscshbzw=0; / 標(biāo)記為未初始化 msbz+; if(msbz=8) msbz=0; if(k3bzw=1) k3bzw=0; xsgxbzw=1; xxbz+; if(msbz=1)
37、 if(xxbz=7) xxbz=0; ksxrsj(); ksdqsj(); msbz=0; xscshbzw=0; else if(msbz>1) if(xxbz=5) xxbz=0; msbz=0; xscshbzw=0; / iap_jjsjcc(); switch(msbz) case 1:ajsd2();break; /時(shí)間設(shè)定 case 2: case 3: case 4: case 5: case 6: case 7:ajsd3();break; /警戒設(shè)定 /* * */顯示模塊/顯示模塊/顯示模塊/顯示模塊/顯示模塊/顯示模塊/顯示模塊/顯示模塊/顯示模塊/顯示模塊/
38、顯示模塊/顯示模塊/顯示模塊/顯示模塊/顯示模塊/顯示模塊/顯示模塊/顯示模塊/顯示模塊/顯示模塊/顯示模塊/顯示模塊/顯示模式0 時(shí)間顯示/顯示時(shí)間void xsms0() if(xscshbzw=0) xscshbzw=1; / 標(biāo)記為已初始化 lcd1602csh (); /lcd初始化 xsgxbzw=1; / 標(biāo)記為等待顯示 /顯示時(shí)間初屏 lcd1602xszfc(16,0x10," 2013-12-15 "); lcd1602xszfc(16,0x20," 18:16:20 "); if(xsgxbzw=1) xsgxbzw=0; lcd1
39、602xssz (2,0x14,nn); lcd1602xssz (2,0x17,yy); lcd1602xssz (2,0x1a,rr); lcd1602xssz (2,0x22,ss); lcd1602xssz (2,0x25,ff); lcd1602xssz (2,0x28,mm); if(nz1.nzsnbz=1)|(nz2.nzsnbz=1)|(nz3.nzsnbz=1)|(nz4.nzsnbz=1)|(nz5.nzsnbz=1)|(nz6.nzsnbz=1) lcd1602xszfc (2,0x2c,""); else lcd1602xszfc (2,0x2c,
40、" "); /顯示模式2 時(shí)間設(shè)定顯示void xsms2() if(xscshbzw=0) xscshbzw=1; / 標(biāo)記為已初始化 lcd1602csh (); /lcd初始化 xsgxbzw=1; / 標(biāo)記為等待顯示 /顯示時(shí)間初屏 lcd1602xszfc(16,0x10," 2013-12-15 "); lcd1602xszfc(16,0x20," 18:16:20 "); /載入設(shè)定值 nnn=nn;yyy=yy;rrr=rr;sss=ss;fff=ff;mmm=mm; if(xsgxbzw=1) xsgxbzw=0;
41、lcd1602xssz (2,0x14,nnn); lcd1602xssz (2,0x17,yyy); lcd1602xssz (2,0x1a,rrr); lcd1602xssz (2,0x22,sss); lcd1602xssz (2,0x25,fff); lcd1602xssz (2,0x28,mmm); switch(xxbz) case 0:lcd1602gbkz(lcd1602_ggb ,0x14);break; case 1:lcd1602gbkz(lcd1602_gbsd,0x15);break; case 2:lcd1602gbkz(lcd1602_gbsd,0x18);bre
42、ak; case 3:lcd1602gbkz(lcd1602_gbsd,0x1b);break; case 4:lcd1602gbkz(lcd1602_gbsd,0x23);break; case 5:lcd1602gbkz(lcd1602_gbsd,0x26);break; case 6:lcd1602gbkz(lcd1602_gbsd,0x29);break; /顯示模式3 鬧鐘時(shí)間設(shè)定顯示 void xsms3() struct nzjg *nzzz; uchar dz1=0; if(xscshbzw=0) xscshbzw=1; / 標(biāo)記為已初始化 lcd1602csh (); /lcd初始化 xsgxbzw=1; / 標(biāo)記為等待顯示 /鬧鐘時(shí)間設(shè)定初屏 lcd1602xszfc(16,0x20,"* 18:16 -s *"); lcd1602xszfc(16,0x10,"
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 感動(dòng)中國(guó)先進(jìn)人物事跡(11篇)
- 開(kāi)展節(jié)能宣傳活動(dòng)總結(jié)
- 愚人節(jié)活動(dòng)策劃(集錦15篇)
- 高中生物教師提升職稱(chēng)答辯題目精 選8題
- 關(guān)于彩虹小知識(shí)
- 2016山西道法試卷+答案+解析
- 超聲引導(dǎo)下坐骨神經(jīng)阻滯聯(lián)合股神經(jīng)阻滯在糖尿病患者膝關(guān)節(jié)以下截肢手術(shù)中的應(yīng)用效果分析
- 產(chǎn)業(yè)研究報(bào)告-中國(guó)糧油行業(yè)發(fā)展現(xiàn)狀、市場(chǎng)規(guī)模、投資前景分析(智研咨詢(xún))
- 二零二五年度航空航天投資理財(cái)合同模板3篇
- 銷(xiāo)售渠道的選擇與管理培訓(xùn)
- 小學(xué)一年級(jí)數(shù)學(xué)上冊(cè)口算練習(xí)題總匯
- 潤(rùn)滑油知識(shí)-液壓油
- 2024年江蘇省中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 《中國(guó)香文化》課件
- 盤(pán)錦市重點(diǎn)中學(xué)2024年中考英語(yǔ)全真模擬試卷含答案
- 平安產(chǎn)險(xiǎn)湖南省商業(yè)性雞蛋價(jià)格指數(shù)保險(xiǎn)條款
- 提高臥床患者踝泵運(yùn)動(dòng)的執(zhí)行率
- 廣東省普通高中學(xué)生檔案
- 初中公寓主任述職報(bào)告
- 九年級(jí)下冊(cè)滬教版上?;瘜W(xué)5.2酸和堿的性質(zhì)研究 課件
- ISO17025經(jīng)典培訓(xùn)教材
評(píng)論
0/150
提交評(píng)論