⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dzzhon.asm

📁 单片机实验指导书 清华大学单片机实验指导书
💻 ASM
字号:
;----------------------------------------------
        SECOND  EQU  3AH
		  MINUTE  EQU  3BH
		  HOUR    EQU  3CH
		  K1S    BIT   P3.0
		  K2M    BIT   P3.1
		  K3H    BIT   P3.2
        ORG   0000H
		  AJMP  MAIN
		  ORG   0003H
		  RETI
		  ORG   0013H
		  RETI
		  ORG   000BH
		  AJMP  TIMER
		  ORG   001BH
		  RETI
		  ORG   0030H
MAIN:   MOV   SP,#5FH
        MOV   HOUR,#12
		  MOV   MINUTE,#00H
		  MOV   SECOND,#00H
		  MOV   R2,#20
        MOV   P2,#00H
        MOV   P0,#0FFH
		  MOV   TMOD,#01
        MOV   TH0,#3CH
		  MOV   TL0,#0B0H
		  SETB  EA
		  SETB  ET0
		  SETB  TR0
START:  LCALL  DISP
        JNB   K1S,KEY1
		  JNB   K2M,KEY2
		  JNB   K3H,KEY3
		  AJMP  START
;----------------------------------
KEY1:   LCALL  DELAY		  
		  INC   SECOND
		  MOV   A,SECOND
		  CJNE   A,#60,SS
		  MOV   SECOND,#00
SS:     LCALL  DISP
        JNB    K1S,SS
		  AJMP   START
KEY2:   LCALL  DELAY		  
		  INC   MINUTE
		  MOV   A,MINUTE
		  CJNE  A,#60,MM
		  MOV   MINUTE,#0
MM:     LCALL  DISP
        JNB   K2M,MM
		  AJMP  START
KEY3:   LCALL  DELAY		  
		  INC    HOUR
		  MOV   A,HOUR
		  CJNE  A,#24,HH
		  MOV   HOUR,#0
HH:     JB     K3H,START
        LCALL  DISP	       
		  AJMP    HH
;-----------------------------------------------
DISP:   MOV   DPTR,#TABLE
        MOV   A,SECOND   ;S
		  MOV   B,#10
		  DIV   AB
		  MOVC  A,@A+DPTR
		  MOV   P0,A
		  SETB  P2.6         ;显示秒十位
		  LCALL  DELAY
		  CLR   P2.6
		  MOV   A,B	
		  MOVC  A,@A+DPTR
		  MOV   P0,A
		  SETB  P2.7         ;显示秒个位
		  LCALL  DELAY
		  CLR   P2.7
		  MOV   A,MINUTE    ;M
		  MOV   B,#10
		  DIV   AB
		  MOVC  A,@A+DPTR
		  MOV   P0,A
		  SETB  P2.3          ;显示分十位
		  LCALL  DELAY
		  CLR   P2.3
		  MOV   A,B
		  MOVC  A,@A+DPTR
		  MOV   P0,A
		  SETB  P2.4           ;显示分个位
		  LCALL  DELAY
		  CLR   P2.4
		  MOV   A,HOUR   ;H
		  MOV   B,#10
		  DIV   AB
		  MOVC  A,@A+DPTR
		  MOV   P0,A
		  SETB  P2.0        ;显示时十位
		  LCALL  DELAY
		  CLR   P2.0
        MOV   A,B
		  MOVC  A,@A+DPTR
		  MOV   P0,A
		  SETB   P2.1        ;显示时个位
		  LCALL  DELAY
		  CLR   P2.1
		  MOV   P0,#0BFH
        SETB  P2.2
		  LCALL  DELAY
		  CLR   P2.2
		  MOV   P0,#0BFH
		  SETB  P2.5
		  LCALL  DELAY
		  CLR   P2.5
		  RET
;-------------------------------------------------
TIMER:  PUSH  ACC
        PUSH  PSW
		  MOV   TH0,#3CH
		  MOV   TL0,#0B0H
		  DJNZ  R2,RETI0
		  MOV   R2,#20
		  INC   SECOND
		  MOV   A,SECOND
		  CJNE  A,#60,RETI0
		  MOV   SECOND,#00
		  INC   MINUTE
		  MOV   A,MINUTE
		  CJNE  A,#60,RETI0
		  MOV   MINUTE,#00
		  INC   HOUR
		  MOV   A,HOUR
		  CJNE  A,#24,RETI0
		  MOV   HOUR,#00
RETI0:  POP   PSW
        POP   ACC
		  RETI
;---------------------------------------------
DELAY:  MOV   R7,#2
D1:     MOV   R6,#248
        DJNZ  R6,$
		  DJNZ  R7,D1
		  RET
;--------------------------------------------------------
TABLE:  DB   0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
        END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -