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

📄 pinlvji.asm

📁 单片机程序 51频率计 电子琴 电子钟程序 按键显示程序最终成功
💻 ASM
字号:
JI   EQU   49H
SHU  EQU   48H
     ORG   0000H
     JMP   MAIN
     ORG   000BH
     JMP   INT0
     ORG   001BH
     JMP   INT1
     ORG   0100H
MAIN: MOV  SP,#90H
      MOV  R0,#00H
      MOV  R7,#0FFH
CLEAR:MOV @R0,#00H
      INC R0
      DJNZ R7,CLEAR
      MOV  SHU,#14H
      MOV  JI,#00H
     ; MOV  TMOD,#51H
      MOV  P1,#00H
      MOV  P2,#00H
      MOV  TL0,#0B0H
      MOV  TH0,#3CH
      MOV  TH1,#00H
      MOV  TL1,#00H
      SETB EA
      SETB ET0
      SETB ET1
;************************************
panjian: JNB  P2.0,CZ0
         CALL delay
         JNB  P2.0,CZ0
         JB   P2.0,$
         JMP  CZ100
    CZ0: JNB  P2.1,CZ00
         CALL delay
         JNB  P2.1,CZ00
         JB   P2.1,$
         JMP  CZ1K
   CZ00: JNB  P2.2,CP
         call  delay
         JNB  P2.2,CP
         JB   p2.2,$
         JMP  CZ10K
    CP:  JNB  p2.3,CP0
         call  delay
         JNB  p2.3,CP0
         JB   p2.3,$
         JMP  CP100K
   CP0:  JNB  p2.4,CP00
         call  delay
         JNB  p2.4,CP00
         JB   p2.4,$
CP00:    JMP  CP1M

;************************************
CZ100:  MOV  TMOD,#10H
        MOV  TH1,#00H
        MOV  TL1,#00H
        MOV  JI,#00H
        MOV  R2,#1
        CALL CEZHOU
        JMP  CZ100
;************************************
CZ1K:   MOV  TMOD,#10H
        MOV  TH1,#00H
        MOV  TL1,#00H
        MOV  JI,#00H
        MOV  R2,#10
        CALL CEZHOU
        JMP  CZ1K
;************************************
CZ10K:  MOV  TMOD,#10H
        MOV  TH1,#00H
        MOV  TL1,#00H
        MOV  JI,#00H
        MOV  R2,#100
        CALL CEZHOU
        JMP  CZ10K
;************************************
CP100K: MOV  TMOD,#10H
        MOV SHU,#0C8H      ;测10S
        MOV 47H,#0C8H
        JB  P3.5,$
        JNB P3.5,$
        SETB TR1
        SETB TR0
CP100K0:CALL HB2
        CALL FEN
        CALL DISP
        CALL DELAY
        JMP  CP100K0
;************************************
CP1M:   MOV  TMOD,#51H
        MOV  TMOD,#51H
        MOV SHU,#14H      ;测1S
        MOV 47H,#14H
        JB  P3.5,$
        JNB P3.5,$
        SETB TR1
        SETB TR0
  CP1M0:CALL HB2
        CALL FEN
        CALL DISP
        CALL DELAY
        JMP  CP1M0
;************************************
CEZHOU: JB  P3.5,$
        JNB P3.5,$
        SETB TR0
   CZS: JB  P3.5,$
        JNB P3.5,$
        DJNZ R2,CZS
        CLR TR0
        MOV 50H,TL0
        MOV 51H,TH0
        MOV 52H,JI
        CALL HB2
        CALL FEN
        CALL DISP
        CALL DELAY
        RET
;***************************************
PANDUAN:
;***************************************
INT0: MOV  TL0,#0B0H
      MOV  TH0,#3CH
      DJNZ SHU,LOOP
      MOV  A,47H
      MOV  SHU,A
      CLR  TR1
      CLR  TR0
      MOV  50H,TL1
      MOV  51H,TH1
      MOV  52H,JI
      MOV  TH1,#00H
      MOV  TL1,#00H
      MOV  JI ,#00H
      SETB TR1
      SETB TR0
LOOP: RETI
;***************************************
INT1: INC  JI
      MOV  TH1,#00H
      MOV  TL1,#00H
      RETI
;******************************
;HB2   功能:三字节十六进制整数转换成三字节BCD码整数

;入口条件:待转换的双字节十六进制整数在r1,R6、R7中。
;出口信息:转换后的三字节BCD码整数在r2,R3、R4、R5中。
;影响资源:PSW、A、R2~R7    堆栈需求:  2字节
HB2:    MOV     A,R1
        PUSH    A
        MOV     A,R2
        PUSH    A
        MOV     A,R3
        PUSH    A
        MOV     A,R6
        PUSH    A
        MOV     A,R7
        PUSH    A
        MOV     A,52H
        MOV     R5,A
        MOV     A,51H
        MOV     R6,A
        MOV     A,50H
        MOV     R7,A
        CLR	A	;;BCD码初始化
	MOV	R3,A
	MOV	R4,A
	MOV	R5,A
        MOV     R2,A
	MOV	58H,#18H	;;转换双字节十六进制整数
HB31:	MOV	A,r7	;;从高端移出待转换数的一位到CY中
	RLC	A
	MOV	r7,A
	MOV	A,r6
	RLC	A
	MOV	r6,A
        MOV     A,r1
        RLC     A
        MOV     r1,A
	MOV	A,R5	;;BCD码带进位自身相加,相当于乘2
	ADDC	A,R5
	DA	A	;;十进制调整
	MOV	R5,A
	MOV	A,R4
	ADDC	A,R4
	DA	A
	MOV	R4,A
	MOV	A,R3
	ADDC	A,R3
        DA A
	MOV	R3,A	;;双字节十六进制数的万位数不超过6,不用调整
        MOV     A,R2
        ADDC    A,R2
        MOV R2,A
	DJNZ	58H,HB31	;;处理完16bit
        MOV     A,R2
        MOV     43H,A
        MOV     A,R3
        MOV     42H,A
        MOV     A,R4
        MOV     41H,A
        MOV     A,R5
        MOV     40H,A
        MOV     A,R7
        POP     A
        MOV     A,R6
        POP     A
        MOV     A,R3
        POP     A
        MOV     A,R2
        POP     A
        MOV     A,R1
        POP     A
        RET
;**********16转化BCD******************
FEN:   MOV    A,R3
       PUSH    A
       MOV    A,R4
       PUSH    A
       MOV    A,R5
       PUSH    A
       MOV    A,R6
       PUSH    A
       MOV  R3,43H
       MOV  R4,42H
       MOV  R5,41H
       MOV  R6,40H
       MOV  A,R3
       DA   A
       ANL  A,#0FH
       MOV  60H,A
       MOV  A,R3
       SWAP A
       ANL  A,#0FH
       MOV  5FH,A
       MOV  A,R4
       DA   A
       ANL  A,#0FH
       MOV  62H,A
       MOV  A,R4
       SWAP A
       ANL  A,#0FH
       MOV  61H,A
       MOV  A,R5
       DA   A
       ANL  A,#0FH
       MOV  64H,A
       MOV  A,R5
       SWAP A
       ANL  A,#0FH
       MOV  63H,A
       MOV  A,R6
       DA   A
       ANL  A,#0FH
       MOV  66H,A
       MOV  A,R6
       SWAP A
       ANL  A,#0FH
       MOV  65H,A
       MOV   A,R6
       POP    A
       MOV   A,R5
       POP    A
       MOV   A,R4
       POP    A
       MOV   A,R3
       POP    A
       RET
DISP:  MOV  P1,#0FFH
       MOV  DPTR,#TABLE
       MOV  A,66H
       MOVC  A,@A+DPTR
       MOV  P0,A
       MOV  P1,#11111110B
       ACALL delay
       ACALL delay
       MOV  P1,#0FFH
       MOV  A,65H
       MOVC A,@A+DPTR
       MOV  P0,A
       MOV  P1,#11111101B
       ACALL delay
       MOV  P1,#0FFH
       MOV  A,64H
       MOVC A,@A+DPTR
       MOV  P0,A
       MOV  P1,#11111011B
       ACALL delay
       MOV  P1,#0FFH
       MOV  A,63H
       MOVC A,@A+DPTR
       MOV  P0,A
       MOV  P1,#11110111B
       ACALL delay
       MOV  P1,#0FFH
       MOV  A,62H
       MOVC A,@A+DPTR
       MOV  P0,A
       MOV  P1,#11101111B
       ACALL delay
       MOV  P1,#0FFH
       MOV  A,61H
       MOVC A,@A+DPTR
       MOV  P0,A
       MOV  P1,#11011111B
       ACALL delay
       RET
DELAY: MOV R7,#10H
  DL0: MOV R6,#10H
  DL60:DJNZ R6,DL60
       DJNZ R7,DL0
       RET
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

⌨️ 快捷键说明

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