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

📄 mylcd.asm

📁 这是符合国家一级汉字标准的汉字显示液晶模块程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	mov	a,[hl+6]	; attribBusyFlg 		;[INF] 2, 6
	cmp	a,#00H	; 0 					;[INF] 2, 4
	bz	$?L0022						;[INF] 2, 6
; line   221
$DGL	0,3
??bb00_LcdWriteCommandD:
; line   222
$DGL	0,4
	call	!_WaitForEnableD				;[INF] 3, 6
??eb00_LcdWriteCommandD:
?L0022:
; line   225
$DGL	0,7
	clr1	P9.1						;[INF] 3, 6
; line   226
$DGL	0,8
	clr1	P9.2						;[INF] 3, 6
; line   227
$DGL	0,9
	set1	P0.0						;[INF] 3, 6
; line   229
$DGL	0,11
	mov	a,[hl]	; cmd 					;[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   231
$DGL	0,13
	call	!_Delay100us					;[INF] 3, 6
; line   233
$DGL	0,15
	clr1	P0.0						;[INF] 3, 6
; line   235
$DGL	0,17
	mov	P8,#00H	; 0 					;[INF] 3, 6
; line   236
$DGL	0,18
??ef_LcdWriteCommandD:
	pop	ax						;[INF] 1, 6
	pop	hl						;[INF] 1, 6
	ret							;[INF] 1, 6
??ee_LcdWriteCommandD:
; line   243
_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   244
$DGL	0,2
	call	!_WaitForEnableU				;[INF] 3, 6
; line   246
$DGL	0,4
	nop							;[INF] 1, 2
; line   248
$DGL	0,6
	set1	P9.1						;[INF] 3, 6
; line   249
$DGL	0,7
	clr1	P9.2						;[INF] 3, 6
; line   250
$DGL	0,8
	set1	P9.3						;[INF] 3, 6
; line   252
$DGL	0,10
	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   254
$DGL	0,12
	call	!_Delay100us					;[INF] 3, 6
; line   256
$DGL	0,14
	nop							;[INF] 1, 2
; line   258
$DGL	0,16
	clr1	P9.3						;[INF] 3, 6
; line   260
$DGL	0,18
	nop							;[INF] 1, 2
; line   262
$DGL	0,20
	mov	P8,#00H	; 0 					;[INF] 3, 6
; line   263
$DGL	0,21
??ef_LcdWriteDataU:
	pop	ax						;[INF] 1, 6
	pop	hl						;[INF] 1, 6
	ret							;[INF] 1, 6
??ee_LcdWriteDataU:
; line   267
_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   268
$DGL	0,2
	call	!_WaitForEnableD				;[INF] 3, 6
; line   270
$DGL	0,4
	nop							;[INF] 1, 2
; line   272
$DGL	0,6
	set1	P9.1						;[INF] 3, 6
; line   273
$DGL	0,7
	clr1	P9.2						;[INF] 3, 6
; line   274
$DGL	0,8
	set1	P0.0						;[INF] 3, 6
; line   276
$DGL	0,10
	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   278
$DGL	0,12
	call	!_Delay100us					;[INF] 3, 6
; line   280
$DGL	0,14
	clr1	P0.0						;[INF] 3, 6
; line   282
$DGL	0,16
	mov	P8,#00H	; 0 					;[INF] 3, 6
; line   283
$DGL	0,17
??ef_LcdWriteDataD:
	pop	ax						;[INF] 1, 6
	pop	hl						;[INF] 1, 6
	ret							;[INF] 1, 6
??ee_LcdWriteDataD:
; line   289
_WaitForEnableU:
$DGL	1,99
??bf_WaitForEnableU:
; line   295
$DGL	0,7
	clr1	P9.1						;[INF] 3, 6
; line   296
$DGL	0,8
	set1	P9.2						;[INF] 3, 6
; line   297
$DGL	0,9
	set1	P9.3						;[INF] 3, 6
; line   299
$DGL	0,11
?L0030:
	bf	P8.0,$?L0031					;[INF] 4,10
; line   300
$DGL	0,12
??bb00_WaitForEnableU:
??eb00_WaitForEnableU:
	br	$?L0030						;[INF] 2, 6
?L0031:
; line   303
$DGL	0,15
	clr1	P9.3						;[INF] 3, 6
; line   309
$DGL	0,21
??ef_WaitForEnableU:
	ret							;[INF] 1, 6
??ee_WaitForEnableU:
; line   313
_WaitForEnableD:
$DGL	1,109
??bf_WaitForEnableD:
; line   319
$DGL	0,7
	clr1	P9.1						;[INF] 3, 6
; line   320
$DGL	0,8
	set1	P9.2						;[INF] 3, 6
; line   321
$DGL	0,9
	set1	P0.0						;[INF] 3, 6
; line   323
$DGL	0,11
?L0034:
	bf	P8.0,$?L0035					;[INF] 4,10
; line   324
$DGL	0,12
??bb00_WaitForEnableD:
??eb00_WaitForEnableD:
	br	$?L0034						;[INF] 2, 6
?L0035:
; line   327
$DGL	0,15
	clr1	P0.0						;[INF] 3, 6
; line   333
$DGL	0,21
??ef_WaitForEnableD:
	ret							;[INF] 1, 6
??ee_WaitForEnableD:
; line   337
_Delay100us:
$DGL	1,119
??bf_Delay100us:
; line   338
$DGL	0,2
	nop							;[INF] 1, 2
; line   339
$DGL	0,3
	nop							;[INF] 1, 2
; line   340
$DGL	0,4
	nop							;[INF] 1, 2
; line   341
$DGL	0,5
	nop							;[INF] 1, 2
; line   342
$DGL	0,6
	nop							;[INF] 1, 2
; line   343
$DGL	0,7
	nop							;[INF] 1, 2
; line   344
$DGL	0,8
	nop							;[INF] 1, 2
; line   345
$DGL	0,9
	nop							;[INF] 1, 2
; line   346
$DGL	0,10
	nop							;[INF] 1, 2
; line   347
$DGL	0,11
	nop							;[INF] 1, 2
; line   348
$DGL	0,12
	nop							;[INF] 1, 2
; line   349
$DGL	0,13
	nop							;[INF] 1, 2
; line   350
$DGL	0,14
	nop							;[INF] 1, 2
; line   351
$DGL	0,15
	nop							;[INF] 1, 2
; line   352
$DGL	0,16
	nop							;[INF] 1, 2
; line   353
$DGL	0,17
??ef_Delay100us:
	ret							;[INF] 1, 6
??ee_Delay100us:
; line   357
_Delay100ms:
$DGL	1,125
	push	hl						;[INF] 1, 4
	movw	ax,#02H						;[INF] 3, 6
	callt	[_@cprep]					;[INF] 1, 8
??bf_Delay100ms:
; line   361
$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   362
$DGL	0,6
??bb00_Delay100ms:
; line   363
$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   364
$DGL	0,8
??bb01_Delay100ms:
; line   365
$DGL	0,9
	call	!_Delay100us					;[INF] 3, 6
??eb01_Delay100ms:
; line   366
$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   367
$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   368
$DGL	0,12
??ef_Delay100ms:
	pop	ax						;[INF] 1, 6
	pop	hl						;[INF] 1, 6
	ret							;[INF] 1, 6
??ee_Delay100ms:
; line   383
_BitsReverse:
$DGL	1,141
	push	hl						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	movw	ax,#02H						;[INF] 3, 6
	callt	[_@cprep]					;[INF] 1, 8
??bf_BitsReverse:
; line   387
$DGL	0,5
	xor	a,a						;[INF] 2, 4
	mov	[hl+1],a	; result 			;[INF] 2, 6
; line   389
$DGL	0,7
	mov	[hl],a	; i 					;[INF] 1, 6
?L0048:
	mov	a,[hl]	; i 					;[INF] 1, 6
	cmp	a,#08H	; 8 					;[INF] 2, 4
	bnc	$?L0049						;[INF] 2, 6
; line   390
$DGL	0,8
??bb00_BitsReverse:
; line   391
$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   393
$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   394
$DGL	0,12
	mov	a,[hl]	; i 					;[INF] 1, 6
	inc	a						;[INF] 2, 4
	xch	a,[hl]	; i 					;[INF] 1, 8
	br	$?L0048						;[INF] 2, 6
?L0049:
; line   396
$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   397
$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:\InProgSum\MyLcd.c
;
; $FUNC LcdReset(40)
;	void=(void)
;	CODE SIZE= 48 bytes, CLOCK_SIZE= 124 clocks, STACK_SIZE= 4 bytes
;
; $CALL LcdWriteCommandU(60)
;	void=(int:ax, int:[sp+2])
;
; $CALL LcdWriteCommandD(61)
;	void=(int:ax, int:[sp+2])
;
; $CALL Delay100us(63)
;	void=(void)
;
; $CALL LcdWriteCommandU(65)
;	void=(int:ax, int:[sp+2])
;
; $CALL LcdWriteCommandD(66)
;	void=(int:ax, int:[sp+2])
;
; $FUNC DisplayStr(87)
;	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(105)
;	void=(int:ax, int:[sp+2])
;
; $CALL LcdWriteDataU(110)
;	void=(int:ax)
;
; $FUNC DispOneChar(151)
;	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(153)
;	void=(int:ax, int:[sp+2])
;
; $CALL LcdWriteDataU(155)
;	void=(int:ax)
;
; $FUNC LocateXY(164)
;	void=(char posx:x, char posy:[sp+2])
;	CODE SIZE= 49 bytes, CLOCK_SIZE= 152 clocks, STACK_SIZE= 10 bytes
;
; $CALL LcdWriteCommandU(180)
;	void=(int:ax, int:[sp+2])
;
; $FUNC LcdWriteCommandU(191)
;	void=(unsigned char cmd:x, unsigned char attribBusyFlg:[sp+2])
;	CODE SIZE= 49 bytes, CLOCK_SIZE= 128 clocks, STACK_SIZE= 6 bytes
;
; $CALL WaitForEnableU(195)
;	void=(void)
;
; $CALL BitsReverse(204)
;	bc=(int:ax)
;
; $CALL Delay100us(206)
;	void=(void)
;
; $FUNC LcdWriteCommandD(219)
;	void=(unsigned char cmd:x, unsigned char attribBusyFlg:[sp+2])
;	CODE SIZE= 46 bytes, CLOCK_SIZE= 122 clocks, STACK_SIZE= 6 bytes
;
; $CALL WaitForEnableD(222)
;	void=(void)
;
; $CALL BitsReverse(229)
;	bc=(int:ax)
;
; $CALL Delay100us(231)
;	void=(void)
;
; $FUNC LcdWriteDataU(243)
;	void=(char dataW:x)
;	CODE SIZE= 43 bytes, CLOCK_SIZE= 112 clocks, STACK_SIZE= 6 bytes
;
; $CALL WaitForEnableU(244)
;	void=(void)
;
; $CALL BitsReverse(252)
;	bc=(int:ax)
;
; $CALL Delay100us(254)
;	void=(void)
;
; $FUNC LcdWriteDataD(267)
;	void=(char dataW:x)
;	CODE SIZE= 41 bytes, CLOCK_SIZE= 108 clocks, STACK_SIZE= 6 bytes
;
; $CALL WaitForEnableD(268)
;	void=(void)
;
; $CALL BitsReverse(276)
;	bc=(int:ax)
;
; $CALL Delay100us(278)
;	void=(void)
;
; $FUNC WaitForEnableU(289)
;	void=(void)
;	CODE SIZE= 19 bytes, CLOCK_SIZE= 46 clocks, STACK_SIZE= 0 bytes
;
; $FUNC WaitForEnableD(313)
;	void=(void)
;	CODE SIZE= 19 bytes, CLOCK_SIZE= 46 clocks, STACK_SIZE= 0 bytes
;
; $FUNC Delay100us(337)
;	void=(void)
;	CODE SIZE= 16 bytes, CLOCK_SIZE= 36 clocks, STACK_SIZE= 0 bytes
;
; $FUNC Delay100ms(357)
;	void=(void)
;	CODE SIZE= 43 bytes, CLOCK_SIZE= 142 clocks, STACK_SIZE= 6 bytes
;
; $CALL Delay100us(365)
;	void=(void)
;
; $FUNC BitsReverse(383)
;	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 + -