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

📄 mylcd.asm

📁 这是符合国家一级汉字标准的汉字显示液晶模块程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	xch	a,x						;[INF] 1, 4
	xor	a,a						;[INF] 2, 4
	call	!_BitsReverse					;[INF] 3, 6
	mov	a,c						;[INF] 2, 4
	mov	P8,a						;[INF] 2, 4
; line   244
$DGL	0,15
	call	!_Delay100us					;[INF] 3, 6
; line   246
$DGL	0,17
	clr1	P0.0						;[INF] 3, 6
; line   248
$DGL	0,19
	mov	P8,#00H	; 0 					;[INF] 3, 6
; line   249
$DGL	0,20
??ef_LcdWriteCommandD:
	pop	ax						;[INF] 1, 6
	pop	hl						;[INF] 1, 6
	ret							;[INF] 1, 6
??ee_LcdWriteCommandD:
; line   256
_LcdWriteDataU:
$DGL	1,85
	push	hl						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	movw	ax,sp						;[INF] 2, 6
	movw	hl,ax						;[INF] 1, 4
??bf_LcdWriteDataU:
; line   257
$DGL	0,2
	call	!_WaitForEnableU				;[INF] 3, 6
; line   259
$DGL	0,4
	nop							;[INF] 1, 2
; line   261
$DGL	0,6
	set1	P9.1						;[INF] 3, 6
; line   262
$DGL	0,7
	clr1	P9.2						;[INF] 3, 6
; line   263
$DGL	0,8
	set1	P9.3						;[INF] 3, 6
; line   265
$DGL	0,10
	nop							;[INF] 1, 2
; line   266
$DGL	0,11
	nop							;[INF] 1, 2
; line   267
$DGL	0,12
	nop							;[INF] 1, 2
; line   268
$DGL	0,13
	nop							;[INF] 1, 2
; line   270
$DGL	0,15
	mov	a,[hl]	; dataW 				;[INF] 1, 6
	xch	a,x						;[INF] 1, 4
	xor	a,a						;[INF] 2, 4
	call	!_BitsReverse					;[INF] 3, 6
	mov	a,c						;[INF] 2, 4
	mov	P8,a						;[INF] 2, 4
; line   272
$DGL	0,17
	call	!_Delay100us					;[INF] 3, 6
; line   274
$DGL	0,19
	nop							;[INF] 1, 2
; line   275
$DGL	0,20
	nop							;[INF] 1, 2
; line   276
$DGL	0,21
	nop							;[INF] 1, 2
; line   277
$DGL	0,22
	nop							;[INF] 1, 2
; line   279
$DGL	0,24
	clr1	P9.3						;[INF] 3, 6
; line   281
$DGL	0,26
	nop							;[INF] 1, 2
; line   283
$DGL	0,28
	mov	P8,#00H	; 0 					;[INF] 3, 6
; line   284
$DGL	0,29
??ef_LcdWriteDataU:
	pop	ax						;[INF] 1, 6
	pop	hl						;[INF] 1, 6
	ret							;[INF] 1, 6
??ee_LcdWriteDataU:
; line   288
_LcdWriteDataD:
$DGL	1,92
	push	hl						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	movw	ax,sp						;[INF] 2, 6
	movw	hl,ax						;[INF] 1, 4
??bf_LcdWriteDataD:
; line   289
$DGL	0,2
	call	!_WaitForEnableD				;[INF] 3, 6
; line   291
$DGL	0,4
	nop							;[INF] 1, 2
; line   293
$DGL	0,6
	set1	P9.1						;[INF] 3, 6
; line   294
$DGL	0,7
	clr1	P9.2						;[INF] 3, 6
; line   295
$DGL	0,8
	set1	P0.0						;[INF] 3, 6
; line   297
$DGL	0,10
	nop							;[INF] 1, 2
; line   299
$DGL	0,12
	mov	a,[hl]	; dataW 				;[INF] 1, 6
	xch	a,x						;[INF] 1, 4
	xor	a,a						;[INF] 2, 4
	call	!_BitsReverse					;[INF] 3, 6
	mov	a,c						;[INF] 2, 4
	mov	P8,a						;[INF] 2, 4
; line   301
$DGL	0,14
	call	!_Delay100us					;[INF] 3, 6
; line   303
$DGL	0,16
	clr1	P0.0						;[INF] 3, 6
; line   305
$DGL	0,18
	mov	P8,#00H	; 0 					;[INF] 3, 6
; line   306
$DGL	0,19
??ef_LcdWriteDataD:
	pop	ax						;[INF] 1, 6
	pop	hl						;[INF] 1, 6
	ret							;[INF] 1, 6
??ee_LcdWriteDataD:
; line   312
_WaitForEnableU:
$DGL	1,99
??bf_WaitForEnableU:
; line   318
$DGL	0,7
	clr1	P9.1						;[INF] 3, 6
; line   319
$DGL	0,8
	set1	P9.2						;[INF] 3, 6
; line   320
$DGL	0,9
	set1	P9.3						;[INF] 3, 6
; line   322
$DGL	0,11
	nop							;[INF] 1, 2
; line   323
$DGL	0,12
?L0030:
	bf	P8.0,$?L0031					;[INF] 4,10
; line   324
$DGL	0,13
??bb00_WaitForEnableU:
??eb00_WaitForEnableU:
	br	$?L0030						;[INF] 2, 6
?L0031:
; line   327
$DGL	0,16
	clr1	P9.3						;[INF] 3, 6
; line   333
$DGL	0,22
??ef_WaitForEnableU:
	ret							;[INF] 1, 6
??ee_WaitForEnableU:
; line   337
_WaitForEnableD:
$DGL	1,109
??bf_WaitForEnableD:
; line   343
$DGL	0,7
	clr1	P9.1						;[INF] 3, 6
; line   344
$DGL	0,8
	set1	P9.2						;[INF] 3, 6
; line   345
$DGL	0,9
	set1	P0.0						;[INF] 3, 6
; line   347
$DGL	0,11
?L0034:
	bf	P8.0,$?L0035					;[INF] 4,10
; line   348
$DGL	0,12
??bb00_WaitForEnableD:
??eb00_WaitForEnableD:
	br	$?L0034						;[INF] 2, 6
?L0035:
; line   351
$DGL	0,15
	clr1	P0.0						;[INF] 3, 6
; line   357
$DGL	0,21
??ef_WaitForEnableD:
	ret							;[INF] 1, 6
??ee_WaitForEnableD:
; line   361
_Delay100us:
$DGL	1,119
??bf_Delay100us:
; line   362
$DGL	0,2
	nop							;[INF] 1, 2
; line   363
$DGL	0,3
	nop							;[INF] 1, 2
; line   364
$DGL	0,4
	nop							;[INF] 1, 2
; line   365
$DGL	0,5
	nop							;[INF] 1, 2
; line   366
$DGL	0,6
	nop							;[INF] 1, 2
; line   367
$DGL	0,7
	nop							;[INF] 1, 2
; line   368
$DGL	0,8
	nop							;[INF] 1, 2
; line   369
$DGL	0,9
	nop							;[INF] 1, 2
; line   370
$DGL	0,10
	nop							;[INF] 1, 2
; line   371
$DGL	0,11
	nop							;[INF] 1, 2
; line   372
$DGL	0,12
	nop							;[INF] 1, 2
; line   373
$DGL	0,13
	nop							;[INF] 1, 2
; line   374
$DGL	0,14
	nop							;[INF] 1, 2
; line   375
$DGL	0,15
	nop							;[INF] 1, 2
; line   376
$DGL	0,16
	nop							;[INF] 1, 2
; line   377
$DGL	0,17
??ef_Delay100us:
	ret							;[INF] 1, 6
??ee_Delay100us:
; line   381
_Delay100ms:
$DGL	1,125
	push	hl						;[INF] 1, 4
	movw	ax,#02H						;[INF] 3, 6
	callt	[_@cprep]					;[INF] 1, 8
??bf_Delay100ms:
; line   385
$DGL	0,5
	xor	a,a						;[INF] 2, 4
	mov	[hl+1],a	; j 				;[INF] 2, 6
?L0040:
	mov	a,[hl+1]	; j 				;[INF] 2, 6
	cmp	a,#04H	; 4 					;[INF] 2, 4
	bnc	$?L0041						;[INF] 2, 6
; line   386
$DGL	0,6
??bb00_Delay100ms:
; line   387
$DGL	0,7
	xor	a,a						;[INF] 2, 4
	mov	[hl],a	; k 					;[INF] 1, 6
?L0043:
	mov	a,[hl]	; k 					;[INF] 1, 6
	cmp	a,#0FAH	; 250 					;[INF] 2, 4
	bnc	$?L0044						;[INF] 2, 6
; line   388
$DGL	0,8
??bb01_Delay100ms:
; line   389
$DGL	0,9
	call	!_Delay100us					;[INF] 3, 6
??eb01_Delay100ms:
; line   390
$DGL	0,10
	mov	a,[hl]	; k 					;[INF] 1, 6
	inc	a						;[INF] 2, 4
	xch	a,[hl]	; k 					;[INF] 1, 8
	br	$?L0043						;[INF] 2, 6
?L0044:
??eb00_Delay100ms:
; line   391
$DGL	0,11
	mov	a,[hl+1]	; j 				;[INF] 2, 6
	inc	a						;[INF] 2, 4
	xch	a,[hl+1]	; j 				;[INF] 2, 8
	br	$?L0040						;[INF] 2, 6
?L0041:
; line   392
$DGL	0,12
??ef_Delay100ms:
	pop	ax						;[INF] 1, 6
	pop	hl						;[INF] 1, 6
	ret							;[INF] 1, 6
??ee_Delay100ms:
; line   395
_Delay2s:
$DGL	1,141
	push	hl						;[INF] 1, 4
	movw	ax,#02H						;[INF] 3, 6
	callt	[_@cprep]					;[INF] 1, 8
??bf_Delay2s:
; line   398
$DGL	0,4
	xor	a,a						;[INF] 2, 4
	mov	[hl+1],a	; j 				;[INF] 2, 6
?L0048:
	mov	a,[hl+1]	; j 				;[INF] 2, 6
	cmp	a,#04H	; 4 					;[INF] 2, 4
	bnc	$?L0049						;[INF] 2, 6
; line   399
$DGL	0,5
??bb00_Delay2s:
; line   400
$DGL	0,6
	xor	a,a						;[INF] 2, 4
	mov	[hl],a	; k 					;[INF] 1, 6
?L0051:
	mov	a,[hl]	; k 					;[INF] 1, 6
	cmp	a,#05H	; 5 					;[INF] 2, 4
	bnc	$?L0052						;[INF] 2, 6
; line   401
$DGL	0,7
??bb01_Delay2s:
; line   402
$DGL	0,8
	call	!_Delay100ms					;[INF] 3, 6
??eb01_Delay2s:
; line   403
$DGL	0,9
	mov	a,[hl]	; k 					;[INF] 1, 6
	inc	a						;[INF] 2, 4
	xch	a,[hl]	; k 					;[INF] 1, 8
	br	$?L0051						;[INF] 2, 6
?L0052:
??eb00_Delay2s:
; line   404
$DGL	0,10
	mov	a,[hl+1]	; j 				;[INF] 2, 6
	inc	a						;[INF] 2, 4
	xch	a,[hl+1]	; j 				;[INF] 2, 8
	br	$?L0048						;[INF] 2, 6
?L0049:
; line   405
$DGL	0,11
??ef_Delay2s:
	pop	ax						;[INF] 1, 6
	pop	hl						;[INF] 1, 6
	ret							;[INF] 1, 6
??ee_Delay2s:
; line   420
_BitsReverse:
$DGL	1,157
	push	hl						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	movw	ax,#02H						;[INF] 3, 6
	callt	[_@cprep]					;[INF] 1, 8
??bf_BitsReverse:
; line   424
$DGL	0,5
	xor	a,a						;[INF] 2, 4
	mov	[hl+1],a	; result 			;[INF] 2, 6
; line   426
$DGL	0,7
	mov	[hl],a	; i 					;[INF] 1, 6
?L0056:
	mov	a,[hl]	; i 					;[INF] 1, 6
	cmp	a,#08H	; 8 					;[INF] 2, 4
	bnc	$?L0057						;[INF] 2, 6
; line   427
$DGL	0,8
??bb00_BitsReverse:
; line   428
$DGL	0,9
	mov	a,[hl+1]	; result 			;[INF] 2, 6
	add	a,a						;[INF] 2, 4
	mov	c,a						;[INF] 2, 4
	mov	a,[hl+2]	; value 			;[INF] 2, 6
	and	a,#01H	; 1 					;[INF] 2, 4
	or	a,c						;[INF] 2, 4
	mov	[hl+1],a	; result 			;[INF] 2, 6
; line   430
$DGL	0,11
	mov	a,[hl+2]	; value 			;[INF] 2, 6
	clr1	CY						;[INF] 1, 2
	rorc	a,1						;[INF] 1, 2
	mov	[hl+2],a	; value 			;[INF] 2, 6
??eb00_BitsReverse:
; line   431
$DGL	0,12
	mov	a,[hl]	; i 					;[INF] 1, 6
	inc	a						;[INF] 2, 4
	xch	a,[hl]	; i 					;[INF] 1, 8
	br	$?L0056						;[INF] 2, 6
?L0057:
; line   433
$DGL	0,14
	mov	a,[hl+1]	; result 			;[INF] 2, 6
	xch	a,x						;[INF] 1, 4
	xor	a,a						;[INF] 2, 4
	movw	bc,ax						;[INF] 1, 4
; line   434
$DGL	0,15
??ef_BitsReverse:
	pop	ax						;[INF] 1, 6
	pop	ax						;[INF] 1, 6
	pop	hl						;[INF] 1, 6
	ret							;[INF] 1, 6
??ee_BitsReverse:
	END


; *** Code Information ***
;
; $FILE E:\InProgSum4\MyLcd.c
;
; $FUNC LcdReset(41)
;	void=(void)
;	CODE SIZE= 51 bytes, CLOCK_SIZE= 130 clocks, STACK_SIZE= 4 bytes
;
; $CALL Delay100ms(61)
;	void=(void)
;
; $CALL LcdWriteCommandU(63)
;	void=(int:ax, int:[sp+2])
;
; $CALL LcdWriteCommandD(64)
;	void=(int:ax, int:[sp+2])
;
; $CALL Delay100us(66)
;	void=(void)
;
; $CALL LcdWriteCommandU(68)
;	void=(int:ax, int:[sp+2])
;
; $CALL LcdWriteCommandD(69)
;	void=(int:ax, int:[sp+2])
;
; $FUNC DisplayStr(90)
;	void=(unsigned char x:x, unsigned char y:[sp+2], pointer ptr:[sp+4])
;	CODE SIZE= 82 bytes, CLOCK_SIZE= 276 clocks, STACK_SIZE= 12 bytes
;
; $CALL LocateXY(108)
;	void=(int:ax, int:[sp+2])
;
; $CALL LcdWriteDataU(113)
;	void=(int:ax)
;
; $FUNC DispOneChar(154)
;	void=(unsigned char x:x, unsigned char y:[sp+2], 
;	      unsigned char Wdata:[sp+4])
;	CODE SIZE= 24 bytes, CLOCK_SIZE= 100 clocks, STACK_SIZE= 8 bytes
;
; $CALL LocateXY(156)
;	void=(int:ax, int:[sp+2])
;
; $CALL LcdWriteDataU(158)
;	void=(int:ax)
;
; $FUNC LocateXY(167)
;	void=(char posx:x, char posy:[sp+2])
;	CODE SIZE= 49 bytes, CLOCK_SIZE= 152 clocks, STACK_SIZE= 10 bytes
;
; $CALL LcdWriteCommandU(183)
;	void=(int:ax, int:[sp+2])
;
; $FUNC LcdWriteCommandU(194)
;	void=(unsigned char cmd:x, unsigned char attribBusyFlg:[sp+2])
;	CODE SIZE= 56 bytes, CLOCK_SIZE= 142 clocks, STACK_SIZE= 6 bytes
;
; $CALL WaitForEnableU(198)
;	void=(void)
;
; $CALL BitsReverse(212)
;	bc=(int:ax)
;
; $CALL Delay100us(214)
;	void=(void)
;
; $FUNC LcdWriteCommandD(230)
;	void=(unsigned char cmd:x, unsigned char attribBusyFlg:[sp+2])
;	CODE SIZE= 47 bytes, CLOCK_SIZE= 124 clocks, STACK_SIZE= 6 bytes
;
; $CALL WaitForEnableD(233)
;	void=(void)
;
; $CALL BitsReverse(242)
;	bc=(int:ax)
;
; $CALL Delay100us(244)
;	void=(void)
;
; $FUNC LcdWriteDataU(256)
;	void=(char dataW:x)
;	CODE SIZE= 50 bytes, CLOCK_SIZE= 126 clocks, STACK_SIZE= 6 bytes
;
; $CALL WaitForEnableU(257)
;	void=(void)
;
; $CALL BitsReverse(270)
;	bc=(int:ax)
;
; $CALL Delay100us(272)
;	void=(void)
;
; $FUNC LcdWriteDataD(288)
;	void=(char dataW:x)
;	CODE SIZE= 42 bytes, CLOCK_SIZE= 110 clocks, STACK_SIZE= 6 bytes
;
; $CALL WaitForEnableD(289)
;	void=(void)
;
; $CALL BitsReverse(299)
;	bc=(int:ax)
;
; $CALL Delay100us(301)
;	void=(void)
;
; $FUNC WaitForEnableU(312)
;	void=(void)
;	CODE SIZE= 20 bytes, CLOCK_SIZE= 48 clocks, STACK_SIZE= 0 bytes
;
; $FUNC WaitForEnableD(337)
;	void=(void)
;	CODE SIZE= 19 bytes, CLOCK_SIZE= 46 clocks, STACK_SIZE= 0 bytes
;
; $FUNC Delay100us(361)
;	void=(void)
;	CODE SIZE= 16 bytes, CLOCK_SIZE= 36 clocks, STACK_SIZE= 0 bytes
;
; $FUNC Delay100ms(381)
;	void=(void)
;	CODE SIZE= 43 bytes, CLOCK_SIZE= 142 clocks, STACK_SIZE= 6 bytes
;
; $CALL Delay100us(389)
;	void=(void)
;
; $FUNC Delay2s(395)
;	void=(void)
;	CODE SIZE= 43 bytes, CLOCK_SIZE= 142 clocks, STACK_SIZE= 6 bytes
;
; $CALL Delay100ms(402)
;	void=(void)
;
; $FUNC BitsReverse(420)
;	bc=(unsigned char value:x)
;	CODE SIZE= 52 bytes, CLOCK_SIZE= 170 clocks, STACK_SIZE= 8 bytes

; Target chip : uPD78F9418
; Device file : V1.02 

⌨️ 快捷键说明

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