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

📄 触摸键盘、拼音输入法、动态曲线和区域图片切换.txt

📁 能生成图象和动态曲线的汇编源程序,需要的就下吧,免费的哦!
💻 TXT
📖 第 1 页 / 共 4 页
字号:

 ;**************PCF8563 DRIVER*****************
        I2CSTA1:PUSH    ACC
                SETB    SDA1
                NOP
                NOP
                NOP
                NOP
                SETB    SCL1            ;STOP AT FIRST
                MOV     A,#100
                DJNZ    ACC,$
                CLR     SDA1
                MOV     A,#100
                DJNZ    ACC,$
                CLR     SCL1
                MOV     A,#100
                DJNZ    ACC,$
                POP     ACC
                RET

        I2CSTP1:PUSH ACC
                CLR     SDA1
                MOV     A,#100
                DJNZ    ACC,$
                SETB    SCL1
                MOV     A,#100
                DJNZ    ACC,$
                CLR     SDA1
                MOV     A,#100
                DJNZ    ACC,$
                SETB    SDA1
                MOV     A,#100
                DJNZ    ACC,$
                POP ACC
                RET

        MACK1:  PUSH    ACC
                CLR     SDA1
                NOP
                NOP
                SETB    SCL1
                MOV     A,#100
                DJNZ    ACC,$
                CLR     SCL1
                POP     ACC
                RET

        MNAK1:  PUSH ACC
                SETB    SDA1
                NOP
                NOP
                SETB    SCL1
                MOV     A,#50
                DJNZ    ACC,$
                CLR     SCL1
                MOV     A,#50
                DJNZ    ACC,$
                POP ACC
                RET

        CACK1:  PUSH    ACC
                SETB    SDA1
                NOP
                NOP
                SETB    SCL1
                MOV     A,#50
                DJNZ    ACC,$
                JB      SDA1,$
                CLR     SCL1
                MOV     A,#50
                DJNZ    ACC,$
                POP     ACC
                RET

        I2CBW1: MOV     R2,#08H
        ICBW1:  RLC     A
                MOV     SDA1,C
                NOP
                PUSH    ACC
                MOV     A,#50
                DJNZ    ACC,$
                SETB    SCL1
                MOV     A,#50
                DJNZ    ACC,$
                CLR     SCL1
                MOV     A,#50
                DJNZ    ACC,$
                POP     ACC
                DJNZ    R2,ICBW1
                NOP
                RET

        I2CBR1: MOV     R2,#08H
        ICBR1:  SETB    SDA1
                NOP
                SETB    SCL1
                PUSH    ACC
                MOV     A,#50
                DJNZ    ACC,$
                POP ACC
                MOV     C,SDA1
                CLR     SCL1
                RLC     A
                PUSH    ACC
                MOV     A,#50
                DJNZ    ACC,$
                POP     ACC
                DJNZ    R2,ICBR1
                RET

        RDRTC:  PUSH    ACC
                PUSH    PSW
                MOV     A,R1
                PUSH    ACC
                MOV     A,R2
                PUSH    ACC
                MOV     A,R3
                PUSH    ACC
                LCALL   I2CSTA1         ;START
                MOV     A,#SADDW1
                LCALL   I2CBW1
                LCALL   CACK1
                MOV     A,#00H          ;ADDRESS
                LCALL   I2CBW1
                LCALL   CACK1
                LCALL   I2CSTA1
                MOV     A,#SADDR
                LCALL   I2CBW1
                LCALL   CACK1
                MOV     R1,#CSTA1
                MOV     R3,#09H
        RDRTC0: LCALL   I2CBR1
                LCALL   MACK1
                MOV     @R1,A
                INC     R1
                DJNZ    R3,RDRTC0
                LCALL   I2CBR1
                LCALL   MNAK1
                LCALL   I2CSTP1         ;STOP
                ANL     TIMES,#7FH
                ANL     TIMEM,#7FH
                ANL     TIMEH,#3FH
                ANL     TIMED,#3FH
                ANL     TIMEW,#07H
                ANL     TIMEMM,#1FH
                POP     ACC
                MOV     R3,A
                POP     ACC
                MOV     R2,A
                POP     ACC
                MOV     R1,A
                POP     PSW
                POP     ACC
                RET
                               
        ;WRITE RTC
        WRRTC:  PUSH    ACC
                PUSH    PSW
                MOV     A,R1
                PUSH    ACC
                MOV     A,R2
                PUSH    ACC
                MOV     A,R3
                PUSH    ACC
                MOV     CSTA1,#00H
                MOV     CSTA2,#00H
                LCALL   I2CSTA1
                MOV     A,#SADDW1
                LCALL   I2CBW1
                LCALL   CACK1
                MOV     A,#00H
                LCALL   I2CBW1
                LCALL   CACK1
                MOV     R1,#CSTA1
                MOV     R3,#09H
        WRTC0:  MOV     A,@R1
                INC     R1
                LCALL   I2CBW1
                LCALL   CACK1
                DJNZ    R3,WRTC0
                LCALL   I2CSTP1
                POP     ACC
                MOV     R3,A
                POP     ACC
                MOV     R2,A
                POP     ACC
                MOV     R1,A
                POP     PSW
                POP     ACC
                RET  

        ;显示时钟
        ;2007-04-11 12:47:58 星期三
        RTCDSP: MOV     DPTR,#RTCS1
                LCALL   TXROMS
                MOV     A,#20H
                LCALL   BCDDSP
                MOV     A,TIMEY
                LCALL   BCDDSP
                MOV     A,#"-"
                LCALL   TXBYTE
                MOV     A,TIMEMM
                LCALL   BCDDSP
                MOV     A,#"-"
                LCALL   TXBYTE
                MOV     A,TIMED
                LCALL   BCDDSP
                MOV     A,#" "
                LCALL   TXBYTE
                MOV     A,TIMEH
                LCALL   BCDDSP
                MOV     A,#":"
                LCALL   TXBYTE
                MOV     A,TIMEM
                LCALL   BCDDSP
                MOV     A,#":"
                LCALL   TXBYTE
                MOV     A,TIMES
                LCALL   BCDDSP
                MOV     A,#" "
                LCALL   TXBYTE
                MOV     A,#" "
                LCALL   TXBYTE
                MOV     A,TIMEW
                MOV     B,#7
                MUL     AB
                MOV     DPTR,#WEKDSP
                ADD     A,DPL
                MOV     DPL,A
                CLR     A
                ADDC    A,DPH
                MOV     DPH,A
                LCALL   TXROMS
                LCALL   TXFEND
                RET

        RTCS1:  DB 0AAH,40H,07H,0E0H,00H,00H,0CCH,033H,0C3H,3CH
                DB 0AAH,42H             ;取颜色到背景色
                DW 265,470
                DB 0CCH,33H,0C3H,03CH
                DB 0AAH,54H
                DW 410,458
                DB 0FFH

        WEKDSP: DB "星期日",0FFH  
                DB "星期一",0FFH
                DB "星期二",0FFH  
                DB "星期三",0FFH 
                DB "星期四",0FFH
                DB "星期五",0FFH 
                DB "星期六",0FFH

;***************底层显示接口函数**************
        NUMDSP: MOV     B,#100
                DIV     AB
                ADD     A,#30H
                LCALL   TXBYTE
                MOV     A,B
                MOV     B,#10
                DIV     AB
                ADD     A,#30H
                LCALL   TXBYTE
                MOV     A,B
                ADD     A,#30H
                LCALL   TXBYTE
                RET

        BCDDSP: MOV     B,#16
                DIV     AB
                ADD     A,#30H
                LCALL   TXBYTE
                MOV     A,B
                ADD     A,#30H
                LCALL   TXBYTE
                RET 
                
        TXBYTE: MOV     SBUF0,A
                JNB     TI0FLG,$
                CLR     TI0FLG
                RET

        TXROMS: CLR     A
                MOVC    A,@A+DPTR
                CJNE    A,#0FFH,TXROMS1
                RET
        TXROMS1:MOV     SBUF0,A
                INC     DPTR
                JNB     TI0FLG,$
                CLR     TI0FLG
                SJMP    TXROMS
                RET   

        TXRAMS: MOV     SBUF0,@R0
                INC     R0
                JNB     TI0FLG,$
                CLR     TI0FLG
                DJNZ    R7,TXRAMS
                RET                

        ;发送帧结束符
        TXFEND: MOV     DPTR,#CMDTTL
                LCALL   TXROMS
                RET
               
        CMDTTL: DB 0CCH,33H,0C3H,03CH,0FFH 
        
        ;图片显示,ACC=PICNUM
        PICDSP: PUSH    ACC
                MOV     DPTR,#CMD70
                LCALL   TXROMS
                POP     ACC
                LCALL   TXBYTE
                LCALL   TXFEND
                RET  
                
        CMD70: DB 0AAH,70H,0FFH 
        
        ;设置调色板
        COLORSET:MOV    DPTR,#CMD40
                LCALL   TXROMS
                MOV     A,COLORH
                LCALL   TXBYTE
                MOV     A,COLORL
                LCALL   TXBYTE
                MOV     A,BCOLORH
                LCALL   TXBYTE
                MOV     A,BCOLORL
                LCALL   TXBYTE
                LCALL   TXFEND
                RET
                
        CMD40:  DB 0AAH,40H,0FFH                    
        
        ;检查LCD终端是否上电OK
        ACKLCD: PUSH    IE
                CLR     EA
                CLR     RI0
                CLR     TI0
        ACKLCD1:MOV     SBUF0,#0AAH
                JNB     TI0,$
                CLR     TI0
                MOV     SBUF0,#00H
                JNB     TI0,$
                CLR     TI0
                MOV     SBUF0,#0CCH
                JNB     TI0,$
                CLR     TI0
                MOV     SBUF0,#33H
                JNB     TI0,$
                CLR     TI0
                MOV     SBUF0,#0C3H
                JNB     TI0,$
                CLR     TI0
                MOV     SBUF0,#3CH
                JNB     TI0,$
                CLR     TI0
                MOV     R7,#100         ;100mS MUST ACK
                LCALL   RXBLCD
                JNB     RI0,ACKLCD1
                CLR     RI0
                CJNE    A,#0AAH,ACKLCD1
                NOP
        ACKLCD2:MOV     R7,#50
                LCALL   RXBLCD
                JB      RI0,ACKLCD2      ;WAIT FOR RECEIVED DATA END
                CLR     RI0
                NOP        
                POP     IE       
                RET

        ;DELAY R7 mS OVER TIME FOR RX A BYTE
        RXBLCD: CLR     RI0
        RXBLCD1:MOV     R6,#50          ;1mS
        RXBLCD2:MOV     A,#0FFH         ;20uS
                DJNZ    ACC,$
                JB      RI0,RXBLCDE
                DJNZ    R6,RXBLCD2
                NOP
                DJNZ    R7,RXBLCD1
                NOP
                RET
        RXBLCDE:NOP
                MOV     A,SBUF0                
                RET

        DELAY:  MOV     A,DL200MS
                JNZ     DELAY
                RET
                                                                         
                END

 

⌨️ 快捷键说明

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