欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9264|回復: 1
打印 上一主題 下一主題
收起左側

電子時鐘

[復制鏈接]
跳轉到指定樓層
樓主
ID:3348 發表于 2008-10-18 12:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

做了個電子時鐘,不知為何中斷程序不能計時,只顯示開機時間。請各位高手賜教。。。

程序代碼如下:
 

DISSEC EQU 20H      ;定義秒顯示單元

          DISMIN EQU 21H       ;定義分鐘顯示單元

          DISHOR EQU 22H       ;定義小時顯示單元

          CLKSEC EQU 23H       ;定義秒走時單元

          CLKMIN EQU 24H        ;定義分鐘走時單元

          CLKHOR EQU 25H         ;定義小時走時單元

          SECSIG EQU 29H       ;定義一秒鐘到標志位

          ORG 000H

          LJMP START

          ORG 000BH

          LJMP INT_B

          ORG 0030H

   START: MOV SP ,#70H    ;堆棧指針賦初值

          MOV SECSIG,#2          ;2*500ms=1s

          MOV TMOD,#01H           ;使用定時器1定時500ms

          MOV TH0,#3CH            ;對定時器賦初值

          MOV TL0,#0B0H

          SETB EA                  ;開總中斷

          SETB ET0                 ;開定時器0中斷

          SETB TR0                 ;啟動定時器0

          CLR A                    ;將開機時鐘顯示設置為12:00:00

          MOV CLKSEC,A

          MOV CLKMIN,A

          MOV CLKHOR,#12

DISPLY:                  ;顯示程序

          MOV DISSEC,CLKSEC        ;將走時單元數據傳送到顯示單元

          MOV DISMIN,CLKMIN

          MOV DISHOR,CLKHOR

          MOV A,DISSEC              ;轉換顯示程序

          MOV B,#10

          DIV AB

          MOV 42H,B    ;秒位轉換

          MOV 43H,A

          MOV A,DISMIN

          MOV B,#10

          DIV AB

          MOV 44H,B    ;分鐘轉換

          MOV 45H,A

          MOV A,DISHOR

          MOV B,#10

          DIV AB

          MOV 46H,B      ;小時轉換

          MOV 47H,A

          MOV DPTR,#TABLE

          MOV A,42H        ;秒位顯示

          MOV P2,#0FEH      ;將位選碼送P2

          MOVC A,@A+DPTR

          MOV P0,A

          LCALL DELAY2ms

          MOV A,43H

          MOVC A,@A+DPTR

          MOV P2,#0FDH     ;將位選碼送P2

          MOV P0,A

          LCALL DELAY2ms

          MOV A,44H         ;分鐘顯示

          MOVC A,@A+DPTR

          MOV P2,#0FBH     ;將位選碼送P2

          MOV P0,A

          LCALL DELAY2ms

          MOV A,45H

          MOVC A,@A+DPTR

          MOV P2,#0F7H      ;將位選碼送P2

          MOV P0,A

          LCALL DELAY2ms

          MOV A,46H         ;小時顯示

          MOVC A,@A+DPTR

          MOV P2,#0EFH     ;將位選碼送P2

          MOV P0,A

          LCALL DELAY2ms

          MOV A,47H

          MOVC A,@A+DPTR

          MOV P2,#0DFH      ;將位選碼送P2

          MOV P0,A

          LCALL DELAY2ms

          LJMP DISPLY

 

    INT_B:PUSH  PSW          ;中斷程序

          PUSH  ACC          ;入棧保護現場

          MOV TH0,#3CH          ;對計數器重新賦值

          MOV TL0,#0B0H               

          DJNZ SECSIG,TT    ;判斷 1秒時間到否,不到轉向TT

          MOV SECSIG,#2     ;一秒到時對標志位重新賦值

          MOV A,CLKSEC      ;對秒數據進行加一處理

          ADD A,#1

          CJNE A,#60,TT

          MOV A,#0

          MOV CLKSEC,A

          MOV A,CLKMIN      ;對分鐘數據進行加一處理

          ADD A,#1

          CJNE A,#60,TT

          MOV A,#0

          MOV CLKMIN,A

          MOV A,CLKHOR      ;對小時數據進行加以處理

          ADD A,#1

          CJNE A,#24,TT

          MOV A,#0

          MOV CLKHOR,A

       TT:POP ACC           ;TT為恢復現場中斷返回

          POP PSW

          RETI

 DELAY2ms:MOV 40H,#4   ;2MS延時程序

          D1:MOV 41H,#248

          DJNZ 41H,$

          DJNZ 40H,D1

          RET

   TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH    ;顯示數碼表0~9

 

          END

 

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:5913 發表于 2008-10-21 21:32 | 只看該作者

似乎沒得這么麻煩吧兄弟
單片機教程里有個簡單的編法

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表