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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機(jī)時鐘匯編程序

          51單片機(jī)時鐘匯編程序

          作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
          終于到了……感動ing...自己也可以DIY一個電子時鐘了。

          電路板和原件要另外找,南寧市的電子元件稀少得真難找啊,弄好后焊接,看來要找個好點(diǎn)的焊臺,這樣焊接電路時比較方便。

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

          電路如下:

          ;簡單的89C2051時鐘程序
          ;顯示方式為.12:34之12小時制
          ;P1口輸出段數(shù)據(jù),P3口輸出位數(shù)據(jù)
          ;P1.7為秒點(diǎn),P3.7為PM輸出
          ;P3.4校時,P3.5校分
          ;晶振12MHz


          flash equ 31h
          sec equ 32h ;定義秒存儲位置
          min equ 33h ;定義分存儲位置
          hour equ 34h
          hourk bit p3.4 ;調(diào)時按鈕
          mink bit p3.5 ;調(diào)分按鈕
          pm bit p3.7 ;PM輸出端
          org 0000h
          ajmp start
          org 000bh
          ajmp int_t0
          org 0100h
          start: mov a,#00h ;清0
          mov 30h,a
          movflash,a
          mov sec,a ;秒清0
          mov min,#00 ;分清0
          mov hour,#12
          mov sp,#60h ;重設(shè)堆棧指針
          setb pm ;PM清0
          mov p1,#0ffh
          mov p3,#0ffh
          mov tmod,#01h ;設(shè)定定時器0工作于方式1
          mov tl0,#0b0h ;設(shè)定定時初始值50ms
          mov th0,#3ch
          setb ea ;啟動定時
          setb et0
          setb tr0
          key: lcall disp ;按鍵處理子程序
          jb hourk,mmm
          hhh: lcall disp
          jnb hourk,hhh
          inc hour ;時加1
          mov a,hour
          cjne a,#12,ppp
          cpl pm ;PM取反
          ppp: cjne a,#13,key
          mov hour,#01h ;12小時到,清零.
          mmm: jb mink,key
          nnn: lcall disp
          jnb mink,nnn
          inc min
          mov a,min
          cjne a,#60,key
          mov min,#00h ;一小時時間到
          ajmp key
          int_t0:push acc ;保護(hù)現(xiàn)場
          mov tl0,#0b0h ;賦定時初值
          mov th0,#3ch
          inc 30h ;20H地址加1
          mov a,30h
          cjne a,#10,reti1
          mov 30h,#00h ;半秒鐘時間到
          inc flash ;半秒加1
          mov a,flash
          cjne a,#2,reti1
          movflash,#00h
          inc sec ;秒加1
          mov a,sec
          cjne a,#60,reti1
          mov sec,#00h ;一分鐘時間到
          inc min ;分加1
          mov a,min
          cjne a,#60,reti1
          mov min,#00h ;一小時時間到
          inc hour ;時加1
          mov a,hour
          cjne a,#12,cont
          cpl pm ;PM取反
          cont: cjne a,#13,reti1
          mov hour,#01h ;12小時到,清零.
          reti1: pop acc ;恢復(fù)現(xiàn)場
          reti ;中斷返回
          disp: mov a,#10
          mov b,a
          mov a,hour
          div ab
          cjne a,#01,zero
          jmp normal
          zero: mov a,#10 ;消隱無效零
          normal:mov dptr,#tab
          movc a,@a+dptr
          mov p1,a
          clr p3.0
          lcall dely
          setb p3.0
          mov a,b
          mov dptr,#tab
          movc a,@a+dptr
          mov p1,a
          clr p3.1
          lcall dely
          setb p3.1
          mov a,#10
          mov b,a
          mov a,min
          div ab
          mov dptr,#tab
          movc a,@a+dptr
          mov p1,a
          clr p3.3
          lcall dely
          setb p3.3
          mov a,b
          mov dptr,#tab
          movc a,@a+dptr
          mov p1,a
          clr p3.2
          lcall dely
          setb p3.2
          mov a,flash
          cjne a,#00,light
          setb p1.7
          lcall dely
          jmp over
          light: clr p1.7
          lcall dely
          over: ret ;子程序返回
          tab: db 88h,0afh,91h,0a1h,0a6h,0e0h,0c0h,0adh,80h,0a0h,0ffh;共陽段碼表0123456789不亮
          dely: mov r6,#10
          d1: mov r7,#20
          d2: djnz r7,d2
          djnz r6,d1
          ret

          end



          關(guān)鍵詞: 51單片機(jī)時鐘匯編程

          評論


          技術(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); })();