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

📄 toucher.s

📁 基于PIC单片机
💻 S
📖 第 1 页 / 共 5 页
字号:
	sts _Y2,R24
	.dbline 297
;   	zhuanhuan3();       //将16位数X1的高低位分离
	xcall _zhuanhuan3
	.dbline 298
;   	zhuanhuan4();       //将16位数Y1的高低位分离
	xcall _zhuanhuan4
	.dbline 299
;   	zhuanhuan5();       //将16位数X2的高低位分离
	xcall _zhuanhuan5
	.dbline 300
;   	zhuanhuan6();       //将16位数Y2的高低位分离
	xcall _zhuanhuan6
	.dbline -2
L12:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e xianshi _xianshi fV
;          temp1 -> R10,R11
;           temp -> y+0
;          temp2 -> R12,R13
;          temp3 -> R14,R15
;              q -> R20
;              p -> R22
;            num -> y+20
	.even
_xianshi::
	st -y,r17
	st -y,r16
	xcall push_gset5
	sbiw R28,10
	.dbline -1
	.dbline 311
;  }
;  
; /************************************************************************************/
; /****************************************显示****************************************/
; /************************************************************************************/
;  
; 
; /***********************************************************************/
; /**************显示变量****************/
; void xianshi(uint num)             
; {
	.dbline 312
;     uchar p=0,q=0;
	clr R22
	.dbline 312
	clr R20
	.dbline 314
;     uint temp[5];
;     uint temp1=0,temp2=0;
	clr R10
	clr R11
	.dbline 314
	clr R12
	clr R13
	.dbline 315
;   	uint temp3=0;
	clr R14
	clr R15
	.dbline 316
;   	temp2=num;    
	ldd R12,y+20
	ldd R13,y+21
	.dbline 317
;   	temp3=10000;
	ldi R24,10000
	ldi R25,39
	movw R14,R24
	.dbline 318
;   	for(p=0;p<5;p++)         
	xjmp L17
L14:
	.dbline 319
	.dbline 320
	movw R18,R14
	movw R16,R12
	xcall div16u
	movw R10,R16
	.dbline 321
	movw R18,R14
	movw R16,R12
	xcall mod16u
	movw R12,R16
	.dbline 322
	ldi R18,10
	ldi R19,0
	movw R16,R14
	xcall div16u
	movw R14,R16
	.dbline 323
	ldi R24,2
	mul R24,R22
	movw R30,R0
	movw R24,R28
	add R30,R24
	adc R31,R25
	movw R24,R10
	adiw R24,48
	std z+1,R25
	std z+0,R24
	.dbline 324
L15:
	.dbline 318
	inc R22
L17:
	.dbline 318
	cpi R22,5
	brlo L14
	.dbline 326
;   	{
;         temp1=temp2/temp3;
; 		temp2=temp2%temp3;
; 		temp3=temp3/10;
; 		temp[p]=temp1+0x30;       //将要显示的数放在temp数组  
;     }
;     //功能: 将一个uint型的数显示出来,但是第一个非零数字前的零要省略        
;     for(p=0;p<4;p++)
	clr R22
	xjmp L21
L18:
	.dbline 327
;     {
	.dbline 328
; 	    if(temp[p]!=0x30)         
	ldi R24,2
	mul R24,R22
	movw R30,R0
	movw R24,R28
	add R30,R24
	adc R31,R25
	ldd R24,z+0
	ldd R25,z+1
	cpi R24,48
	ldi R30,0
	cpc R25,R30
	breq L22
	.dbline 329
; 	 	break;
	xjmp L20
L22:
	.dbline 330
L19:
	.dbline 326
	inc R22
L21:
	.dbline 326
	cpi R22,4
	brlo L18
L20:
	.dbline 331
;     }
; 	wdr();
	xcall _wdr
	.dbline 332
;     for(q=0;q<p;q++)
	clr R20
	xjmp L27
L24:
	.dbline 333
	.dbline 334
	ldi R18,32
	ldi R16,49
	xcall _xszf
	.dbline 335
L25:
	.dbline 332
	inc R20
L27:
	.dbline 332
	cp R20,R22
	brlo L24
	.dbline 336
;     {
;         xszf(0x31,0x20);         //如果开始的数为零,则省略
;     }
;   	for(q=p;q<5;q++)
	mov R20,R22
	xjmp L31
L28:
	.dbline 337
	.dbline 338
	ldi R24,2
	mul R24,R20
	movw R30,R0
	movw R24,R28
	add R30,R24
	adc R31,R25
	ldd R18,z+0
	ldi R16,49
	xcall _xszf
	.dbline 339
L29:
	.dbline 336
	inc R20
L31:
	.dbline 336
	cpi R20,5
	brlo L28
	.dbline -2
L13:
	adiw R28,10
	xcall pop_gset5
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbsym r temp1 10 i
	.dbsym l temp 0 A[10:5]i
	.dbsym r temp2 12 i
	.dbsym r temp3 14 i
	.dbsym r q 20 c
	.dbsym r p 22 c
	.dbsym l num 20 i
	.dbend
	.dbfunc e menu _menu fV
	.even
_menu::
	sbiw R28,11
	.dbline -1
	.dbline 343
;     {
; 	    xszf(0x31,temp[q]);      //显示出部位零的数
;     }
; }
; /*********************************************************/
; void menu(void)                         //菜单               
; {
	.dbline 344
;     wdr();
	xcall _wdr
	.dbline 345
;     juxing(0xe0,0x00,0x04,0x00,0x00,0x50,0x00,0x2a);    //(0x00,0x00,0x50,0x2a)
	ldi R24,42
	std y+10,R24
	clr R2
	std y+8,R2
	ldi R24,80
	std y+6,R24
	std y+4,R2
	std y+2,R2
	ldi R24,4
	std y+0,R24
	clr R18
	ldi R16,224
	xcall _juxing
	.dbline 346
;   	juxing(0xe0,0xa0,0x04,0x00,0x00,0xf0,0x00,0x2a);    //(0xa0,0x00,0xf0,0x2a)
	ldi R24,42
	std y+10,R24
	clr R2
	std y+8,R2
	ldi R24,240
	std y+6,R24
	std y+4,R2
	std y+2,R2
	ldi R24,4
	std y+0,R24
	ldi R18,160
	ldi R16,224
	xcall _juxing
	.dbline 347
;   	juxing(0xe1,0x40,0x04,0x00,0x01,0x90,0x00,0x2a);    //(0x140,0x00,0x190,0x2a)
	ldi R24,42
	std y+10,R24
	clr R2
	std y+8,R2
	ldi R24,144
	std y+6,R24
	ldi R24,1
	std y+4,R24
	std y+2,R2
	ldi R24,4
	std y+0,R24
	ldi R18,64
	ldi R16,225
	xcall _juxing
	.dbline 348
;   	xtzb(0x00,0x0f,0x00,0x0d); 
	ldi R24,13
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,15
	clr R16
	xcall _xtzb
	.dbline 349
;   	fdbs(0x04);
	ldi R16,4
	xcall _fdbs
	.dbline 350
;   	xszf(0x34,0x20); //查
	ldi R18,32
	ldi R16,52
	xcall _xszf
	.dbline 351
;   	xszf(0x34,0x21); //看
	ldi R18,33
	ldi R16,52
	xcall _xszf
	.dbline 352
;   	fdbs(0x14);
	ldi R16,20
	xcall _fdbs
	.dbline 353
;   	xszf(0x31,0x28); 
	ldi R18,40
	ldi R16,49
	xcall _xszf
	.dbline 354
;   	xszf(0x31,0x58); 
	ldi R18,88
	ldi R16,49
	xcall _xszf
	.dbline 355
;   	xszf(0x31,0x29);
	ldi R18,41
	ldi R16,49
	xcall _xszf
	.dbline 356
;   	xtzb(0x00,0xaf,0x00,0x0d);
	ldi R24,13
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,175
	clr R16
	xcall _xtzb
	.dbline 357
;   	fdbs(0x04);
	ldi R16,4
	xcall _fdbs
	.dbline 358
;   	xszf(0x34,0x22); //设
	ldi R18,34
	ldi R16,52
	xcall _xszf
	.dbline 359
;   	xszf(0x34,0x23); //置
	ldi R18,35
	ldi R16,52
	xcall _xszf
	.dbline 360
; 	wdr();
	xcall _wdr
	.dbline 361
;   	fdbs(0x14);
	ldi R16,20
	xcall _fdbs
	.dbline 362
;   	xszf(0x31,0x28);                
	ldi R18,40
	ldi R16,49
	xcall _xszf
	.dbline 363
;   	xszf(0x31,0x59);
	ldi R18,89
	ldi R16,49
	xcall _xszf
	.dbline 364
;   	xszf(0x31,0x29);
	ldi R18,41
	ldi R16,49
	xcall _xszf
	.dbline 365
;   	xtzb(0x01,0x4f,0x00,0x0d);
	ldi R24,13
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,79
	ldi R16,1
	xcall _xtzb
	.dbline 366
;   	fdbs(0x04);
	ldi R16,4
	xcall _fdbs
	.dbline 367
;   	xszf(0x34,0x24); //控
	ldi R18,36
	ldi R16,52
	xcall _xszf
	.dbline 368
;   	xszf(0x34,0x25); //制
	ldi R18,37
	ldi R16,52
	xcall _xszf
	.dbline 369
;   	fdbs(0x14);
	ldi R16,20
	xcall _fdbs
	.dbline 370
;   	xszf(0x31,0x28);
	ldi R18,40
	ldi R16,49
	xcall _xszf
	.dbline 371
;   	xszf(0x31,0x5a);
	ldi R18,90
	ldi R16,49
	xcall _xszf
	.dbline 372
;   	xszf(0x31,0x29);
	ldi R18,41
	ldi R16,49
	xcall _xszf
	.dbline -2
L32:
	adiw R28,11
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e kong _kong fV
;           temp -> R20,R21
;          temp2 -> R22
;          temp1 -> R10
	.even
_kong::
	xcall push_gset3
	mov R22,R18
	mov R10,R16
	.dbline -1
	.dbline 376
; }
; 
; void kong(uchar temp1,uchar temp2)                 //空格
; {
	.dbline 377
;     uint temp=0;
	clr R20
	clr R21
	.dbline 378
;     for(temp=0;temp<temp2;temp++)
	xjmp L37
L34:
	.dbline 379
;     {
	.dbline 380
;         if(temp1==0x33)         //如果是字符集3中的空格
	mov R24,R10
	cpi R24,51
	brne L38
	.dbline 381
;             fdbs(0x04);             //不放大
	ldi R16,4
	xcall _fdbs
	xjmp L39
L38:
	.dbline 382
; 	    else if(temp1==0x31)    //如果是字符集1中的空格
	mov R24,R10
	cpi R24,49
	brne L40
	.dbline 383
; 	        fdbs(0x14);             //放大1倍
	ldi R16,20
	xcall _fdbs
	xjmp L41
L40:
	.dbline 385
; 		else
; 		    NOP();	
	nop
L41:
L39:
	.dbline 386
	ldi R18,32
	mov R16,R10
	xcall _xszf
	.dbline 387
	xcall _wdr
	.dbline 388
L35:
	.dbline 378
	subi R20,255  ; offset = 1
	sbci R21,255
L37:
	.dbline 378
	mov R2,R22
	clr R3
	cp R20,R2
	cpc R21,R3
	brlo L34
	.dbline -2
L33:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r temp 20 i
	.dbsym r temp2 22 c
	.dbsym r temp1 10 c
	.dbend
	.dbfunc e bank1 _bank1 fV
	.even
_bank1::
	.dbline -1
	.dbline 392
;         xszf(temp1,0x20);       //显示空格
; 		wdr();
;     }
; }
; /****************列表界面的第一行显示***************/
; void bank1(void)                     
; {  
	.dbline 393
;     wdr();
	xcall _wdr
	.dbline 394
;     xszf(0x34,0x26); //编
	ldi R18,38
	ldi R16,52
	xcall _xszf
	.dbline 395
;     xszf(0x34,0x27); //号
	ldi R18,39
	ldi R16,52
	xcall _xszf
	.dbline 396
;     kong(0x33,0x02);
	ldi R18,2
	ldi R16,51
	xcall _kong
	.dbline 397
;   	xszf(0x34,0x2a); //浓
	ldi R18,42
	ldi R16,52
	xcall _xszf
	.dbline 398
;   	xszf(0x34,0x2b); //度
	ldi R18,43
	ldi R16,52
	xcall _xszf
	.dbline 399
; 	wdr();
	xcall _wdr
	.dbline 400
;   	kong(0x33,0x02);
	ldi R18,2
	ldi R16,51
	xcall _kong
	.dbline 401
;   	xszf(0x34,0x34); //状
	ldi R18,52
	ldi R16,52
	xcall _xszf
	.dbline 402
;   	xszf(0x34,0x35); //态
	ldi R18,53
	ldi R16,52
	xcall _xszf
	.dbline -2
L42:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e bank2 _bank2 fV
	.even
_bank2::
	.dbline -1
	.dbline 406
; }
; /****************报警界面的第一行显示**************/
; void bank2(void)
; {
	.dbline 407
;     xszf(0x34,0xd6); //转
	ldi R18,214
	ldi R16,52
	xcall _xszf
	.dbline 408
;   	xszf(0x34,0xd7); //换
	ldi R18,215
	ldi R16,52
	xcall _xszf
	.dbline 409
;   	xszf(0x34,0xd8); //器
	ldi R18,216
	ldi R16,52
	xcall _xszf
	.dbline 410
;   	kong(0x33,0x01);
	ldi R18,1
	ldi R16,51
	xcall _kong
	.dbline 411
;   	xszf(0x34,0x85); //探
	ldi R18,133
	ldi R16,52
	xcall _xszf
	.dbline 412
;   	xszf(0x34,0x86); //测
	ldi R18,134
	ldi R16,52
	xcall _xszf
	.dbline 413
;   	xszf(0x34,0x84); //器
	ldi R18,132
	ldi R16,52
	xcall _xszf
	.dbline 414
;   	kong(0x33,0x01);
	ldi R18,1
	ldi R16,51
	xcall _kong
	.dbline 415
;   	xszf(0x34,0x3f); //报
	ldi R18,63
	ldi R16,52
	xcall _xszf
	.dbline 416
;   	xszf(0x34,0x40); //警
	ldi R18,64
	ldi R16,52
	xcall _xszf
	.dbline 417
;   	xszf(0x34,0x53); //时
	ldi R18,83
	ldi R16,52
	xcall _xszf
	.dbline 418
;   	xszf(0x34,0x54); //间
	ldi R18,84
	ldi R16,52
	xcall _xszf
	.dbline 419
;   	kong(0x33,0x04);
	ldi R18,4
	ldi R16,51
	xcall _kong
	.dbline 420
;   	xszf(0x34,0x3f); //报
	ldi R18,63
	ldi R16,52
	xcall _xszf
	.dbline 421
;   	xszf(0x34,0x40); //警
	ldi R18,64
	ldi R16,52
	xcall _xszf
	.dbline 422
;   	xszf(0x34,0x55); //类
	ldi R18,85
	ldi R16,52
	xcall _xszf
	.dbline 423
;   	xszf(0x34,0x56); //型
	ldi R18,86
	ldi R16,52
	xcall _xszf
	.dbline 424
;   	kong(0x33,0x01);
	ldi R18,1
	ldi R16,51
	xcall _kong
	.dbline 425
;   	xszf(0x34,0x3f);                 //报
	ldi R18,63
	ldi R16,52
	xcall _xszf
	.dbline 426
;   	xszf(0x34,0x40);                 //警
	ldi R18,64
	ldi R16,52
	xcall _xszf
	.dbline 427
;   	xszf(0x34,0x2a);                 //浓
	ldi R18,42
	ldi R16,52
	xcall _xszf
	.dbline 428
;   	xszf(0x34,0x2b);                 //度
	ldi R18,43
	ldi R16,52
	xcall _xszf
	.dbline 429
;   	kong(0x33,0x01);                                
	ldi R18,1
	ldi R16,51
	xcall _kong
	.dbline 430
;   	xszf(0x34,0x28);                 //气
	ldi R18,40
	ldi R16,52
	xcall _xszf
	.dbline 431
;   	xszf(0x34,0x29);                 //体
	ldi R18,41
	ldi R16,52
	xcall _xszf
	.dbline 432
;   	xszf(0x34,0x55);                 //类
	ldi R18,85
	ldi R16,52
	xcall _xszf
	.dbline 433
;   	xszf(0x34,0x56);                 //型
	ldi R18,86
	ldi R16,52
	xcall _xszf
	.dbline -2

⌨️ 快捷键说明

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