色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

          作者: 時間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
          ;消隱的匯編程序簡單的電子時鐘,

          ;有些地方用十進(jìn)制比較方便,并不是匯編里面都要用十六進(jìn)制?

          本文引用地址:http://cafeforensic.com/article/201611/319589.htm

          ;author:helloword

          ;CLRSMG_OE;+++++++++++++++++++++++++++++++++++++++++++++++

          ;CALLDELAY;延時------->消隱

          ;SETBSMG_OE;+++++++++++++++++++++++++++++++++++++++++++++

          SMG_OEBITP1.3

          SMG_DLBITP1.4

          SMG_WLBITP1.5

          SECONDEQU40H

          MINUTEEQU41H

          HOUREQU42H

          FLAGEQU43H

          ORG0000H

          JMPSTART

          ORG000BH

          JMPINT_T0

          ORG0040H

          START:

          MOVSECOND,#0

          MOVMINUTE,#0

          MOVHOUR,#0

          MOVFLAG,#14H;14H就是十進(jìn)制的20,20*50000=1s

          MOVDPTR,#DUAN

          MOVTMOD,#01H

          MOVTH0,#03CH

          MOVTL0,#0B0H

          SETBTR0

          SETBET0

          SETBEA

          S1:CALLDISPLAY

          ;-----------接下來的程序是控制時分秒的上限值------

          C1:MOVA,SECOND

          CJNEA,#60,C2;3CH就是十進(jìn)制的60

          MOVSECOND,#0

          INCMINUTE

          C2:MOVA,MINUTE

          CJNEA,#60,C3;3CH就是十進(jìn)制的60

          MOVMINUTE,#0

          MOVSECOND,#0

          INCHOUR

          C3:MOVA,HOUR

          CJNEA,#24,L;18H就是十進(jìn)制的24

          MOVHOUR,#0

          MOVMINUTE,#0

          MOVSECOND,#0

          ;-----------判斷結(jié)束----------------------

          L:LJMPS1

          DISPLAY:;數(shù)碼管顯示子程序

          D1:;***********顯示秒的兩個數(shù)碼管********************

          SETBSMG_WL;P1.5數(shù)碼管的位選

          MOVP0,#0BFH;

          CLRSMG_WL;

          ;-----------顯示秒的高位

          SETBSMG_DL;P1.4數(shù)碼管的段選

          MOVA,SECOND

          MOVB,#10

          DIVAB;A/B,除完之后商存在A中,余數(shù)存在B中

          MOVCA,@A+DPTR;查表指令要使用MOVC

          MOVP0,A

          CLRSMG_DL

          CLRSMG_OE;++++++++++++++++++++++++++++++++++++++++++++++

          CALLDELAY;延時------->消隱

          SETBSMG_OE;+++++++++++++++++++++++++++++++++++++++++++++

          ;-----------顯示秒的低位

          SETBSMG_WL

          MOVP0,#7FH

          CLRSMG_WL

          SETBSMG_DL

          MOVA,B

          MOVCA,@A+DPTR

          MOVP0,A

          CLRSMG_DL

          CLRSMG_OE;++++++++++++++++++++++++++++++++++++++++++++++

          CALLDELAY;延時------->消隱

          SETBSMG_OE;+++++++++++++++++++++++++++++++++++++++++++++

          ;***********秒的顯示到此結(jié)束********************

          D2:;***********顯示分的兩個數(shù)碼管******************

          SETBSMG_WL;P1.5數(shù)碼管的位選

          MOVP0,#0F7H;

          CLRSMG_WL;

          ;-----------顯示分的高位

          SETBSMG_DL;P1.4數(shù)碼管的段選

          MOVA,MINUTE

          MOVB,#10

          DIVAB;A/B,除完之后商存在A中,余數(shù)存在B中

          MOVCA,@A+DPTR;查表指令要使用MOVC

          MOVP0,A

          CLRSMG_DL

          CLRSMG_OE;++++++++++++++++++++++++++++++++++++++++++++++

          CALLDELAY;延時------->消隱

          SETBSMG_OE;+++++++++++++++++++++++++++++++++++++++++++++

          ;-----------顯示分的低位

          SETBSMG_OE;+++++++++++++++++++++++++++++++++++++++++++++

          SETBSMG_WL

          MOVP0,#0EFH

          CLRSMG_WL

          SETBSMG_DL

          MOVA,B

          MOVCA,@A+DPTR

          MOVP0,A

          CLRSMG_DL

          CLRSMG_OE;++++++++++++++++++++++++++++++++++++++++++++++

          CALLDELAY;延時------->消隱

          SETBSMG_OE;+++++++++++++++++++++++++++++++++++++++++++++

          ;***********分的顯示到此結(jié)束********************

          D3:;***********顯示小時的兩個數(shù)碼管****************

          SETBSMG_WL;P1.5數(shù)碼管的位選

          MOVP0,#0FEH;

          CLRSMG_WL;

          ;-----------顯示小時的高位

          SETBSMG_DL;P1.4數(shù)碼管的段選

          MOVA,HOUR

          MOVB,#10

          DIVAB;A/B,除完之后商存在A中,余數(shù)存在B中

          MOVCA,@A+DPTR;查表指令要使用MOVC

          MOVP0,A

          CLRSMG_DL

          CLRSMG_OE;++++++++++++++++++++++++++++++++++++++++++++++

          CALLDELAY;延時------->消隱

          SETBSMG_OE;+++++++++++++++++++++++++++++++++++++++++++++

          ;-----------顯示小時的低位

          SETBSMG_WL

          MOVP0,#0FDH

          CLRSMG_WL

          SETBSMG_DL

          MOVA,B

          MOVCA,@A+DPTR

          MOVP0,A

          CLRSMG_DL

          CLRSMG_OE;++++++++++++++++++++++++++++++++++++++++++++++

          CALLDELAY;延時------->消隱

          SETBSMG_OE;+++++++++++++++++++++++++++++++++++++++++++++

          ;***********小時的顯示到此結(jié)束********************

          ;***********間隔符的顯示********************

          SETBSMG_OE;+++++++++++++++++++++++++++++++++++++++++++++

          SETBSMG_WL;P1.5數(shù)碼管的位選

          MOVP0,#0DBH;DBH=11011011點亮相應(yīng)的間隔符共陰,0點亮

          CLRSMG_WL;

          SETBSMG_DL;P1.4數(shù)碼管的段選

          MOVA,#40H;40H=01000000顯示數(shù)碼管g這一段共陰,0點亮

          MOVP0,A

          CLRSMG_DL

          CLRSMG_OE;++++++++++++++++++++++++++++++++++++++++++++++

          CALLDELAY;延時

          RET

          INT_T0:

          MOVTH0,#03CH;(65536-50000)/256=60=3C

          MOVTL0,#0B0H;(65536-50000)%6=176=B0

          DJNZFLAG,RETURN

          INCSECOND

          MOVFLAG,#7H;#14H是十進(jìn)制的2020*50000=1s

          RETURN:RETI

          DELAY:MOVR1,#20;延時子程序

          DELAY1:MOVR2,#20

          DJNZR2,$

          DJNZR1,DELAY1

          RET

          WEI:DB7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH

          DUAN:DB03FH,06H,05BH,4FH,66H,6DH,07DH,07H,07FH,06FH

          ENDSTART



          關(guān)鍵詞: 單片機(jī)電子時鐘匯

          評論


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

          關(guān)閉