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

📄 pdc_401.asm

📁 基于PDC401(4位段式液晶显示屏)的单片机(51系列)的汇编程序, 已调试通过.
💻 ASM
字号:
         CLK  EQU   P1.1
         DI   EQU   P1.2
         SCL  EQU   P1.3
         SDA  EQU   P1.4
         ORG  0000H
         AJMP AT24D  ;MAIN
         ORG  0300H
 AT24D:  NOP
         MOV R0, #50H  ;读出数据暂存的RAM首址
         MOV R1, #00H  ;AT24Cxx内存数据的首址
         MOV R4, #04H  ;连续读4个数
 AT24RD: CALL START24
         MOV A, #0A0H
         CALL WBYTE
         MOV A, R1
         CALL WBYTE
         NOP
         CALL START24
         MOV A, #0A1H
         CALL WBYTE
         CALL RBYTE
         CALL STOP24
         MOV @R0, A
         INC R0
         INC R1
         DJNZ R4, AT24RD
         NOP
 ;MAIN:   MOV 40H, #01H
        ; MOV 41H, #01H
        ; MOV 42H, #08H
         ;MOV 43H, #05H
; AT24X:  MOV R0, #40H
        ; MOV R1, #00H
         ;MOV R4, #04H
 ;AT24WR: CALL START24
        ; MOV A, #0A0H
        ; CALL WBYTE
        ; MOV A, R1
         ;CALL WBYTE
        ; MOV A, @R0
        ; CALL WBYTE
        ; CALL STOP24
        ; CALL DEL10MS
        ; INC R0
        ; INC R1
        ; DJNZ R4, AT24WR
        ; MOV A, 40H
        ; MOV 50H, A
        ; MOV A, 41H
        ; MOV 51H, A
        ; MOV A, 42H
        ; MOV 52H, A
        ; MOV A, 43H
        ; MOV 53H, A
 DISPLAY: MOV A, 50H
         JNB ACC.0, POSI ;转正数段码设置
         MOV 60H, #0FDH  ;负号的段码
         AJMP CONTI
 POSI:   MOV 60H, #0FFH
 CONTI:  MOV  DPTR, #TABLE ;设置段码表指针
         MOV  A, 51H     ;取显示数据
         MOVC A, @A+DPTR
         MOV  61H, A
         MOV DPTR, #TAB2
         MOV  A, 52H
         MOVC A, @A+DPTR
         MOV  62H, A
         MOV DPTR, #TABLE
         MOV  A, 53H
         MOVC A, @A+DPTR
         MOV  63H, A
         CLR  DI
         MOV  R3, #8
         MOV  A, 60H
 LOOP1:  RRC  A
         MOV  DI, C
         CLR  CLK
         SETB CLK
         DJNZ R3, LOOP1
         MOV  R3, #08H
         MOV  A, 61H
 LOOP2:  RRC  A
         MOV  DI, C
         CLR  CLK
         SETB CLK
         DJNZ R3, LOOP2
         MOV  R3, #08H
         MOV  A, 62H
 LOOP3:  RRC  A
         MOV  DI, C
         CLR CLK
         SETB CLK
         DJNZ R3, LOOP3
         MOV  R3, #08H
         MOV  A, 63H
 LOOP4:  RRC  A
         MOV  DI, C
         CLR  CLK
         SETB CLK
         DJNZ R3, LOOP4
         SETB DI
 DELAY:  MOV R6, #0FFH
 DEL:    MOV R7, #0FFH
 DELA:   DJNZ R7, DELA
         DJNZ R6, DEL
 START24:CLR SCL
         NOP
         SETB SDA
         NOP
         SETB SCL
         NOP
         CLR SDA
         NOP
         CLR SCL
         RET
 STOP24: CLR SCL
         NOP
         CLR SDA
         NOP
         SETB SCL
         NOP
         SETB SDA
         NOP
         CLR SCL
         RET
 WBYTE:  NOP
         MOV R3, #8
 WBYO:   CLR SCL
         RLC A
         MOV SDA, C
         SETB SCL
         DJNZ R3, WBYO
         CLR SCL
         NOP
         SETB SCL
         NOP
         JB SDA, $
         CLR SCL
         NOP
         RET
 RBYTE:  NOP
         MOV R3, #8
 RBYO:   CLR SCL
         NOP
         SETB SCL
         NOP
         MOV C, SDA
         RLC A
         DJNZ R3, RBYO
         CLR SCL
         NOP
         SETB SDA
         NOP
         SETB SCL
         NOP
         RET
 DEL10MS: MOV R7, #20D
 S2:      MOV R6, #250D
 S1:      DJNZ R6, S1
          DJNZ R7, S2
          RET
 TABLE: DB 03H, 9FH, 25H, 0DH, 99H, 49H, 41H, 1FH, 01H, 09H
 TAB2:  DB 02H, 9EH, 24H, 0CH, 98H, 48H, 40H, 1EH, 00H, 08H

⌨️ 快捷键说明

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