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

📄 jrdmdylcd.asm

📁 用增强型单片机51RD2做的控制器
💻 ASM
字号:



WriteComd:      SETB    LcdRead
                SETB    LcdAddr
                CLR     LcdCs
                MOV     LcdPort,A
                CLR     LcdWrite
                SETB    LcdWrite
                SETB    LcdCs
                RET

WriteData:      SETB    LcdRead
                CLR     LcdAddr
                CLR     LcdCs
                MOV     LcdPort,A
                CLR     LcdWrite
                SETB    LcdWrite
                SETB    LcdCs
                RET

ReadData:       SETB    LcdWrite
                SETB    LcdAddr
                CLR     LcdCs
                NOP
                CLR     LcdRead
                NOP
                MOV     A,LcdPort
                NOP
                SETB    LcdRead
                NOP
                SETB    LcdCs
                RET

ShowXw:         MOV     A,#5DH
                LCALL   WriteComd

                MOV     A,#07H
                LCALL   WriteData

                MOV     A,#87H
;               MOV     A,#07H
                LCALL   WriteData

                MOV     A,#5BH
                LCALL   WriteComd

                MOV     A,#01H
                LCALL   WriteData

                MOV     A,#59H
                LCALL   WriteComd

                MOV     A,#56H
                LCALL   WriteData

                MOV     A,#46H
                LCALL   WriteComd

                RET

DdShowString:   MOV     R1,#ShowBuf
                MOV     LcdCount1,#0
                MOV     A,LcdShowC
                MOV     LcdCount2,A
DdShowString1:  MOV     A,LcdCount1
                MOVC    A,@A+DPTR
                MOVX    @R1,A
                INC     R1
                INC     LcdCount1
                MOV     A,LcdCount1
                MOVC    A,@A+DPTR
                MOVX    @R1,A
                INC     R1
                INC     LcdCount1
                DJNZ    LcdCount2,DdShowString1
DdShowString2:  MOV     R1,#ShowBuf
                NOP
DdShowString3:  MOVX    A,@R1
                MOV     SeleTab,A
                INC     R1
                MOVX    A,@R1
                MOV     CCCODE,A
                MOV     OXL,LcdShowX
                MOV     OY,LcdShowY
                LCALL   CCTW
                INC     R1
                INC     LcdShowX
                MOV     A,SeleTab
                CLR     C
                SUBB    A,#09H
                JNC     DdShowString4
                INC     LcdShowX
DdShowString4:  DJNZ    LcdShowC,DdShowString3
                RET

CCTW:           LCALL   WatchDog
                MOV     A,SeleTab
                CJNE    A,#1,CCTW1
                MOV     DPTR,#ZW00TAB000
                SJMP    CCTW16
CCTW1:          CJNE    A,#2,CCTW2
                MOV     DPTR,#ZW01TAB000
                SJMP    CCTW16
CCTW2:          CJNE    A,#3,CCTW3
                MOV     DPTR,#ZW02TAB000
                SJMP    CCTW16
CCTW3:          CJNE    A,#4,CCTW4
                MOV     DPTR,#ZW03TAB000
                SJMP    CCTW16
CCTW4:          CJNE    A,#5,CCTW5
                MOV     DPTR,#ZW04TAB000
                SJMP    CCTW16
CCTW5:          CJNE    A,#6,CCTW6
                MOV     DPTR,#ZW05TAB000
                SJMP    CCTW16
CCTW6:          CJNE    A,#7,CCTW7
                MOV     DPTR,#ZW06TAB000
                SJMP    CCTW16
CCTW7:          CJNE    A,#8,CCTW8
                MOV     DPTR,#TskTAB000
                SJMP    CCTW16
CCTW8:          CJNE    A,#9,CCTW9
                MOV     DPTR,#YW00TAB000
                SJMP    CCTW16
CCTW9:          CJNE    A,#10,CCTW10
                MOV     DPTR,#YW01TAB000
                SJMP    CCTW16
CCTW10:         CJNE    A,#11,CCTW11
                MOV     DPTR,#YW02TAB000
                SJMP    CCTW16
CCTW11:         CJNE    A,#12,CCTW12
                MOV     DPTR,#YW03TAB000
                SJMP    CCTW16
CCTW12:         CJNE    A,#13,CCTW13
                MOV     DPTR,#YW04TAB000
                SJMP    CCTW16
CCTW13:         CJNE    A,#14,CCTW14
                MOV     DPTR,#YW05TAB000
                SJMP    CCTW16
CCTW14:         CJNE    A,#15,CCTW15
                MOV     DPTR,#YW06TAB000
                SJMP    CCTW16
CCTW15:         CJNE    A,#16,CCTW16
                MOV     DPTR,#XW00TAB000
                NOP
CCTW16:         MOV     A,CCCODE
                MOV     B,#20H
                MUL     AB
                ADD     A,DPL
                PUSH    ACC
                MOV     A,B
                ADDC    A,DPH
                PUSH    ACC
                MOV     A,OY
                MOV     B,#AP
                MUL     AB
                ADD     A,OXL
                MOV     OXL,A
                MOV     A,B
                ADDC    A,#40H
                MOV     OY,A
                MOV     A,#4FH
                LCALL   WriteComd
                MOV     A,SeleTab
                CLR     C
                SUBB    A,#09H
                JC      CCTW17
                MOV     LcdCount1,#01H
                SJMP    CCTW18
CCTW17:         MOV     LcdCount1,#02H
                NOP
CCTW18:         MOV     A,#46H
                LCALL   WriteComd
                MOV     A,OXL
                LCALL   WriteData
                MOV     A,OY
                LCALL   WriteData
                MOV     A,#42H
                LCALL   WriteComd
                MOV     LcdCount2,#10H
CCTW19:         POP     DPH
                POP     DPL
                CLR     A
                MOVC    A,@A+DPTR
                INC     DPTR
                PUSH    DPL
                PUSH    DPH
                LCALL   WriteData
                DJNZ    LcdCount2,CCTW19
                MOV     A,OXL
                ADD     A,#01H
                MOV     OXL,A
                MOV     A,OY
                ADDC    A,#00H
                MOV     OY,A
                DJNZ    LcdCount1,CCTW18
                POP     ACC
                POP     ACC
                RET

DOTW:		MOV	A,OY
		MOV	B,#AP
		MUL	AB
		MOV	OY,A
		MOV	A,B
		XCH	A,OXH
		PUSH	ACC
		CLR	ACC.7
		MOV	B,#20H
		MUL	AB
		ADD	A,OY
		MOV	OY,A
		MOV	A,B
		ADDC	A,OXH
		MOV	OXH,A
		MOV	A,OXL
		MOV	B,#08H
		DIV	AB
		ADD	A,OY
		MOV	OXL,A
		MOV	A,OXH
		ADDC	A,#40H
		MOV	OXH,A
		CLR	A
		SETB	C
		INC	B
DOTW1:		RRC	A
		DJNZ	B,DOTW1
		MOV	OY,A

		MOV	A,#46H
                LCALL   WriteComd

		MOV	A,OXL
                LCALL   WriteData

		MOV	A,OXH
                LCALL   WriteData

		MOV	A,#43H
                LCALL   WriteComd

		POP	ACC
		MOV	C,ACC.7

                LCALL   ReadData

		JNC	DOTW2
		ORL	A,OY
		LJMP	DOTW3
DOTW2:		XCH	A,OY
		CPL	A
		ANL	A,OY
DOTW3:		MOV	OY,A

		MOV	A,#46H
                LCALL   WriteComd

		MOV	A,OXL
                LCALL   WriteData

		MOV	A,OXH
                LCALL   WriteData

		MOV	A,#42H
                LCALL   WriteComd

		MOV	A,OY
                LCALL   WriteData

		RET

DrawThwartwise: MOV     OXL,R3
                MOV     OXH,R4
                MOV     OY,R7
                LCALL   DOTW
                MOV     A,R3
                ADD     A,#01H
                MOV     R3,A
                MOV     A,R4
                ADDC    A,#00H
                MOV     R4,A
                MOV     A,R3
                MOV     B,R5
                CJNE    A,B,DrawThwartwise
                MOV     OXL,R3
                MOV     OXH,R4
                MOV     OY,R7
                LCALL   DOTW
                MOV     A,R3
                ADD     A,#01H
                MOV     R3,A
                MOV     A,R4
                ADDC    A,#00H
                MOV     R4,A
                MOV     A,R4
                MOV     B,R6
                CJNE    A,B,DrawThwartwise
                RET


DrawArborous:   MOV     OXL,R4                   ;
                MOV     OXH,R5
                MOV     OY,R6
                LCALL   DOTW
                MOV     A,R6
                ADD     A,#01H
                MOV     R6,A
                MOV     A,R6
                MOV     B,R7
                CJNE    A,B,DrawArborous
                RET

DrawRectangle:  MOV     A,R1
                MOV     EditShowX,A
DrawRectangle1: MOV     A,R1
                MOV     OXL,A                   ;
                MOV     A,R2
                MOV     OXH,A
                MOV     A,R3
                MOV     OY,A
                LCALL   DOTW
                MOV     A,R1
                ADD     A,#01H
                MOV     R1,A
                MOV     A,R2
                ADDC    A,#00H
                MOV     R2,A
                MOV     A,R1
                MOV     B,R4
                CJNE    A,B,DrawRectangle1
                MOV     A,EditShowX
                MOV     R1,A
DrawRectangle2: MOV     A,R1
                MOV     OXL,A                   ;
                MOV     A,R2
                MOV     OXH,A
                MOV     A,R6
                MOV     OY,A
                LCALL   DOTW
                MOV     A,R1
                ADD     A,#01H
                MOV     R1,A
                MOV     A,R2
                ADDC    A,#00H
                MOV     R2,A
                MOV     A,R1
                MOV     B,R4
                CJNE    A,B,DrawRectangle2

DrawRectangle3: MOV     A,EditShowX
                MOV     R1,A
                MOV     A,R3
                MOV     EditShowY,A
DrawRectangle4: MOV     A,R1
                MOV     OXL,A                   ;
                MOV     A,R2
                MOV     OXH,A
                MOV     A,R3
                MOV     OY,A
                LCALL   DOTW
                MOV     A,R3
                ADD     A,#01H
                MOV     R3,A
                MOV     A,R3
                MOV     B,R6
                CJNE    A,B,DrawRectangle4
                MOV     A,EditShowY
                MOV     R3,A
DrawRectangle5: MOV     A,R4
                MOV     OXL,A                   ;
                MOV     A,R5
                MOV     OXH,A
                MOV     A,R3
                MOV     OY,A
                LCALL   DOTW
                MOV     A,R3
                ADD     A,#01H
                MOV     R3,A
                MOV     A,R3
                MOV     B,R6
                CJNE    A,B,DrawRectangle5
                RET


DrawLine:       MOV     OXL,R4                   ;
                MOV     OXH,R5
                MOV     OY,R6
                LCALL   DOTW
                MOV     A,R4
                ADD     A,#01H
                MOV     R4,A
                MOV     A,R5
                ADDC    A,#00H
                MOV     R5,A
                INC     R6
                MOV     A,R6
                MOV     B,R7
                CJNE    A,B,DrawLine
                ret

DrawLine2:      MOV     A,R5
                MOV     OXL,A
                MOV     A,R6
                MOV     OXH,A
                MOV     A,R7
                MOV     OY,A
                LCALL   DOTW
                MOV     A,R5
                ADD     A,#01H
                MOV     R5,A
                MOV     A,R6
                ADDC    A,#00H
                MOV     R6,A
                DJNZ    R7,DrawLine2
DrawLine3:      MOV     A,R5
                MOV     OXL,A
                MOV     A,R6
                MOV     OXH,A
                MOV     A,R7
                MOV     OY,A
                LCALL   DOTW
                MOV     A,R5
                ADD     A,#01H
                MOV     R5,A
                MOV     A,R6
                ADDC    A,#00H
                MOV     R6,A
                INC     R7
                CJNE    R7,#240,DrawLine3
                RET

LcdInit:        CLR     PSW.3
                CLR     PSW.4

                MOV     A,#40H
                LCALL   WriteComd

                MOV     LcdCount1,#08H
                MOV     LcdCount2,#00H
LcdInit1:       MOV     DPTR,#SYSTAB
                MOV     A,LcdCount2

                MOVC    A,@A+DPTR
                LCALL   WriteData

                INC     LcdCount2
                DJNZ    LcdCount1,LcdInit1

                MOV     A,#44H
                LCALL   WriteComd

                MOV     LcdCount1,#0AH
                MOV     LcdCount2,#00H
LcdInit2:       MOV     DPTR,#SCRTAB
                MOV     A,LcdCount2

                MOVC    A,@A+DPTR
                LCALL   WriteData

                INC     LcdCount2
                DJNZ    LcdCount1,LcdInit2

                MOV     A,#5AH
                LCALL   WriteComd

                MOV     A,#00H
                LCALL   WriteData

                MOV     A,#5BH
                LCALL   WriteComd

                MOV     A,#00H
                LCALL   WriteData

                LCALL   LcdClear

                MOV     A,#59H
                LCALL   WriteComd

                MOV     A,#54H
                LCALL   WriteData

                RET
SYSTAB:         DB      030H,087H,007H,027H,042H,0F0H,030H,000H
SCRTAB:         DB      000H,000H,0F0H,000H,040H,0F0H,000H,080H,000H,000H

LcdClear:
                MOV     A,#4CH
                LCALL   WriteComd

                MOV     A,#46H
                LCALL   WriteComd

                MOV     A,#00H
                LCALL   WriteData

                MOV     A,#00H
                LCALL   WriteData

                MOV     A,#42H
                LCALL   WriteComd
                CLR     A
                MOV     LcdCount1,#7FH
LcdClear1:      MOV     LcdCount2,#0FFH
LcdClear2:      LCALL   WriteData
                DJNZ    LcdCount2,LcdClear2
                DJNZ    LcdCount1,LcdClear1
                RET

;
;       ******  Program end flag  ******
;
                END



⌨️ 快捷键说明

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