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

📄 lcd.asm

📁 FE42X单相防窃电电表DEMO(编译器 AQ430 AQ430 V2.0.6.5)
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	.long 0x19
	.long DBG259
	.long 0x1a
	.long DBG260
	.long 0x1b
	.long DBG261
	.long 0x1c
	.long DBG262
	.long 0x1d
	.long DBG263
	.long 0x1e
	.long DBG264
	.long 0x1f
	.long DBG265
	.long 0x20
	.long DBG266
	.long 0x21
	.long DBG267
	.long 0x22
	.long DBG268
	.long 0x23
	.long DBG269
	.long 0x24
	.long DBG270
	.long 0x25
	.long DBG271
	.long 0x26
	.long DBG272
	.long 0x27
	.long DBG273
	.long 0x28
	.long DBG274
	.long 0x29
	.long DBG277
	.long 0x2c
	.long DBG278
	.long 0x2d
	.long DBG279
	.long 0x2e
	.long DBG280
	.long 0x2f
	.long DBG282
	.long 0x30
	.long DBG283
	.long 0x31
	.long DBG284
	.long 0x33
	.long DBG285
	.long 0x34
	.long DBG286
	.long 0x35
	.long DBG287
	.long 0x36
	.long DBG288
	.long 0x37
	.long DBG289
	.long 0x38
	.long DBG290
	.long 0x39
	.long DBG291
	.long 0x3a
	.long DBG292
	.long 0x3b
	.long DBG293
	.long 0x3c
	.long DBG294
	.long 0x3d
	.long DBG295
	.long 0x3e
	.long DBG296
	.long 0x3f
	.long DBG297
	.long 0x40
	.long DBG298
	.long 0x41
	.long DBG299
	.long 0x42
	.long DBG300
	.long 0x43
	.long DBG301
	.long 0x44
	.long DBG302
	.long 0x4b
	.long DBG303
	.long 0x4c
	.long DBG304
	.long 0x4d
	.long DBG305
	.long 0x4e
	.long DBG306
	.long 0x4f
	.long DBG307
	.long 0x50
	.long DBG308
	.long 0x51
	.long DBG309
	.long 0x57
	.long DBG310
	.long 0x58
	.long DBG311
	.long 0x59
	.long DBG312
	.long 0x5a
	.long DBG313
	.long 0x5b
	.long DBG314
	.long 0x5c
	.long DBG315
	.long 0x5d
	.long DBG316
	.long 0x5e
	.long DBG317
	.long 0x5f
	.long DBG318
	.long 0x60
	.long DBG319
	.long 0x61
	.long DBG320
	.long 0x62
	.long DBG321
	.long 0x63
	.long DBG322
	.long 0x64
	.long DBG323
	.long 0x65
	.long DBG324
	.long 0x66
	.long DBG325
	.long 0x67
	.long DBG326
	.long 0x68
	.long DBG327
	.long 0x69
	.long DBG328
	.long 0x6a
	.long DBG329
	.long 0x6b
	.long DBG331
	.long 0x6c
	.long DBG332
	.long 0x6d
	.long DBG333
	.long 0x6e
	.long DBG334
	.long 0x6f
	.long DBG335
	.long 0x70
	.long DBG336
	.long 0x71
	.long DBG337
	.long 0x72
	.long DBG338
	.long 0x73
	.long DBG339
	.long 0x74
	.long DBG340
	.long 0x75
	.long DBG341
	.long 0x76
	.long DBG342
	.long 0x77
	.long DBG343
	.long 0x78
	.long DBG344
	.long 0x79
	.long DBG345
	.long 0x7a
	.long DBG346
	.long 0x7b
	.long DBG347
	.long 0x7c
	.long DBG348
	.long 0x7d
	.long DBG349
	.long 0x7e
	.long DBG350
	.long 0x7f
	.long DBG351
	.long 0x80
	.long DBG352
	.long 0x81
	.long DBG354
	.long 0x82
	.long DBG355
	.long 0x83
	.long DBG356
	.long 0x84
	.long DBG357
	.long 0x85
	.long DBG358
	.long 0x86
	.long DBG359
	.long 0x87
	.long DBG360
	.long 0x88
	.long DBG361
	.long 0x89
	.long DBG362
	.long 0x8a
	.long DBG363
	.long 0x8b
	.long DBG364
	.long 0x8c
	.long DBG365
	.long 0x8d
	.long DBG366
	.long 0x8e
	.long DBG367
	.long 0x8f
	.long DBG368
	.long 0x90
	.long DBG369
	.long 0x91
	.long DBG370
	.long 0x92
	.long DBG371
	.long 0x93
	.long DBG372
	.long 0x94
	.long DBG373
	.long 0x95
	.long DBG374
	.long 0x96
	.long DBG375
	.long 0x98
	.long DBG376
	.long 0x99
	.long DBG377
	.long 0x9a
	.long DBG378
	.long 0x9b
	.long DBG379
	.long 0x9c
	.long DBG380
	.long 0x9d
	.long DBG381
	.long 0x9e
	.long DBG382
	.long 0x9f
	.long DBG383
	.long 0xa0
	.long DBG384
	.long 0xa1
	.long DBG385
	.long 0xa2
	.long DBG386
	.long 0xa3
	.long DBG387
	.long 0xa4
	.long DBG388
	.long 0xa5
	.long DBG389
	.long 0xa6
	.long DBG390
	.long 0xa7
	.long DBG391
	.long 0xa8
	.long DBG392
	.long 0xa9
	.long DBG393
	.long 0xaa
	.long DBG394
	.long 0xab
	.long DBG395
	.long 0xac
	.long DBG396
	.long 0xad
	.long DBG397
	.long 0xae
	.long DBG398
	.long 0xaf
	.long DBG399
	.long 0xb0
	.long DBG400
	.long 0xb1
	.long DBG401
	.long 0xb2
	.long DBG402
	.long 0xb3
	.long DBG403
	.long 0xb4
	.long DBG404
	.long 0xb5
	.long DBG405
	.long 0xb7
	.long DBG406
	.long 0xb8
	.long DBG407
	.long 0xb9
	.long DBG408
	.long 0xba
	.long DBG409
	.long 0xbb
	.long DBG410
	.long 0xbc
	.long DBG411
	.long 0xbd
	.long DBG412
	.long 0xbe
	.long DBG413
	.long 0xbf
	.long DBG414
	.long 0xc0
	.long DBG415
	.long 0xc1
	.long DBG416
	.long 0xc2
	.long DBG417
	.long 0xc3
	.long DBG418
	.long 0xc4
	.long DBG419
	.long 0xc5
	.long DBG420
	.long 0xc6
	.long DBG421
	.long 0xc7
	.long DBG422
	.long 0xc8
	.long DBG423
	.long 0xc9
	.long DBG424
	.long 0xca
	.long DBG425
	.long 0xcb
	.long DBG426
	.long 0xcc
	.long DBG427
	.long 0xcd
	.long DBG428
	.long 0xce
	.long DBG429
	.long 0xcf
	.long DBG430
	.long 0xd0
	.long DBG431
	.long 0xd1
	.long DBG432
	.long 0xd2
	.long DBG433
	.long 0xd3
	.long DBG434
	.long 0xd4
	.long DBG435
	.long 0xd5
	.long DBG436
	.long 0xd6
	.long DBG437
	.long 0xd7
	.long DBG438
	.long 0xd8
	.long DBG439
	.long 0xd9
	.long DBG440
	.long 0xda
	.long DBG441
	.long 0xdb
	.long DBG442
	.long 0xdc
	.long DBG443
	.long 0xdd
	.long DBG444
	.long 0xde
	.long DBG445
	.long 0xdf
	.long DBG446
	.long 0xe0
	.long DBG447
	.long 0xe1
	.long DBG448
	.long 0xe2
	.long DBG449
	.long 0xe3
	.long DBG450
	.long 0xe4
	.long DBG451
	.long 0xe5
	.long DBG452
	.long 0xe6
	.long DBG453
	.long 0xe7
	.long DBG454
	.long 0xe8
	.long DBG455
	.long 0xe9
	.long DBG456
	.long 0xea
	.long DBG457
	.long 0xeb
	.long DBG458
	.long 0xec
	.long DBG459
	.long 0xed
	.long DBG460
	.long 0xee
	.long DBG461
	.long 0xef
	.long DBG462
	.long 0xf1
	.long DBG463
	.long 0xf2
	.long DBG465
	.long 0xf3
	.long DBG466
	.long 0xf4
	.pseg lcd_code
	.global _update_display
_update_display:
	push	r4
	push	r5
DBG238:
DBG237:
DBG236:
; ENTRY
; skip_stage in reg  size 2
; {
; 	int skip_stage;
; 	do
update_display_L2:
; 	{
DBG239:
; 		skip_stage = 0 ;
DBG240:
	mov	#0x0,r5
DBG241:
; 		if(emeter.ucCalibrationMode != 0)
	cmp.b	#0x0,&_emeter+0x5e
	jeq	update_display_L3
DBG243:
DBG242:
;     	{ 
;     		switch(emeter.ucCalibrationOption)
	jmp	update_display_L5
DBG245:
DBG244:
;     		{
;     			case 1:   
update_display_L6:
;     				emeter.uc_display_stage = DISPLAY_STAGE_TEST1;
DBG246:
	mov.b	#0xc,&_emeter+0x6
DBG247:
;     				break;
	jmp	update_display_L19
DBG248:
;     			case 2:   
update_display_L7:
;     				emeter.uc_display_stage = DISPLAY_STAGE_TEST2;
DBG249:
	mov.b	#0xd,&_emeter+0x6
DBG250:
;     				break;
	jmp	update_display_L19
DBG251:
;     			case 3:   
update_display_L8:
;     				emeter.uc_display_stage = DISPLAY_STAGE_TEST3;
DBG252:
	mov.b	#0xe,&_emeter+0x6
DBG253:
;     				break;
	jmp	update_display_L19
DBG254:
;     			case 4:   
update_display_L9:
;     				emeter.uc_display_stage = DISPLAY_STAGE_TEST4;
DBG255:
	mov.b	#0xf,&_emeter+0x6
DBG256:
;     				break;
	jmp	update_display_L19
DBG257:
;     			case 5:   
update_display_L10:
;     				emeter.uc_display_stage = DISPLAY_STAGE_TEST5;
DBG258:
	mov.b	#0x10,&_emeter+0x6
DBG259:
;     				break;
	jmp	update_display_L19
DBG260:
;     			case 6:	  
update_display_L11:
;     				emeter.uc_display_stage = DISPLAY_STAGE_TEST6;
DBG261:
	mov.b	#0x11,&_emeter+0x6
DBG262:
;     				break;
	jmp	update_display_L19
DBG263:
;     			case 7:	  
update_display_L12:
;     				emeter.uc_display_stage = DISPLAY_STAGE_TEST7;
DBG264:
	mov.b	#0x12,&_emeter+0x6
DBG265:
;     				break;
	jmp	update_display_L19
DBG266:
;     			case 8:	  
update_display_L13:
;     				emeter.uc_display_stage = DISPLAY_STAGE_TEST8;
DBG267:
	mov.b	#0x13,&_emeter+0x6
DBG268:
;     				break;
	jmp	update_display_L19
DBG269:
;     			case 9:	  
update_display_L14:
;     				emeter.uc_display_stage = DISPLAY_STAGE_TEST9;
DBG270:
	mov.b	#0x14,&_emeter+0x6
DBG271:
;     				break;
	jmp	update_display_L19
DBG272:
;     			default:
update_display_L15:
;     				break;
DBG273:
	jmp	update_display_L19
DBG274:
update_display_L5:
	mov.b	&_emeter+0x5f,r12
; swcode: switch has 9 cases - min 1 max 9
	sub	#0x1,r12
	jl	update_display_L15
	mov	#0x8,r13
	cmp	r12,r13
	jl	update_display_L15
	rla	r12
	br	update_display_LL2(r12)
update_display_L3:
;     	else
;     	{
DBG277:
;     		if ( ++emeter.uc_display_stage >= DISPLAY_STAGE_TEST1)
DBG278:
	add.b	#0x1,&_emeter+0x6
	mov.b	&_emeter+0x6,r12
	cmp.b	#0xc,r12
	jnc	update_display_L19
DBG279:
;     			emeter.uc_display_stage = DISPLAY_STAGE_ACT_ENERGY_1;
	mov.b	#0x1,&_emeter+0x6
DBG280:
update_display_L17:
DBG281:
update_display_L16:
;     	}
; 		switch (emeter.uc_display_stage)
DBG282:
	jmp	update_display_L19
DBG284:
DBG283:
;     	{
;     	    case DISPLAY_STAGE_ACT_ENERGY_1:
update_display_L20:
;     	    {
DBG285:
;     	        clr_lcd_display();
DBG286:
	call	#_clr_lcd_display
DBG287:
;     	        LCDudec32( scale_long(emeter.ul_act_power1,emeter.f_Cz1), 0 , 6 , 2 );
	mov	&_emeter+0x3a,r15
	mov	&_emeter+0x3c,r14
	mov	&_emeter+0x24,r13
	mov	&_emeter+0x26,r12
	call	#_scale_long
	push	#0x2
	mov	#0x6,r15
	mov	#0x0,r4
	mov	r4,r14
	call	#_LCDudec32
	add	#0x2,sp
DBG288:
;                 LCDchar( ( 0x10 | 0x20 | 0x04 | 0x01 | 0x02 ) , 0);  
	mov	r4,r13
	mov.b	#0x37,r12
	call	#_LCDchar
DBG289:
;                 LCDchar( ( 0x20 | 0x40 ) , 1);
	mov	#0x1,r4
	mov	r4,r13
	mov.b	#0x60,r12
	call	#_LCDchar
DBG290:
;                 LCDicon( 5 , 1 );
	mov	r4,r13
	mov	#0x5,r12
	call	#_LCDicon
DBG291:
;             }break;
	jmp	update_display_L18
DBG292:
;        		case DISPLAY_STAGE_ACT_ENERGY_2:
update_display_L21:
;     	    {
DBG293:
;     	        clr_lcd_display();
DBG294:
	call	#_clr_lcd_display
DBG295:
;     	        LCDudec32(scale_long(emeter.ul_act_power2,emeter.f_Cz2), 0 , 6 , 2 );
	mov	&_emeter+0x3e,r15
	mov	&_emeter+0x40,r14
	mov	&_emeter+0x28,r13
	mov	&_emeter+0x2a,r12
	call	#_scale_long
	push	#0x2
	mov	#0x6,r15
	mov	#0x0,r4
	mov	r4,r14
	call	#_LCDudec32
	add	#0x2,sp
DBG296:
;                 LCDchar( ( 0x10 | 0x20 | 0x04 | 0x01 | 0x02 ) , 0); 
	mov	r4,r13
	mov.b	#0x37,r12
	call	#_LCDchar
DBG297:
;                 LCDchar( ( 0x10 | 0x20 | 0x08 | 0x04 | 0x02 ) , 1);
	mov	#0x1,r4
	mov	r4,r13
	mov.b	#0x3e,r12
	call	#_LCDchar
DBG298:
;                 LCDicon( 5 , 1 );
	mov	r4,r13
	mov	#0x5,r12
	call	#_LCDicon
DBG299:
; 			}break;
	jmp	update_display_L18
DBG300:
; 			case DISPLAY_STAGE_CURRENT:
update_display_L22:
;     	    {
DBG301:
;     	        LCDudec16( emeter.ui_current_IRMS , 0 , 6 , 2 );
DBG302:
	mov	#0x2,r15
	mov	#0x6,r14
	mov	#0x0,r4
	mov	r4,r13
	mov	&_emeter+0x14,r12
	call	#_LCDudec16
DBG303:
; 				LCDchar( ( 0x10 | 0x08 | 0x04 | 0x01 ) , 0);
	mov	r4,r13
	mov.b	#0x1d,r12
	call	#_LCDchar
DBG304:
;                 LCDchar( 0 , 1);
	mov	#0x1,r4
	mov	r4,r13
	mov.b	#0x0,r12
	call	#_LCDchar
DBG305:
;                 LCDicon( 5 , 1 );
	mov	r4,r13
	mov	#0x5,r12
	call	#_LCDicon
DBG306:
;             }break;
	jmp	update_display_L18
DBG307:
;             case DISPLAY_STAGE_VOLTAGE:
update_display_L23:
;     	    {
DBG308:
;     	    	LCDudec16( emeter.ui_voltage_V1RMS, 0 , 6 , 2 );
DBG309:
	mov	#0x2,r15
	mov	#0x6,r14
	mov	#0x0,r4
	mov	r4,r13
	mov	&_emeter+0x16,r12
	call	#_LCDudec16
DBG310:
; 				LCDchar( ( 0x20 | 0x40 | 0x08 | 0x04 | 0x01 ) , 0);
	mov	r4,r13
	mov.b	#0x6d,r12
	call	#_LCDchar
DBG311:
;                 LCDchar( 0 , 1);
	mov	#0x1,r4
	mov	r4,r13
	mov.b	#0x0,r12
	call	#_LCDchar
DBG312:
;                 LCDicon( 5 , 1 );
	mov	r4,r13
	mov	#0x5,r12
	call	#_LCDicon
DBG313:
;             }break;
	jmp	update_display_L18
DBG314:
;             case DISPLAY_STAGE_FREQUENCY:
update_display_L24:
;     	    {
DBG315:
;     	    	LCDudec16(emeter.ui_main_frequency, 0 , 6 , 2);
DBG316:
	mov	#0x2,r15
	mov	#0x6,r14
	mov	#0x0,r4
	mov	r4,r13
	mov	&_emeter+0xa,r12
	call	#_LCDudec16
DBG317:
; 				LCDchar( ( 0x10 | 0x04 | 0x01 | 0x02 ) , 0);
	mov	r4,r13
	mov.b	#0x17,r12
	call	#_LCDchar
DBG318:
;                 LCDchar( 0 , 1);
	mov	#0x1,r4
	mov	r4,r13
	mov.b	#0x0,r12
	call	#_LCDchar
DBG319:
;                 LCDicon( 5 , 1 );
	mov	r4,r13
	mov	#0x5,r12
	call	#_LCDicon
DBG320:
;             }break;
	jmp	update_display_L18
DBG321:
;             case DISPLAY_STAGE_POWERFACTOR:
update_display_L25:
;     	    {
DBG322:
;     	    	LCDudec16(emeter.ui_power_factor, 0 , 6 , 2 );
DBG323:
	mov	#0x2,r15
	mov	#0x6,r14
	mov	#0x0,r4
	mov	r4,r13
	mov	&_emeter+0xc,r12
	call	#_LCDudec16
DBG324:
; 				LCDchar( ( 0x10 | 0x20 | 0x04 | 0x01 | 0x02 ) , 0);
	mov	r4,r13
	mov.b	#0x37,r12
	call	#_LCDchar
DBG325:
;                 LCDchar( ( 0x10 | 0x04 | 0x01 | 0x02 ) , 1);
	mov	#0x1,r4
	mov	r4,r13
	mov.b	#0x17,r12
	call	#_LCDchar
DBG326:
;          

⌨️ 快捷键说明

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