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

📄 dz9664v0711.asm

📁 1. Source Code for CSTN . 2. Keil ASM with Detail Remark. 3. Winbond Single Chip.
💻 ASM
📖 第 1 页 / 共 2 页
字号:
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 + -