版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 測控系統(tǒng)原理與設(shè)計 課程設(shè)計</p><p> 課題: 時鐘計時器的設(shè)計 </p><p> 班級 測控1101 學(xué)號 </p><p> 學(xué)生姓名 </p><p> 專業(yè) 測控技術(shù)與儀器
2、 </p><p> 系別 電子信息工程系 </p><p> 指導(dǎo)教師 </p><p><b> 2013年5月</b></p><p><b> 1設(shè)計目的</b></p><p>
3、 《測控系統(tǒng)原理與設(shè)計》課程設(shè)計是一項重要的實踐性教育環(huán)節(jié),是學(xué)生在校期間必須接受的一項工程訓(xùn)練。在課程設(shè)計過程中,在教師指導(dǎo)下,運(yùn)用工程的方法,通過一個簡單課題的設(shè)計練習(xí),可使學(xué)生初步體驗微機(jī)應(yīng)用系統(tǒng)的設(shè)計過程、設(shè)計要求、完成的工作內(nèi)容和具體的設(shè)計方法,了解必須提交的各項工程文件,也達(dá)到鞏固、充實和綜合運(yùn)用所學(xué)知識解決實際問題的目的。</p><p> 通過課程設(shè)計,應(yīng)能加強(qiáng)學(xué)生如下能力的培養(yǎng):</p&
4、gt;<p> 獨(dú)立工作能力和創(chuàng)造力;</p><p> 綜合運(yùn)用專業(yè)及基礎(chǔ)知識,解決實際工程技術(shù)問題的能力;</p><p> 查閱圖書資料、產(chǎn)品手冊和各種工具書的能力;</p><p><b> 工程繪圖的能力;</b></p><p> 編寫技術(shù)報告和編制技術(shù)資料的能力。</p>
5、<p><b> 2設(shè)計要求</b></p><p> (1) 獨(dú)立完成設(shè)計任務(wù)</p><p> (2) 繪制系統(tǒng)硬件總框圖</p><p> (3) 繪制系統(tǒng)原理電路圖</p><p> (4) 繪制系統(tǒng)工程設(shè)計圖(機(jī)箱、控制面板、線路板圖、元件布局圖、裝配連線圖等)</p>&
6、lt;p> (5) 編制軟件框圖</p><p> (6) 完成詳細(xì)完整的程序清單和注釋</p><p> (7) 制定編寫調(diào)試方案</p><p> (8) 編寫用戶操作使用說明書</p><p> (9) 寫出設(shè)計工作小結(jié)</p><p><b> 3系統(tǒng)方案設(shè)計</b>&l
7、t;/p><p><b> 3.1概述</b></p><p> 本實驗所選用的單片機(jī)為AT89C51,時鐘計時器用單片機(jī)和6位LED數(shù)碼管顯示時、分、秒,以24小時計時方式進(jìn)行,能整點提醒,使用按鍵開關(guān)可實現(xiàn)時、分調(diào)整,秒表/時鐘功能轉(zhuǎn)換,省電及定時設(shè)定提醒功能。</p><p> 3.2 系統(tǒng)方案框圖</p><p&g
8、t;<b> 圖1:系統(tǒng)方案框圖</b></p><p><b> 4硬件介紹</b></p><p> 4.1 STC89C51</p><p> AT89C52引腳結(jié)構(gòu)</p><p> 圖 2 AT89C52引腳結(jié)構(gòu)</p><p><b> 功
9、能特性描述:</b></p><p> 與MCS-51單片機(jī)產(chǎn)品兼容、8K字節(jié)在系統(tǒng)可編程Flash存儲器、1000次擦寫周期、全靜態(tài)操作:0Hz~33Hz、三級加密程序存儲器、2個可編程I/O口線、三個16位定時器/計數(shù)器、八個中斷源、全雙工UART串行通道、低功耗空閑和掉電模式、掉電后中斷可喚醒、看門狗定時器等AT89C51引腳功能描述 </p><p><b>
10、; VCC : 電源</b></p><p><b> GND: 地</b></p><p> P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時,
11、P0口也用來接收指令字節(jié);而在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。</p><p> P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在flash編程和校驗時,P1口接收低8位地址字節(jié)。
12、</p><p> P2 口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在flash編程和校驗時,P2口亦接收低高位地址和其它控制信號。</p><p> P3 口:P3 口是一個具有內(nèi)
13、部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在flash編程和校驗時,P3口也接收一些控制信號。P3口亦作為AT89S52特殊功能(第二功能)使用,如下所示。</p><p> AT89S52 引腳號 第二功能</p>
14、<p> P3.0 RXD (串行輸入)</p><p> P3.1 TXD (串行輸出)</p><p> P3.2 INT0 (外部中斷0)</p><p> P3.3 INT1 (外部中斷1)</p><p> P3.4 T0 (定時器0外部輸入)</p><p> P3.5 T1 (定時
15、器1外部輸入)</p><p> P3.6 WR (外部數(shù)據(jù)存儲器寫選通)</p><p> P3.7 RD (外部數(shù)據(jù)存儲器寫選通)</p><p> RST: 復(fù)位輸入。晶振工作時,RST腳持續(xù)2 個機(jī)器周期高電平將使單片機(jī)復(fù)位。</p><p> ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8 位地
16、址的輸出脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過一個ALE脈沖。</p><p> PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當(dāng)AT89C51從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,PSEN將不被激活。</p&g
17、t;<p> EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H 到FFFFH的外部程序存儲器</p><p> 讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。</p><p> XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。</p><p> XTAL
18、2:振蕩器反相放大器的輸出端。</p><p> AT89C52 有5個中斷源,中斷是指計算機(jī)在執(zhí)行某一程序的過程中, 由于計算機(jī)系統(tǒng)內(nèi)、 外的某種原因, 而必須中止原程序的執(zhí)行,轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,待處理結(jié)束之后, 再回來繼續(xù)執(zhí)行被中止的原程序的過程。 </p><p> 采用了中斷技術(shù)后的計算機(jī), 可以解決CPU與外設(shè)之間速度匹配的問題, 使計算機(jī)可以及時處理系統(tǒng)中許多隨機(jī)的
19、參數(shù)和信息, 同時, 它也提高了計算機(jī)處理故障與應(yīng)變的能力。兩個外部中斷(INT0 和INT1),兩個定時中斷(定時器0、1)和一個串行中斷。每個中斷源都可以通過置位或清除特殊寄存器IE 中的相關(guān)中斷允許控制位分別使得中斷源有效或無效。IE還包括一個中斷允許總控制位EA,它能一次禁止所有中斷。</p><p> 中斷源是在一個計算機(jī)系統(tǒng)對中斷請求的來源,中斷可以人為設(shè)定,它可以在應(yīng)對突發(fā)隨機(jī)事件設(shè)置。通常的I
20、/ O設(shè)備,實時控制系統(tǒng)的故障隨機(jī)參數(shù)和信息源等。</p><p> 較高優(yōu)先級的中斷,那么到更高的優(yōu)先級響應(yīng)。當(dāng)運(yùn)行時,中斷服務(wù)程序,另一個中斷高優(yōu)先級中斷請求產(chǎn)生,當(dāng)電流CPU中斷服務(wù)將暫停高級別中斷處理應(yīng)用,可完成先進(jìn)的中斷處理程序中斷程序關(guān)閉,然后再返回到CPU原始點繼續(xù)這一過程被稱為嵌套。 </p><p><b> 中斷響應(yīng)的過程:</b></p
21、><p> 在每個指令結(jié)束時,系統(tǒng)會自動檢測中斷請求信號,如果有一個中斷請求,并在打開的CPU,那么響應(yīng)的中斷的中斷狀態(tài)。 </p><p> ?。?)保護(hù)之前,在一般保護(hù),禁止中斷,以防止現(xiàn)場銷毀現(xiàn)場的一幕。保護(hù)現(xiàn)場的指令一般用于堆疊在原程序中使用到堆棧中的寄存器。 </p><p> ?。?)中斷服務(wù)的相應(yīng)的中斷源是服務(wù)。 </p><p>
22、; ?。?)恢復(fù)現(xiàn)場,將保護(hù)的數(shù)據(jù)在堆棧上彈出的復(fù)蘇之前,禁止中斷現(xiàn)場,以防 止破壞現(xiàn)場。時間后,現(xiàn)場恢復(fù)開放中斷。 </p><p> (5)返回時,此CPU的斷點地址時堆棧推彈回到程序計數(shù)器,使CPU繼續(xù)執(zhí)行被中斷的程序。</p><p> 4.2 74HC573</p><p> SL74HC573 跟LS/AL573 的管腳一樣。器件的輸
23、入是和標(biāo)準(zhǔn)CMOS 輸出兼容的;加上拉電阻,他們能和LS/ALSTTL 輸出兼容。當(dāng)鎖存使能端為高時,這些器件的鎖存對于數(shù)據(jù)是透明的(也就是說輸出同步)。當(dāng)鎖存使能變低時,符合建立時間和保持時間的數(shù)據(jù)會被鎖存。輸出能直接接到CMOS,NMOS 和TTL 接口上操作電壓范圍:2.0V~6.0V低輸入電流:1.0uACMOS 器件的高噪聲抵抗特性</p><p><b> 圖4 管腳功能圖
24、:</b></p><p> 表1 74HC573功能表</p><p> 圖5 74HC573邏輯圖</p><p> 4.3 LED 數(shù)碼管</p><p> 由于系統(tǒng)要顯示的內(nèi)容較簡單,顯示量不多,所以選用數(shù)碼管既方便又經(jīng)濟(jì)。LED 有共陰極和共陽極兩種。如圖所示。</p><p> 二極
25、管的陰極連接在一起,通常此公共陰極接地,而共陽極則將發(fā)光二極管的陽極連接在一起,接入+5V 的電壓。一位顯示器由8 個發(fā)光二極管組成,其中7 個發(fā)光二極管構(gòu)成字型“8”的各個筆劃(段)a~g,另一個小數(shù)點為dp 發(fā)光二極管。當(dāng)在某段發(fā)光二極管施加一定的正向電壓時,該段筆劃即亮;不加電壓則暗。為了保護(hù)各段LED 不被損壞,需外加限流電阻。</p><p> LED 顯示數(shù)碼管通常由硬件7 段譯碼集成電路,完成從數(shù)
26、字到顯示碼的譯碼驅(qū)動。本系統(tǒng)采用軟件譯碼,以減小體積,降低成本和功耗,軟件譯碼的另一優(yōu)勢還在于比硬件譯碼有更大的靈活性。所謂軟件譯碼,即由單片機(jī)軟件完成從數(shù)字到顯示碼的轉(zhuǎn)換。從LED 數(shù)碼管結(jié)構(gòu)原理可知,為了顯示字符,要為LED 顯示數(shù)碼管提供顯示段碼,組成一個“8”字形字符的7 段,再加上1 個小數(shù)點位,共計8 段,因此提供給LED 數(shù)碼管的顯示段碼為1 個字節(jié)。各段碼位與顯示段的對應(yīng)關(guān)系如表。</p><p>
27、;<b> 表2</b></p><p> 需說明的是當(dāng)用數(shù)據(jù)口連接LED 數(shù)碼管a~dp 引腳時,不同的連接方法,各段碼位與顯示段有不同的對應(yīng)關(guān)系。通常數(shù)據(jù)口的D0 位與a 段連接,D1 位與b 段連接,……D7 位與dp 段連接,如表1 所示,表2 為用于LED 數(shù)碼管顯示的十六進(jìn)制數(shù)和空白字符與P 的顯示段碼。</p><p> 注:(1)本表所列各字符的
28、顯示段碼均為小數(shù)點不亮的情況。</p><p> ?。?)“空白”字符即沒有任何顯示。</p><p> 顯示方式有靜態(tài)顯示和動態(tài)顯示兩種。</p><p> 靜態(tài)顯示:所謂靜態(tài)顯示,就是當(dāng)顯示器顯示某一字符時,相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止。該方式每一位都需要一個8 位輸出口控制。靜態(tài)顯示時較小的電流能獲得較高的亮度,且字符不閃爍。但當(dāng)所顯示的位數(shù)較多時,靜
29、態(tài)顯示所需的I/O 口太多,造成了資源的浪費(fèi)。</p><p> 動態(tài)顯示:所謂動態(tài)顯示就是一位一位的輪流點亮各個位,對于顯示器的每一位來說,每隔一段時間點亮一次。利用人的視覺暫留功能可以看到整個顯示,但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導(dǎo)通電流有關(guān),也于點亮?xí)r間與間隔時間的比例有關(guān)。調(diào)整參數(shù)可以實現(xiàn)較高穩(wěn)定度的顯示。動態(tài)顯示節(jié)省了I/O 口,降低了能耗。</p><p&
30、gt;<b> 5硬件電路介紹</b></p><p><b> 5.1 晶振電路</b></p><p> 每個單片機(jī)系統(tǒng)里都有晶振,全程是叫晶體震蕩器,在單片機(jī)系統(tǒng)里晶振的作用非常大,他結(jié)合單片機(jī)內(nèi)部的電路,產(chǎn)生單片機(jī)所必須的時鐘頻率,單片機(jī)的一切指令的執(zhí)行都是建立在這個基礎(chǔ)上的,晶振的提供的時鐘頻率越高,那單片機(jī)的運(yùn)行速度也就越快。晶
31、振用一種能把電能和機(jī)械能相互轉(zhuǎn)化的晶體在共振的狀態(tài)下工作,以提供穩(wěn)定,精確的單頻振蕩。在通常工作條件下,普通的晶振頻率絕對精度可達(dá)百萬分之五十。高級的精度更高。有些晶振還可以由外加電壓在一定范圍內(nèi)調(diào)整頻率,稱為壓控振蕩器(VCO)。晶振的作用是為系統(tǒng)提供基本的時鐘信號。通常一個系統(tǒng)共用一個晶振,便于各部分保持同步。有些通訊系統(tǒng)的基頻和射頻使用不同的晶振,而通過電子調(diào)整頻率的方法保持同步。</p><p><
32、b> 5.2復(fù)位電路</b></p><p> 復(fù)位電路的基本功能是:系統(tǒng)上電時提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時才撤銷復(fù)位信號,以防電源開關(guān)或電源插頭分-合過程中引起的抖動而影響復(fù)位。</p><p><b> 圖6 復(fù)位電路</b></p><p><b&g
33、t; 顯示電路</b></p><p> 圖7 數(shù)碼管顯示電路</p><p><b> 5.4 按鍵電路</b></p><p> 本設(shè)計采用四個獨(dú)立按鍵;按鍵處理設(shè)置為:如果沒有按鍵,則時鐘正常走下去。第一個按鍵為切換按鍵,用于顯示不同界面的切換。默認(rèn)顯示為時分秒,如果按鍵一次,切換為顯示年月日;如果按鍵兩次,切換為顯示
34、鬧鈴時間;再按一次則跳回顯示時分秒;第二個按鍵為調(diào)整時間,當(dāng)?shù)谝淮伟聪碌臅r候,進(jìn)入調(diào)整狀態(tài),把定時器關(guān)掉,時鐘就停止走動;這時當(dāng)按下第三個按鍵可以對秒進(jìn)行加1 的操作,當(dāng)按下第四個按鍵可以對分進(jìn)行加1 的操作,當(dāng)按下K2 鍵的時可以對時進(jìn)行加1 操作,當(dāng)再次按下第二個按鍵 鍵時,打開定時器,再次啟動時鐘。為了使按鍵更穩(wěn)定,在程序中加入了去抖程序與松手檢測程序。</p><p><b> 圖8 按鍵電路
35、</b></p><p><b> 6總電路流程圖</b></p><p><b> 7軟件設(shè)計</b></p><p><b> 7.1主程序</b></p><p> 主程序循環(huán)調(diào)用顯示子程序和查鍵子程序,當(dāng)按鍵被按下時,轉(zhuǎn)入相應(yīng)功能程序。其主程序執(zhí)行流
36、程如圖9所示。</p><p> 圖9 主程序流程圖</p><p><b> 7.2顯示主程序</b></p><p> 本程序采用動態(tài)顯示,并運(yùn)用鎖存器將結(jié)果送出;</p><p> 圖10 顯示流程圖</p><p> 7.3鬧鐘時間設(shè)定功能程序</p><
37、p> 在時鐘狀態(tài)下,觸發(fā)外中斷1時,進(jìn)入鬧鐘時間設(shè)定模式,且不影響T0計時器的功能狀態(tài),在鍵盤上輸入對應(yīng)的數(shù)字進(jìn)行時間設(shè)定。當(dāng)分別按下調(diào)節(jié)時鐘、分鐘和秒鐘的個位時,時間自動確定。鬧鐘時間設(shè)定流程圖如圖6-3所示:</p><p> 圖11 鬧鐘時間設(shè)定流程圖</p><p><b> 8誤差分析與修正</b></p><p>&l
38、t;b> ·測量數(shù)據(jù)</b></p><p><b> 數(shù)據(jù)分析</b></p><p> 基本滿足設(shè)計要求,誤差在10~15秒/時之間,完全可以滿足日常的使用。</p><p><b> 9軟件仿真</b></p><p><b> 10 PCB&l
39、t;/b></p><p> 11課程設(shè)計體會與總結(jié)</p><p> 通過本次課程設(shè)計,加深了對傳感器課程的認(rèn)識,提高了動手與團(tuán)隊合作能力。在單片機(jī)課程設(shè)計中,經(jīng)過選題、設(shè)計電路、購買元件、焊接電路、程序編寫調(diào)試等步驟,最終得到完整的作品。這次課程設(shè)計是本門課程課堂教學(xué)的延伸和發(fā)展,是理論知識與工程實踐之間的銜接。通過本課程設(shè)計,我獲益匪淺,增強(qiáng)了我對單片機(jī)專業(yè)知識的學(xué)習(xí),加深
40、了認(rèn)識,進(jìn)一步鞏固了我的動手能力,培養(yǎng)獨(dú)立自主、綜合分析的思維與創(chuàng)新能力,最終使初步具有設(shè)計小型計算機(jī)控制系統(tǒng)的硬件及軟件的能力。同時,通過資料搜集、方案分析、系統(tǒng)設(shè)計與報告撰寫的一系列過程,得到一次科學(xué)研究工作的初步訓(xùn)練。從而,在專業(yè)知識與研究方法方面為日后的畢業(yè)設(shè)計乃至畢業(yè)后的工作奠定良好的基礎(chǔ)。本次課程設(shè)計 使我得到了鍛煉,讓我明白學(xué)習(xí)不知能是紙上談兵,要能在生活生產(chǎn)中用到的具體使用。</p><p>&l
41、t;b> 附:</b></p><p><b> 參考代碼</b></p><p> #include<reg52.h></p><p> unsigned char data shijian[2][3]={13,06,25,23,59,50};</p><p> unsigned
42、 char data naoling[3]={23,59,51};</p><p> unsigned char code duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p> unsigned char code weima[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xb
43、f,0x7f}; </p><p> sbit key1=P3^4;</p><p> sbit key2=P3^5;</p><p> sbit key3=P3^6;</p><p> sbit key4=P3^7;</p><p> sbit fmq=P2^3;</p><p>
44、 bit flag,flagfmq;</p><p> sbit duan=P2^6;//定義鎖存使能端口 段鎖存</p><p> sbit wei=P2^7;// 位鎖存</p><p> void delay(unsigned char t)</p><p><b> {</b&
45、gt;</p><p> unsigned char i,j;</p><p> for(i=t;i>0;i--)</p><p> for(j=110;j>0;j--);</p><p><b> }</b></p><p> void display(unsigned
46、char n)</p><p><b> {</b></p><p> unsigned char i,j=0;</p><p> unsigned char temp[2][6];</p><p> for(i=0,j=0;i<3;i++,j+=2)</p><p><b&g
47、t; {</b></p><p> temp[n][j]=shijian[n][i]/10;</p><p> temp[n][j+1]=shijian[n][i]%10;</p><p><b> }</b></p><p> for(i=0;i<6;i++)</p><
48、p><b> {</b></p><p><b> P0=0;</b></p><p><b> duan=1;</b></p><p><b> duan=0;</b></p><p> P0=weima[i];</p>&
49、lt;p><b> wei=1;</b></p><p><b> wei=0;</b></p><p> if((i%2==1)&&(i!=5))</p><p> P0=duanma[temp[n][i]]|0x80;</p><p><b> else
50、</b></p><p> P0=duanma[temp[n][i]];</p><p><b> duan=1;</b></p><p><b> duan=0;</b></p><p> delay(10);</p><p><b> }&
51、lt;/b></p><p><b> }</b></p><p> void init_time0()</p><p><b> {</b></p><p> TMOD=0X01;</p><p> TH0=(65536-50000)/256;</p&
52、gt;<p> TL0=(65536-50000)%256;</p><p><b> EA=1;</b></p><p><b> ET0=1;</b></p><p><b> TR0=1;</b></p><p><b> }</b
53、></p><p> void main()</p><p><b> {</b></p><p> unsigned char n=1,i,j=0;</p><p> unsigned char a;</p><p><b> key1=1;</b><
54、/p><p> key2=1;// control</p><p><b> key3=1;</b></p><p><b> key4=1;</b></p><p> init_time0();</p><p><b> while(1)</b>
55、</p><p><b> {</b></p><p><b> if(!key1)</b></p><p><b> {</b></p><p> delay(15);</p><p><b> if(!key1)</b>
56、;</p><p><b> {</b></p><p> while(!key1);</p><p><b> n++;</b></p><p><b> j=0;</b></p><p><b> if(n==2)</b&g
57、t;</p><p><b> n=0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> if(flag)</b></p><p><b> {<
58、;/b></p><p><b> flag=0;</b></p><p> shijian[1][2]++;</p><p> if(shijian[1][2]==60)</p><p><b> {</b></p><p> shijian[1][2]=0
59、;</p><p> shijian[1][1]++;</p><p> if(shijian[1][1]==60)</p><p><b> {</b></p><p> shijian[1][1]=0;</p><p> shijian[1][0]++;</p><
60、;p> if(shijian[1][0]==24)</p><p><b> {</b></p><p> shijian[1][0]=0;}</p><p><b> }</b></p><p><b> }</b></p><p
61、><b> }</b></p><p><b> if(!key2)</b></p><p><b> {</b></p><p> delay(150);</p><p><b> if(!key2)</b></p><
62、;p><b> {</b></p><p> while(!key2);</p><p><b> j++;</b></p><p><b> TR0=0;</b></p><p><b> if(j==4)</b></p>
63、<p><b> {</b></p><p><b> j=0;</b></p><p><b> TR0=1;</b></p><p><b> }</b></p><p><b> }</b></p>
64、;<p><b> }</b></p><p><b> if(j==1)</b></p><p><b> {</b></p><p><b> if(!key3)</b></p><p><b> {</b>
65、;</p><p> delay(15);</p><p><b> if(!key3)</b></p><p><b> {</b></p><p> while(!key3);</p><p> shijian[n][2]++;</p><p
66、> if(n==1&&shijian[n][2]>=60)</p><p> shijian[n][2]=0;</p><p><b> else</b></p><p> if(n==0&&shijian[n][2]>=31)</p><p> shijian
67、[n][2]=0;</p><p><b> }</b></p><p><b> }</b></p><p><b> if(!key4)</b></p><p><b> {</b></p><p> delay(15
68、);</p><p><b> if(!key4)</b></p><p><b> {</b></p><p> while(!key4);</p><p> shijian[n][2]--;</p><p> if(n==1&&shijian[n
69、][2]==0)</p><p> shijian[n][2]=60;</p><p><b> else</b></p><p> if(n==0&&shijian[n][2]==0)</p><p> shijian[n][2]=31;</p><p><b>
70、; }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> if(j==2)</b></p><p><b> {</b></p><p><b&
71、gt; if(!key3)</b></p><p><b> {</b></p><p> delay(15);</p><p><b> if(!key3)</b></p><p><b> {</b></p><p> whi
72、le(!key3);</p><p> shijian[n][1]++;</p><p> if(n==1&&shijian[n][1]>=60)</p><p> shijian[n][1]=0;</p><p><b> else</b></p><p> if
73、(n==0&&shijian[n][1]>=12)</p><p> shijian[n][1]=0;</p><p><b> }</b></p><p><b> }</b></p><p><b> if(!key4)</b></p&g
74、t;<p><b> {</b></p><p> delay(15);</p><p><b> if(!key4)</b></p><p><b> {</b></p><p> while(!key4);</p><p>
75、 shijian[n][1]--;</p><p> if(n==1&&shijian[n][1]==0)</p><p> shijian[n][1]=59;</p><p><b> else</b></p><p> if(n==0&&shijian[n][1]==0)<
76、;/p><p> shijian[n][1]=12;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> if(j==3)</b><
77、/p><p><b> {</b></p><p><b> if(!key3)</b></p><p><b> {</b></p><p> delay(15);</p><p><b> if(!key3)</b><
78、;/p><p><b> {</b></p><p> while(!key3);</p><p> shijian[n][0]++;</p><p> if(n==1&&shijian[n][0]>=24)</p><p> shijian[n][0]=0;</
79、p><p><b> else</b></p><p> if(n==0&&shijian[n][0]==100)</p><p> shijian[n][0]=0;</p><p><b> }</b></p><p><b> }</
80、b></p><p><b> if(!key4)</b></p><p><b> {</b></p><p> delay(15);</p><p><b> if(!key4)</b></p><p><b> {<
81、/b></p><p> while(!key4);</p><p> shijian[n][0]--;</p><p> if(n==1&&shijian[n][0]<=0)</p><p> shijian[n][0]=23;</p><p><b> else<
82、;/b></p><p> if(n==0&&shijian[n][0]==0)</p><p> shijian[n][0]=99;</p><p><b> }</b></p><p><b> }</b></p><p><b>
83、 }</b></p><p> if((TR0==1)&&(shijian[1][0]==naoling[0]&&shijian[1][1]==naoling[1]&&(shijian[1][2]>naoling[2]&&shijian[1][2]<naoling[2]+30))||(shijian[1][1]==0&am
84、p;&shijian[1][2]<20))</p><p><b> {</b></p><p> for(i=0;i<50;i++)</p><p><b> {</b></p><p><b> fmq=!fmq;</b></p>
85、<p> delay(50);</p><p><b> }</b></p><p><b> }</b></p><p> display(n);</p><p><b> }</b></p><p><b> }<
86、;/b></p><p> void init_time0_ser() interrupt 1</p><p><b> {</b></p><p> static unsigned char i;</p><p><b> i++;</b></p><p>&
87、lt;b> if(i==20)</b></p><p><b> {</b></p><p><b> i=0;</b></p><p><b> flag=1;</b></p><p><b> }</b></p>
88、<p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;</p><p><b> }</b></p><p><b> 參考文獻(xiàn)</b></p><p> [1]李廣弟等.單片機(jī)基礎(chǔ)[M].北京航空航天出版社,2
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 時鐘計時器課程設(shè)計
- 微機(jī)原理課程設(shè)計-計時器
- 單片機(jī)時鐘計時器課程設(shè)計
- 微機(jī)原理課程設(shè)計--搶答計時器
- 籃球計時器課程設(shè)計
- 微機(jī)原理及應(yīng)用課程設(shè)計---可調(diào)計時器設(shè)計
- 課程設(shè)計--倒計時計時器的設(shè)計
- 匯編課程設(shè)計報告--- 計時器
- 課程設(shè)計---vhdl秒表計時器
- 匯編課程設(shè)計報告--計時器
- 24秒計時器課程設(shè)計
- 多功能計時器課程設(shè)計
- 倒計時器課程設(shè)計
- 微機(jī)課程設(shè)計--搶答計時器
- 籃球比賽計時器(課程設(shè)計)
- 課程設(shè)計--籃球比賽計時器
- 課程設(shè)計報告---倒計時器
- 智能倒計時器課程設(shè)計
- 智能倒計時器課程設(shè)計
- 課程設(shè)計---籃球30秒計時器
評論
0/150
提交評論