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

📄 toucher2.s

📁 基于PIC单片机
💻 S
📖 第 1 页 / 共 5 页
字号:
	clr R21
	.dbline 432
;          	temp=(temp<<8)+a[10];  //报警浓度
	ldd R2,y+15
	mov R21,R20
	mov R20,R2
	.dbline 433
;          	print1(temp);          //以格式1打印
	movw R16,R20
	xcall _print1
	.dbline 434
;          	unit_judge();          //浓度单位判断
	xcall _unit_judge
	.dbline 435
; 	     	write_print(0x0d);     //换行
	ldi R16,13
	xcall _write_print
	.dbline 437
; 	  
; 	     	cha_print(0xb1,0xa8);  //报
	ldi R18,168
	ldi R16,177
	xcall _cha_print
	.dbline 438
; 	     	cha_print(0xbe,0xaf);  //警
	ldi R18,175
	ldi R16,190
	xcall _cha_print
	.dbline 439
;          	cha_print(0xc5,0xa8);  //浓
	ldi R18,168
	ldi R16,197
	xcall _cha_print
	.dbline 440
;          	cha_print(0xb6,0xc8);  //度
	ldi R18,200
	ldi R16,182
	xcall _cha_print
	.dbline 441
;          	write_print(0x3a);     //:
	ldi R16,58
	xcall _write_print
	.dbline 442
;          	write_print(0x0d);     //换行
	ldi R16,13
	xcall _write_print
	.dbline 446
;       		// cha_print(0x1b,0x36);  //选择字符集1  
;    
;        		//报警类型
;        		cha_print(0xb1,0xa8);  //报
	ldi R18,168
	ldi R16,177
	xcall _cha_print
	.dbline 447
;             cha_print(0xbe,0xaf);  //警
	ldi R18,175
	ldi R16,190
	xcall _cha_print
	.dbline 448
;          	cha_print(0xc0,0xe0);  //类
	ldi R18,224
	ldi R16,192
	xcall _cha_print
	.dbline 449
;          	cha_print(0xd0,0xcd);  //型
	ldi R18,205
	ldi R16,208
	xcall _cha_print
	.dbline 450
;          	write_print(0x3a);     //:
	ldi R16,58
	xcall _write_print
	.dbline 451
;          	write_print(0x20);     //空格
	ldi R16,32
	xcall _write_print
	.dbline 452
;          	if(a[8]==0x01)
	ldd R24,y+13
	cpi R24,1
	brne L83
	.dbline 453
;          	{
	.dbline 454
; 	            cha_print(0xb5,0xcd);      //低
	ldi R18,205
	ldi R16,181
	xcall _cha_print
	.dbline 455
; 	        	cha_print(0xb1,0xa8);      //报
	ldi R18,168
	ldi R16,177
	xcall _cha_print
	.dbline 456
;          	}
	xjmp L84
L83:
	.dbline 457
;          	else if(a[8]==0x02)
	ldd R24,y+13
	cpi R24,2
	brne L86
	.dbline 458
;          	{
	.dbline 459
; 	            cha_print(0xb8,0xdf);      //高
	ldi R18,223
	ldi R16,184
	xcall _cha_print
	.dbline 460
; 	        	cha_print(0xb1,0xa8);      //报
	ldi R18,168
	ldi R16,177
	xcall _cha_print
	.dbline 461
;          	} 
L86:
L84:
	.dbline 462
; 	     	write_print(0x0d);     //换行
	ldi R16,13
	xcall _write_print
	.dbline 465
;    
;          	//报警时间
; 	     	write_print(0x32);  //2
	ldi R16,50
	xcall _write_print
	.dbline 466
;          	write_print(0x30);  //0
	ldi R16,48
	xcall _write_print
	.dbline 467
;          	date_print(a[2]); //年
	ldd R16,y+7
	xcall _date_print
	.dbline 468
;          	write_print(0x2f);  //"/"
	ldi R16,47
	xcall _write_print
	.dbline 469
;          	date_print(a[3]); //月
	ldd R16,y+8
	xcall _date_print
	.dbline 470
;          	write_print(0x2f);  //"/"
	ldi R16,47
	xcall _write_print
	.dbline 471
;          	date_print(a[4]); //日
	ldd R16,y+9
	xcall _date_print
	.dbline 472
; 	     	write_print(0x20);  //" "
	ldi R16,32
	xcall _write_print
	.dbline 473
;          	date_print(a[5]); //时
	ldd R16,y+10
	xcall _date_print
	.dbline 474
;          	write_print(0x3a);  //":"
	ldi R16,58
	xcall _write_print
	.dbline 475
;          	date_print(a[6]); //分
	ldd R16,y+11
	xcall _date_print
	.dbline 476
;          	write_print(0x0d);     //换行
	ldi R16,13
	xcall _write_print
	.dbline 479
; 	  
;          	//  cha_print(0x1c,0x26);      //设置汉字打印方式
;          	cha_print(0xb1,0xa8);  //报
	ldi R18,168
	ldi R16,177
	xcall _cha_print
	.dbline 480
;          	cha_print(0xbe,0xaf);  //警
	ldi R18,175
	ldi R16,190
	xcall _cha_print
	.dbline 481
; 			cha_print(0xca,0xb1);  //时
	ldi R18,177
	ldi R16,202
	xcall _cha_print
	.dbline 482
; 		    cha_print(0xbc,0xe4);  //间
	ldi R18,228
	ldi R16,188
	xcall _cha_print
	.dbline 484
;          	//  cha_print(0x1b,0x36);  //选择字符集1 
;          	write_print(0x3a);     //:
	ldi R16,58
	xcall _write_print
	.dbline 485
;          	write_print(0x0d);     //换行
	ldi R16,13
	xcall _write_print
	.dbline 488
;       
;          	//探测器编号
;          	cha_print(0xcc,0xbd);  //探
	ldi R18,189
	ldi R16,204
	xcall _cha_print
	.dbline 489
;          	cha_print(0xb2,0xe2);  //测
	ldi R18,226
	ldi R16,178
	xcall _cha_print
	.dbline 490
;          	cha_print(0xc6,0xf7);  //器
	ldi R18,247
	ldi R16,198
	xcall _cha_print
	.dbline 491
;          	cha_print(0xb1,0xe0);  //编
	ldi R18,224
	ldi R16,177
	xcall _cha_print
	.dbline 492
;          	cha_print(0xba,0xc5);  //号
	ldi R18,197
	ldi R16,186
	xcall _cha_print
	.dbline 493
;          	write_print(0x3a);     //:
	ldi R16,58
	xcall _write_print
	.dbline 494
;          	write_print(0x20);     //空格
	ldi R16,32
	xcall _write_print
	.dbline 495
;          	num_print(a[1]);  //打印编号
	ldd R16,y+6
	xcall _num_print
	.dbline 496
; 	     	write_print(0x0d);     //换行
	ldi R16,13
	xcall _write_print
	.dbline 499
;    
;          	//转换器编号
;          	cha_print(0xd7,0xaa);  //转
	ldi R18,170
	ldi R16,215
	xcall _cha_print
	.dbline 500
;          	cha_print(0xbb,0xbb);  //换
	ldi R18,187
	ldi R16,187
	xcall _cha_print
	.dbline 501
;          	cha_print(0xc6,0xf7);  //器
	ldi R18,247
	ldi R16,198
	xcall _cha_print
	.dbline 502
;          	cha_print(0xb1,0xe0);  //编
	ldi R18,224
	ldi R16,177
	xcall _cha_print
	.dbline 503
;          	cha_print(0xba,0xc5);  //号
	ldi R18,197
	ldi R16,186
	xcall _cha_print
	.dbline 504
;          	write_print(0x3a);     //:
	ldi R16,58
	xcall _write_print
	.dbline 505
;          	write_print(0x20);     //空格
	ldi R16,32
	xcall _write_print
	.dbline 506
;          	num_print(a[0]);  //打印编号
	ldd R16,y+5
	xcall _num_print
	.dbline 507
; 	     	write_print(0x0d);     //换行
	ldi R16,13
	xcall _write_print
	.dbline 508
; 	  	}
L80:
	.dbline 509
L56:
	.dbline 372
	inc R22
L58:
	.dbline 372
	cpi R22,8
	brsh X6
	xjmp L55
X6:
	.dbline 511
;    	}
;     //标题
; 	kong_print(0x04);
	ldi R16,4
	xcall _kong_print
	.dbline 512
; 	cha_print(0xb1,0xa8);  //报
	ldi R18,168
	ldi R16,177
	xcall _cha_print
	.dbline 513
;     cha_print(0xbe,0xaf);  //警
	ldi R18,175
	ldi R16,190
	xcall _cha_print
	.dbline 514
; 	cha_print(0xbc,0xc7);  //记
	ldi R18,199
	ldi R16,188
	xcall _cha_print
	.dbline 515
; 	cha_print(0xc2,0xbc);  //录
	ldi R18,188
	ldi R16,194
	xcall _cha_print
	.dbline 516
; 	write_print(0x0d);     //换行
	ldi R16,13
	xcall _write_print
	.dbline 517
;     cha_print(0x1b,0x4a);  //走纸48点
	ldi R18,74
	ldi R16,27
	xcall _cha_print
	.dbline 518
;     write_print(0x30);  
	ldi R16,48
	xcall _write_print
	.dbline -2
L52:
	adiw R28,39
	xcall pop_gset5
	.dbline 0 ; func end
	ret
	.dbsym r temp 20 i
	.dbsym r kkk 22 c
	.dbsym r addr_unit 10 i
	.dbsym r addr_gas 12 i
	.dbsym r temp1 14 i
	.dbsym l clarm_buff 21 A[17:17]c
	.dbsym l a 5 A[16:16]c
	.dbsym l c 38 c
	.dbend
	.dbfunc e fault_print _fault_print fV
;            kkk -> R22
;     fault_buff -> y+13
;          temp1 -> R10,R11
;              a -> y+5
;             tt -> R12
	.even
_fault_print::
	xcall push_gset4
	sbiw R28,24
	.dbline -1
	.dbline 524
; }
; 
; /*******************故障记录打印*********************/
; 
; void fault_print(void)
; {
	.dbline 526
;     uchar a[8];
;    	uchar kkk=0;
	clr R22
	.dbline 527
;    	uchar tt=0;
	clr R12
	.dbline 529
;    	uchar fault_buff[11];
;    	uint  temp1=0;
	clr R10
	clr R11
	.dbline 531
;    
;    	temp1=guzhangaddr+8;    //地址加8
	lds R24,_guzhangaddr
	lds R25,_guzhangaddr+1
	adiw R24,8
	movw R10,R24
	.dbline 532
;    	if(temp1==0x7c00)          //到头
	cpi R24,0
	ldi R30,124
	cpc R25,R30
	brne L96
	.dbline 533
; 	    temp1=0x6800 ;  //调整  
	ldi R24,26624
	ldi R25,104
	movw R10,R24
L96:
	.dbline 534
;     int_prt();
	xcall _int_prt
	.dbline 535
;     for(kkk=0;kkk<8;kkk++)
	clr R22
	xjmp L101
L98:
	.dbline 536
;     {
	.dbline 537
; 	    wdr();
	xcall _wdr
	.dbline 538
; 	    fault_buff[1]= (uchar)(((temp1&0xff00)>>8)) ; //FM24C256片内地址高位字节 
	movw R24,R10
	andi R24,0
	mov R24,R25
	clr R25
	std y+14,R24
	.dbline 539
; 	  	fault_buff[2]= (uchar)(temp1&0x00ff) ;      //FM24C256片内地址低位字节	
	movw R24,R10
	andi R25,0
	std y+15,R24
	.dbline 540
; 		EIMSK&=~(1<<INT6);
	in R24,0x39
	andi R24,191
	out 0x39,R24
	.dbline 542
; 		//do
; 	  	fhz=I2cRead( SLA2_W,SLA2_R , fault_buff[1],fault_buff[2],8);
	ldi R24,8
	std y+4,R24
	ldd R2,y+15
	std y+2,R2
	ldd R2,y+14
	std y+0,R2
	ldi R18,163
	ldi R16,162
	xcall _I2cRead
	sts _fhz,R16
	.dbline 545
; 		//while(fhz==1);
; 		//EIMSK|=(1<<INT6);
; 	  	for(tt=0;tt<8;tt++)
	clr R12
	xjmp L109
L106:
	.dbline 546
	ldi R24,<_i2c_rd_buff
	ldi R25,>_i2c_rd_buff
	mov R30,R12
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	movw R24,R28
	adiw R24,5
	mov R30,R12
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R2
L107:
	.dbline 545
	inc R12
L109:
	.dbline 545
	mov R24,R12
	cpi R24,8
	brlo L106
	.dbline 547
; 	        a[tt]=i2c_rd_buff[tt] ;  
; 		EIMSK|=(1<<INT6);	 
	in R24,0x39
	ori R24,64
	out 0x39,R24
	.dbline 548
; 	    if(temp1==0x7bf8)          //到头
	movw R24,R10
	cpi R24,248
	ldi R30,123
	cpc R25,R30
	brne L110
	.dbline 549
; 	        temp1=0x6800 ;  //调整  
	ldi R24,26624
	ldi R25,104
	movw R10,R24
	xjmp L111
L110:
	.dbline 551
; 	    else
; 	        temp1=temp1+8 ;  //调整    
	movw R24,R10
	adiw R24,8
	movw R10,R24
L111:
	.dbline 553
; 	  
; 	    if(a[0]==0xff)        //如果外部E2中没有数,无操作
	ldd R24,y+5
	cpi R24,255
	brne L112
	.dbline 554
; 	    ;
	xjmp L113
L112:
	.dbline 556
; 	  	else
; 	  	{
	.dbline 559
; 	  
; 	         //故障类型
; 	     	 kong_print(0x02);
	ldi R16,2
	xcall _kong_print
	.dbline 560
; 	     	 switch(a[7])
	ldd R20,y+12
	clr R21
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	breq L118
	cpi R20,2
	ldi R30,0
	cpc R21,R30
	breq L119
	cpi R20,3
	ldi R30,0
	cpc R21,R30
	breq L120
	cpi R20,4
	ldi R30,0
	cpc R21,R30
	brne X8
	xjmp L121
X8:
	cpi R20,5
	ldi R30,0
	cpc R21,R30
	brne X9
	xjmp L122
X9:
	cpi R20,6
	ldi R30,0
	cpc R21,R30
	brne X10
	xjmp L123
X10:
	xjmp L114
X7:
	.dbline 561
; 	     	 {
L118:
	.dbline 563
; 	             case 1:
; 		    	 {
	.dbline 564
; 		             cha_print(0xca,0xd0);  //市
	ldi R18,208
	ldi R16,202
	xcall _cha_print
	.dbline 565
; 		       		 cha_print(0xb5,0xe7);  //电
	ldi R18,231
	ldi R16,181
	xcall _cha_print
	.dbline 566
; 		       		 cha_print(0xb9,0xca);  //故 
	ldi R18,202
	ldi R16,185
	xcall _cha_print
	.dbline 567
; 		       		 cha_print(0xd5,0xcf);  //障
	ldi R18,207
	ldi R16,213
	xcall _cha_print
	.dbline 568
; 		    	 }
	.dbline 569
; 		    	 break;
	xjmp L115
L119:
	.dbline 571
; 		    	 case 2:
; 		    	 {
	.dbline 572
; 		             cha_print(0xb1,0xb8);  //备
	ldi R18,184
	ldi R16,177
	xcall _cha_print
	.dbline 573
; 		       		 cha_print(0xb5,0xe7);  //电
	ldi R18,231
	ldi R16,181
	xcall _cha_print
	.dbline 574
; 		       		 cha_print(0xb9,0xca);  //故 
	ldi R18,202
	ldi R16,185
	xcall _cha_print
	.dbline 575
; 		       		 cha_print(0xd5,0xcf);  //障
	ldi R18,207
	ldi R16,213
	xcall _cha_print
	.dbline 576
; 	        	 }
	.dbline 577
; 	        	 break;
	xjmp L115
L120:
	.dbline 579
; 	        	 case 3:
; 		    	 {
	.dbline 580
; 		             cha_print(0xb3,0xe4);  //充
	ldi R18,228
	ldi R16,179
	xcall _cha_print
	.dbline 581
; 		        	 cha_print(0xb5,0xe7);  //电
	ldi R18,231
	ldi R16,181
	xcall _cha_print
	.dbline 582
; 		       		 cha_print(0xb9,0xca);  //故 
	ldi R18,202
	ldi R16,185
	xcall _cha_print
	.dbline 583
; 		       		 cha_print(0xd5,0xcf);  //障
	ldi R18,207
	ldi R16,213
	xcall _cha_print
	.dbline 584

⌨️ 快捷键说明

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