版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 智能定時器設(shè)計</b></p><p> 摘要:定時器的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,同時定時器的集成化受廣大消費的喜愛, 因此得到了廣泛的使用。</p><p> 定時器是采用數(shù)字電路實現(xiàn)對“時”、“分”、“秒”數(shù)字顯示的計時裝置。定時器的精度、穩(wěn)定度遠(yuǎn)遠(yuǎn)超過老式定時器。在這次設(shè)計中,我們采用LED數(shù)碼管顯示時、分、秒,以2
2、4 小時計時方式,根據(jù)數(shù)碼管動態(tài)顯示原理來進行顯示,用12MHz的晶振產(chǎn)生振蕩脈沖,定時器計數(shù)。在此次設(shè)計中,電路具有顯示時間的其本功能,還可以實現(xiàn)對時間的調(diào)整。 </p><p> 本次設(shè)計定時器主要通過單片機系統(tǒng)將傳輸?shù)臄?shù)據(jù)顯示在數(shù)碼顯示管和LED燈上,從而實現(xiàn)的鬧鐘、整點報時、時間顯示、校對時間等一系列的的操作。</p><p> 關(guān)鍵詞: 定時器; 單片機; STC8
3、9C52</p><p><b> 目 錄</b></p><p><b> 摘 要1</b></p><p><b> 1 引 言1</b></p><p> 1.定時器的背景1</p><p> 1.2定時器的意義1</
4、p><p> 1.3定時器的應(yīng)用1</p><p> 1.4主要設(shè)計任務(wù)2</p><p> 2 整體設(shè)計方案3</p><p> 2.1 定時器的功能及設(shè)計要求3</p><p> 2.2 定時器的實現(xiàn)形式3</p><p> 2.3 實現(xiàn)定時器計時的基本方法4</
5、p><p> 3 定時器硬件系統(tǒng)的設(shè)計6</p><p> 3.1 定時器主控電路CPU的選擇6</p><p> 3.2 定時器主控電路最小應(yīng)用系統(tǒng)10</p><p> 3.3 鍵盤及其接口11</p><p> 3.3.1按鍵的去抖處理11</p><p> 3.3.2
6、定時器按鍵電路11</p><p> 3.4 蜂鳴器電路12</p><p> 3.5 數(shù)碼管顯示電路13</p><p> 4 定時器軟件系統(tǒng)的設(shè)計16</p><p> 4.1 主程序流程圖16</p><p> 4.2 中斷流程圖17</p><p> 4.3 定
7、時程序設(shè)計19</p><p> 5 定時器的系統(tǒng)調(diào)試仿真與測試20</p><p><b> 5.1 調(diào)試20</b></p><p><b> 5.2 仿真21</b></p><p><b> 5.3 測試23</b></p><p
8、><b> 6 總 結(jié)25</b></p><p><b> 致 謝26</b></p><p><b> 參考文獻27</b></p><p> 附件一:定時器電路圖28</p><p> 附件二:元器件清單29</p><p
9、> 附件三:源程序31</p><p><b> 第1章 引 言</b></p><p> 1.1數(shù)字定時器的背景 </p><p> 20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品更新?lián)Q代
10、的節(jié)奏也越來越快。時間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時間。忘記了要做的事情,當(dāng)事情不是很重要的時候,這種遺忘無傷大雅。但是,一旦重要事情,一時的耽誤可能釀成大禍。</p><p> 目前,單片機正朝著高性能和多品種方向發(fā)展趨勢將是進一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內(nèi)裝化等幾個方面發(fā)展。單片機應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)
11、計思想和設(shè)計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能用單片機通過軟件方法來實現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。</p><p> 單片機模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)時、分、秒計時的裝置,與機械式時鐘相比具有更高的準(zhǔn)確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。</p><p>
12、; 1.2數(shù)字定時器的意義</p><p> 定時器是采用數(shù)字電路實現(xiàn)對時、分、秒。數(shù)字顯示的計時裝置,廣泛用于個人家庭、車站,、碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式定時器, 定時器的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了定時器原先的報時功能。諸如定時自動報警、按時自動打鈴、時間程序自動控制、定
13、時廣播、自動起閉路燈、定時開關(guān)烘箱、通斷動力設(shè)備、甚至各種定時電氣的自動啟用等,所有這些,都是以定時器數(shù)字化為基礎(chǔ)的。因此,研究定時器及擴大其應(yīng)用,有著非?,F(xiàn)實的意義。[出售10元2000個財富值,足夠大學(xué)4年的使用。+威信(mk6689866)。]</p><p> 感謝您對我們的信任.已幫助1800多名畢業(yè)生完成畢業(yè)設(shè)計,順利通過畢業(yè).</p><p> 在本工作室定做,請認(rèn)真閱讀
14、以下注意事項:</p><p> 1.承接畢業(yè)設(shè)計/論文類型[???本科/工碩]</p><p> 1.1 PLC畢業(yè)設(shè)計,單片機畢業(yè)設(shè)計</p><p> 1.2.電子|通信|電力|電氣|機電|自動化類</p><p> 1.3.圖像處理類/地理信息GIS類</p><p> 2.認(rèn)真如實填寫論文定做報表。
15、因為我們是根據(jù)你的定做需求收費,并按此需求,作為畢業(yè)設(shè)計制作完成時驗收的依據(jù).</p><p> 3.填寫完成后。+qq或發(fā)郵箱</p><p> 請發(fā)至郵箱:1046908547@qq.com 我們將在一日之內(nèi)回復(fù)你,并與你聯(lián)系.</p><p> 1.3數(shù)字定時器的應(yīng)用 </p><p> 數(shù)字定時器已成為人們?nèi)粘I钪械谋匦杵罚?/p>
16、廣泛用于個人家庭以及車站、碼頭、劇場、辦公室等公共場所,給人們的生活、學(xué)習(xí)、工作、娛樂帶來極大的方便。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進的石英技術(shù),使定時器具有走時準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)點,它還用于計時、自動報時及自動控制等各個領(lǐng)域。 </p><p><b> 1.4主要設(shè)計任務(wù)</b></p><p> 本次設(shè)計需要完成的設(shè)計不僅僅是完成畢業(yè)設(shè)
17、計而已,更主要的是通過本次本次的設(shè)計更好的來回顧三年所學(xué)的知識,老師們的辛勤奉獻自己究竟學(xué)到了什么,同時也是自己對自己即將結(jié)束的大學(xué)生活畫個句號,為即將來到的工作作出了是實際性的準(zhǔn)備,不僅僅是以往那種只學(xué)習(xí)書面知識而已,更多的是鍛煉自己實際操作的能力,也算是在進入工作前給自己的一個啟發(fā)。然而就本次設(shè)計的定時器而言要完成的任務(wù)有:</p><p> 完成硬件電路的設(shè)計,包括數(shù)字鐘最小系統(tǒng)設(shè)計、按鍵電路、電源電路、
18、</p><p> 蜂鳴器電路、二極管指示燈和LED數(shù)碼管顯示電路。</p><p> (2)完成軟件程序的編寫和編譯,使系統(tǒng)具備如下功能:時間顯示、校對 </p><p> 時間、鬧鈴、報時等功能。</p><p> (3)完成電路的模擬仿真。</p><p> (4)完成實物的焊接及測試。</p&g
19、t;<p> 第2章 整體設(shè)計方案</p><p> 2.1 定時器的功能及設(shè)計要求</p><p> ?。?)通過單片機內(nèi)定時器控制走時,準(zhǔn)確持續(xù)走時,調(diào)時不影響走時。</p><p> ?。?)在六個數(shù)碼管上顯示時、分、秒及兩個小數(shù)點。</p><p> (3)含有鬧鐘功能,可以選擇鬧鐘開關(guān),可以設(shè)定鬧鈴時間。<
20、;/p><p> ?。?)到達(dá)鬧鐘時刻蜂鳴器警報,可以關(guān)掉警報。</p><p> ?。?)當(dāng)時間到整點時,蜂鳴器會短響一聲,可以關(guān)掉報時。</p><p> 2.2 定時器的實現(xiàn)形式</p><p> 利用單片機的智能性,可方便的實現(xiàn)具有智能定時器的設(shè)計。而且,微處理系統(tǒng)具有時鐘振蕩系統(tǒng),利用系統(tǒng)時鐘并借助微處理器的定時/計數(shù)器功能可以實現(xiàn)
21、數(shù)字定時器的功能。定時器電路主要由單片機(STC89C52)主控電路、電源電路、按鍵控制電路、數(shù)碼管顯示電路、蜂鳴器電路、以及二極管指示燈等幾個部分組成,它主要實現(xiàn)時鐘的顯示,以及對時、分、秒進行調(diào)整,即實現(xiàn)調(diào)時的功能,其數(shù)字定時器系統(tǒng)整體結(jié)構(gòu)如圖2-1所示。</p><p> 圖2-1 數(shù)字定時器的系統(tǒng)框架</p><p><b> ?。?)顯示方案</b>&l
22、t;/p><p> 方案一:靜態(tài)顯示就是CPU將要顯示的字或字段碼送到輸出口,顯示器就可以顯示出所要顯示的字符,如果CPU不去改寫它,它將一直保持下去;靜態(tài)顯示硬件開銷大,電路復(fù)雜,信息刷新速度慢。</p><p> 方案二:動態(tài)顯示則是一位一位的輪流點亮顯示器的各個位(掃描)。對于顯示器的每一位而言,每隔一段時間點亮一次;動態(tài)顯示耗能較小,但編寫程序較復(fù)雜。動態(tài)顯示硬件連接簡單,信息刷新
23、速度快。</p><p> 由于本次設(shè)計是對時間進行顯示,所以在此選擇的是方案二,采用動態(tài)顯示。</p><p><b> 鍵盤方案</b></p><p> 方案一:獨立式鍵盤。獨立式鍵盤的各個按鍵相互獨立,每個按鍵獨立的與一根數(shù)據(jù)輸入線(單片機并行接口或其他芯片的并行接口)連接。獨立式鍵盤配置靈活,軟件結(jié)構(gòu)簡單。但每個按鍵必須占用一根
24、接口線,在按鍵數(shù)量不多時,接口占用多。所以,獨立式按鍵常用于按鍵數(shù)量不多的場合。</p><p> 方案二:矩陣式鍵盤。矩陣式鍵盤采用的是行列式結(jié)構(gòu),按鍵設(shè)置在行列的交點上。(當(dāng)數(shù)量接口為8時,可以將4根接口定義為行線,另4根定義為列線,形成4*4鍵盤,可以配置16個按鍵。)</p><p> 由于本設(shè)計只用了6個按鍵,不需要采用矩陣式鍵盤,所以選擇第一種方案,采用獨立式鍵盤。<
25、/p><p><b> (3)計時方案</b></p><p><b> 采用軟件控制:</b></p><p> 利用單片機內(nèi)部的定時/計數(shù)器進行定時,配合軟件定時實現(xiàn)時、分、秒的計時,該方案能夠使設(shè)計者在設(shè)計過程中容易實現(xiàn),且節(jié)省硬件成本,因此本系統(tǒng)將采用軟件方法實現(xiàn)計時。</p><p>
26、 2.3 實現(xiàn)定時器計時的基本方法</p><p> 用STC89C52單片機的定時/計數(shù)器T0產(chǎn)生一秒的定時時間,作為秒計數(shù)時間,當(dāng)一秒產(chǎn)生時,秒計數(shù)加1。</p><p> STC89C52單片機的內(nèi)部16位定時/計數(shù)器是一個可編程定時/計數(shù)器,它既可以工作在13位定時方式,也可以工作在16位定時方式和8位定時方式。只要通過設(shè)置特殊功能寄存器TMOD,即可完成。定時/計數(shù)器何時工作
27、也是通過TCON特殊功能寄存器來設(shè)置的。</p><p> 在此設(shè)計中,選擇16位定時工作方式。對于T0來說,系統(tǒng)時鐘為12MHz,最大定時也只有65536us,即65.536ms,無法達(dá)到我們所需要的1秒的定時,因此,必須通過軟件來處理這個問題,假設(shè)取T0的最大定時為50ms,即要定時1秒需要經(jīng)過20次的50ms的定時。對于這20次計數(shù),就可以采用軟件的方法來統(tǒng)計了。</p><p>
28、 設(shè)定TMOD=00000001B,即TMOD=01H,設(shè)置定時/計數(shù)器0工作在方式1。</p><p> 下面我們要給T0定時/計數(shù)器的TH0,TL0裝入預(yù)置初值,通過下面的公式可以計算出:</p><p> TH0=(216-50000)/256</p><p> TL0=(216-50000) MOD取摸 256</p><p>
29、; 這樣,當(dāng)定時/計數(shù)器0計滿50ms時,產(chǎn)生一個中斷,我們可以在中斷服務(wù)程序中,對中斷次數(shù)加以統(tǒng)計,以實現(xiàn)數(shù)字鐘的邏輯功能。</p><p> 第3章 定時器硬件系統(tǒng)的設(shè)計 </p><p> 3.1 定時器主控電路CPU的選擇</p><p> 主控電路CPU是系統(tǒng)的核心單元,在執(zhí)行程序中其關(guān)鍵作用,它的優(yōu)劣直接關(guān)系到系統(tǒng)的性能。本次設(shè)計主要以STC8
30、9C52單片機為研究核心,分析其內(nèi)部結(jié)構(gòu),硬件資源分配等,下面是對STC89C52單片機的介紹:</p><p> STC89C52RC單片機是新一代高速、低功耗、超強抗干擾的單片機,指令代碼完全兼容傳統(tǒng)8051單片機,12時鐘/機器周期和6時鐘/機器周期可以任意選擇。 </p><p><b> 主要特性如下:</b></p><p
31、> ?。?)增強型8051單片機,6時鐘/機器周期和12時鐘/機器周期可以任意選擇,指令代碼完全兼容傳統(tǒng)8051</p><p> ?。?)工作電壓:5.5V~3.3V(5V單片機)/3.8V~2.0V(3V單片機)</p><p> ?。?)工作頻率范圍:0~40MHz,相當(dāng)于普通8051的0~80MHz,實際工作頻率可達(dá)48MHz</p><p> (4
32、)用戶應(yīng)用程序空間為8K字節(jié)</p><p> (5)片上集成512字節(jié)RAM</p><p> ?。?)通用I/O口(32個),復(fù)位后為:P1/P2/P3/P4是準(zhǔn)雙向口/弱上拉,P0口是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,作為I/O口用時,需加上拉電阻。</p><p> ?。?)ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無需
33、專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程序,數(shù)秒即可完成一片</p><p> ?。?)具有EEPROM功能</p><p> ?。?)具有看門狗功能</p><p> (10)共3個16位定時器/計數(shù)器。即定時器T0、T1、T2</p><p> (11)外部中斷4路,下降沿中斷或低電平觸發(fā)電路,Pow
34、er Down模式可由外部中斷低電平觸發(fā)中斷方式喚醒</p><p> (12)通用異步串行口(UART),還可用定時器軟件實現(xiàn)多個UART</p><p> ?。?3)工作溫度范圍:-40~+85℃(工業(yè)級)/0~75℃(商業(yè)級)</p><p> ?。?4)PDIP封裝</p><p> STC89C52RC單片機的工作模式:<
35、/p><p> 掉電模式:典型功耗<0.1μA,可由外部中斷喚醒,中斷返回后,繼續(xù)執(zhí)行原程序</p><p> 空閑模式:典型功耗2mA</p><p> 正常工作模式:典型功耗4Ma~7mA</p><p> 掉電模式可由外部中斷喚醒,適用于水表、氣表等電池供電系統(tǒng)及便攜設(shè)備</p><p> STC89
36、C52單片機引腳圖如圖3-1所示。</p><p> 圖3-1 STC89C52引腳圖</p><p> STC89C52引腳功能說明 :</p><p> VCC(40引腳):電源電壓</p><p> VSS(20引腳):接地</p><p> P0端口(P0.0~P0.7,39~32引腳):P0口是一個
37、漏極開路的8位雙向I/O口。作為輸出端口,每個引腳能驅(qū)動8個TTL負(fù)載,對端口P0寫入“1”時,可以作為高阻抗輸入。在訪問外部程序和數(shù)據(jù)存儲器時,P0口也可以提供低8位地址和8位數(shù)據(jù)的復(fù)用總線。此時,P0口內(nèi)部上拉電阻有效。在Flash ROM編程時,P0端口接收指令字節(jié);而在校驗程序時,則輸出指令字節(jié)。驗證時,要求外接上拉電阻。</p><p> P1端口(P1.0~P1.7,1~8引腳):P1口是一個帶內(nèi)部
38、上拉電阻的8位雙向I/O口。P1的輸出緩沖器可驅(qū)動(吸收或者輸出電流方式)4個TTL輸入。對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這是可用作輸入口。P1口作輸入口使用時,因為有內(nèi)部上拉電阻,那些被外部拉低的引腳會輸出一個電流(In)</p><p> 此外,P1.0和P1.1還可以作為定時器/計數(shù)器2的外部技術(shù)輸入(P1.0/T2)和定時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體參見下表3-
39、1所示。</p><p> 在對Flash ROM編程和程序校驗時,P1接收低8位地址。</p><p> 表3-1 P1.0和P1.1引腳復(fù)用功能</p><p> P2端口(P2.0~P2.7,21~28引腳):P2口是一個帶內(nèi)部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可以驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫入1時,通過內(nèi)部的上拉電阻
40、把端口拉到高電平,這時可用作輸入口。P2作為輸入口使用時,因為有內(nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流(In)</p><p> 在訪問外部程序存儲器和16位地址的外部數(shù)據(jù)存儲器(如執(zhí)行“MOVX @DPTR”指令)時,P2送出高8位地址。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行“MOVX @R1”指令)時,P2口引腳上的內(nèi)容(就是專用寄存器(SFR)區(qū)中的P2寄存器的內(nèi)容),在整個訪問期間不會改
41、變。</p><p> 在對Flash ROM編程和程序校驗期間,P2也接收高位地址和一些控制信號。</p><p> P3端口(P3.0~P3.7,10~17引腳):P3是一個帶內(nèi)部上拉電阻的8位雙向I/O端口。P3的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這時可用作輸入口。P3做輸入口使用時,因為有內(nèi)部的上拉電阻,那
42、些被外部信號拉低的引腳會輸入一個電流(In)</p><p> 在對Flash ROM編程或程序校驗時,P3還接收一些控制信號。</p><p> P3口除作為一般I/O口外,還有其他一些復(fù)用功能,如下表所示3-2所示。</p><p> 表3-2 P3口引腳復(fù)用功能</p><p><b> 續(xù)表3-2</b>
43、;</p><p> RST(9引腳):復(fù)位輸入。當(dāng)輸入連續(xù)兩個機器周期以上高電平時為有效,用來完成單片機單片機的復(fù)位初始化操作。看門狗計時完成后,RST引腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。</p><p> (30引腳):地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位
44、地址的輸出脈沖。在Flash編程時,此引腳()也用作編程輸入脈沖。</p><p> 在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。</p><p> 如果需要,通過將地址位8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE僅在執(zhí)行MOVX或MOV指令時有效。否
45、則,ALE將被微弱拉高。這個ALE使能標(biāo)志位(地址位8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。</p><p> PESN(29引腳):外部程序存儲器選通信號PESN是外部程序存儲器選通信號。當(dāng)AT89C51RC從外部程序存儲器執(zhí)行外部代碼碼PESN在每個機器周期被激活兩次,而訪問外部數(shù)據(jù)存儲器時,PESN將不被激活。</p><p> /VPP(31引腳):訪問
46、外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,EA必須接GND。注意加密方式1時,EA將內(nèi)部鎖定位RESET。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在Flash編程期間,EA也接收12伏VPP電壓。</p><p> XTAL1(19引腳):振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。</p><p> XTAL2(18引腳):振蕩器反相放大器的輸入
47、端。</p><p> 3.2定時器主控電路最小應(yīng)用系統(tǒng)</p><p> 時鐘電路和復(fù)位電路是主控電路最小應(yīng)用系統(tǒng)中必不可少的。[出售10元2000個財富值,足夠大學(xué)4年的使用。+威信(mk6689866)。]</p><p> 感謝您對我們的信任.已幫助1800多名畢業(yè)生完成畢業(yè)設(shè)計,順利通過畢業(yè).</p><p> 在本工作室定
48、做,請認(rèn)真閱讀以下注意事項:</p><p> 1.承接畢業(yè)設(shè)計/論文類型[???本科/工碩]</p><p> 1.1 PLC畢業(yè)設(shè)計,單片機畢業(yè)設(shè)計</p><p> 1.2.電子|通信|電力|電氣|機電|自動化類</p><p> 1.3.圖像處理類/地理信息GIS類</p><p> 2.認(rèn)真如實填寫
49、論文定做報表。因為我們是根據(jù)你的定做需求收費,并按此需求,作為畢業(yè)設(shè)計制作完成時驗收的依據(jù).</p><p> 3.填寫完成后。+qq或發(fā)郵箱</p><p> 請發(fā)至郵箱:1046908547@qq.com 我們將在一日之內(nèi)回復(fù)你,并與你聯(lián)系.</p><p> 定時器時鐘電路原理圖如圖3-2所示:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放
50、大器可以配置為內(nèi)部振蕩器。石英振蕩和陶瓷振蕩均可采用。如采外部時鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p> 圖3-2 數(shù)字鐘時鐘電路 </p><p> 復(fù)位是使單片機或系統(tǒng)中的其他部件處于某種確定的初始狀態(tài)。單片機的工作就是從復(fù)位開
51、始的,當(dāng)在單片機的RST引腳引入高電平并保持2個機器周期時,單片機內(nèi)部就執(zhí)行復(fù)位操作(若該引腳持續(xù)保持高電平,單片機就處于循環(huán)復(fù)位狀態(tài))。</p><p> 本次設(shè)計定時器主控電路最小系統(tǒng)原理圖如圖3-3所示。</p><p> 圖3-3 主控電路最小系統(tǒng)原理圖</p><p> 3.3 鍵盤及其接口</p><p> 3.3.1
52、按鍵的去抖處理</p><p> 按鍵就是一個簡單的開關(guān)。當(dāng)按鍵按下時,相當(dāng)于開關(guān)閉合;當(dāng)按鍵松開時,相當(dāng)于開關(guān)斷開。按鍵在閉合和斷開時,觸點會存在抖動現(xiàn)象。按鍵抖動時間一般為5ms~10ms,抖動可能造成一次按鍵的多次處理問題。應(yīng)采取措施消除抖動的影響。消除的方法很多,本設(shè)計采用軟件延時的方法來消除抖動。當(dāng)單片機檢測到有按鍵按下時先定時,然后再檢測按鍵的狀態(tài),若仍是閉合狀態(tài)則認(rèn)為真的有按鍵按下。當(dāng)檢測到按鍵釋
53、放時,亦需要做同樣的處理。</p><p> 3.3.2 定時器按鍵電路</p><p> 定時器單片機控制系統(tǒng)中,往往只需要幾個功能鍵,此時,可采用獨立式按鍵結(jié)構(gòu)。</p><p> 獨立式按鍵是直接用I/O口線構(gòu)成的單個按鍵電路,其特點是每個按鍵單獨占用一根I/O口線,每個按鍵的工作不會影響其它I/O口線的狀態(tài)。</p><p>
54、 獨立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵必須占用一根I/O口線,因此,在按鍵較多時,I/O口線浪費較大,不宜采用。</p><p> 本次設(shè)計按鍵電路的原理圖如3-4所示。</p><p> 圖3-4 按鍵電路原理圖</p><p> 其中,P1.0,P1.1,P1.2,,P3.1,P3.2,P3.3均為單片機的I/O口。</p>&
55、lt;p><b> 3.4 蜂鳴器電路</b></p><p> 蜂鳴器發(fā)聲原理是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場來驅(qū)動振動膜發(fā)聲的,因此需要一定的電流才能驅(qū)動它,單片機IO口引腳輸出的電流較小,單片機輸出的TTL電平基本上驅(qū)動不了蜂鳴器,因此需要增加一個電流放大的電路。STC89C52增強型單片機實驗板通過一個三極管來放大驅(qū)動蜂鳴器,原理圖如圖3-5所示。 </p
56、><p> 圖3-5 蜂鳴器原理圖</p><p> 如圖所示,三極管的基極B經(jīng)過限流電阻R12后由單片機的P3.7引腳控制,當(dāng)P3.7輸出高電平時,三極管Q7截止,沒有電流流過線圈,蜂鳴器不發(fā)聲;當(dāng)P3.7輸出低電平時,三極管導(dǎo)通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。因此,我們可以通過程序控制P3.7腳的電平來使蜂鳴器發(fā)出聲音和關(guān)閉。 </p><p>
57、; 3.5 數(shù)碼管顯示電路</p><p> 數(shù)碼管顯示器是單片機應(yīng)用系統(tǒng)常用的設(shè)備,包括LED、LCD等。LED顯示器由若干個發(fā)光的二極管組成。七段LED通常構(gòu)成字型“8”,還有一個發(fā)光二極管用來顯示小數(shù)點。每段LED分別引出一個電極,電極的名為a、b、c、d、e、f、g、dp,其中dp是小數(shù)點段引出的電極。當(dāng)發(fā)光二極管導(dǎo)通時,相應(yīng)的一個筆畫或一個點就發(fā)光??刂葡鄳?yīng)的二極管導(dǎo)通,就能顯示出對應(yīng)的字符。<
58、;/p><p> 數(shù)碼管有兩種接法即共陽極接法和共陰極接法(如圖3-6所示)。所有發(fā)光二極管的陽極連接在一起稱為共陽極;陰極連接在一起的稱為共陰極。當(dāng)選用共陰極的顯示器時,所有發(fā)光二極管的陰極連接在一起接地,當(dāng)某個發(fā)光二極管的陽極接高電平時,對應(yīng)的二極管點亮(LED數(shù)碼管每段需要10mA~20mA的驅(qū)動電流)。當(dāng)選用共陽極的顯示器時,所有的發(fā)光二極管的陽極連在一起接高電平,當(dāng)某個發(fā)光二極管的陰極接低電平時,對應(yīng)的二
59、極管點亮。</p><p> 圖 3-6 LED數(shù)碼管結(jié)構(gòu)原理圖</p><p> 眾所周知,LED顯示數(shù)碼管通常由硬件7段譯碼集成電路,完成從數(shù)字到顯示碼的譯碼驅(qū)動。本系統(tǒng)采用軟件譯碼,以減小體積,降低成本和功耗,軟件譯碼的另一優(yōu)勢還在于比硬件譯碼有更大的靈活性。所謂軟件譯碼,即由單片機軟件完成從數(shù)字到顯示碼的轉(zhuǎn)換。從LED數(shù)碼管結(jié)構(gòu)原理可知,為了顯示字符,要為LED顯示數(shù)碼管提供
60、顯示段碼,組成一個“8”字形字符的7段,再加上1個小數(shù)點位,共計8段,因此提供給LED數(shù)碼管的顯示段碼為1個字節(jié)。各段碼位與顯示段的對應(yīng)關(guān)系如表3-3。</p><p><b> 表3-3</b></p><p> 需說明的是當(dāng)用數(shù)據(jù)口連接LED數(shù)碼管a~dp引腳時,不同的連接方法,各段碼位與顯示段有不同的對應(yīng)關(guān)系。通常數(shù)據(jù)口的D0位與a段連接,D1位與b段連接,
61、……D7位與dp段連接,如表1所示,表3-4為用于LED數(shù)碼管顯示的十六進制數(shù)和空白字符與P的顯示段碼。本次設(shè)計采用的是一個兩位共陽極數(shù)碼管和一個四位共陽極數(shù)碼管。</p><p><b> 表3-4</b></p><p> 將STC89C52的P0.0~P0.7分別與四位共陽極碼管的a~g及dp相連,低電平位對應(yīng)的LED數(shù)碼管的段暗,高電平的位對應(yīng)的LED數(shù)碼
62、管的段亮,這樣,當(dāng)P2口輸出不同的段碼,就可以控制數(shù)碼管顯示不同的字符。</p><p> 本次設(shè)計的數(shù)碼管顯示電路原理圖如圖3-7所示。</p><p> 圖3-7 數(shù)碼管顯示電路原理圖</p><p> 第4章 定時器軟件系統(tǒng)的設(shè)計</p><p> 4.1 主程序流程圖</p><p> 主程序流程圖
63、如圖4-1所示。</p><p> 圖4-1 主程序流程圖</p><p><b> 4.2 中斷流程圖</b></p><p> 在這里,我們有必要介紹一下單片機的中斷系統(tǒng),以利于我們的學(xué)習(xí)。</p><p><b> 中斷的概念:</b></p><p> C
64、PU在處理某一事件A時,發(fā)生了另一事件B請求CPU迅速去處理(中斷發(fā)生);CPU暫時中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(中斷響應(yīng)和中斷服務(wù));待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過程稱為中斷。</p><p> 中斷技術(shù)在單片系統(tǒng)中有著十分重要的作用,它不僅可以提高單片機CPU的效率,也可以對突發(fā)事件處理。所謂中斷就是當(dāng)CPU正在執(zhí)行程序A時,發(fā)生了另一個急需處理
65、的事件B,這是CPU暫停當(dāng)前執(zhí)行的程序A,立即轉(zhuǎn)去執(zhí)行處理事件B的程序,處理完事件B后,再返回到程序A繼續(xù)執(zhí)行,這個過程被叫做中斷。關(guān)于中斷的概念有下列幾個名詞:(1)程序A稱為主程序,(2)處理事件B的程序稱為中斷服務(wù)程序,(3)主程序中轉(zhuǎn)向中斷服務(wù)程序的地方稱為斷點,(4)引起中斷的原因即事件B稱為中斷源,(5)轉(zhuǎn)去執(zhí)行中斷服務(wù)程序稱為中斷響應(yīng)。關(guān)于中斷的概念可以打個如下的比喻。領(lǐng)導(dǎo)(CPU)在自己的房間辦公(執(zhí)行主程序),下屬(外
66、設(shè))有問題打電話來請示(中斷源),領(lǐng)導(dǎo)停下正在進行的工作,通過電話給下屬做指示(執(zhí)行中斷服務(wù)程序),指示完后,領(lǐng)導(dǎo)掛斷電話,繼續(xù)做自己的工作(返回主程序繼續(xù)執(zhí)行)。</p><p> 中斷是一個過程,當(dāng)中央處理器CPU在處理某件事情時,外部又發(fā)生了另一緊急事件,請求CPU暫停當(dāng)前的工作而去迅速處理該緊急事件。處理結(jié)束后,再回到原來被中斷的地方,繼續(xù)原來的工作。引起中斷的原因或發(fā)出中斷請求的來源,稱為中斷源。&l
67、t;/p><p> 單片機一般允許有多個中斷源,當(dāng)幾個中斷源同時向CPU請求中斷時,就存在CPU優(yōu)先響應(yīng)哪一個中斷請求源的問題(優(yōu)先級問題),一般根據(jù)中斷源的輕重緩急排隊,優(yōu)先處理最緊急事件的中斷請求,于是便規(guī)定每一個中斷源都有一個中斷優(yōu)先級別,并且CPU總是響應(yīng)級別最高的中斷請求。</p><p> 當(dāng)CPU正在處理一個中斷源請求的時候,又發(fā)生了另一個優(yōu)先級比它高的中斷源請求,如果CPU
68、能夠暫時中止對原來中斷處理程序的執(zhí)行,轉(zhuǎn)而去處理優(yōu)先級更高的中斷源請求,待處理完以后,再繼續(xù)執(zhí)行原來的低級中斷處理程序,這樣的過程稱為中斷嵌套。</p><p> 定時器中斷服務(wù)子程序流程圖如圖4-2所示。</p><p> 圖4-2 中斷服務(wù)子程序流程</p><p> 4.3 定時程序設(shè)計</p><p> 定時器的定時功能是通
69、過單片機計數(shù)器的計數(shù)來實現(xiàn)的,此時的計數(shù)脈沖來自單片機的內(nèi)部,即每個機器周期產(chǎn)生一個計數(shù)脈沖,也就是每經(jīng)過1個機器周期的時間,計數(shù)器加1。</p><p> 本設(shè)計采用的是12MHz晶體,則計數(shù)頻率為1MHz,即每過1us的時間計數(shù)器加1。這樣可以根據(jù)計數(shù)值計算出定時時間,也可以根據(jù)定時時間的要求計算出計數(shù)器的初值。STC89C52單片機的定時器/計數(shù)器具有4種工作方式,其控制字均在相應(yīng)的特殊功能寄存器中,通過
70、對特殊功能寄存器的編程,可以方便的選擇定時器/計數(shù)器兩種工作模式和4種工作方式。</p><p> 定時器/計數(shù)器工作在方式0時,為13位的計數(shù)器,由TLX(X=0、1)的低5位和THX的高8位所構(gòu)成。TLX低5位溢出則向THX進位,THX計數(shù)溢出則置位TCON中的溢出標(biāo)志位TFX。</p><p> 當(dāng)定時器/計數(shù)器工作于方式1,為16位的計數(shù)器。本次設(shè)計單片機多功能定時器,所以ST
71、C89C52內(nèi)部的定時器/計數(shù)器被選定為定時器工作模式,計數(shù)輸入信號是內(nèi)部時鐘脈沖,每個機器周期產(chǎn)生一個脈沖使計數(shù)器增1。</p><p> 第五章 定時器的系統(tǒng)調(diào)試仿真與測試</p><p><b> 5.1 調(diào)試</b></p><p> 單片機控制系統(tǒng)的調(diào)試包括硬件調(diào)試和軟件調(diào)試。調(diào)試工作的主要任務(wù)是排除硬件故障,包括設(shè)計錯誤和工
72、藝性故障。由于條件限制,硬件調(diào)試主要是進行脫機檢查:用萬用表筆逐步按照邏輯圖檢查各器件的電源及各引腳的連接是否正確,檢查數(shù)據(jù)總線、地址總線和控制總線是否短路。為保護芯片,對各底座的電位進行檢查,確定無誤后再插入芯片檢查。</p><p> 軟件調(diào)試是使用Keil C51進行編程,生成.HEX文件,在Proteus中進行仿真。</p><p> 本系統(tǒng)的軟件程序調(diào)試是在Keil C51的
73、環(huán)境下編譯的,Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),軟件提供了豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。C51允許用戶使用C語言編寫中斷服務(wù)程序,快速進、寄存器和出代碼區(qū)的轉(zhuǎn)換功能使C語言中斷功能更加高效,可載入功能是用關(guān)鍵字來定義的。多任務(wù),中斷或非中斷的代碼要求必須具備可再入功能。C51提供了高效靈活的指針,通用指針用3個字節(jié)來存儲存儲器類型及目標(biāo)地址,
74、可以在8051的任意存儲區(qū)內(nèi)存取任何變量,在聲明特殊指針的同時已指定了存儲器類型,指向了某一特定的存儲區(qū)域。由于地址存儲只需1-2字節(jié),因此,指針存取非常靈活迅速。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51軟件生成的目標(biāo)代碼效率之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢,C語言有以下特點: 1、運算符豐富。C語言的運算符包含的范圍很廣泛,共有34種運算符,使
75、得C語言的表達(dá)式類型多樣化,運算類型極其豐富,靈活使用各種運算符可以實現(xiàn)在其他</p><p> 8、生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。</p><p><b> 5.2 仿真</b></p><p> 本系統(tǒng)采用的是Proteus進行仿真。Proteus軟件是英國Lab Center Electronics公司出版的EDA工具軟件。它
76、不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前比較好的仿真單片機及外圍器件的工具。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33
77、、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MATLAB等多種編譯器。</p><p> 在 Proteus繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可以在 Proteus的原理圖中看到模擬的實物運行狀態(tài)和過程。 Proteus是單片機課堂教學(xué)的先進助手。Proteus不僅可將許多
78、單片機實例功能形象化,也可將許多單片機實例運行過程形象化。前者可在相當(dāng)程度上得到實物演示實驗的效果,后者則是實物演示實驗難以達(dá)到的效果。它的元器件、連接線路等卻和傳統(tǒng)的單片機實驗硬件高度對應(yīng)。這在相當(dāng)程度上替代了傳統(tǒng)的單片機實驗教學(xué)的功能,例:元器件選擇、電路連接、電路檢測、電路修改、軟件調(diào)試、運行結(jié)果等。課程設(shè)計、畢業(yè)設(shè)計是學(xué)生走向就業(yè)的重要實踐環(huán)節(jié)。由于 Proteus提供了實驗室無法相比的大量的元器件庫,提供了修改電路設(shè)計的靈活性
79、、提供了實驗室在數(shù)量、質(zhì)量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)學(xué)生實踐精神、創(chuàng)造精神的平臺。</p><p> 本次設(shè)計的仿真圖如圖5-1所示。</p><p> 圖5-1 定時器的電路仿真結(jié)果</p><p> 通過電路仿真,我們可以得到預(yù)期的電路功能,即實現(xiàn)了時、分、秒的顯示功能。</p><p><b> 5
80、.3 測試</b></p><p> 給系統(tǒng)上電后,系統(tǒng)開始工作,默認(rèn)當(dāng)前時間為12.00.00,如圖5-2所示。</p><p> 圖5-2 上電后測試圖</p><p> ?。?)按下調(diào)整時間功能鍵:首次按下,進入調(diào)整小時模式;二次按下,進入調(diào)整分鐘模式;三次按下,退出調(diào)整時間功能,并顯示正常走時。如圖5-3所示。</p><
81、;p> 圖5-3 調(diào)整時間功能測試</p><p> ?。?)按下調(diào)整鬧鐘時間功能鍵:首次按下,進入調(diào)整鬧鐘時間,走時指示燈會</p><p> 以一秒的頻率閃爍,并顯示當(dāng)前鬧鐘時間。二次按下,進入調(diào)整鬧鐘小時模式;三次按下,進入調(diào)整鬧鐘分鐘模式;四次按下,退出調(diào)整鬧鐘時間功能,走時指示燈會熄滅,并顯示正常走時。打開鬧鐘開關(guān),鬧鐘指示燈會點亮,當(dāng)下的時間到設(shè)定的鬧鐘時間后,蜂鳴
82、器會發(fā)出“滴-滴-滴......”聲音。若關(guān)閉鬧鐘,鬧鐘指示燈會熄滅。系統(tǒng)默認(rèn)鬧鐘時間為06.00.00。如圖5-4所示。</p><p> 圖5-4 鬧鐘功能測試</p><p> 整點報時開關(guān):按下后,打開或關(guān)閉整點報時功能。若打開該功能,整點報時指示燈會點亮。當(dāng)下的時間到整點時(比如12點整,1點整,2點整......),蜂鳴器會短響一聲。若關(guān)閉該功能,整點報時指示燈會熄滅。如
83、圖5-5所示。</p><p> 圖5-5 整點報時測試</p><p><b> 第6章 總 結(jié)</b></p><p> 通過本次畢業(yè)論文的設(shè)計與制作,我較為全面地回顧了自己在大學(xué)四年時間里所學(xué)的知識,并充分對所學(xué)知識的理解和把所學(xué)的知識用到實際當(dāng)中去,理論聯(lián)系實際。這也為自己今后進一步深化學(xué)習(xí),積累了一定寶貴的經(jīng)驗。尤其單片機
84、原理與應(yīng)用及電子技術(shù)方面的相關(guān)知識,在這次畢業(yè)設(shè)計中得到了較好地實踐。</p><p> 在這次畢業(yè)設(shè)計當(dāng)中,我遇到很多自己不理解的問題及書本上或是我以前沒有看見過的知識點。在面對這些問題時,我首先采用的是上網(wǎng)搜尋的方法,在根據(jù)別人的提示,想想自己的問題出在哪里,該怎么解決。當(dāng)我還是無法想到解決的辦法時,我就帶著自己的問題到圖書館查閱資料或找同學(xué)互相交流,采用這樣的方法,我的很多問題都迎刃而解了!其次,我不但努
85、力解決自己遇到的問題,還幫助同學(xué)解決他們遇到的問題。這樣一來,我的知識得到了進一步的鞏固,同學(xué)的問題也得到了相應(yīng)的解決,我達(dá)到了一舉雙收的效果,我為此而感到高興。</p><p> 讓我覺得本次畢業(yè)設(shè)計的最大成果是:知道了將理論用到實際當(dāng)中時,會遇到很多的問題。需要我們一個一個地把它解決,根據(jù)自己所學(xué)的專業(yè)基礎(chǔ)知識分析具體原因,具體問題具體分析,再逐一把它克服掉。知道理論與實際的差距,所以以后要多加強實際動手的
86、能力。因此,學(xué)習(xí)就應(yīng)該采取理論與實踐相結(jié)合的方式,理論的問題,也就是實踐性的課題。這種做法既有助于完成理論知識的鞏固,又有助于帶動實踐,解決實際問題,加強我們的動手能力和解決問題的能力。最后,我相信以后不管遇到什么困難和挫折,不要畏懼,要敢于向前探索,這樣問題才能迎刃而解,這樣我們才能成功。</p><p><b> 致 謝</b></p><p> 通過這幾個
87、月來的忙碌和學(xué)習(xí),本次畢業(yè)論文設(shè)計已接近尾聲,在這里衷心感謝指導(dǎo)老師**老師的督促指導(dǎo),以及一起學(xué)習(xí)的同學(xué)們的支持,讓我按時完成了這次畢業(yè)設(shè)計。 </p><p> 在畢業(yè)論文設(shè)計過程中,我遇到了許許多多的困難。在此我要感謝我的指導(dǎo)老師**老師給我悉心的幫助和對我耐心而細(xì)致的指導(dǎo),除了敬佩**老師的專業(yè)水平以外,他的治學(xué)嚴(yán)謹(jǐn)和科學(xué)研究的精神也是我永遠(yuǎn)學(xué)習(xí)的榜樣,并將積極影響我今后的學(xué)習(xí)和工作,我才得以解決畢業(yè)設(shè)
88、計中遇到的種種問題。同時感謝大學(xué)四年傳授我們專業(yè)知識的所有老師,謝謝你們嘔心瀝血的教導(dǎo)。還有謝謝我周圍的同窗朋友,他們給了我無數(shù)的關(guān)心和鼓勵,也讓我的大學(xué)生活充滿了溫暖和歡樂。如果沒有他們的幫助,此次畢業(yè)論文的完成將變得困難。他們在我設(shè)計中給了我許多寶貴的意見和建議。同時也要感謝自己遇到困難的時候沒有一蹶不振,取而代之的是找到了最好的方法來解決問題。</p><p> 在本次畢業(yè)設(shè)計完成之際,我以誠摯的心情再次
89、向**老師和幫助過我的同學(xué)表示衷心的感謝,感謝在這段時間里對我的關(guān)懷、鼓勵和悉心的指導(dǎo)。</p><p><b> 參考文獻</b></p><p> [1] 鐘 睿.單片機原理及應(yīng)用開發(fā)技術(shù).北京航空航天大學(xué)出版社,2001</p><p> [2] 李朝青.單片機原理及接口技術(shù).北京:北京航天航空大學(xué)出版社,1998</p>
90、;<p> [3] 賈宗,許合利.C語言程序設(shè)計.北京:人民郵電出版社,2010.9</p><p> [4] 艾永樂,付子義.電子技術(shù)基礎(chǔ)(模擬部分,數(shù)字部分).北京:中國電力出 </p><p><b> 版社,2008</b></p><p> [5] 余家春.Protel 99SE電路設(shè)計使用教程.北京:中國鐵通出
91、版社,2003</p><p> [6] 徐江海.單片機實用教程.北京:機械工業(yè)出版社,2006.12 </p><p> [7] 唐勇.基于單片機的電子鐘的設(shè)計.湖南:湖南工學(xué)院,2007</p><p> [8] 邢小杰.單片機電子時鐘設(shè)計.中國科技博覽,2009 </p><p> [9] 吳金戎,沈慶陽,郭庭吉.單片機實踐與應(yīng)
92、用,[M].北京:清華大學(xué)出版社, </p><p><b> 2001</b></p><p> [10] 康華光.電子技術(shù)基礎(chǔ)(數(shù)字部分,模擬部分).北京:高等教育出版社,2008</p><p> [11] 李建忠. 單片機原理及應(yīng)用[M]. 西安:西安電子科技大學(xué)出版社,2002</p><p> 附件
93、一:定時器數(shù)字鐘電路圖</p><p><b> 附件二:元器件清單</b></p><p><b> 附件三:源程序</b></p><p> #include <REGX52.H></p><p> #define uint unsigned int</p>&
94、lt;p> #define uchar unsigned char</p><p> /***************定義數(shù)碼管*****************/</p><p> #defineSMG_XSP0//數(shù)碼管數(shù)據(jù)顯示</p><p> #defineSMG_KZP2//數(shù)碼管控制顯示</p><
95、;p> #define SpeakP3_7//定義蜂鳴器接口</p><p> #defineLED1P3_4//定義LED1接口(走時提示指示燈)</p><p> #define LED2P3_5//定義LED2接口(鬧鐘指示燈亮)</p><p> #define LED3P3_6//定義LED3接口(整點報時指
96、示燈)</p><p> #define Key1P1_0//時間調(diào)整允許 按鍵</p><p> #define Key2P1_1//時、分加 按鍵 </p><p> #define Key3P1_2//時、分減 按鍵</p><p> #define Key4P3_1//鬧鐘時間調(diào)整允許 按鍵
97、</p><p> #define Key5P3_2//開/關(guān)鬧鐘 按鍵</p><p> #define Key6P3_3//開/關(guān)整點報時 按鍵</p><p> uchar code Data[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF};//沒有小數(shù)點</
98、p><p> //定義數(shù)組 數(shù)碼管 0 1 2 3 4 5 6 7 8 9 -</p><p> uchar code Data1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x3F};//帶小數(shù)點</p><p> //定義數(shù)組 數(shù)
99、碼管 0 1 2 3 4 5 6 7 8 9 -</p><p> uchar hour=12,min=0,sec=0;//系統(tǒng)上電默認(rèn)時間是 12.00.00</p><p> uchar hour1=6,min1=0,sec1=0;//系統(tǒng)上電默認(rèn)鬧鈴是 06.00.00</p><p>
100、 char num=0;//時間基數(shù) num</p><p> uint t=3;//數(shù)碼管動態(tài)掃描延時時間基數(shù) 源數(shù)據(jù)3</p><p> uchar flag=0;//顯示標(biāo)志位(0:走時正常 1:調(diào)整時鐘 2:調(diào)整分鐘)</p><p> uint i=0;j=0;//循環(huán)變量i,j</p&g
101、t;<p> bit nao_z=0;//鬧鐘標(biāo)志位(0:關(guān)閉鬧鐘 1:開啟鬧鐘)</p><p> uchar flag_nao_z=0;//鬧鐘顯示模式(0:顯示正常走時時間 1:顯示鬧鐘時間 2:調(diào)整鬧鐘時鐘 3:調(diào)整鬧鐘分鐘)</p><p> bit bao_shi=0;//整點報時標(biāo)志位(0:不允許整點報時 1:允許整點報時)
102、</p><p> void delay(uint time)//掃描延時函數(shù)</p><p><b> {</b></p><p><b> uint x,y;</b></p><p> for(x=time;x>0;x--)</p><p> for
103、(y=110;y>0;y--);</p><p><b> }</b></p><p> void delay_fmq(uint time)//延時函數(shù)(蜂鳴器)</p><p><b> {</b></p><p><b> uint x,y;</b>&
104、lt;/p><p> for(x=time;x>0;x--)</p><p> for(y=5;y>0;y--);</p><p><b> }</b></p><p> void fmq()//蜂鳴器函數(shù)(按鍵提示)</p><p><b> {</
105、b></p><p> for(i=0;i<100;i++)</p><p><b> {</b></p><p><b> Speak=0;</b></p><p> delay_fmq(10);</p><p><b> }</b&g
106、t;</p><p><b> Speak=1;</b></p><p><b> }</b></p><p> void Time0_init()//定時器0初始化函數(shù)</p><p><b> {</b></p><p> TMOD
107、=0x01;//定時器0為方式1</p><p> TL0=(65536-50000)%256;</p><p> TH0=(65536-50000)/256;//12M晶振 定時時間50ms</p><p> ET0=1;//開定時器0中斷</p><p> EA=1;//開總中斷</p&
108、gt;<p> TR0=0;//先不啟動定時器0</p><p><b> }</b></p><p> void Time0() interrupt 1//定時器0中斷服務(wù)函數(shù)</p><p><b> {</b></p><p> TH0=(65536-5
109、0000)/256;//重新載裝初值,設(shè)置50ms中斷一次</p><p> TL0=(65536-50000)%256;</p><p> num++;//時間基數(shù)加1</p><p> while(num==20)//1秒時間到</p><p><b> {</b></p>
110、<p> num=0;//num清0</p><p> sec++;//秒加1</p><p> if(flag_nao_z!=0)//鬧鐘顯示模式不等于0(不顯示正常走時時間,即顯示鬧鐘時間)</p><p><b> {</b></p><p> LED1=~LED1;
111、//指示燈按照2Hz頻率閃爍(在調(diào)整鬧鐘時間時,提示正在走時)</p><p><b> }</b></p><p> else//否則鬧鐘顯示模式等于0(顯示正常走時時間)</p><p><b> {</b></p><p> LED1=1;//在正常走時的時候,
112、指示燈不亮</p><p><b> }</b></p><p> if(nao_z==1)//當(dāng)鬧鐘標(biāo)示位為1:開啟鬧鐘</p><p><b> {</b></p><p> LED2=0;//鬧鐘指示燈亮</p><p> if(hour==ho
113、ur1&min==min1)//當(dāng)時,分和鬧鐘時,分相同</p><p><b> {</b></p><p> Speak=~Speak;//蜂鳴器接口取反(2Hz頻率響)</p><p><b> }</b></p><p> else//否則時,分和鬧鐘時,
114、分不相同</p><p><b> {</b></p><p> Speak=1;//關(guān)閉蜂鳴器</p><p><b> }</b></p><p><b> }</b></p><p> else//否則關(guān)閉鬧鐘</
115、p><p><b> {</b></p><p> LED2=1;//鬧鐘指示燈不亮</p><p><b> }</b></p><p><b> }</b></p><p> while(sec==60)//1分時間到<
116、/p><p><b> {</b></p><p> sec=0;//秒清0</p><p> min++;//分加1</p><p><b> }</b></p><p> while(min==60)//1小時時間到</p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- stc89c52智能定時器設(shè)計畢業(yè)論文
- 基于 stc89c52的定時器畢業(yè)論文(含外文翻譯)
- 基于 stc89c52的定時器畢業(yè)論文(含外文翻譯)
- stc89c52單片機畢業(yè)論文
- 基于stc89c52的智能小車設(shè)計畢業(yè)設(shè)計
- 基于stc89c52單片機的智能循跡小車畢業(yè)論文
- 基于stc89c52單片機的智能紅外遙控系統(tǒng)畢業(yè)論文
- 基于stc89c52智能小車的設(shè)計開題報告
- 基于stc89c52智能小車的設(shè)計開題報告
- 畢業(yè)論文--- 基于stc89c52單片機的led彩燈控制
- STC89C52單片機.doc
- STC89C52單片機.doc
- 基于stc89c52的球賽計時設(shè)計-職業(yè)學(xué)院物聯(lián)網(wǎng)畢業(yè)論文
- STC89C52單片機.doc
- stc89c52單片機.pdf
- stc89c52單片機.pdf
- STC89C52單片機.doc
- stc89c52單片機.pdf
- STC89C52單片機.doc
- 外文翻譯---stc89c52 數(shù)據(jù)手冊
評論
0/150
提交評論