📄 dz9664v0711.asm
字号:
name DZ9664
;/----------------------------------------------------------------------------
;; MPU: WINBOND W78C438CP-40
;; OSC: 24 MHz
;; LCM controller IC: philips DZ9664/1 (ROW68 x 12bit X COL98 X 3)
;; LCM display resolution: R68 X C98 PIXEL,80K bits 4K/65k/256 COLORS
;; Purpose: DEMO
;; Date: 2003.3.27
;/----------------------------------------------------------------------------
; .CHIP 8052
; .SYMBOLS ON
; .RAMCHK OFF
;#----------------------------------------------------------------------------
DATA_BUS equ P0 ;O/P
LED1 bit P3.4 ;LED DISPLAY
LED2 bit P3.5 ;LED DISPLAY
CD bit p1.5 ;O/P data or command
CS bit P1.6 ;O/P always low
RESB bit P1.7 ;O/P use cpu rst pin
WRB bit P3.6 ;O/P use @R write to P0 bus
RDB bit P3.7 ;O/P pull-high
UPKEY bit P2.7 ;UP KEY
DOWNKEY bit P2.6 ;DOWN KEY
CLOCKKEY bit P2.5 ;CLOCK KEY
CONTRASTKEY bit P2.4 ;CONTRAST KEY
;CPUclk bit 0XBF.2 ;SET CPU DOUBLE CLOCK RATE
;%----------------------------------------------------------------------------
SYSTEMflag EQU 20H ;B0=CONTRAST H/L
CONTRASTflag BIT SYSTEMflag.0
showTIMEflag BIT SYSTEMflag.1
FORcolor EQU 10H ;USE RS BANK2 FOR COLOR
BACKcolor EQU 11H ;FORGROUND/BACKGROUND COLOR
BitCounter equ 12h ;use to color bit counter 8->0
TEMP equ 30H
TIMER0count equ 31H
SECOND_COUNT equ 32H
OneSecondCounter equ 33H
MEMORY_DATA equ 34H
;MEMORY_DATA2 equ 35H
;MEMORY_DATA3 equ 36H
KEYvalue equ 37H
INDEX EQU 38H
HI_BYTE EQU 39H
LO_BYTE EQU 3AH
SECOND EQU 3BH
MINUTE EQU 3CH
HOURSE EQU 3DH
DPTR_DPH equ 35H
DPTR_DPL equ 36H
;IMAGE_COUNT equ 37H
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
;EPMA EQU 0A2H
;P8 EQU 0A6H
LCMseg EQU 96
LCMcom EQU 64
;MODEL_SEL2_S EQU 98
;MODEL_SEL2_C EQU 68
BLACK EQU 00000000B
BLUE EQU 00000011B
RED EQU 11100000B
PURPLE EQU 11100011B
GREEN EQU 00011100B
DARK_GREEN EQU 00011111B
YELLOW EQU 11111100B
WHITE EQU 11111111B
IMAGE_ADDR EQU 6144-1 ;;96 * 64 = 6144
;@----------------------------------------------------------------------------
public allDZ9664
public clearLCM
public PHOTO2
public INITDZ9664LCM
public LCMhome
?PR?all9664c?LCM9664c segment code
rseg ?PR?all9664c?LCM9664c
allDZ9664:
nop
;&-------------------------------------------
;@----------------------------------------------------------------------------
ORG 0000H
JMP START
;;
; ORG 0003H ;INT0 ADDRESS
; JMP $
;;
ORG 000BH ;TIMER0 ADDRESS
JMP TIMER0ISR
;;
; ORG 0013H ;INT1 ADDRESS
; JMP $
;;
; ORG 001BH ;TIMER1 ADDRESS
; JMP $
;;
; ORG 0023H ;UART ADDRESS
; JMP $
;;
; ORG 002BH ;TIMER2 ADDRESS
; JMP $
;;
; ORG 0033H ;INT2 ADDRESS
; JMP $
;;
; ORG 003BH ;INT3 ADDRESS
; JMP $
;*-------------------------------------------
ORG 50H
;*-------------------------------------------
TIMER0ISR:
PUSH PSW
PUSH ACC
MOV TL0,#(8192-5000)/32
MOV TH0,#(8192-5000) MOD 32
SETB TR0 ;START COUNTDOWN
; CPL P1.7
; xrl P1,#10000000b ;LED BLINK
POP ACC
POP PSW
RETI
;&-------------------------------------------
START:
MOV SP,#5FH ;@ STACK
INIT_IO:
MOV P0,#00000000B
MOV P1,#00000000B
MOV P2,#00000000B
MOV P3,#00000000B
CLR LED1
SETB LED2
MOV R0,#20H ;CLEAR RAM(20H-FFH)
CLEAR_RAM:
MOV @R0,#0
INC R0
CJNE R0,#00H,CLEAR_RAM
TIMER0INIT:
MOV TMOD,#00000000B
SETB EA
SETB ET0
MOV TL0,#(8192-5000)/32
MOV TH0,#(8192-5000) MOD 32
SETB TR0 ;TIMER START
INIT_LCM:
CALL INITDZ9664LCM
asmMAIN:
XRL P3,#00010000B ;SWITCH led
XRL P3,#00100000B ;SWITCH led
CALL PHOTO1 ;color bar
CALL PHOTO2 ;color bar
CALL PHOTO3 ;color bar
CALL PHOTO4
CALL PHOTO5
CALL PHOTO6
CALL PHOTO8
CALL PHOTO9
CALL PHOTO10
MOV DPTR,#highcrime ;SET Picture ADDRESS
CALL pictureDISPLAY
MOV DPTR,#episode ;SET Picture ADDRESS
CALL pictureDISPLAY
MOV DPTR,#topgun ;SET Picture ADDRESS
CALL pictureDISPLAY
MOV DPTR,#spidermanp5 ;SET Picture ADDRESS
CALL pictureDISPLAY
MOV DPTR,#loveme ;SET Picture ADDRESS
CALL pictureDISPLAY
MOV DPTR,#expend ;SET Picture ADDRESS
CALL pictureDISPLAY
MOV DPTR,#MARIOkart ;SET Picture ADDRESS
CALL pictureDISPLAY
MOV DPTR,#NAPOLEN ;SET Picture ADDRESS
CALL pictureDISPLAY
MOV DPTR,#KYOKO ;SET Picture ADDRESS
CALL pictureDISPLAY
jmp asmMAIN
SHOWpicture:
; MOV DPTR,#highcrime ;SET Picture ADDRESS
; CALL pictureDISPLAY
CALL PHOTO1
CALL PHOTO2
CALL PHOTO3
JMP asmMAIN
;======================================
pictureDISPLAY:
MOV R1,#LCMcom ;;Common
pD1:
MOV R2,#LCMseg ;;Segment
pD2:
clr A
movc A,@A+dptr
CALL LCMwriteDATA
inc dptr
DJNZ R2,pD2
DJNZ R1,pD1
CALL LCMhome
MOV R5,#10
CALL DELAY_50MS
RET
;======================================
;======================================
;;---------------------------------------
PHOTO1:
CALL LCMhome
MOV R0,#3
PHOTO1_RED:
CJNE R0,#3,PHOTO1_GREEN
MOV MEMORY_DATA,#RED ;;RED
PHOTO1_GREEN:
CJNE R0,#2,PHOTO1_BLUE
MOV MEMORY_DATA,#GREEN ;;GREEN
PHOTO1_BLUE:
CJNE R0,#1,PHOTO1_0
MOV MEMORY_DATA,#BLUE ;;BLUE
PHOTO1_0:
MOV R1,#LCMcom ;;Common
PHOTO1_1:
MOV R2,#LCMseg ;;Segment
PHOTO1_2:
CALL RAMWR
DJNZ R2,PHOTO1_2
DJNZ R1,PHOTO1_1
;;
CALL LCMhome
MOV SECOND_COUNT,#1
CALL DELAY_1S
DJNZ R0,PHOTO1_RED
RET
;;---------------------------------------
;; Column 8'S Color Bar
;;---------------------------------------
PHOTO2:
CALL LCMhome
MOV R0,#8
PHOTO2_0:
MOV R1,#LCMcom ;;Common
PHOTO2_1:
MOV B,#8 ;;8 color bar
MOV A,#LCMseg ;;Segment
PHOTO2_2:
DIV AB
MOV R2,A
PHOTO2_READ:
CJNE R0,#8,PHOTO2_GREEN
MOV MEMORY_DATA,#RED ;;RED
PHOTO2_GREEN:
CJNE R0,#7,PHOTO2_BLUE
MOV MEMORY_DATA,#GREEN ;;GREEN
PHOTO2_BLUE:
CJNE R0,#6,PHOTO2_BLACK
MOV MEMORY_DATA,#BLUE ;;Blue
PHOTO2_BLACK:
CJNE R0,#5,PHOTO2_DGREEN
MOV MEMORY_DATA,#BLACK ;;Black
PHOTO2_DGREEN:
CJNE R0,#4,PHOTO2_PURPLE
MOV MEMORY_DATA,#DARK_GREEN ;;Dark Green
PHOTO2_PURPLE:
CJNE R0,#3,PHOTO2_WHITE
MOV MEMORY_DATA,#PURPLE ;;Purple
PHOTO2_WHITE:
CJNE R0,#2,PHOTO2_YELLOW
MOV MEMORY_DATA,#WHITE ;;White
PHOTO2_YELLOW:
CJNE R0,#1,PHOTO2_3
MOV MEMORY_DATA,#YELLOW ;;Yellow
PHOTO2_3:
CALL RAMWR
DJNZ R2,PHOTO2_3
DJNZ R0,PHOTO2_1
MOV R0,#8
DJNZ R1,PHOTO2_1
;;
MOV SECOND_COUNT,#1
CALL DELAY_1S
RET
;;---------------------------------------
;; Row 8'S Color Bar
;; COLOR Arrangement(use 8 bits, 256 gradation)
;;---------------------------------------
PHOTO3:
CALL LCMhome
MOV R0,#8
PHOTO3_0:
MOV B,#8 ;;8 color bar
MOV A,#LCMcom ;@Common,NOTE
PHOTO3_1:
DIV AB
MOV R1,A
PHOTO3_2:
MOV R2,#LCMseg ;;Segment
PHOTO3_READ:
CJNE R0,#8,PHOTO3_GREEN
MOV MEMORY_DATA,#RED ;;RED
PHOTO3_GREEN:
CJNE R0,#7,PHOTO3_BLUE
MOV MEMORY_DATA,#GREEN ;;GREEN
PHOTO3_BLUE:
CJNE R0,#6,PHOTO3_BLACK
MOV MEMORY_DATA,#BLUE ;;Blue
PHOTO3_BLACK:
CJNE R0,#5,PHOTO3_DGREEN
MOV MEMORY_DATA,#BLACK ;;Black
PHOTO3_DGREEN:
CJNE R0,#4,PHOTO3_PURPLE
MOV MEMORY_DATA,#DARK_GREEN ;;Dark Green
PHOTO3_PURPLE:
CJNE R0,#3,PHOTO3_WHITE
MOV MEMORY_DATA,#PURPLE ;;Purple
PHOTO3_WHITE:
CJNE R0,#2,PHOTO3_YELLOW
MOV MEMORY_DATA,#WHITE ;;White
PHOTO3_YELLOW:
CJNE R0,#1,PHOTO3_3
MOV MEMORY_DATA,#YELLOW ;;Yellow
PHOTO3_3:
MOV A,MEMORY_DATA
CALL LCMwriteDATA
DJNZ R2,PHOTO3_3
DJNZ R1,PHOTO3_2
DJNZ R0,PHOTO3_0
MOV SECOND_COUNT,#1
CALL DELAY_1S
RET
;;---------------------------------------
PHOTO4:
CALL LCMhome
MOV R0,#LCMcom ;;Common
PHOTO4_0:
MOV R1,#LCMseg ;;Segment
PHOTO4_1:
MOV MEMORY_DATA,#WHITE ;;White
PHOTO4_2:
MOV A,MEMORY_DATA
CALL LCMwriteDATA
DJNZ R1,PHOTO4_2
DEC R0
;;
PHOTO4_3:
MOV MEMORY_DATA,#WHITE ;;White
MOV R1,#LCMseg ;;Segment
PHOTO4_4:
MOV TEMP,R1
DEC TEMP
PHOTO4_5:
MOV A,R1
CJNE A,TEMP,PHOTO4_6
MOV MEMORY_DATA,#BLACK ;;Black
PHOTO4_6:
CJNE A,#1,PHOTO4_7
MOV MEMORY_DATA,#WHITE ;;White
PHOTO4_7:
MOV A,MEMORY_DATA
CALL LCMwriteDATA
DJNZ R1,PHOTO4_5
DEC R0
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -