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

          新聞中心

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

          單片機(jī) 電子時(shí)鐘(匯編)

          作者: 時(shí)間:2016-11-18 來(lái)源:網(wǎng)絡(luò) 收藏
          今天很高興,一次性就把這個(gè)電子時(shí)鐘寫(xiě)了出來(lái)(今晚的單片機(jī)實(shí)驗(yàn),記得去年自學(xué)單片機(jī)的時(shí)候,這個(gè)還真是寫(xiě)不出來(lái),不過(guò)這個(gè)時(shí)鐘只是靜態(tài)的,不能夠用手工來(lái)修改,這點(diǎn)還是不夠完善,以后有時(shí)間了的話,我重新寫(xiě)一下,呵呵)

          count equ 9217 ;定義1s計(jì)數(shù)值,對(duì)于11.0592的晶振來(lái)說(shuō),延時(shí)10ms

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

          second equ 30h ;定義臨時(shí)變量區(qū)

          second_ge equ 31h

          second_shi equ 32h

          minute equ 33h

          minute_ge equ 34h

          minute_shi equ 35h

          hour equ 36h

          hour_ge equ 37h

          hour_shi equ 38h

          org 0000h

          sjmp main ;進(jìn)入主程序

          org 0003h

          reti

          org 000bh ;time0(定時(shí)器/計(jì)數(shù)器T0入口地址)

          ljmp int_time0 ;跳轉(zhuǎn)到中斷0服務(wù)程序

          org 001bh

          reti

          org 0023h

          reti

          main:

          mov r0,#0 ;初始化程序(本程序初始值設(shè)為13:33:22)

          mov second,#22

          mov second_ge,#0

          mov second_shi,#0

          mov minute,#33

          mov minute_ge,#0

          mov minute_shi,#0

          mov hour,#13

          mov hour_ge,#0

          mov hour_shi,#0

          mov tmod,#00000001b

          mov th0,#high(65536-count) ;取高八位數(shù)據(jù)

          mov tl0,#low(65536-count) ;取底五位

          clr tf0

          setb ea

          setb et0

          setb tr0 ;開(kāi)始計(jì)時(shí)

          loop:

          lcall digitor_display ;調(diào)用數(shù)碼管掃描顯示程序

          sjmp loop ;程序在此循環(huán)

          ;定時(shí)器0中斷

          int_time0:

          push acc

          push psw

          clr tf0

          mov th0,#high(65536-count) ;取高八位數(shù)據(jù)

          mov tl0,#low(65536-count) ;取底五位

          inc r0

          cjne r0,#100,ret_loop ;秒值加一

          sjmp second_add

          second_add: ;秒值處理

          mov r0,#0

          inc second

          mov a,second

          cjne a,#60, ret_loop

          sjmp minute_add

          minute_add: ;分值處理

          mov second,#0

          inc minute

          mov a,minute

          cjne a,#60, ret_loop

          sjmp hour_add

          hour_add: ;小時(shí)處理

          mov minute,#0

          inc hour

          mov a,hour

          cjne a,#24,ret_loop

          sjmp hour_reset

          hour_reset:

          mov hour,#0

          ret_loop:

          pop psw

          pop acc

          reti ;中斷返回

          digitor_display: ;數(shù)碼管掃描

          push acc

          push psw

          mov a,second

          mov b,#10

          div ab

          mov second_shi,a

          mov second_ge,b

          mov a,minute

          mov b,#10

          div ab

          mov minute_shi,a

          mov minute_ge,b

          mov a,hour

          mov b,#10

          div ab

          mov hour_shi,a

          mov hour_ge,b

          mov p1,#11011111b ;顯示秒鐘的個(gè)位

          mov a,second_ge

          mov dptr,#table

          movc a,@a+dptr

          mov p2,a

          lcall delay

          mov p1,#11101111b ;顯示秒鐘的十位

          mov a,second_shi

          mov dptr,#table

          movc a,@a+dptr

          mov p2,a

          lcall delay

          mov p1,#11110111b ;顯示分鐘的個(gè)位

          mov a,minute_ge

          mov dptr,#table

          movc a,@a+dptr

          mov p2,a

          lcall delay

          mov p1,#11111011b ;顯示分鐘的十位

          mov a,minute_shi

          mov dptr,#table

          movc a,@a+dptr

          mov p2,a

          lcall delay

          mov p1,#11111101b ;顯示小時(shí)的個(gè)位

          mov a,hour_ge

          mov dptr,#table

          movc a,@a+dptr

          mov p2,a

          lcall delay

          mov p1,#11111110b ;顯示小時(shí)的十位

          mov a,hour_shi

          mov dptr,#table

          movc a,@a+dptr

          mov p2,a

          lcall delay

          pop psw

          pop acc

          ret ;掃描程序返回

          table: ;共陰極數(shù)碼管掃描碼

          DB 3FH ;0

          DB 06H ;1

          DB 5BH ;2

          DB 4FH ;3

          DB 66H ;4

          DB 6DH ;5

          DB 7DH ;6

          DB 27H ;7

          DB 7FH ;8

          DB 6FH ;9

          delay: mov r4,#5 ;延時(shí)函數(shù)(延時(shí)大概5*255*2=25ms)

          l1: mov r5,#0ffh

          l2: djnz r5,$

          djnz r4,l1

          ret

          end



          評(píng)論


          技術(shù)專(zhuān)區(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); })();