找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5206|回复: 1
收起左侧

[原创]低成本SN单片机I/O直驱LCD实战--源程序2

[复制链接]
ID:27770 发表于 2011-1-17 16:37 | 显示全部楼层 |阅读模式

低成本SN单片机I/O直驱LCD实战--源程序2

;=============================================
B_MOV8W:;个位的9位分为3份,放到3个笔段寄存器的最高2位去
        MOV     TTL,A
        BTS0    R.0
        BSET    SEG0H.0

        RLCM    TTL
        RLCM    SEG0;左移2位,一共8位
        RLCM    TTL
        RLCM    SEG0

        BTS0    TTL.7
        BSET    SEG1H.0 ;每3位的头1位是到高字节寄存器
        RLCM    TTL;白白左移1位,

        RLCM    TTL;左移2位,
        RLCM    SEG1
        RLCM    TTL
        RLCM    SEG1

        BTS0    TTL.7
        BSET    SEG2H.0
        RLCM    TTL;白白左移1位,

        RLCM    TTL;左移2位,
        RLCM    SEG2
        RLCM    TTL
        RLCM    SEG2
        ret
B_MOV8WA:
        MOV     TTL,A
        BTS0    R.0
        BSET    FC
        BTS1    R.0
        BCLR    FC
        RLCM    SEG0

        RLCM    TTL
        RLCM    SEG0;左移2位,一共8位
        RLCM    TTL
        RLCM    SEG0

        RLCM    TTL;左移2位,
        RLCM    SEG1
        RLCM    TTL
        RLCM    SEG1
        RLCM    TTL
        RLCM    SEG1

        RLCM    TTL
        RLCM    SEG2
        RLCM    TTL;左移2位,
        RLCM    SEG2
        RLCM    TTL
        RLCM    SEG2
        ret
;============================================================
ISR:; 中断服务子程序
        PUSH
B_T0ISR:
        BTS1    FT0IRQ
        JMP     B_POP
        BCLR    FT0IRQ

        MOV_    P1M,#00H

        BTS0    FPSD;显示采用双向倒相方式进行
        JMP     B_1111;但是,似乎单向方式也是一样的.
        ;试验证明,采用反相方式是更加稳定的.
        MBZ0    XSJS
        JMP     @F

        BCLR    FP50
        BTS0    SEG0H.0
        BSET    FP50 ;B2
        ;-----如果是使用 MOV P5,A,就要预先有一个寄存器来转移这个数据
        MOV_    P2,SEG0;F,A,B,F,A,B,*
        BSET    FP17M
        BSET    FP17
        INCMS   XSJS
        JMP     B_TC0;B_LOOP
@@:
        MBC01   XSJS
        JMP     @F

        BCLR    FP50
        BTS0    SEG1H.0
        BSET    FP50 ;C2

        MOV_    P2,SEG1;E,G,C,E,G,C,*
        BSET    FP16M
        BSET    FP16
        INCMS   XSJS
        JMP     B_TC0;B_LOOP
@@:
        BCLR    FP50
        BTS0    SEG2H.0
        BSET    FP50 ;LO

        MOV_    P2,SEG2;*,D4,*,DP3,D3,*,COL
        BSET    FP15M
        BSET    FP15
        CLR     XSJS
        BSET    FPSD
        JMP     B_TC0
B_1111:
        MBZ0    XSJS
        JMP     @F

        BSET    FP50 ;LO
        BTS0    SEG0H.0
        BCLR    FP50

        MOV     A,SEG0;F,A,B,F,A,B,*
        XOR     A,#0FFH
        MOV     P2,A
        BSET    FP17M
        BCLR    FP17
        INCMS   XSJS
        JMP     B_TC0;B_LOOP
@@:
        MBC01   XSJS
        JMP     @F

        BSET    FP50 ;LO
        BTS0    SEG1H.0
        BCLR    FP50

        MOV     A,SEG1;E,G,C,E,G,C,*
        XOR     A,#0FFH
        MOV     P2,A
        BSET    FP16M
        BCLR    FP16
        INCMS   XSJS
        JMP     B_TC0;B_LOOP
@@:
        BSET    FP50 ;LO
        BTS0    SEG2H.0
        BCLR    FP50

        MOV     A,SEG2;*,D4,*,DP3,D3,*,COL
        XOR     A,#0FFH
        MOV     P2,A
        BSET    FP15M
        BCLR    FP15
        CLR     XSJS
        BCLR    FPSD
B_TC0:
        MOV_    T0C,#131
        INCMS   SZ03S
        CMPRS1  SZ03S,#50;25;/50;30
        JMP     B_POP
        CLR     SZ03S
        BSET    FK03S

        ;///5*30=150,
        INCMS   SZ05S
        CMPRS1  SZ05S,#3;5
        JMP     B_POP
        CLR     SZ05S
        CPLF_   FSS05S
        BSET    FK05S
        BSET    FK03S
;-----------------------------------
B_POP:;2604 退出中断
        POP
        RETI
;*************************************************
B_KEY:
        RET
;==================================================
B_ADZH:
        RET
;=======================================
B_READ:;AD 通知读数
        RET
;================================================================
B_ADCULI:
        RET
;================================================================
B_OUT:
        RET
;==================================================================
B_ZBLED:
        RET
         ;准备显示数据
        MBZ0F   KEYJS
        JMP     B_XSAD
        BTS0    FK2S
        JMP     @F
        BTS0    FSS05S
        JMP     B_XSXXX
@@:
        MBC01   KEYJS
        JMP     @F
        MOV_    TTL,HIL
        MOV_    TTH,HIH
        JMP     B_HEX_BCD
@@:
        MBC02   KEYJS
        JMP     @F
        MOV_    TTL,LOL
        MOV_    TTH,LOH
        JMP     B_HEX_BCD
@@:
        MBC03   KEYJS
        JMP     B_XSAD
        MOV_    XSQW,#11110111B ;-
        JMP     B_GGG
B_XSAD:
        BTS1    F_DIS
        RET
        BCLR    F_DIS
        BTS1    FHHH
        JMP     @F
        MOV_    XSQW,#01100001B
        MOV     XSBW,A
        MOV     XSSW,A
        MOV     XSGW,A
        RET
@@:
        MOV_    TTL,DVL
        MOV_    TTH,DVH
        JMP     B_HEX_BCD
B_XSXXX:
        MBC01   KEYJS
        JMP     @F
        MOV_    XSQW,#01100001B;/H
        JMP     B_GGG
@@:
        MBC02   KEYJS
        JMP     @F
        MOV_    XSQW,#00111101B;/L
        JMP     B_GGG
@@:
        MBC03   KEYJS
        RET
        MOV_    XSQW,#01110000B;/P
B_GGG:
        MOV_    XSBW,#11110111B ;-
        MOV     XSSW,A
        MOV     XSGW,A
        RET
;====================================
B_HEX_BCD:;转换为十进制BCD码
        CLR  TQW
        CLR  TBW
        CLR  TSW
B_BCD0:
        CLR     R
        MOV     A,TTL
        SUB     A,#100
        MOV     TTL,A
        MOV     A,TTH
        SBC     A,R
        MOV     TTH,A
        BTS1    FC
        JMP    @F
B_BCD1:
        INCMS   TBW
        NOP
        CMPRS1  TBW,#10
        JMP    B_BCD0
        CLR     TBW
        INCMS   TQW
        JMP    B_BCD0
@@:
        MOV   A,#100
        ADD  TTL,A
X_BCD1:
        MOV   A,TTL
        SUB   A,#10
        BTS1    FC
        JMP    @F
        MOV   TTL,A
        INCMS   TSW
        JMP    X_BCD1
@@:
        MOV     A,TTL
;       MOV     XSGW,A

;       MOV     A,TGW
        CALL    LED_TABLE
        MOV     XSGW,A

        MOV     A,TSW
        CALL    LED_TABLE
        MOV     XSSW,A

        MOV     A,TBW
        CALL    LED_TABLE
        MOV     XSBW,A

        MOV     A,TQW
        CALL    LED_TABLE
        MOV     XSQW,A
        RET

;========================================
B_LEDXS:
        RET
;===================================
        ENDP

(完成----我无法上传压缩包文件,仅可以分几次完成一份文章!)

回复

使用道具 举报

ID:28220 发表于 2011-3-4 19:50 | 显示全部楼层
汇编呀!晕,咱看不了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表