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

📄 dz9664.asm

📁 1. Source Code for CSTN . 2. Keil ASM with Detail Remark. 3. Winbond Single Chip.
💻 ASM
📖 第 1 页 / 共 2 页
字号:
                CJNE    R0,#1,PHOTO4_3
                ;;
                MOV     R1,#LCMseg                ;;Segment
PHOTO4_8:
                MOV     MEMORY_DATA,#WHITE              ;;White
PHOTO4_9:
                MOV	A,MEMORY_DATA
                CALL	LCMwriteDATA

                DJNZ    R1,PHOTO4_9
                ;;

                ;MOV     SECOND_COUNT,#1
                ;CALL    DELAY_1S
                RET
;;---------------------------------------
PHOTO5:
                CALL    LCMhome
		MOV     A,#BLACK                        ;;Black
                MOV     R1,#LCMcom                ;;Common
PHOTO5_1:
                MOV     R2,#LCMseg                ;;Segment
PHOTO5_2:
                CPL     A
                MOV     MEMORY_DATA,A
                MOV	A,MEMORY_DATA
                CALL	LCMwriteDATA

                DJNZ    R2,PHOTO5_2
                CPL     A
                DJNZ    R1,PHOTO5_1
                ;;

                ;MOV     SECOND_COUNT,#1
                ;CALL    DELAY_1S
                RET
;;---------------------------------------
PHOTO6:
                CALL    LCMhome
                MOV     R0,#LCMcom                ;;Common
PHOTO6_1:
                MOV     R1,#16
                MOV     DPTR,#CU1
PHOTO6_2:
                MOV     R2,#LCMseg                ;;Segment
PHOTO6_3:
                MOV     DPTR_DPH,DPH
                MOV     DPTR_DPL,DPL
PHOTO6_4:
                MOV     R3,#2
PHOTO6_5:
                MOV     R4,#8
                CLR     A
                MOVC    A,@A+DPTR
                MOV     TEMP,A
PHOTO6_6:
                MOV     A,TEMP
                RLC     A
                MOV     TEMP,A
                MOV     MEMORY_DATA,#WHITE              ;;White
                JC      PHOTO6_7
                MOV     MEMORY_DATA,#BLACK              ;;Black
PHOTO6_7:
                MOV	A,MEMORY_DATA
                CALL	LCMwriteDATA

                DJNZ    R4,PHOTO6_6
                INC     DPTR
                MOV     A,R2
                CLR     C
                SUBB    A,#8
                MOV     R2,A
                JZ      PHOTO6_8
                DJNZ    R3,PHOTO6_5
                MOV     DPH,DPTR_DPH
                MOV     DPL,DPTR_DPL
                SJMP    PHOTO6_4
PHOTO6_8:
                DEC     R0
                MOV     A,R0
                JZ      PHOTO6_9
                MOV     DPH,DPTR_DPH
                MOV     DPL,DPTR_DPL
                INC     DPTR
                INC     DPTR
                DJNZ    R1,PHOTO6_2
                SJMP    PHOTO6_1
PHOTO6_9:

                ;MOV     SECOND_COUNT,#1
                ;CALL    DELAY_1S
                RET
;;---------------------------------------

;;---------------------------------------
PHOTO8:
                CALL    LCMhome
                MOV     R0,#8
PHOTO8_0:
                MOV     R1,#LCMcom                ;;Common
PHOTO8_1:
                MOV     B,#8                            ;;8 color bar
                MOV     A,#LCMseg                 ;;Segment
PHOTO8_2:
                DIV     AB
                MOV     R2,A
GRADITION_1_1:
                CJNE    R0,#8,GRADITION_2_1
                MOV     MEMORY_DATA,#11100000B          ;;RED
GRADITION_2_1:
                CJNE    R0,#7,GRADITION_3_1
                MOV     MEMORY_DATA,#11000000B          ;;RED
GRADITION_3_1:
                CJNE    R0,#6,GRADITION_4_1
                MOV     MEMORY_DATA,#10100000B          ;;RED
GRADITION_4_1:
                CJNE    R0,#5,GRADITION_5_1
                MOV     MEMORY_DATA,#10000000B          ;;RED
GRADITION_5_1:
                CJNE    R0,#4,GRADITION_6_1
                MOV     MEMORY_DATA,#01100000B          ;;RED
GRADITION_6_1:
                CJNE    R0,#3,GRADITION_7_1
                MOV     MEMORY_DATA,#01000000B          ;;RED
GRADITION_7_1:
                CJNE    R0,#2,GRADITION_8_1
                MOV     MEMORY_DATA,#00100000B          ;;RED
GRADITION_8_1:
                CJNE    R0,#1,PHOTO8_3
                MOV     MEMORY_DATA,#00000000B          ;;RED
PHOTO8_3:
                MOV	A,MEMORY_DATA
                CALL	LCMwriteDATA

                DJNZ    R2,PHOTO8_3
                DJNZ    R0,PHOTO8_1
                MOV     R0,#8
                DJNZ    R1,PHOTO8_1
                ;;

                ;MOV     SECOND_COUNT,#1
                ;CALL    DELAY_1S
                RET
;;---------------------------------------
PHOTO9:
                CALL    LCMhome
                MOV     R0,#8
PHOTO9_0:
                MOV     R1,#LCMcom                ;;Common
PHOTO9_1:
                MOV     B,#8                            ;;8 color bar
                MOV     A,#LCMseg                 ;;Segment
PHOTO9_2:
                DIV     AB
                MOV     R2,A
GRADITION_1_2:
                CJNE    R0,#8,GRADITION_2_2
                MOV     MEMORY_DATA,#00011100B          ;;GREEN
GRADITION_2_2:
                CJNE    R0,#7,GRADITION_3_2
                MOV     MEMORY_DATA,#00011000B          ;;GREEN
GRADITION_3_2:
                CJNE    R0,#6,GRADITION_4_2
                MOV     MEMORY_DATA,#00010100B          ;;GREEN
GRADITION_4_2:
                CJNE    R0,#5,GRADITION_5_2
                MOV     MEMORY_DATA,#00010000B          ;;GREEN
GRADITION_5_2:
                CJNE    R0,#4,GRADITION_6_2
                MOV     MEMORY_DATA,#00001100B          ;;GREEN
GRADITION_6_2:
                CJNE    R0,#3,GRADITION_7_2
                MOV     MEMORY_DATA,#00001000B          ;;GREEN
GRADITION_7_2:
                CJNE    R0,#2,GRADITION_8_2
                MOV     MEMORY_DATA,#00000100B          ;;GREEN
GRADITION_8_2:
                CJNE    R0,#1,PHOTO9_3
                MOV     MEMORY_DATA,#00000000B          ;;GREEN
PHOTO9_3:
                MOV	A,MEMORY_DATA
                CALL	LCMwriteDATA

                DJNZ    R2,PHOTO9_3
                DJNZ    R0,PHOTO9_1
                MOV     R0,#8
                DJNZ    R1,PHOTO9_1
                ;;

                ;MOV     SECOND_COUNT,#1
                ;CALL    DELAY_1S
                RET
;;---------------------------------------
PHOTO10:
                CALL    LCMhome
                MOV     R0,#4
PHOTO10_0:
                MOV     R1,#LCMcom                ;;Common
PHOTO10_1:
                MOV     B,#4                            ;;8 color bar
                MOV     A,#LCMseg                 ;;Segment
PHOTO10_2:
                DIV     AB
                MOV     R2,A
GRADITION_1_3:
                CJNE    R0,#4,GRADITION_2_3
                MOV     MEMORY_DATA,#00000011B          ;;BLUE
GRADITION_2_3:
                CJNE    R0,#3,GRADITION_3_3
                MOV     MEMORY_DATA,#00000010B          ;;BLUE
GRADITION_3_3:
                CJNE    R0,#2,GRADITION_4_3
                MOV     MEMORY_DATA,#00000001B          ;;BLUE
GRADITION_4_3:
                CJNE    R0,#1,PHOTO10_3
                MOV     MEMORY_DATA,#00000000B          ;;BLUE
PHOTO10_3:
                MOV	A,MEMORY_DATA
                CALL	LCMwriteDATA

                DJNZ    R2,PHOTO10_3
                DJNZ    R0,PHOTO10_1
                MOV     R0,#8
                DJNZ    R1,PHOTO10_1
                ;;

                ;MOV     SECOND_COUNT,#1
                ;CALL    DELAY_1S
                RET
;;---------------------------------------
INITDZ9664LCM:
                SETB	CD
                SETB    RDB
                CLR	CS
HardwareReset:
                CLR     RESB
                MOV     R5,#1
                CALL    DELAY_5MS
                SETB    RESB
                MOV     R5,#10
                CALL    DELAY_5MS

PARAMETER:
                MOV     A,#11110000B            ;;RE Flag Set
                CALL    LCMwriteCOMMAND           ;;RE2=0,RE1=0,RE0=0
PCSET:
                MOV     A,#10110001B            ;;Power Control Set
                CALL    LCMwriteCOMMAND
                MOV     R5,#1
                CALL    DELAY_50MS

BOOSTER:
                MOV     A,#11010011B            ;;Booster Set
                CALL    LCMwriteCOMMAND           ;;4 times
PCSET2:
                MOV     A,#10111010B            ;;Power Control Set
                CALL    LCMwriteCOMMAND
BIASSET:
                MOV     A,#11100001B            ;;Bias Setting Set
                CALL    LCMwriteCOMMAND           ;;1/5 bias
DUTYSET:
                MOV     A,#11000111B            ;;LCD Duty Set
                CALL    LCMwriteCOMMAND           ;;1/64 duty
ICSET:
                MOV     A,#10100011B            ;;Increment Control Set
                CALL    LCMwriteCOMMAND		;R/W VALID,X++/Y++

		;CALL	LCMhome
REFLAG_Y:
                MOV     A,#11110100B            ;;RE Flag Set
                CALL    LCMwriteCOMMAND           ;;RE2=1,RE1=0,RE0=0
VOLSET:
                MOV     A,#10101111B            ;;Electronic Volume Set
                CALL    LCMwriteCOMMAND
                MOV     A,#10110111B
                CALL    LCMwriteCOMMAND
                MOV     A,#10100100B            ;;Electronic Volume Set
                CALL    LCMwriteCOMMAND
DSCSET:
                MOV     A,#01100000B            ;;Display Starting Common Set
                CALL    LCMwriteCOMMAND
SPCTR:
                MOV     A,#01110000B            ;;Static Pictograph Control
                CALL    LCMwriteCOMMAND
DSCTR:
                MOV     A,#10001000B            ;;Display Select Control
                CALL    LCMwriteCOMMAND
RAMDLSET:
                MOV     A,#10010000B            ;;RAM Data Length Set
                CALL    LCMwriteCOMMAND           ;;8-bit data length
RFtimes:
                MOV     A,#11010001B
                CALL    LCMwriteCOMMAND

DISCHARGE:
                MOV     A,#11100000B            ;;Discharge
                CALL    LCMwriteCOMMAND           ;;Off
REFLAG_X2:
                MOV     A,#11110000B            ;;RE Flag Set
                CALL	LCMwriteCOMMAND           ;;RE2=0,RE1=0,RE0=0
;;---------------------------------------
LCMhome:
		NOP
DSLSET:
                MOV     A,#01000000B            ;;Display Starting Line Set
                CALL    LCMwriteCOMMAND
                MOV     A,#01010000B
                CALL    LCMwriteCOMMAND
YASET:
                MOV     A,#00100000B            ;;Y Address Register Set
                CALL    LCMwriteCOMMAND
                MOV     A,#00110000B
                CALL    LCMwriteCOMMAND
XASET:
                MOV     A,#00000000B            ;;X Address Register Set
                CALL    LCMwriteCOMMAND
                MOV     A,#00010000B
                CALL    LCMwriteCOMMAND
DISCTL:
                MOV     A,#10001001B            ;;011Display Control Set (1)
                CALL    LCMwriteCOMMAND
                MOV     A,#10010000B            ;;Display Control Set (2)
                JMP	LCMwriteCOMMAND
                RET
RAMWR:

		MOV     A,MEMORY_DATA           ;;Data Write to Display RAM
                CALL    LCMwriteDATA
                RET
;;---------------------------------------
LCMwriteDATA:
                CLR     CS
                CLR     CD
		MOV     DATA_BUS,A
		JMP	LCMwrite
		
;;---------------------------------------
LCMwriteCOMMAND:
                CLR     CS
                SETB    CD
                MOV     DATA_BUS,A
LCMwrite:
                CLR     WRB
;		NOP
		NOP
		NOP
		SETB    WRB
		NOP
;		NOP
		NOP
;                MOVx    @dptr,A      ;DATA_BUS,A
;                CLR     RS
                SETB    CS
                RET
;;---------------------------------------
;;---------------------------------------
;; DELAY TIME= 5ms * R5
;  ;/ USED MEMORY OR REGISTER OR PIN INCLUIDE FOLLOW===>
;  ;/ REGISTER:
;  ;/   R5
;  ;/   R6
;  ;/   R7
;  ;@ INPUT===> R5
;;---------------------------------------
DELAY_5MS:
                MOV     R6,#20
DEL_5MS:
                MOV     R7,#0
                DJNZ    R7,$
                DJNZ    R6,DEL_5MS
                DJNZ    R5,DELAY_5MS
                RET
;;---------------------------------------
;; DELAY TIME= 50ms * R5
;  ;/ USED MEMORY OR REGISTER OR PIN INCLUIDE FOLLOW===>
;  ;/ REGISTER:
;  ;/   R5
;  ;/   R6
;  ;/   R7
;  ;@ INPUT===> R5
;;---------------------------------------
DELAY_50MS:
                MOV     R6,#200
DEL_50MS:
                MOV     R7,#0
                DJNZ    R7,$
                DJNZ    R6,DEL_50MS
                DJNZ    R5,DELAY_50MS
                RET
;;---------------------------------------
;; DELAY TIME= 1S * SECOND_COUNT
;  ;/ USED MEMORY OR REGISTER OR PIN INCLUIDE FOLLOW===>
;  ;/ REGISTER:
;  ;/   R4
;  ;/   R5
;  ;/   R6
;  ;/   R7
;  ;@ INPUT===> SECOND_COUNT
;;---------------------------------------
DELAY_1S:
                MOV     R4,SECOND_COUNT
DEL_1S_X:
                MOV     R5,#20
DEL_1S_Y:
                MOV     R6,#200
DEL_1S_Z:
                MOV     R7,#0
                DJNZ    R7,$
                DJNZ    R6,DEL_1S_Z
                DJNZ    R5,DEL_1S_Y
                DJNZ    R4,DEL_1S_X
                RET
;@-------------------------------------------
clearLCM:
                MOV     R1,#LCMcom                ;; set Common number
cl1:
                MOV     R2,#LCMseg                ;;set Segment number
cl2:
		mov	A,#BLACK
                CALL    LCMwriteDATA
                DJNZ    R2,cl2
                DJNZ    R1,cl1
                jmp    LCMhome
		ret
;@-------------------------------------------
;                .DATA
CU1:             DB      00H,00H,14H,04H,27H,0BEH,4AH,24H
                DB      82H,24H,12H,24H,2FH,0E4H,62H,24H
                DB      0AAH,24H,2BH,0A4H,2AH,34H,2BH,0E8H
                DB      2EH,20H,24H,20H,20H,20H,00H,00H
;================================================
TIMER0ISR:
		PUSH	PSW
		PUSH	ACC
		MOV	TH0,#(8192-5000)/32		;5mS INT
		MOV	TL0,#(8192-5000) MOD 32
		INC	TIMER0count
		MOV	A,TIMER0count
		CJNE	A,#100,SECOND1check		;100*5m=500mS
		CPL	LED1
SECOND1check:
		CJNE	A,#200,TIMER0ISRok		;200*5m=1S
		MOV	TIMER0count,#0
		CPL	LED1

		CALL	CLOCK
		
TIMER0ISRok:
		POP	ACC
		POP	PSW
		SETB	TR0		;START COUNTDOWN
		RETI
;================================================
TIMER1ISR:
	MOV	TH1,HIGH (65536-4000)		;4mS INT
	MOV	TL1,LOW  (65536-4000)

	PUSH	PSW
	PUSH	ACC
	DJNZ	OneSecondCounter,TIMER1ISRok
OneSecond:
	MOV	OneSecondCounter,#(1000/4)
	;CALL	CLOCK			;CLOCK++

TIMER1ISRok:
	POP	ACC
	POP	PSW
	RETI
;================================================
CLOCK:
	MOV	A,SECOND
	ADD	A,#1			;FOR DA USE AND SECOND++
	DA	A
	MOV	SECOND,A
	CJNE	A,#60H,NotOverflow

	MOV	SECOND,#0		;1MIN=60SECOND
	MOV	A,MINUTE
	ADD	A,#1			;FOR DA USE AND MINUTE++
	DA	A
	MOV	MINUTE,A
	CJNE	A,#60H,NotOverflow

	MOV	MINUTE,#0
	MOV	A,HOURSE
	ADD	A,#1			;FOR DA USE AND HOURSE++
	DA	A
	MOV	HOURSE,A
	CJNE	A,#24H,NotOverflow
	MOV	HOURSE,#0
NotOverflow:
	RET

;@-------------------------------------------
	$INCLUDE (Wxx.txt)
	;$INCLUDE (highcrime9664.dat)
	;$INCLUDE (episode9664.dat)
	;$INCLUDE (topgun9664.dat)
	;$INCLUDE (spidermanp5s9664.dat)
	;$INCLUDE (lovemep1s9664.dat)
	;$INCLUDE (expend9664.dat)
	;$INCLUDE (MARIOkart9664.dat)
	;$INCLUDE (NAPOLEN9664.dat)
	;$INCLUDE (KYOKO9664.dat)
;&-------------------------------------------
 END

⌨️ 快捷键说明

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