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

📄 语音静态显示led104.asm

📁 开发平台,任一MCS-51单片机上,很多程序,如键盘,显示,液晶驱动
💻 ASM
📖 第 1 页 / 共 2 页
字号:
    SJMP WEI1


WEI15:MOV A,R2
      MOV R0,A
      LCALL LIGHT
      RET ;返回调用程序

WEI1:MOV A,R2
     MOV R0,A
WEI2:DEC R0    ;扫描进位
     MOV A,@R0
     XRL A,#0AH
     JZ WEI3
WEI4: CJNE R0,#30H,WEI2
      SJMP WEI15

WEI3:  MOV @R0,#00H
       DEC R0
       INC @R0
       INC R0
       SJMP WEI4
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


SAMSUNG2: SETB P3.3
          JNB P3.3,SAMSUNG2 ;防止按下数据输入键不放
          MOV A,R2
          MOV R0,A
EN: DEC R0  ;先对个位减1处理
    DEC @R0
    SJMP EN1
EN5:MOV A,R2
    MOV R0,A
    LCALL LIGHT
    RET  ;返回调用程序



EN1: MOV A,R2    ;;扫描借位
     MOV R0,A
EN2: DEC R0
     MOV A,@R0
     XRL A,#0FFH
     JZ EN3
EN4:CJNE R0,#30H,EN2
    SJMP EN5

EN3: MOV @R0,#09H
     DEC R0
     DEC @R0
     MOV A,@R0
     XRL A,#0FFH
     JZ EN11

EN16:  INC R0
      SJMP EN4


EN11: DEC R0    ;;扫描它的高位是否都为0位
      MOV A,@R0
      XRL A,#00H
      JNZ EN16
      CJNE R0,#30H,EN17
EN17: MOV A,R2
      MOV R0,A
EN18: DEC R0
      MOV @R0,#00H
      CJNE R0,#30H,EN18
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;




SAMSUNG3: SETB P3.3
          JNB P3.3,SAMSUNG3 ;防止按下位选择键输入键不放
YU:      ;;;;;;;;;;;MOV R4,#03H  ;使用到R6;;;;;;;;;;;;;;;;;



LAI2:     MOV A,R2 ;此时R2保存上次输入数据的的下一个地址
          MOV R0,A
          LCALL LIGHT  ;显示上次输入的数据
          LCALL TIME

       MOV R1,#40H
LAI3: MOV @R1,#00001010B  ;消影区
       INC R1
       CJNE R1,#048H,LAI3

       MOV R1,#40H
LAI1:  DEC R0
       MOV A,@R0 ;倒序存放数据
       MOV @R1,A
       INC R1
       CJNE R0,#030H, LAI1

       MOV A,R3
       ADD A,#3FH
       MOV R1,A
       MOV @R1,#0AH
       LCALL LED
       LCALL TIME
;;;;;;;;;;;;;;;;;;;;;
LG2:     MOV A,R2 ;此时R2保存上次输入数据的的下一个地址
          MOV R0,A
          LCALL LIGHT  ;显示上次输入的数据
          LCALL TIME

        MOV R1,#40H
LG3: MOV @R1,#00001010B  ;消影区
       INC R1
       CJNE R1,#048H,LG3

       MOV R1,#40H
LG1:  DEC R0
       MOV A,@R0 ;倒序存放数据
       MOV @R1,A
       INC R1
       CJNE R0,#030H, LG1

       MOV A,R3
       ADD A,#3FH
       MOV R1,A
       MOV @R1,#0AH
       LCALL LED
       LCALL TIME

       ;;;;;;;;;;;;;DJNZ R4,LAI2;;;;;;;;;;;;

 RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
JUAN:  SETB P3.3
       JNB P3.3,JUAN ;防止按下数据输入键不放

       ;;;;;;;;;;;;;;;SJMP YU1;;;;;;;;;;;;
JUAN20:CLR C
       MOV A,R2 ;此时R2保存上次输入数据的的下一个地址
       SUBB A,R3
       MOV R0,A
       INC @R0
       SJMP JUAN1


JUAN15: MOV A,R2
        MOV R0,A
        LCALL LIGHT

       RET ;返回调用程序

JUAN1:MOV A,R2
      MOV R0,A
JUAN2:DEC R0    ;扫描进位
     MOV A,@R0
     XRL A,#0AH
     JZ JUAN3
JUAN4:CJNE R0,#30H,JUAN2
      SJMP JUAN15

JUAN3:  MOV @R0,#00H
       DEC R0
       INC @R0
       INC R0
       SJMP JUAN4

;;;;;;;;;;;;;;;;;;;;;;;;;



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BOOK:   SETB P3.3
       JNB P3.3,BOOK ;防止按下数据输入键不放
       ;;;INC R3;;;;;;;;;;;;;;
       ;;;;;SJMP YU2;;;;;;;;;;;;;;;;;;

ROOM: CLR C
      MOV A,R2  ;此时R2保存上次输入数据的的下一个地址
      SUBB A,R3
      MOV R0,A
      DEC @R0
      SJMP ROOM1
ROOM5: MOV A,R2
       MOV R0,A
      LCALL LIGHT

      RET  ;返回调用程序



ROOM1: MOV A,R2    ;;扫描借位
       MOV R0,A
ROOM2: DEC R0
       MOV A,@R0
       XRL A,#0FFH
       JZ ROOM3
ROOM4:CJNE R0,#30H,ROOM2
      SJMP ROOM5

ROOM3: MOV @R0,#09H
     DEC R0
     DEC @R0
     MOV A,@R0
     XRL A,#0FFH
     JZ ROOM11

ROOM16:  INC R0
      SJMP ROOM4


ROOM11: DEC R0    ;;扫描它的高位是否都为0位
        MOV A,@R0
        XRL A,#00H
        JNZ ROOM16
        CJNE R0,#30H,ROOM17
ROOM17: MOV A,R2
        MOV R0,A
ROOM18: DEC R0
        MOV @R0,#00H
        CJNE R0,#30H,ROOM18

RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SAMSUNG4:SETB P3.3
        JNB P3.3,SAMSUNG4 ;防止按下数据输入键不放
       MOV A,2FH
       CJNE A,#00H,TONG

       MOV 50H,#01H
       MOV 51H,#0AH
       MOV 52H,#08H
       MOV 53H,#0AH
       MOV 54H,#06H
       MOV 55H,#00H
       MOV 56H,#00H
       MOV 57H,#02H
LXH1:MOV R6 ,#08H
     MOV DPTR,#044CH
     MOV R0,#50H
LXH2:MOV A,@R0
     MOVC A,@A+DPTR
     INC R0
     LCALL SS
     DJNZ R6,LXH2
     INC 2FH
     RET
TONG:MOV A,R2
     MOV R0,A
     LCALL LIGHT
     MOV 2FH,#00H
     RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SAMSUNG5:
   MOV R4,#02H
XH:MOV R5,#07H
   MOV R6,#07H
XH1:MOV A,#00H
    LCALL SS
    DJNZ R5,XH1
XH2:MOV A,#7FH
    LCALL SS
XH3:LCALL TIME
    MOV A,#00H
    LCALL SS
    DJNZ R6,XH3
    DJNZ R4,XH
    RET

;;;;;;;;;;;;;;;;;;;;;;;;一位数码管数据传输子程序
SS:MOV R7,#08H
SS1:RLC A
   MOV P1.0,C
   CLR P1.1
   SETB P1.1
   DJNZ R7,SS1
RET



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIME:  MOV B,R5
      PUSH B
      MOV B,R6
      PUSH B
      MOV R5,#15           ;延时0.303S的子程序
TIME3:MOV R6,#200
TIME2:MOV R7,#125
TIME1:DJNZ R7,TIME1
      DJNZ R6,TIME2
      DJNZ R5,TIME3
       POP B
      MOV R6,B
      POP B
      MOV R5,B
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SPEAKL:SETB P1.5
       CLR P1.5   ;其他键按下响
       MOV R4,#02H
SPEAK1:LCALL TIME
       DJNZ R4,SPEAK1
       SETB P1.5
RET

SPEAKE:SETB P1.5
       CLR P1.5     ;;数据输入键按下响
       MOV R4,#04H
SPEAK2:LCALL TIME
       DJNZ R4,SPEAK2
       SETB P1.5
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


END

⌨️ 快捷键说明

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