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

📄 time.s

📁 单片机开发资料光盘-双龙-686M.zip
💻 S
📖 第 1 页 / 共 2 页
字号:
	sbiw R28,4
	.dbline -1
	.dbline 107
; void timecal(void)
;    {
	.dbline 109
;     unsigned char temp,step;
; 	ocmj_write(0xf4);
	ldi R16,244
	ldi R17,0
	xcall _ocmj_write
	.dbline 110
; 	hz_tran(2,1,"输入时间");
	ldi R24,<L39
	ldi R25,>L39
	std y+0,R24
	std y+1,R25
	ldi R18,1
	ldi R19,0
	ldi R16,2
	ldi R17,0
	xcall _hz_tran
	.dbline 111
; 	hz_tran(1,2,"按");
	ldi R24,<L40
	ldi R25,>L40
	std y+0,R24
	std y+1,R25
	ldi R18,2
	ldi R19,0
	ldi R16,1
	ldi R17,0
	xcall _hz_tran
	.dbline 112
; 	asc_tran(4,36,"SHIFT");
	ldi R24,<L41
	ldi R25,>L41
	std y+0,R24
	std y+1,R25
	ldi R18,36
	ldi R19,0
	ldi R16,4
	ldi R17,0
	xcall _asc_tran
	.dbline 113
; 	hz_tran(5,2,"确定");
	ldi R24,<L42
	ldi R25,>L42
	std y+0,R24
	std y+1,R25
	ldi R18,2
	ldi R19,0
	ldi R16,5
	ldi R17,0
	xcall _hz_tran
	.dbline 114
; 	asc_tran(4,52,"__:__:__");
	ldi R24,<L43
	ldi R25,>L43
	std y+0,R24
	std y+1,R25
	ldi R18,52
	ldi R19,0
	ldi R16,4
	ldi R17,0
	xcall _asc_tran
	.dbline 115
; 	for(temp=0;temp<9;temp++)
	clr R20
	xjmp L47
L44:
	.dbline 116
	.dbline 117
	ldi R24,<_time
	ldi R25,>_time
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,95
	std z+0,R24
	.dbline 118
L45:
	.dbline 115
	inc R20
L47:
	.dbline 115
	cpi R20,9
	brlo L44
	.dbline 119
; 	   {
; 	    time[temp]='_';
; 	   }
; 	time[2]=':';
	ldi R24,58
	sts _time+2,R24
	.dbline 120
; 	time[5]=':';
	sts _time+5,R24
	.dbline 121
; 	time[8]=0;   
	clr R2
	sts _time+8,R2
	.dbline 122
; 	step=0;
	clr R10
L51:
	.dbline 124
; 	do
; 	  {
	.dbline 125
; 	   temp=keypad();
	xcall _keypad
	mov R2,R16
	mov R3,R17
	mov R20,R2
	.dbline 126
; 	   if(((temp&0x7f)!=0x7f)&((temp&0x7f)<0x0a))
	mov R24,R20
	andi R24,127
	cpi R24,127
	breq L56
	ldi R24,1
	ldi R25,0
	mov R14,R24
	mov R15,R25
	xjmp L57
L56:
	clr R14
	clr R15
L57:
	mov R24,R20
	andi R24,127
	cpi R24,10
	brsh L58
	ldi R24,1
	ldi R25,0
	mov R12,R24
	mov R13,R25
	xjmp L59
L58:
	clr R12
	clr R13
L59:
	mov R2,R14
	mov R3,R15
	and R2,R12
	and R3,R13
	tst R2
	brne X1
	tst R3
	brne X2
	xjmp L54
X2:
X1:
	.dbline 127
; 	      {
	.dbline 128
; 		   switch (step)
	mov R22,R10
	clr R23
	cpi R22,0
	ldi R30,0
	cpc R23,R30
	brge X3
	xjmp L60
X3:
	ldi R24,5
	ldi R25,0
	cp R24,R22
	cpc R25,R23
	brge X4
	xjmp L60
X4:
	ldi R24,<L92
	ldi R25,>L92
	mov R16,R22
	mov R17,R23
	lsl R16
	rol R17
	add R16,R24
	adc R17,R25
	xcall lpm16
	mov R30,R16
	mov R31,R17
	ijmp
X0:
	.dbline 129
; 		       {
L63:
	.dbline 130
; 			    case 0:{
	.dbline 131
; 					    if (temp<3)
	cpi R20,3
	brlo X5
	xjmp L61
X5:
	.dbline 132
; 					       {
	.dbline 133
; 						    hour=temp*10;
	ldi R16,10
	mov R17,R20
	xcall mpy8s
	sts _hour,R16
	.dbline 134
; 							time[0]=temp+0x30;
	mov R24,R20
	subi R24,208	; addi 48
	sts _time,R24
	.dbline 135
; 							step++;
	inc R10
	.dbline 136
; 						   }
	.dbline 137
; 					    break;	   						   
	xjmp L61
L66:
	.dbline 139
; 					   }
; 				case 1:{
	.dbline 140
; 					    if(hour<20)
	lds R24,_hour
	cpi R24,20
	brsh L67
	.dbline 141
; 						  {
	.dbline 142
; 						   hour+=temp;
	mov R2,R24
	add R2,R20
	sts _hour,R2
	.dbline 143
; 						   time[1]=temp+0x30;
	mov R24,R20
	subi R24,208	; addi 48
	sts _time+1,R24
	.dbline 144
; 						   step++;
	inc R10
	.dbline 145
; 						  }
	xjmp L61
L67:
	.dbline 147
; 						else
; 						  {
	.dbline 148
; 						   if(temp<4)
	cpi R20,4
	brlo X6
	xjmp L61
X6:
	.dbline 149
; 						     {
	.dbline 150
; 						      hour+=temp;
	lds R2,_hour
	add R2,R20
	sts _hour,R2
	.dbline 151
; 						      time[1]=temp+0x30;
	mov R24,R20
	subi R24,208	; addi 48
	sts _time+1,R24
	.dbline 152
; 						      step++;							  
	inc R10
	.dbline 153
; 							 }
	.dbline 154
; 						  }
	.dbline 155
; 						break;  
	xjmp L61
L73:
	.dbline 157
; 					   }
; 				case 2:{
	.dbline 158
; 				        if (temp<6)
	cpi R20,6
	brlo X7
	xjmp L61
X7:
	.dbline 159
; 						   {
	.dbline 160
; 						    minute=temp*10;
	ldi R16,10
	mov R17,R20
	xcall mpy8s
	sts _minute,R16
	.dbline 161
; 							time[3]=temp+0x30;
	mov R24,R20
	subi R24,208	; addi 48
	sts _time+3,R24
	.dbline 162
; 							step++;						    
	inc R10
	.dbline 163
; 						   }
	.dbline 164
; 						break;   
	xjmp L61
L77:
	.dbline 166
; 				       }
; 				case 3:{
	.dbline 167
; 				        minute+=temp;
	lds R2,_minute
	add R2,R20
	sts _minute,R2
	.dbline 168
; 						time[4]=temp+0x30;
	mov R24,R20
	subi R24,208	; addi 48
	sts _time+4,R24
	.dbline 169
; 						step++;
	inc R10
	.dbline 170
; 						break;
	xjmp L61
L79:
	.dbline 172
; 				       }
; 				case 4:{
	.dbline 173
; 				        if(temp<6)
	cpi R20,6
	brsh L61
	.dbline 174
; 						  {
	.dbline 175
; 						   second=second*10;
	lds R17,_second
	ldi R16,10
	xcall mpy8s
	sts _second,R16
	.dbline 176
; 						   time[6]=temp+0x30;
	mov R24,R20
	subi R24,208	; addi 48
	sts _time+6,R24
	.dbline 177
; 						   step++;
	inc R10
	.dbline 178
; 						  }
	.dbline 179
; 						break;  
	xjmp L61
L83:
	.dbline 181
; 				       }				  
; 				case 5:{
	.dbline 182
; 				        second+=temp;
	lds R2,_second
	add R2,R20
	sts _second,R2
	.dbline 183
; 					    time[7]=temp+0x30;
	mov R24,R20
	subi R24,208	; addi 48
	sts _time+7,R24
	.dbline 184
; 						step++;
	inc R10
	.dbline 185
; 						break;
	xjmp L61
L60:
	.dbline 188
; 				       }
; 				default:
; 				        {
	.dbline 189
; 	                     for(step=0;step<9;step++)
	clr R10
	xjmp L88
L85:
	.dbline 190
	.dbline 191
	ldi R24,<_time
	ldi R25,>_time
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,95
	std z+0,R24
	.dbline 192
L86:
	.dbline 189
	inc R10
L88:
	.dbline 189
	mov R24,R10
	cpi R24,9
	brlo L85
	.dbline 193
; 	                        {
; 	                         time[step]='_';
;                         	}
; 	                     time[2]=':';
	ldi R24,58
	sts _time+2,R24
	.dbline 194
; 	                     time[5]=':';
	sts _time+5,R24
	.dbline 195
; 	                     time[8]=0;   
	clr R2
	sts _time+8,R2
	.dbline 196
; 	                     step=0;						
	clr R10
	.dbline 197
; 						}			   
	.dbline 198
; 			   }
L61:
	.dbline 199
; 		   cls(0,3,1,8);
	ldi R24,8
	ldi R25,0
	std y+2,R24
	std y+3,R25
	ldi R24,1
	std y+0,R24
	std y+1,R25
	ldi R18,3
	ldi R19,0
	clr R16
	clr R17
	xcall _cls
	.dbline 200
; 	       asc_tran(4,52,time);
	ldi R24,<_time
	ldi R25,>_time
	std y+0,R24
	std y+1,R25
	ldi R18,52
	ldi R19,0
	ldi R16,4
	ldi R17,0
	xcall _asc_tran
	.dbline 201
; 		  }
L54:
	.dbline 202
; 	  }
L52:
	.dbline 203
; 	while((temp&0x80)!=0x80);  
	mov R24,R20
	andi R24,128
	cpi R24,128
	breq X8
	xjmp L51
X8:
	.dbline -2
	.dbline 204
;    }
L38:
	adiw R28,4
	xcall pop_gset5
	.dbline 0 ; func end
	ret
	.dbsym r step 10 c
	.dbsym r temp 20 c
	.area bss(ram, con, rel)
	.dbfile D:\ICC-AVR\Pc_At\time.c
_time::
	.blkb 9
	.dbsym s time _time A[9:9]c
_hour::
	.blkb 1
	.dbsym s hour _hour c
_minute::
	.blkb 1
	.dbsym s minute _minute c
_second::
	.blkb 1
	.dbsym s second _second c
	.area data(ram, con, rel)
	.dbfile D:\ICC-AVR\Pc_At\time.c
L43:
	.blkb 9
	.area idata
	.byte 95,95,58,95,95,58,95,95,0
	.area data(ram, con, rel)
	.dbfile D:\ICC-AVR\Pc_At\time.c
L42:
	.blkb 5
	.area idata
	.byte 200,183,182,168,0
	.area data(ram, con, rel)
	.dbfile D:\ICC-AVR\Pc_At\time.c
L41:
	.blkb 6
	.area idata
	.byte 'S,'H,'I,'F,'T,0
	.area data(ram, con, rel)
	.dbfile D:\ICC-AVR\Pc_At\time.c
L40:
	.blkb 3
	.area idata
	.byte 176,180,0
	.area data(ram, con, rel)
	.dbfile D:\ICC-AVR\Pc_At\time.c
L39:
	.blkb 9
	.area idata
	.byte 202,228,200,235,202,177,188,228,0
	.area data(ram, con, rel)
	.dbfile D:\ICC-AVR\Pc_At\time.c

⌨️ 快捷键说明

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