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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 8279顯示電子鐘的設(shè)計(jì)與程序源代碼

          8279顯示電子鐘的設(shè)計(jì)與程序源代碼

          作者: 時(shí)間:2010-02-01 來源:網(wǎng)絡(luò) 收藏

          可以看看時(shí)鐘是怎么樣的。

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

          MCS51單片機(jī)匯編

          Z8279 EQU 08701H ;8279 狀態(tài)/命令口地址

          D8279 EQU 08700H ;8279 數(shù)據(jù)口地址

          LEDMOD EQU 00H;左邊輸入 八位字符

          ;外部譯碼鍵掃描方式,雙鍵互鎖

          LEDFEQ EQU 2FH;掃描速率

          LEDCLS EQU 0C1H ;清除 RAM

          LEDWR0 EQU 80H;設(shè)定的將要寫入的RAM地址

          ORG 0000H

          AJMP START

          ORG 001BH ;INT T1 入口地址

          AJMP INT_T1

          ORG 0040H

          START:

          MOV SP,#60H

          LCALL INIT8279;初始化8279

          MOV R3,#0H ;時(shí)

          MOV R2,#0H ;

          MOV R1,#0H ;

          MOV R6,#0H ;標(biāo)志

          MOV TMOD,#10H

          MOV TL1,#00H ;50 MS 的時(shí)間常數(shù)

          MOV TH1,#04CH

          MOV R0,#20

          SETB TR1

          SETB ET1

          SETB EA ;允許中斷

          WAIT: CJNE R6,#0FFH,WAIT

          LCALL DISPLAY

          MOV R6,#0

          SJMP WAIT

          INIT8279:

          ;8279初始化子

          PUSH DPH ;保存現(xiàn)場(chǎng)

          PUSH DPL

          PUSH ACC

          LCALL DELAY ;延時(shí)

          MOV DPTR ,#Z8279

          MOV A,#LEDMOD ;置8279工作方式

          MOVX @DPTR,A

          MOV A,#LEDFEQ ;置鍵盤掃描速率

          MOVX @DPTR,A

          MOV A,#LEDCLS ;清除 LED 顯示

          MOVX @DPTR,A

          LCALL DELAY ;延時(shí)

          POP ACC ;恢復(fù)現(xiàn)場(chǎng)

          POP DPL

          POP DPH

          RET

          ;顯示字符子程序

          ;輸入R4,位置 R5,值

          DISLED: PUSH DPH ;保存現(xiàn)場(chǎng)

          PUSH DPL

          PUSH ACC

          MOV A,#LEDWR0 ;置顯示起始地址

          ADD A,R4 ;加位置偏移量

          MOV DPTR,#Z8279

          MOVX @DPTR,A ;設(shè)定顯示位置

          MOV DPTR,#LEDSEG ;置顯示常數(shù)表起始位置

          MOV A,R5

          MOVC A,@A+DPTR;查表

          MOV DPTR,#D8279

          MOVX @DPTR,A ;顯示數(shù)據(jù)

          POP ACC ;恢復(fù)現(xiàn)場(chǎng)

          POP DPL

          POP DPH

          RET

          DELAY: ;延時(shí)子程序

          PUSH 0 ;保存現(xiàn)場(chǎng)

          PUSH 1

          MOV 0,#0H

          DELAY1: MOV 1,#0H

          DJNZ 1,$

          DJNZ 0,DELAY1

          POP 1 ;恢復(fù)現(xiàn)場(chǎng)

          POP 0

          RET

          INT_T1: ;INT_T1中斷服務(wù)子程序

          PUSH DPH ;保護(hù)現(xiàn)場(chǎng)

          PUSH DPL

          PUSH ACC

          PUSH PSW

          CLR TR1

          MOV TL1,#00H ;50MS 定時(shí)常數(shù)

          MOV TH1,#4CH

          SETB TR1

          DJNZ R0,EXIT ;判斷毫秒=0

          MOV R0,#20 ;DELAY 1 SECOND

          MOV R6,#0FFH ;置秒標(biāo)志

          CJNE R1,#59H,SECOND ;判斷秒=59

          MOV R1,#99H

          CJNE R2,#59H,MINUTE ;判斷分=59

          MOV R2,#99H

          CJNE R3,#23H,HOUR ;判斷時(shí)=23

          MOV R3,#99H

          HOUR:

          MOV A,R3

          ADD A,#1 ;時(shí)加1

          DA A

          MOV R3,A

          MINUTE:

          MOV A,R2

          ADD A,#1 ;分加1

          DA A

          MOV R2,A

          SECOND:

          MOV A,R1

          ADD A,#1 ;秒加1

          DA A

          MOV R1,A

          EXIT:

          POP PSW ;恢復(fù)現(xiàn)場(chǎng)

          POP ACC

          POP DPL

          POP DPH

          RETI ;中斷返回

          DISPLAY:

          MOV A,R3

          ANL A,#0FH

          MOV R5,A

          MOV R4,#6

          LCALL DISLED ;顯示小時(shí)低位

          MOV A,R3

          SWAP A

          ANL A,#0FH

          MOV R5,A

          MOV R4,#7

          LCALL DISLED ;顯示小時(shí)高位

          MOV A,R2

          ANL A,#0FH

          MOV R5,A

          MOV R4,#3

          LCALL DISLED ;顯示分鐘低位

          MOV A,R2

          SWAP A

          ANL A,#0FH

          MOV R5,A

          MOV R4,#4

          LCALL DISLED ;顯示分鐘高位

          MOV A,R1

          ANL A,#0FH

          MOV R5,A

          MOV R4,#0

          LCALL DISLED ;顯示秒低位

          MOV A,R1

          SWAP A

          ANL A,#0FH

          MOV R5,A

          MOV R4,#1

          LCALL DISLED ;顯示秒高位

          RET

          LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'

          DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'

          DB 6DH,02H,08H,00H,59H,0FH,76H;'U,-,_, ,I,O,P, '

          END



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