版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘要</b></p><p> 本設(shè)計(jì)是作息時(shí)間控制器的設(shè)計(jì),由單片機(jī)AT89C52芯片和LED數(shù)碼管為核心,輔以必要的電路,構(gòu)成的一個(gè)單片機(jī)電子作息時(shí)間控制器。該功能的實(shí)現(xiàn)主要通過(guò)軟件編程來(lái)完成,降低了硬件電路的復(fù)雜性,成本也有所降低。</p><p> 設(shè)計(jì)內(nèi)容包括了秒信號(hào)指示、時(shí)間“時(shí)”和“分”顯示電路、按鍵調(diào)整電路、供電電源以
2、及鬧鈴指示電路等幾部分的設(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è)置完成退出。當(dāng)作息時(shí)間控制器達(dá)到課程設(shè)計(jì)的要求,在到達(dá)設(shè)定的定時(shí)時(shí)間時(shí)蜂鳴器便被控制立即發(fā)出聲音,持續(xù)一分鐘,而后按K4鍵退出顯示閃爍狀態(tài),即恢復(fù)時(shí)鐘狀態(tài)。顯示采用的四位數(shù)碼管電路,定時(shí)提示采用蜂鳴器發(fā)聲指示。本設(shè)計(jì)方案也可以經(jīng)過(guò)改進(jìn)作為實(shí)現(xiàn)定時(shí)控制系統(tǒng)的控制
3、定時(shí)電路。</p><p> 關(guān)鍵詞:作息時(shí)間 單片機(jī) 顯示 定時(shí)</p><p><b> 目錄</b></p><p><b> 1 概述3</b></p><p> 1.1 課程設(shè)計(jì)的目的和意義3</p><p> 1.2 單片機(jī)課程設(shè)計(jì)的要求3<
4、/p><p> 1.3 作息時(shí)間控制器的設(shè)計(jì)要求3</p><p> 2 系統(tǒng)總體方案及硬件設(shè)計(jì)4</p><p> 2.1 系統(tǒng)總體設(shè)計(jì)4</p><p> 2.2 系統(tǒng)各個(gè)部分的電路設(shè)計(jì)5</p><p><b> 3 軟件的設(shè)計(jì)8</b></p><p&g
5、t;<b> 3.1 概述8</b></p><p> 3.2 主模塊的設(shè)計(jì)8</p><p> 3.3顯示模塊設(shè)計(jì)9</p><p> 3.4 時(shí)間設(shè)定模塊設(shè)計(jì)9</p><p> 3.5 鬧鈴功能的實(shí)現(xiàn)10</p><p> 4 Proteus軟件仿真12</p&
6、gt;<p> 4.1仿真結(jié)果12</p><p> 4.2性能及誤差分析14</p><p> 5課程設(shè)計(jì)體會(huì)15</p><p><b> 參考文獻(xiàn)15</b></p><p> 附1 程序源代碼16</p><p><b> 附2原理圖26&l
7、t;/b></p><p><b> 1 概述</b></p><p> 1.1 課程設(shè)計(jì)的目的和意義</p><p> 綜合利用所學(xué)單片機(jī)知識(shí)完成一個(gè)單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)并仿真、由硬件實(shí)現(xiàn),從而加深對(duì)單片機(jī)軟硬知識(shí)的理解,獲得初步的應(yīng)用經(jīng)驗(yàn),為走出校門(mén)從事單片機(jī)應(yīng)用的相關(guān)工作打下良好基礎(chǔ)。</p><p>
8、 1.2 單片機(jī)課程設(shè)計(jì)的要求</p><p> 1、進(jìn)一步熟悉和掌握單片機(jī)的內(nèi)部結(jié)構(gòu)和工作原理,了解單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的基本方法和步驟;</p><p> 2、掌握單片機(jī)仿真軟件Proteus的使用方法; </p><p> 3、掌握鍵盤(pán)和顯示器在的單片機(jī)控制系統(tǒng)中的應(yīng)用。</p><p> 4、掌握撰寫(xiě)課程設(shè)計(jì)報(bào)告的方法。<
9、/p><p> 1.3 作息時(shí)間控制器的設(shè)計(jì)要求</p><p> 1、設(shè)計(jì)制作一個(gè)單片機(jī)數(shù)字鐘及控制電路。</p><p> 2、使用4位七段顯示器來(lái)顯示現(xiàn)在的時(shí)間。顯示格式為“時(shí)-分”,由LED閃動(dòng)作為秒計(jì)數(shù)表示。</p><p> 3、可以設(shè)定作息時(shí)間,并進(jìn)行到時(shí)提示。</p><p> 4、能夠根據(jù)預(yù)先設(shè)
10、定好的作息時(shí)間表自動(dòng)啟??刂齐娐?,完成對(duì)外部設(shè)備的實(shí)時(shí)控制。</p><p> 5、可以設(shè)置現(xiàn)在的時(shí)間及顯示定時(shí)設(shè)置時(shí)間。</p><p> 2 系統(tǒng)總體方案及硬件設(shè)計(jì)</p><p> 2.1 系統(tǒng)總體設(shè)計(jì)</p><p><b> 1、方案比較</b></p><p> 方案一:采用
11、數(shù)字電路實(shí)現(xiàn)。數(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ù)雜,成本也非常高。</p><p> 方案二:用單片機(jī)來(lái)設(shè)計(jì)制作完成,由于其功能的實(shí)現(xiàn)主要通過(guò)軟件編程來(lái)完成,那么就降低了硬件電路的復(fù)雜性,而且其成本也有所降低,</p>
12、<p> 經(jīng)過(guò)上面的對(duì)比本設(shè)計(jì)采用單片機(jī)作為設(shè)計(jì)的主體。</p><p><b> 2、單片機(jī)的選型</b></p><p> AT89C52是低功耗、高性能的CMOS型8位單片機(jī)。片內(nèi)帶有4KB的Flash存儲(chǔ)器,且允許在系統(tǒng)內(nèi)改寫(xiě)或用編程器編程。另外, AT89C51的指令系統(tǒng)和引腳與8051完全兼容,片內(nèi)有128B 的RAM、32條I/O口線(xiàn)
13、、2個(gè)16位定時(shí)計(jì)數(shù)器、5個(gè)中斷源、一個(gè)全雙工串行口等。基于以上優(yōu)點(diǎn),本設(shè)計(jì)采用AT89C52單片機(jī)。</p><p><b> 3、總體電路的設(shè)計(jì)</b></p><p> 電子鬧鐘的主體電路應(yīng)包括秒信號(hào)發(fā)生器、時(shí)間顯示電路、按鍵電路、供電電源以及鬧鈴指示電路等幾部分。</p><p> 按鍵功能說(shuō)明:K1,設(shè)置時(shí)間和鬧鐘的小時(shí);K2,
14、設(shè)置小時(shí)以及設(shè)置鬧鐘的開(kāi)關(guān);K3,設(shè)置分鐘和鬧鐘的分鐘;K4;設(shè)置完成退出。</p><p> 電子鬧鐘的系統(tǒng)框圖1如下所示:</p><p><b> 圖1 </b></p><p> 2.2 系統(tǒng)各個(gè)部分的電路設(shè)計(jì) </p><p> 1、系統(tǒng)復(fù)位電路的設(shè)計(jì)</p><p> 單片機(jī)
15、系統(tǒng)一般應(yīng)有手動(dòng)或上電復(fù)位電路。復(fù)位電路的實(shí)現(xiàn)通常有兩種方式:1)RC復(fù)位電路;2)專(zhuān)用µP監(jiān)控電路。前者實(shí)現(xiàn)簡(jiǎn)單,成本低,但復(fù)位可靠性相對(duì)較低;后者成本較高,但復(fù)位可靠性高,尤其是高可靠重復(fù)復(fù)位。對(duì)于復(fù)位要求高、并對(duì)電源電壓進(jìn)行監(jiān)視的場(chǎng)合,大多采用這種方式。</p><p> 復(fù)位電路主要用來(lái)在單片機(jī)的程序進(jìn)入死循環(huán)后,能使單片機(jī)重新從頭執(zhí)行程序而不會(huì)無(wú)休止的執(zhí)行程序。</p><
16、;p> 本設(shè)計(jì)采用了上電按鈕電平復(fù)位電路,如圖2</p><p><b> 圖2</b></p><p> 2、系統(tǒng)時(shí)鐘電路設(shè)計(jì)</p><p> 對(duì)于時(shí)間要求不是很高的系統(tǒng),只要按圖進(jìn)行設(shè)計(jì)就能使系統(tǒng)可靠起振并穩(wěn)定運(yùn)行。但由于實(shí)際工作過(guò)程中的C1、C2電容起著系統(tǒng)時(shí)鐘頻率微調(diào)和穩(wěn)定的作用,因此,在實(shí)際應(yīng)用中一定要注意正確選擇參數(shù)
17、(30±10 PF),并保證對(duì)稱(chēng)性(盡可能匹配),這兩個(gè)電容元件對(duì)鬧鐘的走時(shí)誤差有很大關(guān)系,并且選用正規(guī)的瓷片或云母電容,如果可能的話(huà),溫度系數(shù)要盡可能低。另外,瓷片電容的實(shí)際焊接距離不應(yīng)該離單片機(jī)太遠(yuǎn)否則誤差較大。具體的時(shí)鐘電路如圖三所示:</p><p><b> 圖 3</b></p><p> 3、鬧鐘指示電路設(shè)計(jì)</p><
18、p> 鬧鈴指示可以有聲或光兩種形式。本系統(tǒng)采用聲音指示。關(guān)鍵元件是蜂鳴器。蜂鳴器有無(wú)源和有源兩種,前者需要輸入聲音頻率信號(hào)才能正常發(fā)聲,后者則只需外加適當(dāng)直流電源電壓即可,元件內(nèi)部已封裝了音頻振蕩電路,在得電狀態(tài)下即起振發(fā)聲。市場(chǎng)上的有源蜂鳴器分為3V、5V、6V等系列,以適應(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)混合,送到
19、放大電路驅(qū)動(dòng)揚(yáng)聲器發(fā)聲,從而實(shí)現(xiàn)定時(shí)鬧響的功能。其電路設(shè)計(jì)參見(jiàn)系統(tǒng)原理圖。</p><p><b> 4、顯示電路的設(shè)計(jì)</b></p><p> 本設(shè)計(jì)采用了4位數(shù)碼管顯示電路。在4位LED顯示時(shí),為了簡(jiǎn)化電路,降低成本,采用動(dòng)態(tài)顯示的方式,4個(gè)LED顯示器共用一個(gè)8位的I/O, 4位LED數(shù)碼管的位選線(xiàn)分別由相應(yīng)的P2.2~P2. 5控制,而將其相應(yīng)的段選線(xiàn)并
20、聯(lián)在一起,由一個(gè)8位的I/O口控制,即P0口。由于采用了四位數(shù)碼管,所以數(shù)碼管顯示“時(shí)”、“分”;秒的顯示選用了一個(gè)發(fā)光二極管,兩滅周期為兩秒,即點(diǎn)亮和熄滅時(shí)間均為一秒。到達(dá)定時(shí)時(shí)間時(shí),由計(jì)時(shí)系統(tǒng)的輸出狀態(tài)產(chǎn)生一脈沖信號(hào),然后去觸發(fā)蜂鳴器實(shí)現(xiàn)鬧鈴。校時(shí)電路是用來(lái)對(duì)“時(shí)”、“分”顯示數(shù)字進(jìn)行校對(duì)調(diào)整的。具體的電路設(shè)計(jì)如圖4示:</p><p><b> 圖4</b></p>&
21、lt;p> 5、定時(shí)和調(diào)時(shí)電路的設(shè)計(jì)</p><p> 本設(shè)計(jì)因?yàn)槭褂玫降逆I數(shù)目比較少,不宜采用矩陣式鍵盤(pán),采用了功能直觀(guān)簡(jiǎn)潔方便的獨(dú)立式鍵盤(pán),而且考慮了鍵盤(pán)的消抖問(wèn)題。比較容易理解。每個(gè)鍵的具體功能如下:</p><p> K1,設(shè)置時(shí)間和鬧鐘的小時(shí);K2,設(shè)置小時(shí)以及設(shè)置鬧鐘的開(kāi)關(guān);K3,設(shè)置分鐘和鬧鐘的分鐘;K4;設(shè)置完成退出。</p><p>
22、 按鍵定義如圖5所示:</p><p><b> 圖5</b></p><p><b> 3 軟件的設(shè)計(jì)</b></p><p><b> 3.1 概述</b></p><p> 軟件設(shè)計(jì)的重點(diǎn)在于秒脈沖信號(hào)的產(chǎn)生、顯示的實(shí)現(xiàn)、以及按鍵的處理等方面?;谲浖拿朊}沖信號(hào)
23、通常有延時(shí)法和定時(shí)中斷法。延時(shí)法一般采用查詢(xún)方式,在延時(shí)子程序前后必然需要查詢(xún)和處理的程序,導(dǎo)致誤差的產(chǎn)生,因此其秒脈沖的精度不高;中斷法的原理是,利用單片機(jī)內(nèi)部的定時(shí)器溢出中斷來(lái)實(shí)現(xiàn)。本設(shè)計(jì)使定時(shí)器每50ms中斷1次,則20次的周期為1s。這種實(shí)現(xiàn)法的特點(diǎn)是精度高,秒脈沖的發(fā)生和其他處理可以并行進(jìn)行。本系統(tǒng)中所使用的晶振頻率為12MHZ。</p><p> 3.2 主模塊的設(shè)計(jì)</p><
24、p> 主模塊是系統(tǒng)軟件的主框架。結(jié)構(gòu)化程序設(shè)計(jì)一般有“自上而下”和“自下而上”兩種方式,“自上而下”法的核心就是主框架的構(gòu)建。它的合理與否關(guān)系到程序最終的功能的多少和性能的好壞。本系統(tǒng)的主模塊的程序框圖如下圖6所示:</p><p><b> 圖6</b></p><p><b> 3.3顯示模塊設(shè)計(jì)</b></p>&
25、lt;p> 顯示是由顯示代碼取得相應(yīng)的段碼,顯示段碼數(shù)據(jù)的并行發(fā)送,用LED顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有時(shí),分,秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),片選的靈活性好。</p><p> 程序流程如圖7所示。</p><p><b> 圖7</b></p><p> 3.4 時(shí)間設(shè)定模塊設(shè)計(jì)<
26、/p><p> 時(shí)間設(shè)定模塊的設(shè)計(jì)要點(diǎn)是按鍵的去抖處理與多種狀態(tài)公用一個(gè)鍵的處理問(wèn)題。即只涉及4個(gè)鍵完成了4位時(shí)間參數(shù)的設(shè)定。軟件法去抖動(dòng)的實(shí)質(zhì)是用延時(shí),即檢測(cè)到某一鍵狀態(tài)變化后延時(shí)一段時(shí)間,再檢測(cè)該按鍵的狀態(tài)是否還保持著,如是則作為按鍵處理,否則,視為抖動(dòng),不予理睬。去抖中的延時(shí)時(shí)間一般參考資料多描述為10ms左右,實(shí)際應(yīng)用中,應(yīng)大于20ms,否則,會(huì)導(dǎo)致按一次作多次處理,影響程序正常執(zhí)行。</p>
27、<p> 按鍵消抖流程圖原理如圖8所示:</p><p><b> 圖8</b></p><p> 3.5 鬧鈴功能的實(shí)現(xiàn)</p><p> 鬧鈴功能的實(shí)現(xiàn)涉及到兩個(gè)方面:鬧鈴時(shí)間設(shè)定和是否鬧鈴判別與相應(yīng)處理。鬧鈴時(shí)間設(shè)定模塊的設(shè)計(jì)可參照時(shí)間設(shè)定模塊,這里著重闡述鬧鈴判別與處理模塊的設(shè)計(jì)問(wèn)題。鬧鈴判別與鬧鈴處理的關(guān)鍵在于判別
28、何時(shí)要進(jìn)行鬧鈴。在每次循環(huán)掃描的過(guò)程中,判斷現(xiàn)在的時(shí)間和定時(shí)的時(shí)間是否一致。一致的話(huà),鬧鈴電路根據(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í)間調(diào)節(jié)電路根據(jù)不同狀態(tài)下的具體按鍵意義將相對(duì)應(yīng)的計(jì)數(shù)器加以改變,并通過(guò)數(shù)碼管顯示出來(lái)。</p><p><b> 具體如圖9示:</b></p><p><b>
29、 圖9</b></p><p> 在該電子鐘的設(shè)計(jì)中修改定時(shí)或調(diào)整時(shí)間時(shí)采用了閃爍。在編程上,首先進(jìn)行了初始化定義了程序的入口地址以及中斷的入口地址,在主程序的開(kāi)始定義了一組固定單元用來(lái)存儲(chǔ)計(jì)數(shù)的秒,分,時(shí)以及定時(shí)時(shí)間的序號(hào)等。</p><p> 在顯示程序段中主要進(jìn)行了閃爍的處理,采用定時(shí)器中斷置標(biāo)志位,再與位選相互結(jié)合的方法來(lái)控制調(diào)時(shí)或定時(shí)中的閃爍。時(shí),分,秒顯示則是
30、用了軟件譯碼(查表)的方式,再用了一段固定的程序段進(jìn)行進(jìn)制轉(zhuǎn)化。初始化之后,用中斷方式對(duì)其計(jì)數(shù),計(jì)數(shù)的同時(shí)采用了定時(shí)器比較的方法,比較當(dāng)前計(jì)數(shù)時(shí)間與定時(shí)時(shí)間是否相等,若相等則將鬧鈴標(biāo)志位置數(shù),使得蜂鳴器工作。</p><p> 4 Proteus軟件仿真</p><p> 本次課程設(shè)計(jì)所采用的程序調(diào)試軟件為wave6000集成調(diào)試軟件,所采用的仿真軟件為protus 6 profess
31、ional軟件。本設(shè)計(jì)在Proteus軟件上進(jìn)行了仿真,實(shí)現(xiàn)了設(shè)計(jì)所要求的具體內(nèi)容。</p><p><b> 4.1仿真結(jié)果</b></p><p> 1、定時(shí)初值(如圖10)</p><p><b> 圖10</b></p><p> 2、調(diào)整后的定時(shí)值(如圖11)</p>
32、<p><b> 圖11</b></p><p> 3、時(shí)鐘顯示時(shí)間初值(如圖12)</p><p><b> 圖12</b></p><p> 4、調(diào)整后的時(shí)間值(如圖13)</p><p><b> 圖13</b></p><p&g
33、t; 4.2性能及誤差分析</p><p> 該作息時(shí)間控制器有四個(gè)按鍵: K1, K2,K3和K4。初始加電時(shí)數(shù)碼管顯示時(shí)鐘計(jì)數(shù)初值并運(yùn)行。按K1鍵進(jìn)行校時(shí),可以分別按K2和K3鍵進(jìn)行對(duì)時(shí)及分進(jìn)行單獨(dú)校時(shí),使其校正到標(biāo)準(zhǔn)時(shí)間;并按K4鍵退出。時(shí)鐘正常顯示運(yùn)行狀態(tài)時(shí),按K2鍵顯示閃爍并進(jìn)行定時(shí)時(shí)間設(shè)置,按K1鍵和K3進(jìn)行分和時(shí)的定時(shí)時(shí)間設(shè)定;并按K4鍵退出。該電路顯示的誤差主要由晶振自身的誤差所造成,晶振的誤
34、差約為0. 0001~0. 000001。在軟件的編程過(guò)程中所產(chǎn)生的誤差比較小,另外在中斷的過(guò)程中,只會(huì)在第一次計(jì)時(shí)時(shí)產(chǎn)生時(shí)間的偏移,而它所產(chǎn)生累計(jì)誤差很小,可以忽略。</p><p> 綜合以上分析,本次設(shè)計(jì)時(shí)鐘誤差較小,能得到比較理想結(jié)果,性能穩(wěn)定。</p><p><b> 5課程設(shè)計(jì)體會(huì)</b></p><p> 本次是基于單片機(jī)
35、的開(kāi)發(fā)設(shè)計(jì),通過(guò)此次硬件和軟件的設(shè)計(jì),可以對(duì)單片機(jī)開(kāi)發(fā)設(shè)計(jì)有了更多的心得體會(huì)和了解,并掌握了一定的設(shè)計(jì)思想和硬件安裝分析調(diào)試技巧,對(duì)整個(gè)單片機(jī)開(kāi)發(fā)設(shè)計(jì)的流程有了更深刻的認(rèn)識(shí)和掌握。</p><p> 分析題目并結(jié)合實(shí)際,我們選擇了自己感興趣而且有很實(shí)用的電子時(shí)鐘作息控制器作為本次課程設(shè)計(jì)的題目。通過(guò)近兩周時(shí)間的學(xué)習(xí)和探索,使我對(duì)所學(xué)的知識(shí)進(jìn)行了系統(tǒng)的復(fù)習(xí)和鞏固,并得到了有效的應(yīng)用。在以前的學(xué)習(xí)過(guò)程中不夠清晰的概
36、念得到了更好的理解。本次課程設(shè)計(jì)我們不但進(jìn)行了程序的編寫(xiě)調(diào)試和設(shè)計(jì)報(bào)告的整理,更重要的是,我們做出了實(shí)際的設(shè)計(jì)作品,很好的培養(yǎng)和鍛煉了我的動(dòng)手能力,提高了分析軟硬件之間的差別和聯(lián)系的技巧。這不僅對(duì)我以后的學(xué)習(xí)有幫助,還可以為以后的工作打下一定的基礎(chǔ)。在此期間,通過(guò)與老師和同學(xué)們之間的交流,加強(qiáng)了自身的分析問(wèn)題、解決問(wèn)題的能力,并掌握了基本的設(shè)計(jì)思想,對(duì)以后的設(shè)計(jì)有很大的指導(dǎo)意義。</p><p> 此次軟硬結(jié)合
37、的設(shè)計(jì)要求,充分調(diào)動(dòng)了我的積極性,對(duì)硬件的設(shè)計(jì)是最難忘的;調(diào)試硬件對(duì)設(shè)計(jì)者來(lái)說(shuō)是很有挑戰(zhàn)意義,更能考驗(yàn)設(shè)計(jì)者的耐心與毅力。當(dāng)然硬件需要軟件相結(jié)合,改變硬件后只要稍改程序就可以實(shí)現(xiàn)相同的功能要求。更可以通過(guò)本次的設(shè)計(jì)把設(shè)計(jì)思想應(yīng)用到更大的系統(tǒng)控制設(shè)計(jì)中。軟硬結(jié)合使我真正認(rèn)識(shí)到了理論與實(shí)際的區(qū)別,這在以后的工作和學(xué)習(xí)中給予我更好的提示,注重理論與實(shí)際相結(jié)合,注重分析選擇解決問(wèn)題的思路和方法,注重設(shè)計(jì)方案的分析選擇和設(shè)計(jì)思想的分析選擇??傊?,
38、本次設(shè)計(jì)讓我受益匪淺。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 余發(fā)山,王福忠編著. 單片機(jī)原理及應(yīng)用技術(shù).徐州:中國(guó)礦業(yè)大學(xué)出版社,2008.</p><p> [2] 陳奧初,竇振中等編著.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)踐.北京:北京航空航天大學(xué)出版社,1991.</p><p> [3
39、]陳偉人編著.MCS-51系列單片機(jī)實(shí)用子程序集錦[M].北京:清華大學(xué)出版社.1993.</p><p><b> 附1 程序源代碼</b></p><p> K1 EQU P1.0 ;在程序開(kāi)始前定義變量</p><p> K2 EQU P1.1</p><p> K3 EQU P1.2</p>
40、<p> K4 EQU P1.3</p><p><b> ORG 0000H</b></p><p><b> LJMP MAIN</b></p><p><b> ORG 000BH</b></p><p><b> LJMP TIME&l
41、t;/b></p><p><b> ORG 0100H</b></p><p><b> ;主程序:</b></p><p> MAIN:MOV SP,#50H</p><p> MOV 20H,#00H ;時(shí)間 PIN SECOND</p><p>
42、 MOV 21H,#00H ; PIN MINUTE</p><p> MOV 22H,#00H ; PIN HOUR</p><p> MOV 23H,#05H ;鬧鈴 PIN MINUTE</p><p> MOV 24H,#06H ; PIN HOUR</p><p> MOV 2
43、5H,#00H ;定義一個(gè)標(biāo)志位</p><p> MOV 30H,#00H ;時(shí)間 BCD SECOND</p><p> MOV 31H,#00H ;</p><p> MOV 32H,#00H ; BCD MINUTE</p><p> MOV 33H,#00H ;</p>
44、<p> MOV 34H,#00H ; BCD HOUR</p><p> MOV 35H,#00H ;</p><p> MOV 36H,#05H ;鬧鈴 BCD MINUTE</p><p> MOV 37H,#00H ;</p><p> MOV 38H,#06H ;
45、 BCD HOUR</p><p> MOV 39H,#00H </p><p> CPL P3.0 ;</p><p> MOV TMOD,#01H ;16位計(jì)數(shù)器 T0,方式</p><p> MOV TH0,#03CH ;賦初值</p><p> MOV TL0,#0B0H</p>
46、<p> MOV IE,#87H ;開(kāi)中斷 T0,EA=1</p><p> SETB TR0 ;T0啟動(dòng)計(jì)數(shù)</p><p> MOV R2,#14H ;計(jì)數(shù)器</p><p> MOV P2,#0FFH</p><p> LOOP:LCALL TIMEPRO ;
47、 調(diào)用現(xiàn)在時(shí)間與鬧鈴時(shí)間比較程序</p><p> LCALL DISPLAY1 ; 調(diào)用現(xiàn)在時(shí)間顯示子程序</p><p> JB K1,M1 ; 判斷按鍵是否按下</p><p> LCALL XIAODOU1 ; 調(diào)用消抖程序</p><p> MOV C,25H.0</p>
48、<p><b> JC A1</b></p><p> A1:CLR 25H.0</p><p> LCALL SETTIME ; 調(diào)用設(shè)置現(xiàn)在時(shí)間子程序</p><p><b> LJMP LOOP</b></p><p> M1:JB K2,M2
49、 ;判斷P1.1鍵是否按下</p><p> LCALL XIAODOU2</p><p> MOV C,25H.0</p><p><b> JC A2</b></p><p> A2:CLR 25H.0</p><p> LCALL SETATIME ; 調(diào)用設(shè)置鬧鐘的程序
50、</p><p><b> LJMP LOOP</b></p><p> M2:JB K4,M3</p><p> A3:LCALL XIAODOU3</p><p> MOV C,25H.0</p><p><b> JC A4</b></p>&l
51、t;p> A4:CLR 25H.0</p><p> M3:LJMP LOOP</p><p><b> SETTIME:</b></p><p> L0:LCALL DISPLAY1</p><p><b> JB K2,L1</b></p><p> L
52、CALL XIAODOU4</p><p> MOV C,25H.0</p><p><b> JC A5</b></p><p> A5:CLR 25H.0</p><p><b> INC 22H</b></p><p><b> MOV A,22H&
53、lt;/b></p><p> CJNE A,#18H,GO12</p><p> MOV 22H,#00H</p><p> MOV 34H,#00H</p><p> MOV 35H,#00H</p><p><b> LJMP L0</b></p><p&
54、gt; L1:JB K3,L2</p><p> LCALL XIAODOU5</p><p> MOV C,25H.0</p><p><b> JC A6</b></p><p> A6:CLR 25H.0</p><p><b> INC 21H</b>&l
55、t;/p><p><b> MOV A,21H</b></p><p> CJNE A,#3CH,GO11</p><p> MOV 21H,#00H</p><p> MOV 32H,#00H</p><p> MOV 33H,#00H</p><p><b&
56、gt; LJMP L0</b></p><p> GO11:MOV B,#0AH</p><p><b> DIV AB</b></p><p><b> MOV 32H,B</b></p><p><b> MOV 33H,A</b></p>
57、<p><b> LJMP L0</b></p><p> GO12:MOV B,#0AH</p><p><b> DIV AB</b></p><p><b> MOV 34H,B</b></p><p><b> MOV 35H,A<
58、;/b></p><p><b> LJMP L0</b></p><p> L2:JB K4,L0</p><p> LCALL XIAODOU3</p><p> MOV C,25H.0</p><p><b> JC AX</b></p>
59、<p> AX:CLR 25H.0</p><p><b> RET</b></p><p> SETATIME:LCALL DISPLAY2 ;調(diào)用鬧鐘設(shè)置,鬧鈴響時(shí)的顯示程序</p><p> N0:LCALL DISPLAY2</p><p><b> JB K3,N1</
60、b></p><p> LCALL XIAODOU6</p><p> MOV C,25H.0</p><p><b> JC A7</b></p><p> A7:CLR 25H.0</p><p><b> INC 24H</b></p>&
61、lt;p><b> MOV A,24H</b></p><p> CJNE A,#24,GO22</p><p> MOV 24H,#00H</p><p> MOV 38H,#00H</p><p> MOV 39H,#00H</p><p><b> LJMP N0
62、</b></p><p> N1:JB K1,N2</p><p> LCALL XIAODOU7</p><p> MOV C,25H.0</p><p><b> JC A8</b></p><p> A8:CLR 25H.0</p><p>&l
63、t;b> INC 23H</b></p><p><b> MOV A,23H</b></p><p> CJNE A,#60,GO21</p><p> MOV 23H,#00H</p><p> MOV 36H,#00H</p><p> MOV 37H,#00H
64、</p><p><b> LJMP N0</b></p><p> GO21:MOV B,#0AH</p><p><b> DIV AB</b></p><p><b> MOV 36H,B</b></p><p><b> MO
65、V 37H,A</b></p><p><b> LJMP N0</b></p><p> GO22:MOV B,#0AH</p><p><b> DIV AB</b></p><p><b> MOV 38H,B</b></p><p
66、><b> MOV 39H,A</b></p><p><b> LJMP N0</b></p><p> N2:JB K4,N0</p><p> LCALL XIAODOU3</p><p> MOV C,25H.0</p><p><b>
67、JC A9</b></p><p> A9:CLR 25H.0</p><p><b> RET</b></p><p> TIMEPRO:MOV A,21H</p><p><b> MOV B,23H</b></p><p> CJNE A,B,BK
68、</p><p><b> MOV A,22H</b></p><p><b> MOV B,24H</b></p><p> CJNE A,B,BK</p><p> SETB 25H.0</p><p> MOV C,25H.0</p><p
69、><b> JC XX</b></p><p> XX:LCALL TIMEOUT</p><p><b> BK:RET</b></p><p><b> TIMEOUT:</b></p><p> X1:LCALL BZ</p><p&g
70、t; LCALL DISPLAY2</p><p><b> CLR 25H.0</b></p><p><b> JB K4, X1</b></p><p><b> RET</b></p><p> BZ:SETB P3.0</p><p&g
71、t; MOV R7,#250</p><p> T2:MOV R6,#124</p><p> T3:DJNZ R6,T3</p><p> DJNZ R7,T2</p><p><b> CLR P3.0</b></p><p><b> JB K4,XY</b>
72、;</p><p> LCALL XIAODOU3</p><p> MOV C,25H.0</p><p><b> JC XY1</b></p><p><b> XY:RET</b></p><p> XY1:LJMP LOOP</p><
73、p> XIAODOU1:LCALL DISPLAY1</p><p> JB K1,XIAODOU1</p><p><b> MOV C,K1</b></p><p> JC XIAODOU1</p><p> LCALL DELAY</p><p><b> MOV
74、 C,K1</b></p><p> JC XIAODOU1</p><p> STOP1:MOV C,K1</p><p><b> JNC STOP1</b></p><p> LCALL DELAY</p><p><b> MOV C,K1</b>
75、;</p><p><b> JNC STOP1</b></p><p> SETB 25H.0</p><p><b> RET</b></p><p> XIAODOU2:LCALL DISPLAY2</p><p> JB K2,XIAODOU2</p&
76、gt;<p><b> MOV C,K2</b></p><p> JC XIAODOU2</p><p> LCALL DELAY</p><p><b> MOV C,K2</b></p><p> JC XIAODOU2</p><p> ST
77、OP2:MOV C,K2</p><p><b> JNC STOP2</b></p><p> LCALL DELAY</p><p><b> MOV C,K2</b></p><p><b> JNC STOP2</b></p><p>
78、 SETB 25H.0</p><p><b> RET</b></p><p> XIAODOU3:LCALL DISPLAY1</p><p> JB K4,XIAODOU3</p><p><b> MOV C,K4</b></p><p> JC XIAOD
79、OU3</p><p> LCALL DELAY</p><p><b> MOV C,K4</b></p><p> JC XIAODOU3</p><p> STOP3:MOV C,K4</p><p><b> JNC STOP3</b></p>
80、<p> LCALL DELAY</p><p><b> MOV C,K4</b></p><p><b> JNC STOP3</b></p><p> SETB 25H.0</p><p><b> RET</b></p><p&
81、gt; XIAODOU4:LCALL DISPLAY1</p><p> JB K2,XIAODOU4</p><p><b> MOV C,K2</b></p><p> JC XIAODOU4</p><p> LCALL DELAY</p><p><b> MOV C
82、,K2</b></p><p> JC XIAODOU4</p><p> STOP4:MOV C,K2</p><p><b> JNC STOP4</b></p><p> LCALL DELAY</p><p><b> MOV C,K2</b>&
83、lt;/p><p><b> JNC STOP4</b></p><p> SETB 25H.0</p><p><b> RET</b></p><p> XIAODOU5:LCALL DISPLAY1</p><p> JB K3,XIAODOU5</p>
84、;<p><b> MOV C,K3</b></p><p> JC XIAODOU5</p><p> LCALL DELAY</p><p><b> MOV C,K3</b></p><p> JC XIAODOU5</p><p> STOP
85、5:MOV C,K3</p><p><b> JNC STOP5</b></p><p> LCALL DELAY</p><p><b> MOV C,K3</b></p><p><b> JNC STOP5</b></p><p> S
86、ETB 25H.0</p><p><b> RET</b></p><p> XIAODOU6:LCALL DISPLAY2</p><p> JB K3,XIAODOU6</p><p><b> MOV C,K3</b></p><p> JC XIAODOU
87、6</p><p> LCALL DELAY</p><p><b> MOV C,K3</b></p><p> JC XIAODOU6</p><p> STOP6:MOV C,K3</p><p><b> JNC STOP6</b></p>&
88、lt;p> LCALL DELAY</p><p><b> MOV C,K3</b></p><p><b> JNC STOP6</b></p><p> SETB 25H.0</p><p><b> RET</b></p><p>
89、; XIAODOU7:LCALL DISPLAY2</p><p> JB K1,XIAODOU7</p><p><b> MOV C,K1</b></p><p> JC XIAODOU7</p><p> LCALL DELAY</p><p><b> MOV C,K
90、1</b></p><p> JC XIAODOU7</p><p> STOP7:MOV C,K1</p><p><b> JNC STOP7</b></p><p> LCALL DELAY</p><p><b> MOV C,K1</b><
91、;/p><p><b> JNC STOP7</b></p><p> SETB 25H.0</p><p><b> RET</b></p><p> DELAY:MOV R4,#14H</p><p> DL00:MOV R5,#0FFH</p>&l
92、t;p> DL11:DJNZ R5,DL11</p><p> DJNZ R4,DL00</p><p><b> RET</b></p><p> TIME:PUSH ACC</p><p><b> PUSH PSW</b></p><p> MOV T
93、H0,#03CH</p><p> MOV TL0,#0B0H</p><p> DJNZ R2,RET0</p><p> MOV R2,#14H</p><p><b> MOV A,20H</b></p><p><b> CPL P3.5</b></p
94、><p><b> CLR C</b></p><p><b> INC A</b></p><p> CJNE A,#3CH,GO1</p><p> MOV 20H,#0</p><p> MOV 30H,#0</p><p> MOV
95、31H,#0</p><p><b> MOV A,21H</b></p><p><b> INC A</b></p><p> CJNE A,#3CH,GO2</p><p> MOV 21H,#0H</p><p> MOV 32H,#0</p>
96、<p> MOV 33H,#0</p><p><b> MOV A,22H</b></p><p><b> INC A</b></p><p> CJNE A,#18H,GO3</p><p> MOV 22H,#00H</p><p> MOV
97、34H,#0</p><p> MOV 35H,#0</p><p><b> AJMP RET0</b></p><p> GO1:MOV 20H,A</p><p> MOV B,#0AH</p><p><b> DIV AB</b></p>&
98、lt;p><b> MOV 31H,A</b></p><p><b> MOV 30H,B</b></p><p><b> AJMP RET0</b></p><p> GO2:MOV 21H,A</p><p> MOV B,#0AH</p>
99、<p><b> DIV AB</b></p><p><b> MOV 33H,A</b></p><p><b> MOV 32H,B</b></p><p><b> AJMP RET0</b></p><p> GO3:MOV
100、 22H,A</p><p> MOV B,#0AH</p><p><b> DIV AB</b></p><p><b> MOV 35H,A</b></p><p><b> MOV 34H,B</b></p><p><b>
101、 AJMP RET0</b></p><p> RET0:POP PSW</p><p><b> POP ACC</b></p><p><b> RETI</b></p><p> DISPLAY1:MOV R0,#30H</p><p> MOV
102、R3,#0FEH</p><p><b> MOV A,R3</b></p><p> PLAY1:MOV P2,A</p><p><b> MOV A,@R0</b></p><p> MOV DPTR,#DSEG1</p><p> MOVC A,@A+DPT
103、R</p><p><b> MOV P0,A</b></p><p><b> LCALL DL1</b></p><p> MOV P2,#0FFH</p><p><b> MOV A,R3</b></p><p><b> R
104、L A</b></p><p> JNB ACC.6,LD1</p><p><b> INC R0</b></p><p><b> MOV R3,A</b></p><p> LJMP PLAY1</p><p><b> LD1:RET
105、</b></p><p> DISPLAY2:PUSH ACC</p><p><b> PUSH PSW</b></p><p> MOV R0,#36H</p><p> MOV R3,#0FBH</p><p><b> MOV A,R3</b>&
106、lt;/p><p> PLAY2:MOV P2,A</p><p><b> MOV A,@R0</b></p><p> MOV DPTR,#DSEG1</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p&g
107、t;<p><b> LCALL DL1</b></p><p> MOV P2,#0FFH</p><p><b> MOV A,R3</b></p><p><b> RL A</b></p><p> JNB ACC.6,LD2</p>
108、<p><b> INC R0</b></p><p><b> MOV R3,A</b></p><p> LJMP PLAY2</p><p> LD2:POP PSW</p><p><b> POP ACC</b></p><
109、p><b> RET</b></p><p> DL1:MOV R7,#05H</p><p> DL:MOV R6,#0FFH</p><p> DL6:DJNZ R6,$</p><p> DJNZ R7,DL</p><p><b> RET</b>&
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 作息時(shí)間控制課程設(shè)計(jì)報(bào)告
- 單片機(jī)作息時(shí)間控制器課程設(shè)計(jì)
- 課程設(shè)計(jì)-可編程作息時(shí)間控制器
- 作息時(shí)間控制器
- 單片機(jī)課間作息時(shí)間控制器課程設(shè)計(jì)
- 作息時(shí)間控制系統(tǒng)課程設(shè)計(jì)
- 作息時(shí)間控制器定稿.doc
- 作息時(shí)間控制器二稿.doc
- 單片機(jī)課程設(shè)計(jì)--課設(shè)作息時(shí)間控制
- 畢業(yè)設(shè)計(jì)基于單片機(jī)的作息時(shí)間控制器
- 作息時(shí)間控制器一稿.doc
- 單片機(jī)課程設(shè)計(jì)報(bào)告---作息時(shí)間表系統(tǒng)設(shè)計(jì)
- 校園作息時(shí)間控制系統(tǒng)的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-時(shí)間控制器
- 課程設(shè)計(jì)報(bào)告彩燈控制器
- 彩燈控制器課程設(shè)計(jì)報(bào)告
- 機(jī)械電子工程畢業(yè)設(shè)計(jì)-作息時(shí)間控制系統(tǒng)設(shè)計(jì)
- eda電梯控制器課程設(shè)計(jì)報(bào)告
- 畢業(yè)設(shè)計(jì)--單片機(jī)作息時(shí)間控制系統(tǒng)設(shè)計(jì)
- 最佳作息時(shí)間
評(píng)論
0/150
提交評(píng)論