多功能家庭計(jì)時(shí)器的設(shè)計(jì)_第1頁(yè)
多功能家庭計(jì)時(shí)器的設(shè)計(jì)_第2頁(yè)
多功能家庭計(jì)時(shí)器的設(shè)計(jì)_第3頁(yè)
多功能家庭計(jì)時(shí)器的設(shè)計(jì)_第4頁(yè)
多功能家庭計(jì)時(shí)器的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第一章 多功能家庭計(jì)時(shí)器的設(shè)計(jì)設(shè)計(jì)一個(gè)基于單片機(jī)的多功能家庭計(jì)時(shí)器,該計(jì)時(shí)器可實(shí)現(xiàn)多種時(shí)間方案,可以時(shí)間時(shí)分顯示計(jì)時(shí),可以秒表計(jì)時(shí),暫停繼續(xù),可以實(shí)現(xiàn)秒倒計(jì)時(shí),并且倒計(jì)時(shí)結(jié)束后能實(shí)現(xiàn)報(bào)警。1.1 課程設(shè)計(jì)的目的:1、鞏固、加深和擴(kuò)大單片機(jī)應(yīng)用的知識(shí)面,提高綜合及靈活運(yùn)用所學(xué)知識(shí)解決實(shí)際課題設(shè)計(jì) 的能力。2、培養(yǎng)針對(duì)課題需要, 選擇和查閱有關(guān)手冊(cè)、 圖表及文獻(xiàn)資料的能力, 提高組成系統(tǒng)、 編程、 調(diào)試的動(dòng)腦動(dòng)手能力。3、通過(guò)對(duì)課題設(shè)計(jì)方案的分析、選擇、比較,熟悉運(yùn)用單片機(jī)系統(tǒng)開(kāi)發(fā)、軟硬件設(shè)計(jì)的方法 內(nèi)容及步驟。4、掌握 STC89C5,2 共陰極數(shù)碼管 ,74LS138 的接口電路,及使用方法。

2、1.2 課程設(shè)計(jì)要求:1、熟悉組成系統(tǒng)中的實(shí)驗(yàn)?zāi)K原理,畫(huà)出實(shí)驗(yàn)原理圖。2、寫(xiě)出完整的設(shè)計(jì)任務(wù)書(shū):課題的名稱(chēng)、系統(tǒng)的功能、硬件原理圖、軟件框圖、元件清單、程序清單、參考文獻(xiàn)。3、實(shí)現(xiàn)共多功能計(jì)時(shí)。26第2章設(shè)計(jì)方案2.1系統(tǒng)王要功能該系統(tǒng)只要實(shí)現(xiàn)時(shí)間計(jì)時(shí)功能,能通過(guò) 4位數(shù)碼管實(shí)現(xiàn)時(shí)分計(jì)時(shí),秒表計(jì)時(shí),秒倒計(jì)時(shí) 并且實(shí)現(xiàn)報(bào)警功能。2.2系統(tǒng)硬件構(gòu)成及功能多功能計(jì)時(shí)器的設(shè)計(jì)總體框圖如圖所示,主要有單片機(jī)AT89C52電源,鍵盤(pán)模塊,譯碼電路,顯示模塊構(gòu)成。按鍵模塊:由4個(gè)控制開(kāi)關(guān)與單片機(jī)內(nèi)部定時(shí)/計(jì)數(shù)功能組成的系統(tǒng)通過(guò)對(duì)單片機(jī)傳輸中 斷信號(hào)來(lái)實(shí)現(xiàn)時(shí)間的計(jì)時(shí),暫停。顯示模塊:用共陰極數(shù)碼管,分別顯示

3、時(shí)分,秒計(jì)時(shí)功能。電源模塊:電源模塊有220V市變電壓經(jīng)變壓,整流,穩(wěn)壓得到+ 5V, + 12V的電壓,維 持系統(tǒng)正常工作。鍵盤(pán)顯示控制定時(shí)計(jì)數(shù)模塊系統(tǒng)的總體框圖如圖1所示:主控器STC89C52圖1系統(tǒng)總體框圖2.2.1 STC89C52單片機(jī)及其說(shuō)明STC89C52為8位通用微處理器T2/F3.DT2EX/尸 I1F 1- 2r 1. 3 f la iF la 5p 1. 6P URSTHXD/P3. 口TXD/P3. 13Tl/rs 15 m/F- DXTAL2M T AL 1vsgK1«D23 9343 75饕&3573 4e佃傘:21O111112132B1127

4、2G1©Z 5LTie-is-:r2dvccIP O. O/ADQ F OL i/.ADL P UL Q/AUH FO. 3 /AD3 FCL 4/W4POu 6 /AD&F 口' 7/AD7AT K/Ij Hi iG rF.rrPS,ST. 15/13F Z- 4/Al Z I . .J":' g一 a: .tg y ”禹:圖2 PDIP 封裝的AT89C52引腳圖采用工業(yè)標(biāo)準(zhǔn)的 C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主IC內(nèi)部寄存器、數(shù)據(jù) RAM及外部接口等功能部件的初始化,會(huì)聚調(diào)

5、整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1( 19腳)和XTAL2( 18腳)為振蕩器輸入輸出端口,外接12MHz晶振。RST/Vpd(9腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù) 位電路。VCC( 40腳)和VSS( 20腳)為供電端口,分別接+5V電源的正負(fù)端。P0P3為 可編程通用I/O 腳,其功能用途由軟件定義,在本設(shè)計(jì)中, P0端口( 3239腳)被定 義為N1功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13腳定義為IR輸入端,10腳和11腳定義為I2C總線(xiàn)控制端口,分別連接N1的SDAS( 18腳)和SCLS( 19腳)端口,12

6、腳、27腳及28腳定義為握手信號(hào)功能端口,連接主板CPU的相應(yīng)功能端,用于當(dāng)前制式的檢測(cè)及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。P0 口P0 口是一組8位漏極開(kāi)路型雙向I/O 口,也即地址/數(shù)據(jù)總線(xiàn)復(fù)用口。 作為輸出 口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯門(mén)電路,對(duì)端口 P0寫(xiě)“T時(shí),可作為高阻抗輸入端用。在訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線(xiàn)分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線(xiàn)復(fù)用,在訪(fǎng)問(wèn)期間激活內(nèi)部上拉電阻。在Flash編程時(shí),P0 口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí), 要求外接上拉電阻。P1 口P1是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O 口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或

7、輸出電流)4個(gè)TTL邏輯門(mén)電路。對(duì)端口寫(xiě)“ T,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入 口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè) 電流(IIL)。Flash編程和程序校驗(yàn)期間,P1接收低8位地址。P2 口P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O 口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門(mén)電路。對(duì)端口P2寫(xiě)“ 1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出 一個(gè)電流(IIL)。在訪(fǎng)問(wèn)外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2 口送出高8位地址數(shù)

8、據(jù)。在訪(fǎng)問(wèn)8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2 口輸出P2鎖存器的內(nèi)容。Flash編程或校驗(yàn)時(shí),P2亦接收高位地址和一些控制信號(hào)。P3 口P3 口是一組帶有內(nèi)部上拉電阻的8位雙向I/O 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門(mén)電路。對(duì) P3 口寫(xiě)入“ T時(shí),它們被內(nèi)部上拉電阻拉 高并可作為輸入端口。此時(shí),被外部拉低的P3 口將用上拉電阻輸出電流(IIL )。P3 口除了作為一般的I/O 口線(xiàn)外,更重要的用途是它的第二功能P3 口還接收一些用于 Flash閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。RST復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。AL

9、E/ PROG當(dāng)訪(fǎng)問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE (地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的 1/6輸出固定的脈沖信號(hào), 因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳 過(guò)一個(gè)ALE脈沖。對(duì)Flash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG。如有必要,可通過(guò)對(duì)特殊功能寄存器(SFR區(qū)中的8EH單元的DO位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC旨令才能將 ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外 部程序時(shí),應(yīng)設(shè)置 ALE禁止位無(wú)效。PSEN程序儲(chǔ)存允許(PSEN輸出是外部

10、程序存儲(chǔ)器的讀選通信號(hào),當(dāng)STC89C52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。EA /VPP外部訪(fǎng)問(wèn)允許。欲使 CPU僅訪(fǎng)問(wèn)外部程序存儲(chǔ)器(地址為0000H- FFFFH,EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接 Vcc端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。Flash存儲(chǔ)器編程時(shí),該引腳加上 +12V的編程允許電源 Vpp,當(dāng)然這必須是該器 件是使用12V編程電壓Vpp。XTAL1振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的

11、輸入端。XTAL2振蕩器反相放大器的輸出端。特殊功能寄存器在STC89C52片內(nèi)存儲(chǔ)器中,80H-FFH共128個(gè)單元為特殊功能寄存器( SFE, SFR的地址空間映象如表 2所示。并非所有的地址都被定義,從80H- FFH共128個(gè)字節(jié)只有一部分被定義,還有相當(dāng)一部分沒(méi)有定義。對(duì)沒(méi)有定義的單元讀寫(xiě)將是無(wú)效的,讀出的數(shù)值將不確定,而寫(xiě)入的數(shù)據(jù)也將丟失。不應(yīng)將數(shù)據(jù)“ T寫(xiě)入未定義的單元,由于這些單元在將來(lái)的產(chǎn)品中可能賦予新的 功能,在這種情況下,復(fù)位后這些單元數(shù)值總是“ 0”。STC89C52除了與STC89C51所有的定時(shí)/計(jì)數(shù)器0和定時(shí)/計(jì)數(shù)器1夕卜,還增加了 一個(gè)定時(shí)/計(jì)數(shù)器2。定時(shí)/計(jì)數(shù)

12、器2的控制和狀態(tài)位位于T2CON T2MOD寄存器對(duì)(RCAO2H RCAP2L是定時(shí)器 2在16位捕獲方式或 16位自動(dòng)重裝載方式下的捕獲 /自動(dòng)重裝載寄存器。數(shù)據(jù)存儲(chǔ)器AT89C52有256個(gè)字節(jié)的內(nèi)部 RAM 80H-FFH高128個(gè)字節(jié)與特殊功能寄存器(SFR地址是重疊的,也就是高128字節(jié)的RAM和特殊功能寄存器的地址是相同的,但物理上它們是分開(kāi)的。當(dāng)一條指令訪(fǎng)問(wèn) 7FH以上的內(nèi)部地址單元時(shí),指令中使用的尋址方式是不同的, 也即尋址方式?jīng)Q定是訪(fǎng)問(wèn)高128字節(jié)RAM還是訪(fǎng)問(wèn)特殊功能寄存器。如果指令是直接尋址方式則為訪(fǎng)問(wèn)特殊功能寄存器。間接尋址指令訪(fǎng)問(wèn)高128字節(jié)RAM堆棧操作也是間接尋

13、址方式,所以,高128位數(shù)據(jù)RAM亦可作為堆棧區(qū)使用。2.2.2 資源分配晶振采用12MHZ P0 口的P0.0-P0.7分別與數(shù)碼管7段連接P2 口與74LS138的ABC數(shù)據(jù)輸入端相連。P1 口用來(lái)控制按鍵的輸入2.2.3 74LS138譯碼模塊74LS138芯片原理咯聲£ K巧K E爲(wèi)74LS138 為3線(xiàn)8線(xiàn)譯碼器,共有54/74S138和54/ 74LS138兩種線(xiàn)路結(jié)構(gòu)型式,其工作原理如下:當(dāng)一個(gè)選通端(G1)為高電平,另兩個(gè)選通端(/(G2A)和/(G2B)為低電平時(shí),可將地址端(A、B、C)的二進(jìn)制編碼在一個(gè)對(duì)應(yīng)的輸出端以低電平譯出。利用G1、/(G2A)和/(G2B

14、)可級(jí)聯(lián)擴(kuò)展成24線(xiàn)譯碼器;若外接一個(gè)反相器還可級(jí)聯(lián)擴(kuò)展成32線(xiàn)譯碼器。若將選通端中的一個(gè)作為數(shù)據(jù)輸入端時(shí),74LS138還可作數(shù)據(jù)分配器3線(xiàn)-8線(xiàn)譯碼器74LS138的功能表輸A輸出$&粘專(zhuān)爲(wèi)I;忍匹Fa為0X11111111占1占不11111111100000111111110U01101L111110n1011011111100111111111101001111011110101111111110110111L11011011111111110224定時(shí)計(jì)數(shù)模塊T0/T1TU(F3,4)ti(t盂印oi LTH1TL1t號(hào)T2EX(T1.1rz(Fi 諾時(shí)弟2nI H2w-|

15、TL2 5-JitcrubtfTCONTVl OT)RCXP2LAA1. 組成:三個(gè)16位的可編程定時(shí)器/計(jì)數(shù)器:定時(shí)器/計(jì)數(shù)器TO、T1和T2。每個(gè)定時(shí)器均有兩部分構(gòu)成:THx和TLx特殊功能寄存器T2MOD口 T2CON主要對(duì)T2進(jìn)行控制。特殊功能寄存器TMOD口 TCON主要對(duì)TO和T1進(jìn)行控制。引腳P3.5、P3.4、P1.0輸入計(jì)數(shù)脈沖。定時(shí)器TO、T1和T2是3個(gè)中斷源,可以向CPU發(fā)出中斷請(qǐng)求。定時(shí)器/計(jì)數(shù)器T2增加了兩個(gè)8位的寄存器:RCAP2H 和 RCAP2L特殊功能寄存器之間通過(guò)內(nèi)部總線(xiàn)和控制邏輯電路連接起來(lái)。2. 定時(shí)器功能:每個(gè)定時(shí)器都可由軟件設(shè)置為定時(shí)工作方式或計(jì)數(shù)

16、工作方式或其他靈活多樣 的可控功能方式。這些功能由特殊功能寄存器 TMOD口 TCON所控制。定時(shí)器工作不占用CPU寸間,除非定時(shí)器/計(jì)數(shù)器溢出,才能中斷CPU的當(dāng)前操作。 每個(gè)定時(shí)器/計(jì)數(shù)器還有四種工作模式。其中模式0-2對(duì)T0和T1是一樣的,模式3對(duì)兩者不 同。D7IIITtlTMODDJ DI D1CTMlM0GATECTJ%ATT用于to"o喪宣口0極成1迄時(shí)101W 小一隈衛(wèi)i-il 數(shù),MJ- 0110JJIpp lb謖ifi控啣I-受而帀沖制0不受肩而控制TMO控制TCON 空制:TR1(TCON.6T1 運(yùn)行控制位。Timer Run可通過(guò)軟件置1(TR1=1或清0

17、(TR1=0來(lái)啟動(dòng)或 關(guān)閉T1 0 在程序中用指令“ SETB TR1 ”使TR1位置1,定時(shí)器T1便開(kāi)始計(jì)數(shù)。CLR TR1 TR0(TCON.4) T0運(yùn)行控制位。其功能和操作情況同 TR1。GATE=(時(shí),用軟件使TR1置1啟動(dòng)定時(shí)器1,若用軟件使TR1清0,則停止定時(shí)器1。GATE=時(shí),用軟件TR1置1,如果檢測(cè)到引腳INT1 (P3.3)輸入高電平時(shí)啟動(dòng)定時(shí)器1 2.2.5 數(shù)碼管顯示模塊本設(shè)計(jì)采用7段共陰極4位數(shù)碼管顯示,當(dāng)某一段輸入為高電平,位選為低電平時(shí),相應(yīng)的 數(shù)碼管的段位會(huì)亮,如圖,由P0 口加上拉電阻,控制0-9數(shù)字以及dp點(diǎn),通過(guò)38譯碼器實(shí)現(xiàn)對(duì) 4 位數(shù)碼管的位選2.

18、3 系統(tǒng)的軟件設(shè)計(jì)模塊2.3.1 軟件延遲本設(shè)計(jì)采用軟件延遲,通過(guò)軟件實(shí)現(xiàn)數(shù)碼管的輪流亮,以及數(shù)字的控制,定時(shí)計(jì)數(shù)void delay (x)int i; while(x-)/ 延時(shí)子程序for(i=0;i<120;i+);2.3.2 定時(shí) / 計(jì)數(shù)設(shè)計(jì)本設(shè)計(jì)通過(guò)定時(shí)器每50ms產(chǎn)生一次定時(shí)中斷,當(dāng)計(jì)數(shù)為20次時(shí),為1000ms即1s,來(lái)實(shí)現(xiàn) 時(shí)間的計(jì)時(shí)。void timer0() interrupt 1TH0=(65535-50000)/256;TL0=(65535-50000)%256;cunt+; /2.3.3 鍵盤(pán)控制模塊/中斷函數(shù)/ T0 裝初值,每進(jìn)中斷服務(wù)程序一次, cun

19、t 加 1本設(shè)計(jì)通過(guò) 4 按鍵,分別控制時(shí)分顯示,秒表計(jì)時(shí),秒倒計(jì)時(shí),以及秒表的暫停和繼續(xù) void keyscan() /鍵盤(pán)掃描函數(shù)if(k1=0)delay(5);if(k1=0) /count+;while(!k1);/delay(1);/檢測(cè) k1 確實(shí)被按下防抖動(dòng)檢測(cè)松手檢測(cè)確實(shí)松手暫停定時(shí)器定時(shí)器繼續(xù)計(jì)時(shí)while(!k1); if(count=1) TR0=0; / if(count=2) TR0=1; / count=0;2.3.4 數(shù)碼管顯示模塊 本設(shè)計(jì)通過(guò)位選數(shù)碼管,實(shí)現(xiàn)時(shí)間的輪流顯示,通過(guò)延遲函數(shù),當(dāng)延遲時(shí)間很短時(shí),由于人眼有視覺(jué)停留,所以人眼看的所有的數(shù)碼管都是亮的。

20、通過(guò)內(nèi)部的計(jì)數(shù)器,實(shí)現(xiàn)時(shí)間 的計(jì)時(shí),倒計(jì)時(shí)。時(shí)分顯示模塊void display1(uint num ) /uchar hou1,hou2,min1,min2,sec1,sec2; sec1=num%10; / sec2=num%60/10;min1=num%600/60%10;min2=num%3600/600%10;hou1=num/3600%10;hou2=num/36000;P0=tab1sec1; / P0 P2=0x00; / P2 delay(1); /P2=0xff;/P0=tab1sec2;/P2=0x01; / delay(1);P2=0xff;數(shù)碼管動(dòng)態(tài)顯示子程序(帶參數(shù)

21、)/ 時(shí)、分、秒變量定義 計(jì)數(shù)分割口段選輸出, 秒輸出口位選輸出 ,選擇數(shù)碼管最低位選通 顯示延時(shí)去消隱秒輸出數(shù)碼管次低位選通P0=tab1min1+1;P2=0x02;delay(1);P2=0xff;/分輸出數(shù)碼管第三位選通P0=tab1min2+1;/分輸出P2=0x03;/數(shù)碼管第四位選通delay(1);P2=0xff;第三章 問(wèn)題與總結(jié)4.1 問(wèn)題(1) 在繪制電路圖時(shí)電路出現(xiàn)錯(cuò)誤,經(jīng)過(guò)觀(guān)察和調(diào)整,得以原理圖成功制出。(2) 在編寫(xiě)程序時(shí)程序也出現(xiàn)了問(wèn)題,出現(xiàn)許多提示錯(cuò)誤,經(jīng)過(guò)和同學(xué)討論,最后程序才成功 編寫(xiě)完成,仿真效果也隨之出來(lái)。(3) 本來(lái)以為仿真圖出來(lái),接下來(lái)就是簡(jiǎn)單的手工

22、問(wèn)題,可過(guò)程遠(yuǎn)比我想象的要復(fù)雜的多,第 一次焊了一塊板,差不多快完成時(shí)發(fā)現(xiàn)連線(xiàn)連成“蜘蛛網(wǎng)”,甚是難看,在同學(xué)的建議下我 選擇了重新焊,在第二次的焊板過(guò)程中發(fā)現(xiàn)第一次焊時(shí)有許多地方的引腳是錯(cuò)誤,結(jié)果總不 會(huì)如自己所意料的,第二次焊結(jié)束時(shí)所想要的效果還是沒(méi)有出來(lái),當(dāng)時(shí)的心很失落,用電壓 表查電路、查看板有無(wú)虛焊,在焊完漏掉的線(xiàn)路后效果仍舊沒(méi)出來(lái),我的心更加失望,在快 要絕望準(zhǔn)備放棄時(shí),我抱著試一試的心理重新燒了一下程序,結(jié)果出來(lái)了,心中的石頭落下 了。4.2 總結(jié)本次的設(shè)計(jì)中利用STC89C5卻74LS138以及定時(shí)器完成電路的設(shè)計(jì),用開(kāi)關(guān)來(lái)控制各種計(jì)時(shí)方式的轉(zhuǎn)換,用單片機(jī)輸出后,經(jīng)過(guò) 38譯碼

23、器譯碼,實(shí)現(xiàn)數(shù)碼管的時(shí)間顯示。 通過(guò)這次課程設(shè)計(jì), 我進(jìn)一步了解了定時(shí)器的原理,在實(shí)際動(dòng)手操作過(guò)程中,使我接觸了 許多我以前沒(méi)接觸過(guò)的知識(shí),而且重新溫習(xí)了剛學(xué)不久的 c 語(yǔ)言,使我學(xué)得了許多知識(shí),使 我獲益匪淺。這次課程設(shè)計(jì),使我的動(dòng)手能力得到了很大的提高,更使我們懂得理論知識(shí)的 重要性,沒(méi)有理論的指導(dǎo)一切實(shí)際行動(dòng)都是盲目的,且實(shí)際操作是我們得到的理論知識(shí)得到 驗(yàn)證,更能增加對(duì)理論知識(shí)的理解。參考文獻(xiàn)1. 單片機(jī)原理及應(yīng)用技術(shù)范力旻電子工業(yè)出版社2單片機(jī)C語(yǔ)言應(yīng)用100例 王東峰 王會(huì)良 電子工業(yè)出版社3. 51 系列單片機(jī)設(shè)計(jì)實(shí)例樓然苗 李光飛 北航出版社附錄1附錄2/加載頭文件元器件清單名

24、稱(chēng)型號(hào)參數(shù)數(shù)量Cpu芯片STC89C5218段共陰極數(shù)碼 管LG5011AH4按鍵按鈕4瓷片電容20Pf2晶振12MHZ1電解電容10uf1電阻10k19腳排阻10k1發(fā)光二極管LED1譯碼器74HC1381電源直流5V1程序清單#i ncludevi ntri ns.H>定義num和cunt為全局變量,全局更#define uchar unsigned char#define uint unsigned long int /sbit k1=P1A3;sbit led=P3A2;sbit k2=P1A0;sbit k3=P1A1;sbit k4=P1A2;uint num ;/改有效uc

25、har cunt,count,count1 ;/ 宏定義無(wú)符號(hào)字符型宏定義無(wú)符號(hào)長(zhǎng)整型uchar tab1 = 0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d;/數(shù)碼管段選編碼 高電平有效code DSY_CODE=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00;uchar Pre_KeyNo=16,KeyNo=16;void delay (

26、x)/int i;while(x-)for(i=0;i<120;i+);void keyscan() /延時(shí)子程序鍵盤(pán)掃描函數(shù)if(k1=0)delay(5);if(k1=0)/count+;while(!k1);/delay(1);/檢測(cè) k1 確實(shí)被按下防抖動(dòng)檢測(cè)松手檢測(cè)確實(shí)松手暫停定時(shí)器while(!k1); if(count=1) TR0=0; / if(count=2)TR0=1; count=0;/定時(shí)器繼續(xù)計(jì)時(shí)void display1(uint num )/uchar hou1,hou2,min1,min2,sec1,sec2; sec1=num%10; / sec2=n

27、um%60/10;min1=num%600/60%10;min2=num%3600/600%10;hou1=num/3600%10;hou2=num/36000;P0=tab1sec1; / P0P2=0x00; / P2delay(1); /P2=0xff;/P0=tab1sec2;/P2=0x01; /delay(1);P2=0xff;P0=tab1min1+1; /P2=0x02; /delay(1);數(shù)碼管動(dòng)態(tài)顯示子程序(帶參數(shù))/ 時(shí)、分、秒變量定義 計(jì)數(shù)分割口段選輸出, 秒輸出口位選輸出 ,選擇數(shù)碼管最低位選通 顯示延時(shí)去消隱秒輸出數(shù)碼管次低位選通分輸出數(shù)碼管第三位選通P2=0xf

28、f;P0=tab1min2+1; / 分輸出P2=0x03; /數(shù)碼管第四位選通delay(1);P2=0xff;void display2(uint num)uchar hou1,hou2,min1,min2,sec1,sec2,miao; /時(shí)、分、秒變量定義keyscan();sec1=num%10; / sec2=num%60/10;min1=num%600/60%10; min2=num%3600/600%10; hou1=num/3600%10;hou2=num/36000;P0=tab1cunt; / P0P2=0x00; / P2 delay(1); / P2=0xff;/P0

29、=tab1sec1;/P2=0x01; / delay(1);P2=0xff;P0=tab1sec2; /P2=0x02; / delay(1);P2=0xff;P0=tab1min1; /P2=0x03; / delay(1);計(jì)數(shù)分割口段選輸出, 毫秒輸出口位選輸出 ,選擇數(shù)碼管最低位選通 顯示延時(shí)去消隱秒輸出數(shù)碼管次低位選通秒輸出數(shù)碼管第三位選通分輸出數(shù)碼管第三位選通P2=0xff;void display3(uint num)uchar hou1,hou2,min1,min2,sec1,sec2,miao,sec11,sec22,min11,min22; / 時(shí)、分、秒變量定義led=

30、0;sec1=num%10; / 計(jì)數(shù)分割 sec2=num%60/10;min1=num%600/60%10;min2=num%3600/600%10;hou1=num/3600%10;hou2=num/36000;miao=9999-min2*1000-min1*100-sec2*10-sec1;sec11=miao%10; / sec22=miao%60/10; min11=miao%600/60%10; min22=miao%3600/600%10; hou1=miao/3600%10; hou2=miao/36000;P0=tab1sec11; / P0P2=0x00; / P2de

31、lay(1); /P2=0xff;/P0=tab1sec22;/P2=0x01; /delay(1);P2=0xff;P0=tab1min11; /P2=0x02; /delay(1);P2=0xff;計(jì)數(shù)分割口段選輸出, 秒輸出口位選輸出 ,選擇數(shù)碼管最低位選通 顯示延時(shí)去消隱秒輸出數(shù)碼管次低位選通分輸出數(shù)碼管第三位選通P0=tab1min22; / 分輸出P2=0x03; / 數(shù)碼管第三位選通 delay(1);P2=0xff;led=0; while(min22=0&&min11=0&&sec11=0&&sec22=0) led=led;delay(5);P0=tab10;/ P0口段選輸出, 秒輸出P2=

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論