📄 dz9664.asm
字号:
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 + -