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

📄 笔段全系列1621.asm

📁 HT1621测试程序(笔段驱动,需要相应调整)
💻 ASM
字号:
;**************************************************
L_CS		EQU	P3.0			;L_CS MOUDLE SELECT
L_WR		EQU	P3.1			;L_WR MOUDLE SERIAL CLOCK
L_DATA		EQU	P3.2			;L_DATA MOUDLE SERIAL DATA
L_ELEN		EQU	P3.3

L_JBBIT		EQU	20H.0
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
L_BUFF		EQU	30H
L_BUFF1		EQU	31H
L_BUFF2		EQU	32H
L_COUNT		EQU	33H
L_COUNT1	EQU	34H
L_COUNT2	EQU	35H
;**************************************************
		ORG	0000H
		AJMP	0100H
		ORG	0100H

MAIN:		NOP
		MOV	SP,#5FH
		SETB	L_ELEN
		
		LCALL	DELAY10
		CPL	L_ELEN
		LCALL	DELAY10
		CPL	L_ELEN
		
		LCALL	L_INIT
		
		LJMP	LOOP2
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;测SEG		;共12个SEG
LOOP:		LCALL	L_CLR
		MOV	L_BUFF1,#00H
		MOV	L_COUNT2,#12		;共12个SEG
LOOP1:		MOV	L_COUNT1,#01H
		MOV	L_BUFF2,#11110000B
		LCALL	L_WRSAC
		LCALL	DELAY1
		INC	L_BUFF1
      		DJNZ	L_COUNT2,LOOP1
      		
;测COM		;共4个COM
      		LCALL	L_CLR
		MOV	L_BUFF1,#00111111B
		MOV	L_BUFF2,#10000000B	;COM1
		LCALL	L_WRSAC
		LCALL	DELAY1
		
		LCALL	L_CLR
		MOV	L_BUFF1,#00111111B
		MOV	L_BUFF2,#01000000B	;COM2
		LCALL	L_WRSAC
		LCALL	DELAY1
		
		LCALL	L_CLR
		MOV	L_BUFF1,#00111111B
		MOV	L_BUFF2,#00100000B	;COM3
		LCALL	L_WRSAC
		LCALL	DELAY1
		
		LCALL	L_CLR
		MOV	L_BUFF1,#00111111B
		MOV	L_BUFF2,#00010000B	;COM4
		LCALL	L_WRSAC
		
		CPL	L_ELEN
		LCALL	DELAY10
		CPL	L_ELEN
		
		LCALL	DELAY1
		
LOOP2:		LCALL	L_CLR
		MOV	L_BUFF1,#00111111B
		MOV	L_BUFF2,#11110000B	;COM1.2.3.4
		LCALL	L_WRSAC
		
		;CPL	L_ELEN
		;LCALL	DELAY10
		;CPL	L_ELEN
		
		LCALL	DELAY1
		
      		LJMP	LOOP
;******************L_INIT *************************
L_INIT:		CLR	L_CS
		MOV	L_COUNT,#03H
		MOV	L_BUFF,#10000000B
		LCALL	L_WRCBIT		;WRITE INSTU 100
		CLR	L_JBBIT
		MOV	L_BUFF,#00000011B	;INI1 SYS ON
		LCALL	L_WR9BIT
		CLR	L_JBBIT
		MOV	L_BUFF,#00000111B	;INI2 LCD ON
		LCALL	L_WR9BIT
		CLR	L_JBBIT
		MOV	L_BUFF,#00110111B	;INI3 SET RC 256K OSC
		LCALL	L_WR9BIT
		CLR	L_JBBIT
		MOV	L_BUFF,#01010111B	;INI4 SET BIAS 1/3
		LCALL	L_WR9BIT
		SETB	L_CS
		RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
L_CLR:		MOV	L_COUNT1,#20H
		MOV	L_BUFF1,#00H
		MOV	L_BUFF2,#00000000B
		LCALL	L_WRSAC
		RET
;**************************************************
;点亮对应的SEG与COM
L_WRSAC:	CLR	L_CS
		MOV	L_COUNT,#03H
		MOV	L_BUFF,#10100000B	;WRITE INSTU 101
		LCALL	L_WRCBIT

		MOV	L_BUFF,L_BUFF1		;SEG地址
		LCALL	L_WRSEG
L_WRSAC1:	MOV	L_COUNT,#04H
		MOV	L_BUFF,L_BUFF2		;COM地址,高四位有效,ACC.7-ACC.4对应D0-D3
		LCALL	L_WRCBIT
		DJNZ	L_COUNT1,L_WRSAC1
		SETB	L_CS
		RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;写9位,先写L_JBBIT位,再写ACC.7-ACC.0
L_WR9BIT:	LCALL	L_WRBIT
		MOV	L_COUNT,#08H
		LCALL	L_WRCBIT
		RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;写L_COUNT位,先写ACC.7位
L_WRCBIT:	PUSH	ACC
		MOV	A,L_BUFF
L_WRCBIT1:	JB	ACC.7,L_WRCBIT2
		CLR	L_JBBIT
		AJMP	L_WRCBIT3
L_WRCBIT2:	SETB	L_JBBIT
L_WRCBIT3:	LCALL	L_WRBIT
		RL	A
		DJNZ	L_COUNT,L_WRCBIT1
		POP	ACC
		RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;写SEG地址,低6位有效,ACC.5-ACC.0对应A5-A0
L_WRSEG:	PUSH	ACC
		MOV	L_COUNT,#06H
		MOV	A,L_BUFF
L_WRSEG1:	JB	ACC.5,L_WRSEG2
		CLR	L_JBBIT
		AJMP	L_WRSEG3
L_WRSEG2:	SETB	L_JBBIT
L_WRSEG3:	LCALL	L_WRBIT
		RL	A
		DJNZ	L_COUNT,L_WRSEG1
		POP	ACC
		RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;写1位
L_WRBIT:	CLR	L_WR
		JNB	L_JBBIT,L_WRBIT1
		SETB	L_DATA
		AJMP	L_WRBIT2
L_WRBIT1:	CLR	L_DATA
L_WRBIT2:	SETB	L_WR
		RET
;**************************************************
DELAY1:		MOV	R5,#6H
DEL11:		MOV	R6,#0FFH
DEL12:		MOV	R7,#0FFH
DEL13:		DJNZ	R7,DEL13
		DJNZ	R6,DEL12
		DJNZ	R5,DEL11
		RET
		
DELAY10:	MOV	R5,#3H
DEL110:		MOV	R6,#0FFH
DEL120:		MOV	R7,#0FFH
DEL130:		DJNZ	R7,DEL130
		DJNZ	R6,DEL120
		DJNZ	R5,DEL110
		RET
;**************************************************
		END
		

⌨️ 快捷键说明

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