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

📄 line1335.asm

📁 PIC单片机的汇编源码合集,应用比较广泛,设计程序时可做子程序来用
💻 ASM
字号:
;********************LINE1335********************
;本程序实现液晶显示控制器SED1335在显示屏上任意两点之间显示一条直线。
;入口参数:第一点的坐标为(SOU:SOUH)中,另一点的坐标为(RLT,RLTH)。
;出口参数:无。
;占用资源:W,STATUS,RB0~RB2,RC,023H~026H,028H~02BH,2重堆栈。
;说    明:1.显示屏为320*240点阵。
;          2.直线只能在图形显示区显示。
;          3.点的X,Y坐标均以象素点为单位。
;          5.点的横坐标不能超过一个字节的范围。

           IFNDEF       LINE13351
            #DEFINE     LINE13351

POX0        EQU         30H
POY0        EQU         31H
JVX         EQU         32H
JVY         EQU         33H
JRX         EQU         34H
JRY         EQU         35H
JE          EQU         36H

            #DEFINE     DIREY  37H,0
          
            INCLUDE    "DOT1335.ASM"  
            
LINE1335    MOVLW       80H
            MOVWF       JRX      
            MOVWF       JRY         ;溢出寄存器置初值,半加载
            CLRF        JE          ;总步数清0

            MOVF        SOU,W
            SUBWF       RLT,W
            MOVWF       JVX         ;JVX=RLT-SOU
            BTFSC       STATUS,C    ;判断哪一个点的横坐标较小
            GOTO        NEXT68
            COMF        JVX,F
            INCF        JVX,F       ;JVX=SOU-RLT
            MOVF        RLT,W
            MOVWF       POX0
            MOVF        RLTH,W
            MOVWF       POY0        ;(RLT,RLTH)作为起点
            MOVF        RLTH,W
            SUBWF       SOUH,W
            MOVWF       JVY         ;JVY=SOUH-RLTH
            BSF         DIREY       ;Y坐标递增标志 
            BTFSS       STATUS,C
            BCF         DIREY       ;Y坐标递减标志      
            GOTO        NEXT69
NEXT68      MOVF        SOU,W
            MOVWF       POX0
            MOVF        SOUH,W
            MOVWF       POY0        ;(SOU,SOUH)作为起点    
            MOVF        RLTH,W
            SUBWF       SOUH,W
            MOVWF       JVY
            BSF         DIREY       ;Y坐标递增标志 
            BTFSC       STATUS,C
            BCF         DIREY       ;Y坐标递减标志            
NEXT69      BTFSC       STATUS,C
            GOTO        DONE28 
            COMF        JVY,F       
            INCF        JVY,F       ;JVY=|SOUH-RLTH|      
DONE28      BTFSC       JVX,7
            GOTO        DONE29
            BTFSC       JVY,7
            GOTO        DONE29
            BCF         STATUS,C
            RLF         JVX,F
            RLF         JVY,F
            BSF         STATUS,C
            RRF         JE,F
            GOTO        DONE28      ;JVX,JVY左移规格化
DONE29      MOVF        POX0,W
            MOVWF       SOU
            CLRF        SOUH
            MOVF        POY0,W
            MOVWF       RLT
            MOVLW       0FFH
            CALL        DOT1335     ;画出第一个点 
            
NEXT70      MOVF        JVX,W
            ADDWF       JRX,F       ;JRX=JRX+JVX
            BTFSC       STATUS,C
            INCF        POX0,F      ;X=X+1
            MOVF        JVY,W
            ADDWF       JRY,F       ;JRY=JRY+JVY
            BTFSS       STATUS,C
            GOTO        NEXT71     
            BTFSC       DIREY       
            INCF        POY0,F      ;Y=Y+1
            BTFSS	DIREY
            DECF	POY0,F      ;Y=Y-1	
NEXT71      MOVF        POX0,W
            MOVWF       SOU
            CLRF        SOUH
            MOVF        POY0,W
            MOVWF       RLT
            MOVLW       0FFH
            CALL        DOT1335     ;显示下一点
            INCFSZ      JE,F        ;直线显示完毕?
            GOTO        NEXT70
            RETURN
           ENDIF                                                                                                    

⌨️ 快捷键说明

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