版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(jì)說明書</b></p><p> 設(shè)計(jì)題目: 電子鐘的設(shè)計(jì) </p><p> 專 業(yè): </p><p> 班 級(jí): </p><p> 學(xué) 號(hào):
2、 </p><p> 姓 名: </p><p> 指導(dǎo)教師: </p><p> 畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p><b> 目 錄</b></p><p>
3、<b> 摘 要1</b></p><p> 第1章 緒 論2</p><p> 1.1 電子鐘的發(fā)展史2</p><p> 1.2 設(shè)計(jì)的目的與意義2</p><p> 1.3 設(shè)計(jì)的基本思路與主要內(nèi)容3</p><p> 第2章 時(shí)鐘系統(tǒng)的整體設(shè)計(jì)4</p&
4、gt;<p> 2.1系統(tǒng)功能要求4</p><p> 2.2 整體方案4</p><p> 第3章 硬件設(shè)計(jì)與分析6</p><p> 3.1 硬件設(shè)計(jì)原理6</p><p> 3.2各單元電路介紹6</p><p> 3.2.1 AT89C51單片機(jī)介紹6</p>
5、<p> 3.2.2單片機(jī)最小應(yīng)用系統(tǒng)6</p><p> 3.2.3顯示電路8</p><p> 3.2.4 鍵盤及其接口9</p><p> 3.3 系統(tǒng)原理圖11</p><p> 第四章 軟件設(shè)計(jì)12</p><p> 4.1 主程序的設(shè)計(jì)12</p><
6、p> 4.2 鍵輸入程序13</p><p> 4.3 顯示程序14</p><p> 4.4 延時(shí)程序15</p><p> 2.5 中斷程序16</p><p> 第5章 調(diào)試與運(yùn)行19</p><p> 5.1 電路仿真19</p><p> 5.2 調(diào)試和
7、運(yùn)行20</p><p> 第6章 結(jié) 論21</p><p><b> 致 謝22</b></p><p><b> 參考文獻(xiàn)23</b></p><p> 附錄一 系統(tǒng)原理圖24</p><p> 附錄二 元件清單25</p>
8、;<p> 附錄三 程序清單26</p><p><b> 摘 要</b></p><p> 單片微型計(jì)算機(jī)簡稱單片機(jī),它是把微型計(jì)算機(jī)的各個(gè)功能部件:中央處理器CPU、隨機(jī)存取存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、I/O接口、定時(shí)器/計(jì)數(shù)器以及串行通信接口等待集成在一塊芯片上,構(gòu)成一個(gè)完整的微型計(jì)算機(jī),故又把它稱為單片微型計(jì)算機(jī)。</p
9、><p> 當(dāng)今信息科技高速發(fā)展,使用方便、低成本電子設(shè)備已逐步成為我們?nèi)粘I钪须娮赢a(chǎn)品的主力軍。用軟件代替硬件的電子設(shè)備能大大地節(jié)省成本,且有利于資源的節(jié)約,因此,以軟代硬的設(shè)計(jì)必將成為我們現(xiàn)代設(shè)計(jì)的主流。</p><p> 本設(shè)計(jì)是利用MCS-51系列單片機(jī)內(nèi)部的定時(shí)器/計(jì)數(shù)器進(jìn)行中數(shù)年定時(shí),配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)。該方案節(jié)省硬件成本,且能夠使設(shè)計(jì)者在定時(shí)/計(jì)數(shù)器的使用、中
10、數(shù)年及程序設(shè)計(jì)方面得到鍛煉和提高,因此本系統(tǒng)將采用軟件方法實(shí)現(xiàn)計(jì)時(shí)。</p><p> 關(guān)鍵詞: 單片機(jī) 數(shù)碼管 程序設(shè)計(jì)</p><p><b> 第1章 緒 論</b></p><p> 1.1 數(shù)字時(shí)鐘的發(fā)展史</p><p> 電子鐘有著很長的歷史,從民國19年的電鐘,研制始於60年代中期的國
11、內(nèi)電晶體、半導(dǎo)體管鐘,到研制始於70年代末的石英電子鐘,再到今天我們所用的智能電子鐘。以前的電子鐘存在著很多缺點(diǎn),其外觀體積龐大,在功能上有死擺、走時(shí)時(shí)間不長、走時(shí)精確度不高等缺點(diǎn)。如今無論是外觀,還是在功能上,電子鐘都有了很大的改進(jìn)。</p><p> 雖然世界絕大多數(shù)鐘表都是中國制造,但鐘表對(duì)于國內(nèi)市場來說只是個(gè)小行業(yè),2003年總盤子不過才100多億,但不是沒有前景。近年來,市場在急劇膨脹。根據(jù)國外的統(tǒng)計(jì)
12、數(shù)據(jù)顯示,發(fā)達(dá)國家人均一生擁有手表23塊,發(fā)展中國家12塊,而目前中國的城鎮(zhèn)人口人均擁有量不多于6塊,空間很大。比如彩電一般是一個(gè)家庭一臺(tái),手表則是每人一塊,但從銷售量來看,光TCL一家公司兩個(gè)月的彩電銷量可以接近300萬臺(tái),而我們手表每年總共才賣200多萬只。所以絕對(duì)不是市場潛力不夠的問題,而是我們應(yīng)該如何去做的問題。</p><p> 1.2 設(shè)計(jì)的目的與意義</p><p> 人
13、類的生活包括:工作、學(xué)習(xí)、休息以及參與社會(huì)的多種實(shí)踐活動(dòng),環(huán)環(huán)有條理,更加豐富多彩。應(yīng)該說時(shí)鐘的計(jì)時(shí)功能與人類的各種行為和活動(dòng)有著密切的聯(lián)系,于是時(shí)鐘的作用便體現(xiàn)出來,生活中有許多人,因?yàn)橹活櫣ぷ鞫洉r(shí)間,從而耽誤了重要的安排或者計(jì)劃,造成不可挽回的損失,使之后悔莫及。我們要養(yǎng)成良好的時(shí)間觀念,就需要電子鐘時(shí)刻提醒我們。因此,電子鐘已成為人們?nèi)粘I钪斜夭豢缮?,它的?yīng)用非常廣泛,應(yīng)用于家庭以及車站、碼頭、劇場、辦公室等公共場所,給人們
14、的生活、學(xué)習(xí)、工作、娛樂帶來極大的方便。</p><p> 現(xiàn)在投入生產(chǎn)的大多是智能時(shí)鐘,它的功能很全面,但價(jià)格有點(diǎn)昂貴,大多數(shù)學(xué)生或者經(jīng)濟(jì)條件較差的人,想要擁有它,都有點(diǎn)困難。因此,在這里設(shè)計(jì)一個(gè)較簡單的電子鐘,它能完成計(jì)時(shí)和校時(shí)的功能。這個(gè)時(shí)鐘系統(tǒng)很簡單,投入生產(chǎn)的成本很低,因此,它的價(jià)格比較便宜,對(duì)于學(xué)生很實(shí)用。</p><p> 1.3 設(shè)計(jì)的基本思路與主要內(nèi)容</p&g
15、t;<p> 設(shè)計(jì)一個(gè)電子產(chǎn)品,首先了解它能實(shí)現(xiàn)的功能,時(shí)鐘系統(tǒng)最基本的功能就是實(shí)現(xiàn)計(jì)時(shí),在這里設(shè)計(jì)的數(shù)字電子時(shí)鐘,它能實(shí)現(xiàn)計(jì)時(shí)和校時(shí)的功能,給電子鐘加上電自動(dòng)計(jì)時(shí),設(shè)計(jì)一個(gè)按鍵對(duì)時(shí)鐘進(jìn)行復(fù)位和三個(gè)按鍵對(duì)時(shí)間進(jìn)行調(diào)整。</p><p> 硬件設(shè)計(jì)很簡單,主要包括:單片機(jī)、按鍵電路、驅(qū)動(dòng)顯示電路,以及LED顯示器四個(gè)部分。單片機(jī)選用AT89C51芯片,它無須外擴(kuò)程序存儲(chǔ)器,設(shè)計(jì)電路很簡單。由于只用
16、了四個(gè)按鍵,所以采用獨(dú)立式按鍵使設(shè)計(jì)更簡單。顯示時(shí)、分、秒加兩個(gè)分隔符,采用8位的數(shù)碼管,用常用的74LS244來驅(qū)動(dòng)LED數(shù)碼管顯示字符。</p><p> 簡易數(shù)字時(shí)鐘可實(shí)現(xiàn)校時(shí)和整點(diǎn)報(bào)時(shí)功能,該軟件采用C語言來實(shí)現(xiàn),主要包括主程序、鍵輸入程序、顯示程序、定時(shí)程序和中斷程序等軟件模塊。把原程序加入原理圖,做出電子鐘的仿真,以秒計(jì)數(shù)并顯示時(shí)、分、秒。其中秒和分為60進(jìn)制,小時(shí)為24進(jìn)制計(jì)數(shù)??赏ㄟ^按鍵實(shí)現(xiàn)時(shí)鐘
17、復(fù)位和分、秒、時(shí)的校正。</p><p> 第2章 簡易數(shù)字時(shí)鐘系統(tǒng)的整體設(shè)計(jì)</p><p><b> 2.1系統(tǒng)功能要求</b></p><p> 以單片機(jī)技術(shù)為核心,充分應(yīng)用各種外圍電路元器件,設(shè)計(jì)一個(gè)通過顯示器顯示時(shí)間(時(shí)、分、秒)的電子鐘。要求:</p><p> 1、上電時(shí),時(shí)、分、秒顯示為00
18、時(shí)、00分、00秒,并以秒為單位開始計(jì)時(shí);</p><p> 2、運(yùn)行狀態(tài)下,按動(dòng)控制按扭S-SET,對(duì)秒進(jìn)行調(diào)整;</p><p> 3、運(yùn)行狀態(tài)下,按動(dòng)控制按扭M-SET,對(duì)分進(jìn)行調(diào)整;</p><p> 4、運(yùn)行狀態(tài)下,按動(dòng)控制按扭H-SET,對(duì)小時(shí)進(jìn)行調(diào)整。</p><p> 5、當(dāng)數(shù)字時(shí)鐘運(yùn)行到正點(diǎn)時(shí),實(shí)現(xiàn)自動(dòng)報(bào)時(shí)功能。&l
19、t;/p><p> 6、當(dāng)按下T-SET鍵是實(shí)現(xiàn)小時(shí)由24進(jìn)制和12進(jìn)制的相互轉(zhuǎn)換。</p><p> 2.2 整體方案</p><p> 電子鐘的電路圖主要由單片機(jī)(AT89C51)、鍵盤電路、驅(qū)動(dòng)顯示電路和LED顯示器四部分組成,它主要實(shí)現(xiàn)時(shí)鐘的顯示,以及對(duì)時(shí)、分、秒進(jìn)行調(diào)整,即實(shí)現(xiàn)調(diào)時(shí)的功能。其數(shù)字鐘系統(tǒng)整體結(jié)構(gòu)如圖2-1所示。</p>&
20、lt;p> 圖2-1 電子鐘系統(tǒng)整體結(jié)構(gòu)</p><p><b> (1)顯示方案</b></p><p> 方案一:靜態(tài)顯示就是當(dāng)CPU將要顯示的字或字段碼送到輸出口,顯示器就可以顯示出所要顯示的字符,如果CPU不去改寫它,它將一直保持下去;靜態(tài)顯示硬件開銷大,電路復(fù)雜,信息刷新速度慢。</p><p> 方案二:動(dòng)態(tài)顯示則是
21、一位一位地輪流點(diǎn)亮顯示器地各個(gè)位(掃描)。對(duì)于顯示器的每一位而言,每隔一段時(shí)間點(diǎn)亮一次;動(dòng)態(tài)顯示耗能較小,但編寫程序較復(fù)雜。動(dòng)態(tài)顯示硬件連接簡單,信息刷新速度快。</p><p> 由于本次設(shè)計(jì)是對(duì)時(shí)間進(jìn)行顯示,如采用靜態(tài)顯示,則所占用的I/O口較多,電路較復(fù)雜,所以在此選擇的是方案二,采用動(dòng)態(tài)顯示。</p><p><b> (2)鍵盤方案</b></p&
22、gt;<p> 方案一:獨(dú)立式鍵盤。獨(dú)立式鍵盤的各個(gè)按鍵相互獨(dú)立,每個(gè)按鍵獨(dú)立地與一根數(shù)據(jù)輸入線(單片機(jī)并行接口或其他芯片的并行接口)連接。獨(dú)立式鍵盤配置靈活,軟件結(jié)構(gòu)簡單,但每個(gè)按鍵必須占用一根接口線,在按鍵數(shù)量不多時(shí),接口線占用多。所以,獨(dú)立式按鍵常用于按鍵數(shù)量不多的場合。</p><p> 方案二:矩陣式鍵盤。矩陣式鍵盤采用的是行列式結(jié)構(gòu),按鍵設(shè)置在行列的交點(diǎn)上.(當(dāng)接口線數(shù)量為8時(shí),可以
23、將4根接口線定義為行線,另4根接口線定義為列線,形成4*4鍵盤,可以配置16個(gè)按鍵。)</p><p> 由于本設(shè)計(jì)只用了四個(gè)按鍵,不需要采用矩陣式鍵盤,所以選用第一種方案,采用獨(dú)立式鍵盤。</p><p><b> ?。?)計(jì)時(shí)方案</b></p><p><b> 采用軟件控制:</b></p>&l
24、t;p> 利用單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器進(jìn)行定時(shí),配合軟件定時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)。該方案能夠使設(shè)計(jì)者,在設(shè)計(jì)的過程中容易實(shí)現(xiàn),且節(jié)省硬件成本,因此本系統(tǒng)將采用軟件方法實(shí)現(xiàn)計(jì)時(shí)。</p><p> 第3章 硬件設(shè)計(jì)與分析</p><p> 3.1 硬件設(shè)計(jì)原理</p><p> 時(shí)鐘電路的核心是AT89C51單片機(jī),其內(nèi)部帶有2KB的可反復(fù)擦寫的只讀
25、Flash程序存儲(chǔ)器和128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),無須外擴(kuò)程序存儲(chǔ)器。電腦時(shí)鐘沒有大量的運(yùn)算和暫存數(shù)據(jù),現(xiàn)有的128B片內(nèi)RAM已能滿足要求,也不必外擴(kuò)片RAM。系統(tǒng)配備8位LED數(shù)碼管顯示和3個(gè)獨(dú)立式按鍵,用P0口作為鍵盤接口電路,P1口和P3口作為段碼和位碼輸出口,并在字段碼輸出口接74LS245芯片,用該芯片來驅(qū)動(dòng)LED數(shù)碼管顯示。利用P0.0、P0.1和P0.2作為功能按鍵輸入口。</p>&
26、lt;p> 3.2各單元電路介紹</p><p> 3.2.1AT89C51單片機(jī)介紹</p><p> AT89C51是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含2k bytes的可反復(fù)擦寫的只讀Flash程序存儲(chǔ)器和128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理
27、器和Flash存儲(chǔ)單元,所以說AT89C51是一個(gè)功能強(qiáng)大的單片機(jī)。 AT89C51是一個(gè)低功耗高性能單片機(jī),它有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,AT89C51可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)成本。</p><
28、p> 同時(shí)AT89C51的時(shí)鐘頻率可以為零,即具備可用軟件設(shè)置的睡眠省電功能,系統(tǒng)的喚醒方式有RAM、定時(shí)/計(jì)數(shù)器、串行口和外中斷口,系統(tǒng)喚醒后即進(jìn)入繼續(xù)工作狀態(tài)。省電模式中,片內(nèi)RAM將被凍結(jié),時(shí)鐘停止振蕩,所有功能停止工作,直至系統(tǒng)被硬件復(fù)位方可繼續(xù)運(yùn)行。</p><p> 3.2.2 單片機(jī)最小應(yīng)用系統(tǒng)</p><p> 時(shí)鐘電路和復(fù)位電路是單片機(jī)最小應(yīng)用系統(tǒng)中必不可少的
29、。</p><p> 單片機(jī)時(shí)鐘電路圖,如圖3-1所示:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p> 圖3-1 單片機(jī)時(shí)鐘電路圖</
30、p><p> 復(fù)位是使單片機(jī)或系統(tǒng)中的其他部件處于某種確定的初始狀態(tài)。單片機(jī)的工作就是從復(fù)位開始的,當(dāng)在單片機(jī)的RST引腳引入高電平并保持2個(gè)機(jī)器周期時(shí),單片機(jī)內(nèi)部就執(zhí)復(fù)位操作(若該引腳持續(xù)保持高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài))。</p><p> 實(shí)際應(yīng)用中,復(fù)位操作有兩種基本的形式:一種是上電復(fù)位,另一種是上電與按鍵均有效的復(fù)位。由于本次設(shè)計(jì)采用的是上電復(fù)位,所以這里只介紹上電復(fù)位,如
31、下圖3-3所示:</p><p> 圖3-3上電復(fù)位電路</p><p> 上電復(fù)位要求接通電源后,單片機(jī)自動(dòng)實(shí)現(xiàn)復(fù)位操作。常用的上電復(fù)位如上圖所示。上電瞬間RST引腳獲得高電平,隨著電容C1的充電,RST引腳的高電平將逐漸下降。</p><p><b> 3.2.3顯示電路</b></p><p> 一、七段L
32、ED顯示器的原理</p><p> 顯示器是單片機(jī)應(yīng)用系統(tǒng)常用的設(shè)備,包括LED、LCD等。LED顯示器由若干個(gè)發(fā)光二極管組成。七段LED通常構(gòu)成字型“8”,還有一個(gè)發(fā)光二極管用來顯示小數(shù)點(diǎn)。每段LED分別引出一個(gè)電極,電極的名為a、b、c、d、e、d、g、dp,其中dp是小數(shù)點(diǎn)段的引出電極。當(dāng)發(fā)光二極管導(dǎo)通時(shí),相應(yīng)的一個(gè)筆畫或一個(gè)點(diǎn)就發(fā)光??刂葡鄳?yīng)的二極管導(dǎo)通,就能顯示出對(duì)應(yīng)字符。</p>&l
33、t;p> 說明:在該設(shè)計(jì)中,沒有用到電極(dp),而是用單位的數(shù)碼管來顯示分隔符,其</p><p> 七段LED顯示器如圖3-4所示</p><p> 圖3-4 七段LED顯示器</p><p><b> 動(dòng)態(tài)顯示</b></p><p> 本設(shè)計(jì)共用了八位LED顯示器,因此采用動(dòng)態(tài)顯示方式。所謂動(dòng)態(tài)顯
34、示就是一位一位的輪流點(diǎn)亮顯示器的各個(gè)位。對(duì)于顯示器的每一位而言,每隔一段時(shí)間點(diǎn)亮一次。雖然在同一時(shí)刻只有一位顯示器在工作,但由于人眼的視覺暫留效應(yīng)和發(fā)光二極管熄滅時(shí)的余暉,我們看到的卻是多個(gè)字符“同時(shí)“顯示。顯示器亮度既與點(diǎn)亮?xí)r的導(dǎo)通電流有關(guān),也與點(diǎn)亮?xí)r間長短和時(shí)間間隔有關(guān)。</p><p> 顯示器的位數(shù)不大于8位,則控制顯示器公共極電位只需要一個(gè)I/O接口,稱為掃描口或字位口,控制各位LED顯示器所顯示的字
35、型也需要一個(gè)8位接口,稱為段數(shù)據(jù)口或字型口。圖3-5為驅(qū)動(dòng)顯示電路框圖。</p><p> 圖3-4 驅(qū)動(dòng)顯示電路框圖</p><p> 74LS244是我們常用的芯片,用來驅(qū)動(dòng)led或者其他的設(shè)備</p><p> 當(dāng)8051單片機(jī)的P1口總線負(fù)載達(dá)到或超過P1最大負(fù)載能力時(shí),必須接入74LS244等總線驅(qū)動(dòng)器。</p><p>
36、 當(dāng)片選端/CE低電平有效時(shí),DIR=“0”,信號(hào)由 B 向 A 傳輸;(接收)</p><p> 3.2.4 鍵盤及其接口</p><p> 鍵盤是由若干個(gè)按鍵組成的,它是單片機(jī)最簡單的輸入設(shè)備。通過鍵盤輸入數(shù)據(jù)或命令,就可實(shí)現(xiàn)簡單的人機(jī)對(duì)話。</p><p><b> 一、按鍵的抖動(dòng)現(xiàn)象</b></p><p&g
37、t; 按鍵就是一個(gè)簡單的開關(guān)。當(dāng)按鍵按下時(shí),相當(dāng)于開關(guān)閉合;當(dāng)按鍵松開時(shí),相當(dāng)于開關(guān)斷開。按鍵在閉合和斷開時(shí),觸點(diǎn)會(huì)存在抖動(dòng)現(xiàn)象。按鍵抖動(dòng)時(shí)間一般為5ms~10ms,抖動(dòng)可能造成一次按鍵的多次處理問題。應(yīng)采取措施消除抖動(dòng)的影響。消除的方法很多,本設(shè)計(jì)采用軟件延時(shí)的方法來消除抖動(dòng)。當(dāng)單片機(jī)檢測到有按鍵按下時(shí)先定時(shí),然后再檢測按鍵的狀態(tài),若仍是閉合狀態(tài)則認(rèn)為真的有鍵按下。當(dāng)檢測到按鍵釋放時(shí),亦需要做同樣的處理。</p>&l
38、t;p><b> 二、按鍵電路</b></p><p> 獨(dú)立式鍵盤的各個(gè)按鍵相互獨(dú)立,每個(gè)按鍵獨(dú)立地與一根數(shù)據(jù)輸入線(單片機(jī)并行接口或其他芯片的并行接口)連接。獨(dú)立式鍵盤配置靈活,軟件結(jié)構(gòu)簡單,但每個(gè)按鍵必須占用一根接口線,在按鍵數(shù)量不多時(shí),接口線占用多。所以,獨(dú)立式按鍵常用于按鍵數(shù)量不多的場合。</p><p> 該設(shè)計(jì)只用了三個(gè)按鍵,來實(shí)現(xiàn)功能控制。
39、在運(yùn)行狀態(tài)下,按動(dòng)控制按扭S-SET,可對(duì)秒進(jìn)行調(diào)整;按動(dòng)控制按扭M-SET,可對(duì)分進(jìn)行調(diào)整;按動(dòng)控制按扭H-SET,可對(duì)時(shí)進(jìn)行調(diào)整;因此采用獨(dú)立式鍵盤方式,設(shè)計(jì)起來比較簡單。如圖3-6所示</p><p> 圖3-5 鍵盤電路</p><p> 3.3 系統(tǒng)原理圖</p><p> AT89C51的P1口接入三個(gè)按鍵,對(duì)時(shí)、分、秒進(jìn)行調(diào)整。P0口輸出字段
40、碼,控制要顯示的字符,外接74LS245芯片,驅(qū)動(dòng)LED顯示。P3口輸出字位碼,去控制要顯示的位,其原理圖如圖3-6所示。</p><p> 圖3-6 電子鐘原理圖</p><p> 當(dāng)接入電源時(shí),數(shù)字電子鐘以秒為單位開始計(jì)時(shí)。運(yùn)行狀態(tài)下,按下控制按鍵S-SET,對(duì)秒進(jìn)行調(diào)整;按下M-SET調(diào)整分鐘;按下H-SET對(duì)小時(shí)進(jìn)行調(diào)整。這樣通過三個(gè)按鍵,分別對(duì)時(shí)、分、秒進(jìn)行調(diào)整,從而實(shí)現(xiàn)調(diào)
41、時(shí)。</p><p> 第4章 軟件設(shè)計(jì)</p><p> 在軟件設(shè)計(jì)中,整個(gè)程序的主框架是以定時(shí)1s計(jì)算的方式來實(shí)現(xiàn)電子鐘。定時(shí)1s的程序段,使用動(dòng)態(tài)顯示程序?qū)崿F(xiàn)延時(shí),既完成了延時(shí),也完成了數(shù)字的顯示。在計(jì)算程序中,使對(duì)應(yīng)于時(shí)、分、秒的變化量按照60進(jìn)制和24進(jìn)制進(jìn)行計(jì)算,動(dòng)態(tài)顯示程序直接引用這些變量,達(dá)到顯示的數(shù)字也隨之不斷變化,即完成了電子鐘的功能。</p>&
42、lt;p> 其軟件功能模塊主要有鍵輸入程序、中斷程序、顯示程序,以及延時(shí)程序。</p><p> 需要說明的是,這里設(shè)計(jì)的是簡易的電子鐘,主要是用程序運(yùn)行來計(jì)算時(shí)間,這樣用程序來確定出1s的時(shí)間精度是很有限的,所以整個(gè)時(shí)鐘的精度不太高。</p><p> 4.1 主程序的設(shè)計(jì)</p><p> 初始化將時(shí)、分、秒各單元的內(nèi)容清空,置T0為計(jì)數(shù)器方式1,
43、分別給計(jì)數(shù)器的高8位和低8位賦計(jì)數(shù)初值,啟動(dòng)T0工作。鍵入一個(gè)按鍵,如執(zhí)行此動(dòng)作,秒值加1,否則重新鍵如按鍵。</p><p> 主程序模塊:主程序流程圖,如圖4-1所示 </p><p> 圖4-1 主程序流程圖</p><p> 4.2 鍵輸入程序</p><p> 鍵輸入程序用于調(diào)整時(shí)間。以秒為例,按下按鍵S-SET,判斷S-
44、SET是否真的被按下,若沒有鍵按下,轉(zhuǎn)到A1程序段,再次鍵入按鍵,重新判斷。若按鍵按下了,則調(diào)用延時(shí)程序,消除抖動(dòng)現(xiàn)象秒值加1,當(dāng)秒值大于60時(shí),秒清零,進(jìn)行下一次計(jì)時(shí),同時(shí)分加一,并轉(zhuǎn)到J0顯示。此過程循環(huán)執(zhí)行,其程序流程圖如圖4-2所示:</p><p> 圖4-2 鍵輸入程序流程圖</p><p> A1:LCALLDISPLAY;調(diào)用延時(shí)程序</p>
45、<p> JNBS_SET,S1;判斷按鍵是否按下</p><p> JNBM_SET,S2</p><p> JNBH_SET,S3</p><p><b> LJMPA1</b></p><p> S1: LCALLDELAY;去抖動(dòng)</p>&l
46、t;p> JBS_SET,A1</p><p> INCSECOND;秒值加1</p><p> MOVA,SECOND</p><p> CJNEA,#60,J0;判斷是否加到60秒</p><p> MOVSECOND,#0 ;秒清0</p><p><b>
47、 LJMPJ0</b></p><p> J0:JBS_SET,A1</p><p> LCALLDISPLAY ;調(diào)用顯示</p><p><b> SJMPJ0</b></p><p><b> 4.3 顯示程序</b></p><p&g
48、t; 顯示其時(shí)、分、秒的數(shù)值,和兩個(gè)分隔符。以顯示秒為例,當(dāng)P3.7輸入高電平時(shí),秒的個(gè)位所對(duì)應(yīng)的字段碼點(diǎn)亮,顯示其秒的個(gè)位;當(dāng)秒有十位輸入時(shí),P3.6輸入高電平,秒所十位對(duì)應(yīng)的字段碼點(diǎn)亮,顯示其秒十位。其程序流程圖如圖4-3所示:</p><p> 圖4-3 顯示程序流程圖</p><p> DISPLAY:MOVA,SECOND;顯示秒</p><p&g
49、t; MOVB,#10</p><p><b> DIVAB</b></p><p><b> CLRP3.6</b></p><p> MOVCA, @A+DPTR ;取字段碼</p><p> MOVP0, A</p><p> LCALL
50、DELAY ;調(diào)用延時(shí)</p><p> SETBP3.6 ;顯示秒十位</p><p><b> MOVA,B</b></p><p><b> CLRP3.7</b></p><p> MOVCA,@A+DPTR ;取字段碼</p><p><
51、b> MOVP0,A</b></p><p> LCALLDELAY ; 調(diào)用延時(shí),去抖動(dòng)</p><p> SETBP3.7 ;顯示秒個(gè)位</p><p><b> CLRP3.5</b></p><p><b> 4.4延時(shí)程序</b></p&g
52、t;<p> 按鍵抖動(dòng)時(shí)間一般為5ms~10ms,因此延時(shí)10ms,其流程圖如圖4-4所示:</p><p> 圖4-4 延時(shí)程序流程圖</p><p> DELAY:MOVR6,#10 ;延時(shí)10ms</p><p> D1:MOVR7,#250</p><p><b> DJNZR7,
53、$</b></p><p> DJNZR6,D1</p><p><b> RET</b></p><p><b> 2.5 中斷程序</b></p><p> 中斷程序主要用于控制顯示的字符。當(dāng)秒值大于60時(shí),秒清零,重新計(jì)數(shù),分值加1,秒、分同時(shí)顯示;當(dāng)分值大于60時(shí),分
54、清零,重新計(jì)數(shù),小時(shí)加1,秒、分、時(shí)同時(shí)顯示,當(dāng)小時(shí)大于23時(shí),一天的計(jì)時(shí)完畢,秒、分、時(shí)均清零,進(jìn)行第二天的計(jì)時(shí)。此任務(wù)循環(huán)執(zhí)行。其程序流程圖如圖4-5所示:</p><p> 圖4-4 中斷程序流程圖</p><p> DISPLAY: </p><p> MOVA,SECOND;顯示秒</p><p> M
55、OVB,#10</p><p><b> DIVAB</b></p><p><b> CLRP3.6</b></p><p> MOVCA, @A+DPTR</p><p> MOVP0, A</p><p> LCALLDELAY ;調(diào)用延
56、時(shí)</p><p> SETBP3.6 ;顯示秒的十位</p><p><b> MOVA,B</b></p><p><b> CLRP3.7</b></p><p> MOVCA,@A+DPTR</p><p><b> MOVP0,
57、A</b></p><p> LCALLDELAY</p><p> SETBP3.7 ;顯示秒的個(gè)位</p><p><b> CLRP3.5</b></p><p> MOVP0,#40H;顯示分隔符</p><p> LCALLDELAY</p
58、><p><b> SETBP3.5</b></p><p> MOVA,MINUTE;顯示分鐘</p><p> MOVB,#10</p><p><b> DIVAB</b></p><p><b> CLRP3.3</b>
59、</p><p> MOVCA,@A+DPTR</p><p><b> MOVP0,A</b></p><p> LCALLDELAY</p><p> SETBP3.3 ;顯示分的十位</p><p><b> MOVA,B</b></p&g
60、t;<p><b> CLRP3.4</b></p><p> MOVCA,@A+DPTR</p><p><b> MOVP0,A</b></p><p> LCALLDELAY</p><p> SETBP3.4 ;顯示分個(gè)位</p><
61、;p><b> CLRP3.2</b></p><p> MOVP0,#40H;顯示分隔符</p><p> LCALLDELAY</p><p><b> SETBP3.2</b></p><p> MOVA,HOUR;顯示小時(shí)</p><
62、;p> MOVB,#10</p><p><b> DIVAB</b></p><p><b> CLRP3.0</b></p><p> MOVCA,@A+DPTR</p><p><b> MOVP0,A</b></p><
63、;p> LCALLDELAY</p><p> SETBP3.0 ;顯示時(shí)的十位</p><p><b> MOVA,B</b></p><p><b> CLRP3.1</b></p><p> MOVCA,@A+DPTR</p><p>&
64、lt;b> MOVP0,A</b></p><p> LCALLDELAY</p><p> SETBP3.1 ;顯示時(shí)的個(gè)位</p><p><b> RET</b></p><p><b> 第5章 調(diào)試與運(yùn)行</b></p><p>
65、;<b> 5.1 電路仿真</b></p><p> 此設(shè)計(jì)的電路在單片機(jī)仿真軟件[Proteus.Professional.7.1]中進(jìn)行仿真,仿真電路如圖5-1所示:</p><p> 圖5-1 電子鐘仿真電路圖</p><p><b> 5.2 調(diào)試和運(yùn)行</b></p><p>
66、 在KEIL (單片機(jī)匯編) C51軟件中編寫好的程序,將程序放入單片機(jī)仿真軟件中,結(jié)合硬件電路進(jìn)行調(diào)試與運(yùn)行。</p><p> 通過按鍵對(duì)時(shí)間進(jìn)行調(diào)整。如顯示時(shí)間為14-30-22,既是14點(diǎn)30分22秒,通過以下調(diào)整則可實(shí)現(xiàn)。</p><p> 按動(dòng)S-SET鍵,將秒調(diào)到22;</p><p> 按動(dòng)M-SET鍵,將分調(diào)到30;</p>&
67、lt;p> 按動(dòng)H-SET鍵,將時(shí)調(diào)到14。</p><p> 則將時(shí)間調(diào)到了所要顯示的時(shí)間14-30-22,通過此方法可將時(shí)間調(diào)整到任何需要顯示的時(shí)間。</p><p><b> 第6章 結(jié) 論</b></p><p> 因?yàn)閱纹瑱C(jī)的種類多,而型號(hào)雜,也是我們學(xué)習(xí)中的困難,所以就MCS—51系列的產(chǎn)品來說,就是一個(gè)典型的學(xué)習(xí)
68、方法。對(duì)于類似匯編的單片機(jī)編程過程,也是一個(gè)十分有趣的過程。為了更好的說明,我以上介紹先從應(yīng)用電路切入,同時(shí)介紹它們的使用方法,以便能快速掌握它們的應(yīng)用。</p><p> 通過本次的課程設(shè)計(jì),我學(xué)會(huì)了單片機(jī)的一般設(shè)計(jì)過程,通常都要進(jìn)行系統(tǒng)擴(kuò)展與配置,因此,要完成一個(gè)單片機(jī)的設(shè)計(jì)工作,必須依次做到下述工作:1、硬件電路的設(shè)計(jì)、組裝與調(diào)試;2、應(yīng)用軟件的編寫、調(diào)試;3、完整應(yīng)用軟件的調(diào)試、固化和脫機(jī)運(yùn)行。而在進(jìn)行
69、硬件系統(tǒng)設(shè)計(jì)時(shí)我們應(yīng)當(dāng)盡量做到:1、盡可能的選擇典型電路,并符合單片機(jī)的常規(guī)使用方法;2、在充分滿足系統(tǒng)功能要求前提下,留余地以便于二次開發(fā);3、硬件結(jié)構(gòu)設(shè)計(jì)應(yīng)與軟件設(shè)計(jì)方案一并考慮;4、整個(gè)系統(tǒng)相關(guān)器件要力求性能的匹配;5、硬件上要有可靠性與抗干擾設(shè)計(jì);6、充分考慮單片機(jī)的帶載驅(qū)動(dòng)能力。所以我用單片機(jī)編寫了上面的程序,因?yàn)榛A(chǔ)知識(shí)學(xué)的不怎么好,如有錯(cuò)誤之處,還望老師理解,并加以批改。通過這次設(shè)計(jì)使我對(duì)單片機(jī)有了更深入的了解。培養(yǎng)了我的
70、動(dòng)手實(shí)踐能力。</p><p><b> 致 謝</b></p><p> 本文從擬定題目到定稿,經(jīng)歷了很長一段時(shí)間。在本論文完成之際,首先要向我的導(dǎo)師*老師致以誠摯的謝意。在論文的寫作過程中,*老師給予我許許多多的幫助,*老師不厭其煩地為我講解畢業(yè)設(shè)計(jì)中繁瑣的問題,并且多次提出寶貴意見,使我的畢業(yè)設(shè)計(jì)能夠更完整,更充實(shí)。</p><p>
71、; 同時(shí),還要感謝四年中孜孜不倦的為我們講課的老師們,是他們毫無保留地將他們的知識(shí)傳授給我們,才使得今天的我能夠順利的完成我的畢業(yè)設(shè)計(jì),感謝四川信息職業(yè)技術(shù)學(xué)院,是這里給我提供了良好的學(xué)習(xí)環(huán)境和生活環(huán)境,讓我的大學(xué)生活豐富多彩,讓我對(duì)今后的生活更加充滿了信心。</p><p> 另外,衷心感謝我的同窗同學(xué)們,在我畢業(yè)論文寫作中,與他們的探討交流使我受益頗多;同時(shí),他們也給了我很多無私的幫助和支持,我在此深表謝
72、意!</p><p> 最后,向我親愛的家人和朋友表示深深的謝意,他們給予我的愛、理解、關(guān)心和支持是我不斷前進(jìn)的動(dòng)力。</p><p> “懼懷逸興思斗志,欲上青天攬日月?!?lt;/p><p><b> 參考文獻(xiàn)</b></p><p> [1].朱永金等主編,《單片機(jī)應(yīng)用技術(shù)》,中國勞動(dòng)社會(huì)保障出版社。</
73、p><p> [2].彭冬明.韋友春主編,《單片機(jī)實(shí)驗(yàn)教程》,理工大學(xué)出版社。 </p><p> [3].朱家建主編,《單片機(jī)原理及應(yīng)用》,機(jī)械工業(yè)出版社。</p><p> [4].胡漢才主編,《單片機(jī)原理及接口技術(shù)》,清華大學(xué)出版社。 </p><p> [5].張偉主編,《單片機(jī)原理及應(yīng)用》,機(jī)械工業(yè)出版社。</p>
74、<p> 附錄一 系統(tǒng)原理圖</p><p> 附錄二 元件清單</p><p> 附錄三 程序清單</p><p> S_SETBITP1.0;數(shù)字鐘秒控制位</p><p> M_SETBITP1.1;分鐘控制位</p><p> H_SET
75、BITP1.2;小時(shí)控制位</p><p> SECONDEQU30H</p><p> MINUTEEQU31H</p><p> HOUREQU32H</p><p> TCNTEQU34H </p><p><b> ORG00H</b>
76、;</p><p> SJMPSTART</p><p><b> ORG0BH</b></p><p> LJMPINT_T0 </p><p> START: </p><p> MOVDPTR,#TABLE</p><p> M
77、OVHOUR,#0;初始化</p><p> MOVMINUTE,#0</p><p> MOVSECOND,#0</p><p> MOVTCNT,#0</p><p> MOVTMOD,#01H ;置T0為計(jì)數(shù)器方式1</p><p> MOVTH0,#
78、(65536-50000)/256;定時(shí)50毫秒</p><p> MOVTL0,#(65536-50000)MOD 256</p><p> MOVIE,#82H</p><p> SETB TR0 ;啟動(dòng)T0工作</p><p> A1:LCALL DISPLAY</p>
79、<p> JNBS_SET,S1</p><p> JNBM_SET,S2</p><p> JNBH_SET,S3</p><p><b> LJMPA1</b></p><p> S1: </p><p> LCALLDELAY
80、;去抖動(dòng)</p><p> JBS_SET,A1</p><p> INCSECOND;秒值加1</p><p> MOVA,SECOND</p><p> CJNEA,#60,J0;判斷是否加到60秒</p><p> MOVSECOND,#0</p><p>
81、;<b> LJMPJ0</b></p><p><b> S2: </b></p><p> LCALLDELAY</p><p> JBM_SET,A1</p><p> K1: </p><p> INCMINUTE;分鐘
82、值加1</p><p> MOVA,MINUTE</p><p> CJNEA,#60,J1;判斷是否加到60分</p><p> MOVMINUTE,#0</p><p><b> LJMPJ1</b></p><p> S3: </p>&l
83、t;p> LCALLDELAY</p><p> JBH_SET,A1</p><p> K2: </p><p> INCHOUR;小時(shí)值加1</p><p> MOVA,HOUR</p><p> CJNEA,#24,J2;判斷是否加到24小時(shí)</p>
84、;<p> MOVHOUR,#0 </p><p><b> LJMPJ2 </b></p><p> J0:JBS_SET,A1</p><p> LCALLDISPLAY</p><p><b> SJMPJ0</b></p><
85、p> J1:JB M_SET,A1 </p><p> LCALLDISPLAY</p><p><b> SJMPJ1</b></p><p> J2: </p><p> JB H_SET,A1</p><p> LCALL
86、DISPLAY</p><p><b> SJMP J2</b></p><p><b> INT_T0: </b></p><p> MOVTH0,#(65536-50000)/256</p><p> MOVTL0,#(65536-50000)MOD 256</p&g
87、t;<p><b> INCTCNT</b></p><p> MOVA,TCNT</p><p> CJNEA,#20,RETUNE;計(jì)時(shí)1秒</p><p> INCSECOND</p><p> MOVTCNT,#0</p><p> MOV
88、A,SECOND</p><p> CJNEA,#60,RETUNE</p><p> INCMINUTE</p><p> MOVSECOND,#0</p><p> MOVA,MINUTE</p><p> CJNEA,#60,RETUNE</p><p><
89、b> INCHOUR</b></p><p> MOVMINUTE,#0</p><p> MOVA,HOUR</p><p> CJNEA,#24,RETUNE</p><p> MOVHOUR,#0 </p><p> RETUNE: </
90、p><p><b> RETI</b></p><p> DISPLAY: </p><p> MOVA,SECOND;顯示秒</p><p> MOVB,#10</p><p><b> DIVAB</b></p><p&
91、gt;<b> CLRP3.6</b></p><p> MOVCA, @A+DPTR</p><p> MOVP0, A</p><p> LCALLDELAY</p><p><b> SETBP3.6</b></p><p><b>
92、 MOVA,B</b></p><p><b> CLRP3.7</b></p><p> MOVCA,@A+DPTR</p><p><b> MOVP0,A</b></p><p> LCALLDELAY</p><p><b&g
93、t; SETBP3.7</b></p><p><b> CLRP3.5</b></p><p> MOVP0,#40H;顯示分隔符</p><p> LCALLDELAY</p><p><b> SETBP3.5</b></p><p&
94、gt; MOVA,MINUTE;顯示分鐘</p><p> MOVB,#10</p><p><b> DIVAB</b></p><p><b> CLRP3.3</b></p><p> MOVCA,@A+DPTR</p><p><b
95、> MOVP0,A</b></p><p> LCALLDELAY</p><p><b> SETBP3.3</b></p><p><b> MOVA,B</b></p><p><b> CLRP3.4</b></p>
96、;<p> MOVCA,@A+DPTR</p><p><b> MOVP0,A</b></p><p> LCALLDELAY</p><p><b> SETBP3.4</b></p><p><b> CLRP3.2</b></
97、p><p> MOVP0,#40H;顯示分隔符</p><p> LCALLDELAY</p><p><b> SETBP3.2</b></p><p> MOVA,HOUR;顯示小時(shí)</p><p> MOVB,#10</p><p>&l
98、t;b> DIVAB</b></p><p><b> CLRP3.0</b></p><p> MOVCA,@A+DPTR</p><p><b> MOVP0,A</b></p><p> LCALLDELAY</p><p>
99、<b> SETBP3.0</b></p><p><b> MOVA,B</b></p><p><b> CLRP3.1</b></p><p> MOVCA,@A+DPTR</p><p><b> MOVP0,A</b>&
100、lt;/p><p> LCALLDELAY</p><p><b> SETBP3.1</b></p><p><b> RET</b></p><p> TABLE: </p><p> DB 3FH,06H,5BH,4FH,66H</p
101、><p> DB6DH,7DH,07H,7FH,6FH</p><p> DELAY: </p><p> MOVR6,#10</p><p> D1:MOVR7,#250</p><p><b> DJNZR7,$</b></p><p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)數(shù)字時(shí)鐘畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---單片機(jī)數(shù)字時(shí)鐘設(shè)計(jì)
- 單片機(jī)簡易數(shù)字時(shí)鐘畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)數(shù)字時(shí)鐘設(shè)計(jì)
- 基于51單片機(jī)數(shù)字時(shí)鐘 畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)
- 基于單片機(jī)的數(shù)字時(shí)鐘的設(shè)計(jì) 畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的數(shù)字時(shí)鐘的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)---數(shù)字式智能時(shí)鐘設(shè)計(jì)
- 單片機(jī)數(shù)字時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)數(shù)字時(shí)鐘
- 單片機(jī)畢業(yè)設(shè)計(jì)--基于單片機(jī)的電子時(shí)鐘
- 單片機(jī)畢業(yè)論文--數(shù)字時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)數(shù)字時(shí)鐘
- 單片機(jī)畢業(yè)設(shè)計(jì)時(shí)鐘程序
- 畢業(yè)設(shè)計(jì)---基于mcs-51單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)數(shù)字時(shí)鐘.doc
- 單片機(jī)多功能數(shù)字電子時(shí)鐘設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 單片機(jī)畢業(yè)設(shè)計(jì)--用單片機(jī)設(shè)計(jì)日歷和時(shí)鐘
- 單片機(jī)數(shù)字時(shí)鐘資料
評(píng)論
0/150
提交評(píng)論