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

📄 dot1335.asm

📁 微芯公司的PIC子程序库及运算平台
💻 ASM
字号:
;********************DOT1335********************
;本程序实现液晶显示控制器SED1335在显示屏上显示或清除某一特定点。
;入口参数:点的X坐标在SOUH:SOU中,Y坐标在RLT中,W为非0表示显示该点,W=0表示清除该点。
;出口参数:无。
;占用资源:W,STATUS,RB0~RB2,RC,023H~026H,028H~02BH,2重堆栈。
;说    明:1.显示屏为320*240点阵。
;          2.指定点只能在图形显示区显示。
;          3.汉字的X,Y坐标均以象素点为单位。
;          4.用户要显示曲线,只需计算出曲线上每一点的坐标,循环调用本程序即可。
                        
WWR         EQU         0
RRD         EQU         1
A0          EQU         2
            
           IFNDEF       DOT13351
            #DEFINE     DOT13351
            INCLUDE    "INIT1335.ASM"
;*************计算该点所对应的指针地址***********
DOT1335     MOVWF       TEMP4            
            MOVLW       07H
            ANDWF       SOU,W
            MOVWF       TEMP3       ;TEMP3=SOUH:SOU MOD 8
            BCF         STATUS,C
            RRF         SOU,F
            BCF         STATUS,C
            RRF         SOU,F
            BCF         STATUS,C
            RRF         SOU,F
            BTFSC       SOUH,0
            BSF         SOU,5       ;SOU=SOUH:SOU % 8
                       
DONE23      CLRF        TEMP1       ;TEMP1暂存移出位
            BCF         STATUS,C
            RLF         RLT,F
            RLF         TEMP1,F
            RLF         RLT,F
            RLF         TEMP1,F
            RLF         RLT,F
            RLF         TEMP1,F
            RLF         RLT,F
            RLF         TEMP1,F
            MOVF        TEMP1,W
            MOVWF       TEMP2
            MOVF        RLT,W
            RLF         RLT,F
            RLF         TEMP1,F
            ADDWF       RLT,W
            BTFSC       STATUS,C
            INCF        TEMP1,F     ;TEMP1:RLT=RLT*48
            ADDWF       SOU,F
            BTFSC       STATUS,C
            INCF        TEMP1,F
            MOVF        TEMP2,W
            ADDWF       TEMP1,F     ;TEMP1:SOU=RLT*48+(SOUH:SOU%8)

            MOVLW       46H         ;CSRW
            CALL        CMDIN
            MOVF        SOU,W             
            CALL        DATAIN      ;P1
            MOVF        TEMP1,W
            CALL        DATAIN      ;P2(光标指针设在TEMP1:SOU)         
;****************将该点显示在屏幕上或从屏幕上清除**********************
            MOVLW       80H
            MOVWF       TEMP2       ;TEMP2存放该点的具体位置
NEXT65      MOVF        TEMP3,F   
            BTFSC       STATUS,Z   
            GOTO        DONE24
            DECF        TEMP3,F
            BCF         STATUS,C
            RRF         TEMP2,F     ;得到点的具体位置
            GOTO        NEXT65

DONE24      MOVLW       43H
            CALL        CMDIN
            CALL        DATAOUT     ;读取该点所在的存储单元的值

            MOVF        TEMP4,F
            BTFSS       STATUS,Z    ;显示还是清除?
            GOTO        NCLR
            COMF        TEMP2,F     ;清除
            ANDWF       TEMP2,F     ;将该点清除,同时保护其他点
            GOTO        $+2     
NCLR        IORWF       TEMP2,F     ;将该点显示,同时保护其他点
            MOVLW       46H         ;CSRW
            CALL        CMDIN
            MOVF        SOU,W
            CALL        DATAIN
            MOVF        TEMP1,W
            CALL        DATAIN      ;重新设置光标指针 
            MOVLW       42H         ;MWRITE
            CALL        CMDIN
            MOVF        TEMP2,W
            CALL        DATAIN      ;写入该字节数据
            RETURN
           ENDIF

⌨️ 快捷键说明

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