<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用8031單片機(jī)控制的數(shù)字鐘

          用8031單片機(jī)控制的數(shù)字鐘

          作者: 時(shí)間:2012-02-17 來(lái)源:網(wǎng)絡(luò) 收藏

          電子鐘的設(shè)計(jì)方法有多種,例如,可用中小規(guī)模集成電路組成電子鐘;也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘;還可以利用來(lái)實(shí)現(xiàn)電子鐘等等。這些方法都各有特點(diǎn),其中,利用實(shí)現(xiàn)的電子鐘具有編程靈活,便于電子鐘功能的擴(kuò)充,即可用該電子鐘發(fā)出各種信號(hào),精確度高等特點(diǎn)。

          本文引用地址:http://www.ex-cimer.com/article/172074.htm

          所設(shè)計(jì)的電子鐘有以下功能:
          1. 24小時(shí)制時(shí)間顯示。
          2. 可隨時(shí)進(jìn)行時(shí)間校對(duì)。
          3. 整點(diǎn)報(bào)時(shí)。
          4. 鬧鐘功能。

          為了節(jié)約制作硬件的開(kāi)支,我們利用開(kāi)發(fā)機(jī)上的硬件資源,開(kāi)發(fā)了電腦鐘的軟件。該鐘由8031單片機(jī),采用24小時(shí)制計(jì)時(shí),利用開(kāi)發(fā)機(jī)上的六個(gè)LED顯示器來(lái)顯示時(shí)、分和秒,使用P1端口中的P1.0端口線實(shí)現(xiàn)整點(diǎn)報(bào)時(shí)功能;使用P3端口的P3.0實(shí)現(xiàn)鬧鐘功能。其硬件原理圖如圖一所示。

          9.jpg

          圖中的開(kāi)關(guān)K4用于鬧鐘,當(dāng)K4=1時(shí)(開(kāi)關(guān)處于ON的位置),打開(kāi)鬧鐘,使之在預(yù)定時(shí)間起鬧;當(dāng)K1=0時(shí)(開(kāi)關(guān)處于OFF的位置),則關(guān)閉鬧鐘,使之不鬧。另外,在鬧鐘響起時(shí),K4也可作為止鬧開(kāi)關(guān)使用,若不止鬧,則鬧一分鐘。鬧鐘信號(hào)用發(fā)光二極管來(lái)模擬。

          整點(diǎn)報(bào)時(shí)信號(hào)也是用發(fā)光二極管來(lái)模擬的。當(dāng)整點(diǎn)時(shí),P1.0口所接的發(fā)光二極管點(diǎn)亮一分鐘。

          電腦數(shù)字鐘的秒信號(hào)是利用8031單片機(jī)定時(shí)器T0產(chǎn)生的。由于開(kāi)發(fā)機(jī)的晶振頻率為6MHz,使得T0的最大定時(shí)時(shí)間遠(yuǎn)遠(yuǎn)小于1秒,因此,在設(shè)計(jì)時(shí)采用了硬件計(jì)數(shù)與軟件計(jì)數(shù)相結(jié)合的方式,即通過(guò)T0產(chǎn)生一定的定時(shí)時(shí)間,然后再利用軟件進(jìn)行計(jì)數(shù),從而產(chǎn)生1秒鐘的時(shí)間信號(hào)。在設(shè)計(jì)中,定時(shí)器T0采用了中斷方式。當(dāng)定時(shí)時(shí)間到時(shí),單片機(jī)產(chǎn)生中斷,在T0的中斷服務(wù)程序中實(shí)現(xiàn)時(shí)、分、秒的累加。并且,該中斷的優(yōu)先級(jí)別高于其它中斷,因此,保證了電子鐘走時(shí)準(zhǔn)確。在設(shè)計(jì)中,利用外部中斷0和外部中斷1分別作為校時(shí)和鬧鐘校時(shí)按鍵的觸發(fā)輸入。當(dāng)需要校時(shí)時(shí),撥動(dòng)K5或K6開(kāi)關(guān),便產(chǎn)生外部中斷,進(jìn)入相應(yīng)的中斷服務(wù)程序。在外部中斷0和外部中斷1的中斷服務(wù)程序中,都只有一條表示有按鍵的標(biāo)志位置1的指令,然后在主程序中用查詢標(biāo)志位的方式判斷是否有鍵按下。若查得標(biāo)志位為1則進(jìn)入校時(shí)子程序進(jìn)行校時(shí)的相應(yīng)處理;若為0則照常進(jìn)行時(shí)間顯示。當(dāng)撥動(dòng)K5開(kāi)關(guān)時(shí),進(jìn)入校時(shí)狀態(tài),用戶可以方便地校準(zhǔn)時(shí)間。當(dāng)撥動(dòng)K6開(kāi)關(guān)時(shí),便進(jìn)入鬧鐘校時(shí)狀態(tài),這時(shí),可根據(jù)需要設(shè)置起鬧時(shí)間。在鬧鐘校時(shí)期間,時(shí)鐘繼續(xù)計(jì)數(shù),即鬧鐘校時(shí)不影響時(shí)鐘走時(shí)。

          程序中的一些存儲(chǔ)單元的定義如下:
           ?。玻埃取玻玻龋簳r(shí)、分、秒單元
           ?。矗埃取矗玻龋盒r(shí)或鬧鐘校時(shí)期間的時(shí)、分、秒單元
           ?。担埃取担保龋浩痿[時(shí)間的時(shí)、分單元
           ?。罚梗取罚牛龋猴@示緩沖區(qū)

          用戶標(biāo)志位F0:校時(shí)標(biāo)志,當(dāng)F0=1時(shí),表示校時(shí),位7FH:鬧鐘校時(shí)標(biāo)志,當(dāng)7FH=1時(shí),表示鬧鐘校時(shí)

          以上的總體設(shè)計(jì)使得電腦數(shù)字鐘的精確度較高,因?yàn)樵诔绦虻膱?zhí)行過(guò)程中,任何指令都不影響定時(shí)器的正常計(jì)數(shù)。從而,使數(shù)字鐘的精度僅僅取決于單片機(jī)的產(chǎn)生機(jī)器周期電路和定時(shí)器T0硬件電路的精確度。另外,程序較為簡(jiǎn)潔,具有可靠性和較好的可讀性。

          我們?cè)O(shè)計(jì)電腦數(shù)字鐘的目的并不在于電腦數(shù)字鐘本身,而是想將它的設(shè)計(jì)應(yīng)用于實(shí)時(shí)控制之中。只要對(duì)上述程序和硬件電路稍加修改,便可以得到實(shí)時(shí)控制的實(shí)用系統(tǒng),從而應(yīng)用到實(shí)際工作與生產(chǎn)中去。

          電腦數(shù)字鐘的匯編語(yǔ)言源程序如下所示:
          ORG 0000H
          LJMP MAIN
          ORG 0003H
          SETB PSW.5
          RETI
          ORG 000BH
          LJMP CLOCK
          ORG 0013H
          SETB 7FH
          RETI
          ORG 0030H
          MAIN: MOV SP,#60H
          MOV TMOD,#01H
          MOV IE,#87H
          SETB PT0
          MOV TL0,#0B7H
          MOV TH0,#3CH
          MOV 20H,#00H
          MOV 21H,#00H
          MOV 22H,#00H
          MOV 23H,#00H
          MOV 50H,#06H
          MOV 51H,#28H
          MOV 52H,#00H
          CLR PSW.5
          CLR 7FH
          SETB TR0
          SETB IT0
          SETB IT1
          CLR P3.0
          SS: LCALL CUTIN0
          LCALL SSCAN
          JNB PSW.5,LK
          LCALL KEY0
          LK: JNB 7FH,SS
          LCALL KEY1
          SJMP SS
          CUTIN0: PUSH PSW
          PUSH ACC
          MOV 25H,R0
          MOV R0,#79H
          MOV A,22H
          ACALL BCD
          MOV A,21H
          ACALL BCD
          MOV A,20H
          ACALL BCD
          MOV R0,25H
          POP ACC
          POP PSW
          RET
          CUTIN1: PUSH PSW
          PUSH ACC
          MOV 25H,R0
          MOV R0,#79H
          MOV A,42H
          ACALL BCD
          MOV A,41H
          ACALL BCD
          MOV A,40H
          ACALL BCD
          MOV R0,25H
          POP ACC
          POP PSW
          RET
          BCD: MOV B,#0AH
          DIV AB
          MOV @R0,B
          INC R0
          MOV @R0,A
          INC R0
          RET
          CLOCK: JNB PSW.5,ZC
          LJMP FH
          ZC: MOV TL0,#0B7H
          MOV TH0,#3CH
          PUSH PSW
          PUSH ACC
          INC 23H
          MOV A,23H
          CJNE A,#0AH,RET0
          MOV 23H,#00H
          INC 22H
          MOV A,22H
          CJNE A,#3CH,RET0
          MOV 22H,#00H
          SETB P1.0
          CLR P3.0
          INC 21H
          MOV A,21H
          CJNE A,#3CH,RET0
          MOV 21H,#00H
          CLR P1.0
          INC 20H
          MOV A,20H
          CJNE A,#18H,RET0
          MOV 20H,#00H
          AJMP RET0
          RET0: MOV A,21H
          CJNE A,51H,B0
          MOV A,20H
          CJNE A,50H,B0
          SETB P3.0
          B0: POP ACC
          POP PSW
          FH: RETI
          SSCAN: MOV R6,#05H
          SS2: MOV 30H,#20H
          MOV 31H,#7EH
          MOV R7,#06H
          SS1: MOV R1,#21H


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: 數(shù)字 控制 單片機(jī)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();