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

📄 ht1603.asm

📁 lcm测试程序,对LCM设计者有帮助,希望大家能用上.
💻 ASM
字号:
;*******************************************************
; SUBJECT : TEST PROGRAM FOR HT1603
; AUTHOR  : fy.Liu
; Date    : 2003-10-03
; Version : 1.00
; LCD Driver : PCF8576C
; LCD Modle  : HT1603
;*******************************************************
SDA		BIT	P3.0
SCL		BIT	P3.1
;*******************************************************
		ORG	0000H
		LJMP	MAIN
;*******************************************************
		ORG	0030H
MAIN:		MOV	SP,#60H
		LCALL	START
		MOV	A, #048H		; Mode Set ( C=0 )
		LCALL	WRITE			; EXIT COMMAND STATUS
		LCALL	STOP
		LCALL	DELAY
;*******************************************************
;
		MOV	R7,#13			; 13 DIGIT
		MOV	DPTR,#DIGIT
LOOP_DG:	LCALL	START
		MOV	A,#0E0H			; Device Select
		LCALL	WRITE
		MOV	A, #000H		; Load Data Pointer ( C=0, Address=00H)
		LCALL	WRITE			; EXIT COMMAND STATUS

		MOV	R6,#60			; SEGMENT( Display RAM ) NUMBER /2
LOOP_SD:	MOV	A,#0
		MOVC	A,@A+DPTR
		LCALL	WRITE
		DJNZ	R6,LOOP_SD
		LCALL	STOP

		MOV	R5,#8
	LDELAY:	LCALL	DELAY
		DJNZ	R5,LDELAY

		INC	DPTR
		DJNZ	R7,LOOP_DG

		LJMP	MAIN
;***************
CLRSCR:		LCALL	START
		MOV	A,#0E0H			; Device Select
		LCALL	WRITE
		MOV	A, #0
		LCALL	WRITE			; EXIT COMMAND STATUS
		MOV	R6,#20			; SEGMENT( Display RAM ) NUMBER /2
LOOP_CD:	MOV	A, #0
		LCALL	WRITE
		DJNZ	R6,LOOP_CD
		LCALL	STOP

		LCALL	DELAY
		LCALL	DELAY
		LCALL	DELAY
		LCALL	DELAY
		LCALL	DELAY

		MOV	R7,#0			; Load Data Pointer ( C=0, Address=00H)
CHK_LG:		LCALL	START
		MOV	A,#0E0H			; Device Select
		LCALL	WRITE
		MOV	A, R7
		LCALL	WRITE			; EXIT COMMAND STATUS
		MOV	A,#0F0H
		LCALL	WRITE
		LCALL	STOP

		MOV	R5,#50
LLDELAY:	LCALL	DELAY
		DJNZ	R5,LLDELAY

		INC	R7
		CJNE	R7,#40,CHK_LG

		LJMP	MAIN
;*******************************************************
;
;*******************************************************
WRITE:		MOV	R3,#08H			; 1 Byte = 8 bit
		CLR	SCL			; Clock signal = 0
		CLR	C
TR_8BIT:	RLC	A
		MOV	SDA,C			; DATA = C
		SETB	SCL
		nop
		CLR	SCL			; Clock Pulse
		DJNZ	R3,TR_8BIT
; 1 BYTE(8 BIT) TR_FINISHED
		SETB	SCL
		NOP
		CLR	SCL			; 9'th Pulse
		RET
;*******************************************************
START:		SETB	SDA
		SETB	SCL
		NOP
		CLR	SDA			; Start
		MOV	A,#070H			; PCF8576C ADDRESS(70H 71H : SA0)
		LCALL	WRITE
		RET
;****************************
STOP:		SETB	SCL			; CONFIRM SCL=1
		CLR	SDA			; Confirm SDA=0
		SETB	SDA			; SDA 0->1
		RET
;*******************************************************
DELAY:		PUSH	ACC
		MOV	A, R7
		PUSH	ACC
		MOV	A, R6
		PUSH	ACC
		MOV	R7,#08FH 
DL0:		MOV	R6,#0A0H
		DJNZ	R6,$
		DJNZ	R7,DL0
		POP	ACC
		MOV	R6, A
		POP	ACC
		MOV	R7, A
		POP	ACC
		RET
;*******************************************************
;
;*******************************************************
DIGIT:
;	DFGEHABC
DB	11111111B	; ALL
DB	00000000B	; CLR
DB	11010111B	; 0
DB	00000011B	; 1
DB	10110110B	; 2
DB	10100111B	; 3
DB	01100011B	; 4
DB	11100101B	; 5
DB	11110101B	; 6
DB	00000111B	; 7
DB	11110111B	; 8
DB	11100111B	; 9
DB	00001000B	; DP
;***********************************************
;
;***********************************************
		END

⌨️ 快捷键说明

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