?? dot1335.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 + -