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

📄 jibili.asm

📁 SMS0501C 段码液晶,红外计数器,单片机汇编语言
💻 ASM
字号:
;                       计数器LCD串行接口程序
;***************************************************************************
;* MPU  AT89C2051         LCD SMS0501C                                     *
;* 设计时间  2005/10/21  16:30                                            *
;* 开发人员  02-421   高川  4#102寝                                        *
;* 如需改进与我联系                                                        *
;***************************************************************************
CLKPIN  BIT     P1.6    ;CLK对应引脚
DIPIN   BIT     P1.7    ;DATAIN对应引脚
LCDBUF  EQU     40H     ;LCD缓冲区首地址
LCDBUFEND       EQU     LCDBUF+4   ;LCD缓冲区末地址(N表示几位
        ORG     0000H                  ;显示缓冲区)
        LJMP    START
        ORG     0003H
        LJMP    PINT0
  START:
        mov     p1,#3fh
        SETB    PX0
        SETB    EX0
        setb    IT0
        SETB    EA
        MOV     SP,#6fH
        MOV   60H,#00H
        MOV   61H,#00H
        mov   62h,#01h ;拨码1  在此改比例
        mov   63h,#02h ; 拨码2
        mov   64h,#03h ; 拨码3
        mov   65h,#04h  ;拨码4
        mov   66h,#05h  ; 拨码5
        mov   67h,#06h  ;  拨码6
 MAIN:
        ACALL   BCD  ;USERCONT
        ACALL    TRANSRAM
        SETB    EA
MAIN1:  JNB     02H,MAIN1
        CLR     02H
        SETB    EA   ;送LCD缓冲区到LCD控制器
        SJMP   MAIN;START
TRANSRAM:
        MOV     R1,#LCDBUF
TSR_PA: MOV     A,@R1
        CALL    TRANSBYTE
        INC     R1
        CJNE    R1,#LCDBUFEND+1,TSR_PA
        RET
TRANSBYTE:
        MOV     R0,#8
TSB_PA: RRC     A
        CALL    TRANSBIT
        DJNZ    R0,TSB_PA
        RRC     A
        RET
TRANSBIT:
        MOV     DIPIN,C     ;先送数据到数据口线DI
        SETB    CLKPIN      ;再使时钟口线发一个负脉冲
        CLR     CLKPIN
        SETB    CLKPIN
        RET
PINT0:  CLR EA
        clr c   ;中断
first:  mov  r6,p1.0
        cjne r6,#00h,second
        mov r7,62h
        acall jiafa
second: mov  r6,p1.1
        cjne r6,#00h,third
        mov r7,63h
        acall jiafa
third:  mov   r6,p1.2
        cjne r6,#00h,fouth
        mov r7,64h
        acall jiafa
fouth:  mov r6,p1.3
        cjne r6,#00h,firth
        mov r7,#1h
        djnz 65h,over
        acall jiafa
        ret
firth:  mov r6,p1.4
        cjne r6,#00h,sixth
        mov r7,#1h
        djnz 66h,over
        acall jiafa
        ret
sixth:  mov r6,p1.5
        cjne r6,#00h,over
        mov r7,#1h
        djnz 67h,over
        acall jiafa
over:   setb 02h
        ret                             
jiafa:  mov a,60h
        add a,r7
        mov 60h,a
        mov a,61
        addc a,#00h
        mov 61h,a         
        MOV A,60H
        ADD A,#5H      ;设定比例
        MOV 60H,A
        MOV A,61H
        ADDC  A,#00H
        MOV 61H,A
       RET
BCD:   MOV R2,60H
       MOV R3,61H
       CLR A
       MOV R4,A
       MOV R5,A
       MOV R6,A
       MOV R7,#10H
LP5:   CLR C
       MOV A,R2
       RLC A
       MOV R2,A
       MOV A,R3
       RLC A
       MOV R3,A
       MOV A,R4
       ADDC A,R4
       DA A
       MOV R4,A
       MOV A,R5
       ADDC A,R5
       DA A
       MOV R5,A
       MOV A,R6
       ADDC A,R6
       DA A
       MOV R6,A
       DJNZ R7,LP5
       MOV 46H,R4
       MOV 47H,R5
       ACALL DISPLAY1
       RETI
display1: MOV R0,#40H
          MOV @R0,#0FFH
          INC R0
          MOV A,#0F0H
          ANL A,47H
          ACALL QU0
          INC R0
          MOV A,#0FH
          ANL A,47H
          ACALL QU1
          INC R0
          MOV A,#0F0H
          ANL A,46H
          ACALL QU2
          INC R0
          MOV A,#0FH
          ANL A,46H
          ACALL ONE
          RET
QU2:     CJNE A,#00H,ONE1
         CLR  A
         CJNE  A,47H,ZERO0
         MOV @R0,#0FFH
         RET
QU1:     CJNE A,#00H,ONE
         CLR A
         CJNE A,47H,ZERO
         MOV @R0,#0FFH
         RET
QU0:     CJNE A,#00H,ONE1
         MOV @R0,#0FFH
         RET
ONE:     CJNE A,#01H,TOW
          MOV @R0,#0B7H
 TOW:     CJNE A,#02H,THREE
          MOV @R0,#0C2H
 THREE:   CJNE A,#03H,FOUR
          MOV @R0,#92H
 FOUR:    CJNE A,#04H,FIVE
          MOV @R0,#0B4H
 FIVE:    CJNE A,#05H,SIX
          MOV @R0,#98H
 SIX:     CJNE A,#06H,SEVEN
          MOV @R0,#88H
 SEVEN:   CJNE A,#07H,EIGHT
          MOV @R0,#0B3H
 EIGHT:   CJNE A,#08H,NINE
          MOV @R0,#80H
 NINE:    CJNE A,#09H,ZERO
          MOV @R0,#90H
 ZERO:    CJNE A,#00H,OK
          MOV @R0,#81H
  OK:     RETI
  ONE1:     CJNE A,#10H,TOW2
          MOV @R0,#0B7H
 TOW2:     CJNE A,#20H,THREE3
          MOV @R0,#0C2H
 THREE3:   CJNE A,#30H,FOUR4
          MOV @R0,#92H
 FOUR4:    CJNE A,#40H,FIVE5
          MOV @R0,#0B4H
 FIVE5:    CJNE A,#50H,SIX6
          MOV @R0,#98H
 SIX6:     CJNE A,#60H,SEVEN7
          MOV @R0,#88H
 SEVEN7:   CJNE A,#70H,EIGHT8
          MOV @R0,#0B3H
 EIGHT8:   CJNE A,#80H,NINE9
          MOV @R0,#80H
 NINE9:    CJNE A,#90H,ZERO0
          MOV @R0,#90H
 ZERO0:    CJNE A,#00H,KO
          MOV @R0,#81H
  KO:     RETI
          END



⌨️ 快捷键说明

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