基于單片機(jī)的定時(shí)鬧鐘設(shè)計(jì).doc_第1頁(yè)
基于單片機(jī)的定時(shí)鬧鐘設(shè)計(jì).doc_第2頁(yè)
基于單片機(jī)的定時(shí)鬧鐘設(shè)計(jì).doc_第3頁(yè)
基于單片機(jī)的定時(shí)鬧鐘設(shè)計(jì).doc_第4頁(yè)
基于單片機(jī)的定時(shí)鬧鐘設(shè)計(jì).doc_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

目 錄目 錄I一 設(shè)計(jì)題目1二 設(shè)計(jì)要求1三 作用與目的1四 設(shè)備及軟件21.AT89C51單片機(jī)22. Proteus仿真軟件23.Keil軟件2五 系統(tǒng)設(shè)計(jì)方案31 電路的總體原理框圖32 工作原理4六 系統(tǒng)硬件設(shè)計(jì)41.系統(tǒng)總體設(shè)計(jì)42 系統(tǒng)時(shí)鐘電路設(shè)計(jì)53 系統(tǒng)復(fù)位電路的設(shè)計(jì)54 鬧鐘指示電路設(shè)計(jì)55 電子鬧鐘的顯示電路設(shè)計(jì)5七 系統(tǒng)軟件設(shè)計(jì)61主模塊的設(shè)計(jì)62基本顯示模塊設(shè)計(jì)73. 時(shí)間設(shè)定模塊設(shè)計(jì)84. 鬧鈴功能的實(shí)現(xiàn)9八 Proteus軟件仿真101.本次試驗(yàn)的效果圖112.性能及誤差分析:11九 設(shè)計(jì)中的問題及解決方法12十 設(shè)計(jì)心得13參考文獻(xiàn)14致 謝15附錄1 系統(tǒng)整體結(jié)構(gòu)電路原理圖16附錄2 程序清單1727專業(yè)綜合課程設(shè)計(jì)基于單片機(jī)的定時(shí)鬧鐘設(shè)計(jì)一 設(shè)計(jì)題目基于單片機(jī)的定時(shí)鬧鐘二 設(shè)計(jì)要求1、能顯示時(shí)時(shí)分分秒秒。2、能夠設(shè)定定時(shí)時(shí)間、修改定時(shí)時(shí)間。3、定時(shí)時(shí)間到能發(fā)出報(bào)警聲或者啟動(dòng)繼電器,從而控制電器的啟停。三 作用與目的以單片機(jī)為核心的數(shù)字時(shí)鐘是很有社會(huì)意義和社會(huì)價(jià)值的。鐘表原先的報(bào)時(shí)功能已經(jīng)原不能滿足人們?nèi)找嬖鲩L(zhǎng)的要求,現(xiàn)代的電子時(shí)鐘多帶有類似自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等功能數(shù)字鬧鐘通過數(shù)字電路實(shí)現(xiàn)時(shí)、分、秒。數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭、車站、碼頭辦公室等公共場(chǎng)所成為人們?nèi)粘I钪胁豢缮俚谋匦杵贰S捎跀?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度遠(yuǎn)遠(yuǎn)超過老式鐘表。多功能數(shù)字鐘的應(yīng)用非常普遍。由單片機(jī)作為數(shù)字鐘的核心控制器,通過它的時(shí)鐘信號(hào)進(jìn)行實(shí)現(xiàn)計(jì)時(shí)功能,將其時(shí)間數(shù)據(jù)經(jīng)單片機(jī)輸出,利用顯示器顯示出來(lái)。通過鍵盤可以進(jìn)行校時(shí)、定時(shí)等功能。輸出設(shè)備顯示器可以用液晶顯示技術(shù)和數(shù)碼管來(lái)顯示技術(shù)。 本系統(tǒng)利用單片機(jī)實(shí)現(xiàn)具有計(jì)時(shí)、校時(shí)等功能的數(shù)字時(shí)鐘,是以單片機(jī)AT89C51為核心元件同時(shí)采用LED數(shù)碼管顯示器動(dòng)態(tài)顯示“時(shí)”、“分”、“秒”使其具有校時(shí)功能,秒表功能,和定時(shí)器功能,利用單片機(jī)實(shí)現(xiàn)的數(shù)字時(shí)鐘具有編程靈活,便于功能的擴(kuò)充等優(yōu)點(diǎn)。四 設(shè)備及軟件1.AT89C51單片機(jī)圖4.1 AT89C51引腳封裝圖在本電子鬧鐘設(shè)計(jì)中就是采用利用我們熟悉的AT89C51單片機(jī)為主控芯片。AT89C51單片機(jī)由微處理器,存儲(chǔ)器,I/O口以及特殊功能寄存器SFR等部分構(gòu)成。其存儲(chǔ)器在物理上設(shè)計(jì)成程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器兩個(gè)獨(dú)立的空間,片內(nèi)程序存儲(chǔ)器的容量為4KB,片內(nèi)數(shù)據(jù)存儲(chǔ)器為128個(gè)字節(jié)。89C51單片機(jī)有4個(gè)8位的并行I/O口:P0口,P1口,P2口和P3口。各個(gè)接口均由接口鎖存器,輸出驅(qū)動(dòng)器,和輸入緩沖器組成。P1口是唯一的單功能口,僅能用作通用的數(shù)據(jù)輸入/輸出口。P3口是雙功能口除了具有數(shù)據(jù)輸入/輸出功能外,每條接口還具有不同的第二功能,如P3.0是串行輸入口線,P3.1口是串行輸出口線。在需要外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器擴(kuò)展時(shí),P0可作為分時(shí)復(fù)用的低8位地址/數(shù)據(jù)總線,P2口可作為高8位的地址總線。P3口也可作為AT89C51的一些特殊功能口,同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào). 它的引腳圖如圖4.1所示:2. Proteus仿真軟件Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。3.Keil軟件Keil公司是一家業(yè)界領(lǐng)先的微控制器(MCU)軟件開發(fā)工具的獨(dú)立供應(yīng)商。Keil公司由兩家私人公司聯(lián)合運(yùn)營(yíng),分別是德國(guó)慕尼黑的Keil Elektronik GmbH和美國(guó)德克薩斯的Keil Software Inc。Keil公司制造和銷售種類廣泛的開發(fā)工具,包括ANSI C編譯器、宏匯編程序、調(diào)試器、連接器、庫(kù)管理器、固件和實(shí)時(shí)操作系統(tǒng)核心(real-time kernel)。有超過10萬(wàn)名微控制器開發(fā)人員在使用這種得到業(yè)界認(rèn)可的解決方案。其Keil C51編譯器自1988年引入市場(chǎng)以來(lái)成為事實(shí)上的行業(yè)標(biāo)準(zhǔn),并支持超過500種8051變種。五 系統(tǒng)設(shè)計(jì)方案1 電路的總體原理框圖掃描鍵盤程序初始化調(diào)用顯示程序,時(shí)鐘正常運(yùn)行P3.0是否按下?調(diào)用時(shí)間設(shè)定程序,進(jìn)行顯示時(shí)間和定時(shí)時(shí)間的設(shè)定按初始時(shí)間繼續(xù)NYYYY調(diào)用程序,判定是否定時(shí)時(shí)間到復(fù)位鍵是否按下YN時(shí)鐘繼續(xù)運(yùn)行圖1 電路原理框圖開始2 工作原理當(dāng)給電路足夠的電源時(shí),電路開始正常初始化,此時(shí)顯示“00 :00 :00”,若不進(jìn)行時(shí)間調(diào)整和定時(shí),時(shí)鐘將正常計(jì)時(shí)下去。若按下按鍵1,由于按下次數(shù)的不同,出現(xiàn)光標(biāo)閃爍的位置不同,即可進(jìn)行時(shí)間的時(shí)分秒的調(diào)整和定時(shí)時(shí)間的時(shí)分秒的調(diào)整,按鍵2和3分別是進(jìn)行時(shí)間的加和減,若確定好時(shí)間,時(shí)鐘將正常運(yùn)行,到達(dá)定時(shí)時(shí)間后蜂鳴器將會(huì)響一段時(shí)間后停止。如果按復(fù)位鍵,時(shí)鐘將重新初始化,需要重新定制時(shí)間。如果不做任何改動(dòng),到下一個(gè)定時(shí)的時(shí)間,時(shí)鐘將會(huì)繼續(xù)鳴叫六 系統(tǒng)硬件設(shè)計(jì)1.系統(tǒng)總體設(shè)計(jì)電子鬧鐘應(yīng)包括秒信號(hào)發(fā)生器、時(shí)間顯示電路、按鍵電路、供電電源以及鬧鈴指示電路等幾部分。按鍵功能說(shuō)明:A,設(shè)置時(shí)間和鬧鐘的小時(shí);B,設(shè)置小時(shí)以及設(shè)置鬧鐘的開關(guān);C,設(shè)置分鐘和鬧鐘的分鐘;D;設(shè)置完成退出。電子鬧鐘的系統(tǒng)框圖如下所示:復(fù)位、時(shí)鐘等電路按鈕電路 AT89C51單片機(jī)6位數(shù)碼管顯示電路鬧鈴聲指示電路電源系統(tǒng)圖2 電子鬧鐘的系統(tǒng)框圖電子鬧鐘的主電路指的是圖中虛線框內(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ì)。2 系統(tǒng)時(shí)鐘電路設(shè)計(jì)對(duì)于時(shí)間要求不是很高的系統(tǒng),只要按圖進(jìn)行設(shè)計(jì)就能使系統(tǒng)可靠起振并穩(wěn)定運(yùn)行。但由于原理圖中的C1、C2電容起著系統(tǒng)時(shí)鐘頻率微調(diào)和穩(wěn)定的作用,因此,在本鬧鐘系統(tǒng)的實(shí)際應(yīng)用中一定要注意正確選擇參數(shù)(3010 PF),并保證對(duì)稱性(盡可能匹配),選用正牌廠家生產(chǎn)的瓷片或云母電容,如果可能的話,溫度系數(shù)要盡可能低。實(shí)驗(yàn)表明,這2個(gè)電容元件對(duì)鬧鐘的走時(shí)誤差有較大關(guān)系。3 系統(tǒng)復(fù)位電路的設(shè)計(jì)智能系統(tǒng)一般應(yīng)有手動(dòng)或上電復(fù)位電路。復(fù)位電路的實(shí)現(xiàn)通常有兩種方式:)RC復(fù)位電路;)專用監(jiān)控電路。前者實(shí)現(xiàn)簡(jiǎn)單,成本低,但復(fù)位可靠性相對(duì)較低;后者成本較高,但復(fù)位可靠性高,尤其是高可靠重復(fù)復(fù)位。對(duì)于復(fù)位要求高、并對(duì)電源電壓進(jìn)行監(jiān)視的場(chǎng)合,大多采用這種方式。本次課程設(shè)計(jì)采用了上電按鈕電平復(fù)位電路。4 鬧鐘指示電路設(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ì)參見系統(tǒng)原理圖。5 電子鬧鐘的顯示電路設(shè)計(jì)本次課程設(shè)計(jì)采用了6位數(shù)碼管顯示電路。在6位LED顯示時(shí),為了簡(jiǎn)化電路,降低成本,采用動(dòng)態(tài)顯示的方式, 6個(gè)LED顯示器共用一個(gè)8位的I/O, 6位LED數(shù)碼管的位選線分別由相應(yīng)的P2. 0P2. 5控制,而將其相應(yīng)的段選線并聯(lián)在一起,由一個(gè)8位的I/O口控制,即P0口。譯碼顯示電路將“時(shí)”、“分”、“秒”計(jì)數(shù)器的輸出狀態(tài)菁七段顯示譯碼器譯碼,通過6位LED七段顯示器顯示出來(lái)。到達(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)整的。圖3 位數(shù)碼管顯示電路七 系統(tǒng)軟件設(shè)計(jì)軟件設(shè)計(jì)的重點(diǎn)在于秒脈沖信號(hào)的產(chǎn)生、顯示的實(shí)現(xiàn)、以及按鍵的處理等方面。基于軟件的秒脈沖信號(hào)通常有延時(shí)法和定時(shí)中斷法。延時(shí)法一般采用查詢方式,在延時(shí)子程序前后必然需要查詢和處理的程序,導(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)中所使用的晶振頻率為12MHZ。1主模塊的設(shè)計(jì)主模塊是系統(tǒng)軟件的主框架。結(jié)構(gòu)化程序設(shè)計(jì)一般有“自上而下”和“自下而上”兩種方式,“自上而下”法的核心就是主框架的構(gòu)建。它的合理與否關(guān)系到程序最終的功能的多少和性能的好壞。本系統(tǒng)的主模塊的程序框圖如下圖4所示:?jiǎn)?dòng)走時(shí)CPU系統(tǒng)初始化定時(shí)0初始化中斷初始化串口初始化顯示待機(jī)指示符設(shè)置鬧鈴時(shí)間刷新時(shí)間設(shè)置鬧鈴時(shí)間?否?NY有關(guān)變量初始化刷新時(shí)間秒指示鬧鈴延時(shí)1秒到否?時(shí)或分變化?否?NNYY是否到鬧鈴時(shí)間NY圖4 主模塊的程序框圖2基本顯示模塊設(shè)計(jì)基本顯示模塊設(shè)計(jì)的重點(diǎn)是由顯示代碼取得相應(yīng)的段碼,顯示段碼數(shù)據(jù)的并行發(fā)送,高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用LED顯示器代替顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有時(shí),分,秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),片選的靈活性好。將16進(jìn)制時(shí)分秒數(shù)據(jù)轉(zhuǎn)化為BCD顯示代碼關(guān)閉顯示以免顯示抖動(dòng)通過串口將時(shí)分秒數(shù)據(jù)傳入數(shù)碼管打開顯示圖5 顯示模塊程序流程圖程序流程如圖5所示。3. 時(shí)間設(shè)定模塊設(shè)計(jì)設(shè)置鍵嗎?設(shè)置模塊初始化閃爍標(biāo)志為將在編參數(shù)送顯示緩沖區(qū)鍵嗎?根據(jù)當(dāng)前位的性質(zhì)分別進(jìn)行處理(含上下限判斷)將當(dāng)前位的顯示代碼置暗代碼調(diào)基本顯示模塊刷新顯示設(shè)置鍵嗎?當(dāng)前編輯的是分各位?當(dāng)前編輯位下移(下一位)結(jié)束設(shè)定NNNNYYYN圖6 時(shí)間設(shè)定流程圖時(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è)該按鍵的狀態(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)作,即何種功能其流程圖如下圖6所示:4. 鬧鈴功能的實(shí)現(xiàn)鬧鈴功能的實(shí)現(xiàn)涉及到兩個(gè)方面:鬧鈴時(shí)間設(shè)定和是否鬧鈴判別與相應(yīng)處理。鬧鈴時(shí)間設(shè)定模塊的設(shè)計(jì)可參照時(shí)間設(shè)定模塊,這里著重闡述鬧鈴判別與處理模塊的設(shè)計(jì)問題。鬧鈴判別與鬧鈴處理的關(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),通過六個(gè)七段LED顯示器顯示出來(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è)置了鬧鈴時(shí)十位、個(gè)位,分十位、個(gè)位改變了鬧鈴判別處理判當(dāng)前時(shí)間是設(shè)定時(shí)間設(shè)置鬧鈴標(biāo)志清除鬧鈴標(biāo)志中斷返回中斷返回YNY圖7鬧鈴功能流程圖其流程圖如圖7所示:慮到實(shí)用性,在該電子鐘的設(shè)計(jì)中修改定時(shí)或調(diào)整時(shí)間時(shí)采用了閃爍,而且以定時(shí)20組鬧鐘。在編程上,首先進(jìn)行了初始化定義了程序的入口地址以及中斷的入口地址,在主程序的開始定義了一組固定單元用來(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í)器比較的方法,比較當(dāng)前計(jì)數(shù)時(shí)間與定時(shí)時(shí)間是否相等,若相等則將鬧鈴標(biāo)志位置數(shù)。由于定義了定時(shí)鬧鐘組,在這里采用中斷組次,每中斷一次比較一組鬧鐘,避免了一次比較中斷時(shí)間過長(zhǎng),影響下次中斷時(shí)間。顯示之后查詢鬧鈴標(biāo)志位是否與前面所置數(shù)相等,若相等則響鈴。為了避免響鈴影響顯示,采用了每顯示幾屏以后在顯示程序中出現(xiàn)脈沖,驅(qū)動(dòng)喇叭,不會(huì)影響顯示。之后用查詢方式對(duì)按鍵進(jìn)行判斷,若有鍵按下,則進(jìn)行軟件延時(shí)消抖,避免了抖動(dòng)引起的干擾,執(zhí)行相應(yīng)的定時(shí),選時(shí)或調(diào)時(shí)程序段。對(duì)當(dāng)前時(shí)間或定時(shí)時(shí)間修改后又返回到最初的顯示程序段,如此循環(huán)下去。八 Proteus軟件仿真本次課程設(shè)計(jì)所采用的程序調(diào)試軟件為wave6000集成調(diào)試軟件,所采用的仿真軟件為protus 6 professional軟件。圖8 protus 6 professional軟件啟動(dòng)界面1.本次試驗(yàn)的效果圖如下所示:圖9 試驗(yàn)的效果圖2.性能及誤差分析:該電子鐘有三個(gè)按鍵: A, B和C鍵。按A鍵進(jìn)行校時(shí),可以分別對(duì)時(shí)及分進(jìn)行單獨(dú)校時(shí),使其校正到標(biāo)準(zhǔn)時(shí)間,校時(shí)時(shí)需要校正哪一位哪一位就閃爍。按B鍵是對(duì)閃爍位進(jìn)行加一或返回的操作。按C鍵調(diào)整定時(shí)時(shí)間和定時(shí)組數(shù),需要調(diào)整哪一位哪一位就閃爍,該電子鐘最多可定時(shí)20組鬧鐘。經(jīng)測(cè)試該電子鐘在一天的累計(jì)誤差約為0. 1秒。該電子鐘的誤差主要由晶振自身的誤差所造成,晶振的誤差約為0. 00010. 000001。在軟件的編程過程中所產(chǎn)生的誤差比較小,在重裝初值的過程中大概需要約8個(gè)機(jī)器周期,但在程序開始對(duì)定時(shí)器賦初值時(shí),多加了8個(gè)機(jī)器周期,減小了這方面的誤差。另外在中斷的過程中,只會(huì)在第一次計(jì)時(shí)時(shí)產(chǎn)生時(shí)間的偏移,而它所產(chǎn)生累計(jì)誤差很小,可以忽略。結(jié)構(gòu)化軟件程序的調(diào)試一般可以將重點(diǎn)放在分模塊調(diào)試上,統(tǒng)調(diào)是最后一環(huán)。軟件調(diào)試可以采取離線調(diào)試和在線調(diào)試兩種方式。前者不需要硬件仿真器,可借助于軟件仿真器即可;后者一般需要仿真系統(tǒng)的支持。本次課設(shè),采用wave6000集成調(diào)試軟件來(lái)調(diào)試程序,通過各個(gè)模塊程序的單步或跟蹤調(diào)試,使程序逐漸趨于正確,最后統(tǒng)調(diào)程序。仿真部分采用protus 6 professional軟件,此軟件功能強(qiáng)大且操作較為簡(jiǎn)單,可以很容易的實(shí)現(xiàn)各種系統(tǒng)的仿真。首先打開protus 6 professional軟件,在元件庫(kù)中找到要選用的所有元件,然后進(jìn)行原理圖的繪制;繪制好后再選擇wave6000已經(jīng)編譯好的*.hex文件,選擇運(yùn)行,觀察顯示結(jié)果,根據(jù)顯示的結(jié)果和課設(shè)的要求再修改程序,再運(yùn)行查,直到滿足要求。九 設(shè)計(jì)中的問題及解決方法在設(shè)計(jì)的過程中遇到問題是不可避免的,我遇到了很多問題,如下所示;1.做實(shí)物時(shí)無(wú)法驅(qū)動(dòng)數(shù)碼管顯示,后來(lái)了解到可以加鎖存器,如74LS253,74LS573等等,還可以加三極管用來(lái)加大電流。當(dāng)然如果換成液晶顯示屏的話就不需要考慮驅(qū)動(dòng)不了的問題了。2.燒程序時(shí)沒發(fā)燒進(jìn)去,需要改變最高和最低波特率,才能按照步驟把程序燒進(jìn)去。3.仿真時(shí)沒問題的電路,在做好實(shí)物時(shí)發(fā)現(xiàn)無(wú)法運(yùn)行。原因可能是程序出現(xiàn)問題,或者在連實(shí)物時(shí)線路連接錯(cuò)誤等等都有可能。這是很難的一部分,需要查找出原因。在做實(shí)物的過程中我進(jìn)行的很多檢查,有很多連接錯(cuò)誤,最終又重新焊接的。4.復(fù)位電路在實(shí)物中可以運(yùn)行,但是在仿真中不能正常運(yùn)行。目前還未找到原因。十 設(shè)計(jì)心得這次設(shè)計(jì)中遇到了很多問題,例如剛開始我在在仿真時(shí)程序出現(xiàn)了每次按按鈕時(shí)總是顯示測(cè)量時(shí)需要關(guān)閉仿真的字樣,試了很多方法都沒有找到原因,最后才知道是因?yàn)榘粹o太近的緣故。很多類似的經(jīng)歷讓我明白:1. 在設(shè)計(jì)程序之前,務(wù)必要對(duì)所學(xué)單片機(jī)課程的內(nèi)容有一個(gè)系統(tǒng)的了解,知道單片機(jī)片內(nèi)片外的內(nèi)容及其功能。 2. 設(shè)計(jì)程序關(guān)鍵要有一個(gè)清晰的思路和一個(gè)完整的軟件流程圖。模塊化的設(shè)計(jì)思想在程序設(shè)計(jì)中的作用是重大的,它可以為你提供一個(gè)比較清晰的思路,并且很容易找到頭緒,不至于在編寫一個(gè)程序時(shí)感覺到無(wú)從下手。 3. 在設(shè)計(jì)程序時(shí),不能妄想一次就將整個(gè)程序設(shè)計(jì)好,反復(fù)修改,不斷改進(jìn)是程序設(shè)計(jì)的必經(jīng)之路。程序剛開始編好時(shí),一般情況下會(huì)存在很多錯(cuò)誤,要不斷地修改,不斷的改進(jìn)才能達(dá)到預(yù)期的目的,編寫程序的時(shí)間并不是很長(zhǎng),主要是花很多時(shí)間去修改程序。 4. 要養(yǎng)成注釋程序的好習(xí)慣,讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便。剛開始我在編寫程序時(shí),很不習(xí)慣于寫注釋,感覺很麻煩,而且沒用,但是在修改的過程中我就遇到了較大的麻煩,以至于不得不重新的作了注釋,以增加程序的易讀性,從而使修改過程變得容易一些。 總之,通過這次課程設(shè)計(jì)不僅使我鞏固了本課程所學(xué)的基本知識(shí),還使我具有了撰寫科研報(bào)告的初步訓(xùn)練能力,我相信這些能力在我以后的工作或者是再學(xué)習(xí)中一定會(huì)起到不小的作用,一切的辛苦和艱難都是值得的。參考文獻(xiàn)1 康年光.電子技術(shù)基礎(chǔ)(數(shù)字部分)M.高等教育出版社.2005.07 2 曾 屹單片機(jī)原理與應(yīng)用(第2版)M長(zhǎng)沙:中南大學(xué)出版社,2009年5月4 劉樂喜.微機(jī)計(jì)算機(jī)接口技術(shù)及應(yīng)用M.華中科技大學(xué)出版社.2005.085 楊剛,周群.電子系統(tǒng)設(shè)計(jì)與實(shí)踐.電子工業(yè)出版社.2004:18-23 341-347 118-1226 李群芳,肖看.單片機(jī)原理、接口及應(yīng)用嵌入式系統(tǒng)技術(shù)基礎(chǔ).清華大學(xué)出版社.2005.037 張毅剛,MCS-51單片機(jī)應(yīng)用設(shè)計(jì)M哈爾濱工業(yè)大學(xué)出版社,20048 張淑清,姜萬(wàn)錄等,單片微型計(jì)算機(jī)接口技術(shù)及應(yīng)用M國(guó)防工業(yè)出版社,20039 吳金戌,沈慶陽(yáng),郭庭吉,8051單片機(jī)實(shí)踐與應(yīng)用M清華大學(xué)出版社,2001致 謝這次課程設(shè)計(jì)能夠得以順利完成,是所有曾經(jīng)指導(dǎo)過我的老師,幫助過我的同學(xué),一直支持著我的家人對(duì)我的教誨、幫助和鼓勵(lì)的結(jié)果。我要在這里對(duì)他們表示深深的謝意!首先,要特別感謝我的指導(dǎo)老師潘湘高老師。潘老師在我課程設(shè)計(jì)的過程中,給我提供了極大的幫助和指導(dǎo)。潘老師給我提供了許多寶貴建議。老師淵博的專業(yè)知識(shí),嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,樸實(shí)無(wú)華、平易近人的人格魅力對(duì)我影響深遠(yuǎn)。不僅使我樹立了遠(yuǎn)大的學(xué)術(shù)目標(biāo)、掌握了基本的研究方法,還使我明白了許多待人接物與為人處世的道理。感謝潘老師對(duì)我的報(bào)告進(jìn)行認(rèn)真的評(píng)閱和認(rèn)真的修改。其次,感謝我的父母親,你們是我力量的源泉,只要有你們,不管面對(duì)什么樣的困難,我都不會(huì)害怕,謝謝你們對(duì)我的支持與鼓勵(lì)!第三,要感謝所有曾經(jīng)給我們班任課的老師,老師們教會(huì)我的不僅僅是專業(yè)知識(shí),更多的是對(duì)待學(xué)習(xí)、對(duì)待生活的態(tài)度。再次,感謝我的室友及其他好友,因?yàn)橛心銈兊膸椭业恼撐牟拍艿靡皂樌瓿?。謝謝你們?cè)谖也欢臅r(shí)候給我的提點(diǎn)。在作圖和寫課程設(shè)計(jì)報(bào)告的時(shí)候每當(dāng)我遇到什么不會(huì)的我都是去找陳海東同學(xué),而你每次都會(huì)給我滿意的答案,我課程設(shè)計(jì)的完成絕對(duì)有你的一份功勞,謝謝你!感謝曹福明同學(xué)在我使用proteus和Kile軟件仿真遇到困難時(shí)給我的幫助。在此,我再一次真誠(chéng)地向幫助過我的老師和同學(xué)表示感謝!附錄1 系統(tǒng)整體結(jié)構(gòu)電路原理圖附錄2 程序清單K1 EQU P1.0 ;在程序開始前定義變量 K2 EQU P1.1 K3 EQU P1.2 K4 EQU P1.3 ORG 0000H LJMP MAIN ORG 000BH LJMP TIME ORG 0100H MAIN:MOV SP,#50H MOV 20H,#00H ;時(shí)間 BIN SECOND MOV 21H,#00H ; BIN MINUTE MOV 22H,#00H ; BIN HOUR MOV 23H,#01H ;鬧鈴 BIN MINUTE MOV 24H,#01H ; BIN HOUR MOV 25H,#00H ;定義一個(gè)標(biāo)志位 MOV 30H,#00H ;時(shí)間 BCD SECOND MOV 31H,#00H ; MOV 32H,#00H ; BCD MINUTE MOV 33H,#00H ; MOV 34H,#00H ; BCD HOUR MOV 35H,#00H ; MOV 36H,#01H ;鬧鈴 BCD MINUTE MOV 37H,#00H ; MOV 38H,#01H ; BCD HOUR MOV 39H,#00H ; MOV TMOD,#01H ;16位計(jì)數(shù)器 T0,方式1 MOV TH0,#03CH ;賦初值 MOV TL0,#0B0H MOV IE,#10000111B ;開中斷 T0,EA=1 SETB TR0 ;T0啟動(dòng)計(jì)數(shù) MOV R2,#14H ;計(jì)數(shù)器 MOV P2,#0FFH LOOP:LCALL TIMEPRO ; 調(diào)用現(xiàn)在時(shí)間與鬧鈴時(shí)間比較程序 LCALL DISPLAY1 ; 調(diào)用現(xiàn)在時(shí)間顯示子程序 JB K1,M1 ; 判斷按鍵是否按下 LCALL XIAOZHEN1 ; 調(diào)用消抖程序 MOV C,25H.0 JC A1 A1:CLR 25H.0 LCALL SETTIME ; 調(diào)用設(shè)置現(xiàn)在時(shí)間子程序 LJMP LOOP M1:JB K2,M2 LCALL XIAOZHEN2 MOV C,25H.0 JC A2 A2:CLR 25H.0 LCALL SETATIME ; 調(diào)用設(shè)置鬧鐘的程序 LJMP LOOP M2:JB K4,M3 A3:LCALL XIAOZHEN3 MOV C,25H.0 JC A4 A4:CLR 25H.0 M3:LJMP LOOPSETTIME: L0:LCALL DISPLAY1 JB K2,L1 LCALL XIAOZHEN4 MOV C,25H.0 JC A5 A5:CLR 25H.0 INC 22H MOV A,22H CJNE A,#18H,GO12 MOV 22H,#00H MOV 34H,#00H MOV 35H,#00H LJMP L0 L1:JB K3,L2 LCALL XIAOZHEN5 MOV C,25H.0 JC A6 A6:CLR 25H.0 INC 21H MOV A,21H CJNE A,#3CH,GO11 MOV 21H,#00H MOV 32H,#00H MOV 33H,#00H LJMP L0 GO11:MOV B,#0AH DIV AB MOV 32H,B MOV 33H,A LJMP L0 GO12:MOV B,#0AH DIV AB MOV 34H,B MOV 35H,A LJMP L0 L2:JB K4,L0 LCALL XIAOZHEN3 MOV C,25H.0 JC AX AX:CLR 25H.0 RETSETATIME:LCALL DISPLAY2 ;調(diào)用鬧鐘設(shè)置,鬧鈴響時(shí)的顯示程序 N0:LCALL DISPLAY2 JB K3,N1 LCALL XIAOZHEN6 MOV C,25H.0 JC A7 A7:CLR 25H.0 INC 24H MOV A,24H CJNE A,#24,GO22 MOV 24H,#00H MOV 38H,#00H MOV 39H,#00H LJMP N0 N1:JB K1,N2 LCALL XIAOZHEN7 MOV C,25H.0 JC A8 A8:CLR 25H.0 INC 23H MOV A,23H CJNE A,#60,GO21 MOV 23H,#00H MOV 36H,#00H MOV 37H,#00H LJMP N0 GO21:MOV B,#0AH DIV AB MOV 36H,B MOV 37H,A LJMP N0 GO22:MOV B,#0AH DIV AB MOV 38H,B MOV 39H,A LJMP N0 N2:JB K4,N0 LCALL XIAOZHEN3 MOV C,25H.0 JC A9 A9:CLR 25H.0 RETTIMEPRO:MOV A,21H MOV B,23H CJNE A,B,BK MOV A,22H MOV B,24H CJNE A,B,BK SETB 25H.0 MOV C,25H.0 JC XX XX:LCALL TIMEOUT BK:RET TIMEOUT: X1:LCALL BZ LCALL DISPLAY2 CLR 25H.0 JB K4, X1 RET BZ:CLR P3.7 MOV R7,#250 T2:MOV R6,#124 T3:DJNZ R6,T3 DJNZ R7,T2 SETB P3.7 JB K4,XY LCALL XIAOZHEN3 MOV C,25H.0 JC XY1 XY:RET XY1:LJMP LOOPXIAOZHEN1:LCALL DISPLAY1 JB K1,XIAOZHEN1 MOV C,K1 JC XIAOZHEN1 LCALL DELAY MOV C,K1 JC XIAOZHEN1 STOP1:MOV C,K1 JNC STOP1 LCALL DELAY MOV C,K1 JNC STOP1 SETB 25H.0 RET XIAOZHEN2:LCALL DISPLAY2 JB K2,XIAOZHEN2 MOV C,K2 JC XIAOZHEN2 LCALL DELAY MOV C,K2 JC XIAOZHEN2 STOP2:MOV C,K2 JNC STOP2 LCALL DELAY MOV C,K2 JNC STOP2 SETB 25H.0 RET XIAOZHEN3:LCALL DISPLAY1 JB K4,XIAOZHEN3 MOV C,K4 JC XIAOZHEN3 LCALL DELAY MOV C,K4 JC XIAOZHEN3 STOP3:MOV C,K4 JNC STOP3 LCALL DELAY MOV C,K4 JNC STOP3 SETB 25H.0 RET XIAOZHEN4:LCALL DISPLAY1 JB K2,XIAOZHEN4 MOV C,K2 JC XIAOZHEN4 LCALL DELAY MOV C,K2 JC XIAOZHEN4 STOP4:MOV C,K2 JNC STOP4 LCALL DELAY MOV C,K2 JNC STOP4 SETB 25H.0 RET XIAOZHEN5:LCALL DISPLAY1 JB K3,XIAOZHEN5 MOV C,K3 JC XIAOZHEN5 LCALL DELAY MOV C,K3 JC XIAOZHEN5 STOP5:MOV C,K3 JNC STOP5 LCALL DELAY MOV C,K3 JNC STOP5 SETB 25H.0 RET XIAOZHEN6:LCALL DISPLAY2 JB K3,XIAOZHEN6 MOV C,K3 JC XIAOZHEN6 LCALL DELAY MOV C,K3 JC XIAOZHEN6 STOP6:MOV C,K3 JNC STOP6 LCALL DELAY MOV C,K3 JNC STOP6 SETB 25H.0 RET XIAOZHEN7:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論