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

📄 function.s

📁 LED显示面板
💻 S
📖 第 1 页 / 共 5 页
字号:
	.dbline 125
;                led7_display(12,3,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,3
	ldi R16,12
	xcall _led7_display
	.dbline 126
;                led7_display(0,4,1,1);
	ldi R24,1
	std y+2,R24
	std y+0,R24
	ldi R18,4
	clr R16
	xcall _led7_display
	.dbline 127
;                led7_display(t4,5,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,5
	mov R16,R22
	xcall _led7_display
	.dbline 128
; 			    } 
	xjmp L51
L50:
	.dbline 130
; 			  else
; 			   {
	.dbline 131
; 			   led7_display(12,2,0,1);        // t1=0,t2=0,t3=0,t4=0           
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,2
	ldi R16,12
	xcall _led7_display
	.dbline 132
;                led7_display(12,3,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,3
	ldi R16,12
	xcall _led7_display
	.dbline 133
;                led7_display(12,4,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,4
	ldi R16,12
	xcall _led7_display
	.dbline 134
;                led7_display(0,5,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,5
	clr R16
	xcall _led7_display
	.dbline 135
; 				} 
L51:
	.dbline 136
; 		     }		   
L49:
	.dbline 137
; 	     }	
L47:
	.dbline 138
;      }
L45:
	.dbline 140
; 
; SEI();
	sei
	.dbline 141
; }
	xjmp L38
L42:
	.dbline 143
; 
; else if(point_flag == 2)
	ldd R24,y+13
	cpi R24,2
	breq X5
	xjmp L38
X5:
	.dbline 144
;     {
	.dbline 145
; 	CLI();
	cli
	.dbline 146
; 	WDR();
	wdr
	.dbline 147
; 	t5 = data;
	ldd R20,y+15
	ldd R21,y+16
	.dbline 148
; 	t1 = t5/1000;
	ldi R18,1000
	ldi R19,3
	movw R16,R20
	xcall div16u
	mov R14,R16
	.dbline 149
; 	t2 = (t5%1000)/100;
	ldi R18,1000
	ldi R19,3
	movw R16,R20
	xcall mod16u
	ldi R18,100
	ldi R19,0
	xcall div16u
	mov R10,R16
	.dbline 150
; 	t3 = ((t5%1000)%100)/10;
	ldi R18,1000
	ldi R19,3
	movw R16,R20
	xcall mod16u
	ldi R18,100
	ldi R19,0
	xcall mod16u
	ldi R18,10
	ldi R19,0
	xcall div16u
	mov R12,R16
	.dbline 151
; 	t4 = ((t5%1000)%100)%10;
	ldi R18,1000
	ldi R19,3
	movw R16,R20
	xcall mod16u
	ldi R18,100
	ldi R19,0
	xcall mod16u
	ldi R18,10
	ldi R19,0
	xcall mod16u
	mov R22,R16
	.dbline 152
; 	if(t1)
	tst R14
	breq L54
	.dbline 153
; 	{
	.dbline 154
;    	 led7_display(t1,2,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,2
	mov R16,R14
	xcall _led7_display
	.dbline 155
;    	 led7_display(t2,3,1,1);
	ldi R24,1
	std y+2,R24
	std y+0,R24
	ldi R18,3
	mov R16,R10
	xcall _led7_display
	.dbline 156
;   	  led7_display(t3,4,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,4
	mov R16,R12
	xcall _led7_display
	.dbline 157
;   	   led7_display(t4,5,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,5
	mov R16,R22
	xcall _led7_display
	.dbline 158
;  	    }
	xjmp L55
L54:
	.dbline 160
; 	else 
; 	{
	.dbline 161
;   	 	  if(t2)
	tst R10
	breq L56
	.dbline 162
;    		  {
	.dbline 163
;     	  led7_display(12,2,0,1);               //  t1=0
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,2
	ldi R16,12
	xcall _led7_display
	.dbline 164
;     	  led7_display(t2,3,1,1);
	ldi R24,1
	std y+2,R24
	std y+0,R24
	ldi R18,3
	mov R16,R10
	xcall _led7_display
	.dbline 165
;     	  led7_display(t3,4,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,4
	mov R16,R12
	xcall _led7_display
	.dbline 166
;     	  led7_display(t4,5,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,5
	mov R16,R22
	xcall _led7_display
	.dbline 167
;    		   }
	xjmp L57
L56:
	.dbline 169
;   		    else
;      		 {                                     // t1=0,t2=0
	.dbline 170
; 	   		 if(t3)
	tst R12
	breq L58
	.dbline 171
; 	    	  {
	.dbline 172
;          	   led7_display(12,2,0,1);              //   t3!=0
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,2
	ldi R16,12
	xcall _led7_display
	.dbline 173
;         	   led7_display(t2,3,1,1);
	ldi R24,1
	std y+2,R24
	std y+0,R24
	ldi R18,3
	mov R16,R10
	xcall _led7_display
	.dbline 174
;          	   led7_display(t3,4,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,4
	mov R16,R12
	xcall _led7_display
	.dbline 175
;          	   led7_display(t4,5,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,5
	mov R16,R22
	xcall _led7_display
	.dbline 176
;                }
	xjmp L59
L58:
	.dbline 178
; 	 		   else
; 	      	   	   {                              // t1=0,t2=0,t3=0
	.dbline 179
; 		   		    if(t4)  
	tst R22
	breq L60
	.dbline 180
; 					{
	.dbline 181
; 					  led7_display(12,2,0,1);                 
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,2
	ldi R16,12
	xcall _led7_display
	.dbline 182
;           			  led7_display(t2,3,1,1);
	ldi R24,1
	std y+2,R24
	std y+0,R24
	ldi R18,3
	mov R16,R10
	xcall _led7_display
	.dbline 183
;           			  led7_display(0,4,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,4
	clr R16
	xcall _led7_display
	.dbline 184
;           			  led7_display(t4,5,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,5
	mov R16,R22
	xcall _led7_display
	.dbline 185
; 					    } 
	xjmp L61
L60:
	.dbline 187
; 				    else
; 					 {
	.dbline 188
; 			 		 led7_display(12,2,0,1);        // t1=0,t2=0,t3=0,t4=0           
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,2
	ldi R16,12
	xcall _led7_display
	.dbline 189
;             		 led7_display(12,3,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,3
	ldi R16,12
	xcall _led7_display
	.dbline 190
;          		     led7_display(12,4,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,4
	ldi R16,12
	xcall _led7_display
	.dbline 191
;                      led7_display(0,5,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,5
	clr R16
	xcall _led7_display
	.dbline 192
; 				     } 
L61:
	.dbline 193
; 		           }		   
L59:
	.dbline 194
; 	            }	
L57:
	.dbline 195
;               }
L55:
	.dbline 196
;      SEI();
	sei
	.dbline 197
;     }
	.dbline 198
;    }
	xjmp L38
L40:
	.dbline 199
;    else  if(data==0x5a)
	ldd R24,y+15
	ldd R25,y+16
	cpi R24,90
	ldi R30,0
	cpc R25,R30
	brne L62
	.dbline 200
;  {
	.dbline 201
;  WDR();
	wdr
	.dbline 202
;  led7_display(0,2,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,2
	clr R16
	xcall _led7_display
	.dbline 203
;  led7_display(13,3,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,3
	ldi R16,13
	xcall _led7_display
	.dbline 204
;  led7_display(12,4,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,4
	ldi R16,12
	xcall _led7_display
	.dbline 205
;  led7_display(12,5,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,5
	ldi R16,12
	xcall _led7_display
	.dbline 206
;      }
	xjmp L38
L62:
	.dbline 207
;  else if(data== 0xa5)
	ldd R24,y+15
	ldd R25,y+16
	cpi R24,165
	ldi R30,0
	cpc R25,R30
	breq X6
	xjmp L38
X6:
	.dbline 208
;  {WDR();
	.dbline 208
	wdr
	.dbline 209
;  led7_display(0,2,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,2
	clr R16
	xcall _led7_display
	.dbline 210
;  led7_display(14,3,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,3
	ldi R16,14
	xcall _led7_display
	.dbline 211
;  led7_display(14,4,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,4
	ldi R16,14
	xcall _led7_display
	.dbline 212
;  led7_display(12,5,0,1);
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,5
	ldi R16,12
	xcall _led7_display
	.dbline 213
;       }
	.dbline 214
;     }	 
	xjmp L38
L37:
	.dbline 217
	.dbline 217
	wdr
	.dbline 218
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,2
	ldi R16,15
	xcall _led7_display
	.dbline 219
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,3
	ldi R16,17
	xcall _led7_display
	.dbline 220
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,4
	ldi R16,16
	xcall _led7_display
	.dbline 221
	ldi R24,1
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,5
	ldi R16,16
	xcall _led7_display
	.dbline 222
L38:
	.dbline -2
L10:
	adiw R28,3
	xcall pop_gset5
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbsym r t4 22 c
	.dbsym r t3 12 c
	.dbsym r t5 20 i
	.dbsym r t2 10 c
	.dbsym r t1 14 c
	.dbsym l data 15 i
	.dbsym l point_flag 13 c
	.dbsym r channel 20 c
	.dbend
	.dbfunc e delay_1us _delay_1us fV
	.even
_delay_1us::
	.dbline -1
	.dbline 226
;  
;  else
;  {WDR();
;  led7_display(15,2,0,1);
;  led7_display(17,3,0,1);
;  led7_display(16,4,0,1);
;  led7_display(16,5,0,1);
;    }
; }
; 
; void delay_1us(void)
;      {asm("nop");}
	.dbline 226
	nop
	.dbline -2
L66:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e delay_us _delay_us fV
;              i -> R20,R21
;              n -> R22,R23
	.even
_delay_us::
	xcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 229
; 	 
; void delay_us(uint n)
; {
	.dbline 230
; 	uint i=0;
	clr R20
	clr R21
	.dbline 231
; 	for(i=0;i<n;i++)
	xjmp L71
L68:
	.dbline 232
	xcall _delay_1us
L69:
	.dbline 231
	subi R20,255  ; offset = 1
	sbci R21,255
L71:
	.dbline 231
	cp R20,R22
	cpc R21,R23
	brlo L68
	.dbline -2
L67:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r n 22 i
	.dbend
	.dbfunc e delay_1ms _delay_1ms fV
;              i -> R16,R17
	.even
_delay_1ms::
	.dbline -1
	.dbline 236
; 	delay_1us();
; }	 
; 	 
; void delay_1ms(void) 
; {
	.dbline 238
; 	uint i;
; 	for(i=1;i<(uint)(xtal*143-2);i++)
	ldi R16,1
	ldi R17,0
	xjmp L76
L73:
	.dbline 239
L74:
	.dbline 238
	subi R16,255  ; offset = 1
	sbci R17,255
L76:
	.dbline 238
	ldi R24,2286
	ldi R25,8
	cp R16,R24
	cpc R17,R25
	brlo L73
	.dbline -2
L72:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 i
	.dbend
	.dbfunc e delay_ms _delay_ms fV
;              i -> R20,R21
;              n -> R22,R23
	.even
_delay_ms::
	xcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 242
; 	;
; }
; void delay_ms(uint n)
; {
	.dbline 243
;    uint i=0;
	clr R20
	clr R21
	.dbline 244
;    for(i=0;i<n;i++)
	xjmp L81
L78:
	.dbline 245
	xcall _delay_1ms
L79:
	.dbline 244
	subi R20,255  ; offset = 1
	sbci R21,255
L81:
	.dbline 244
	cp R20,R22
	cpc R21,R23
	brlo L78
	.dbline -2
L77:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r n 22 i
	.dbend
	.dbfunc e get_id _get_id fc
;           temp -> R16
	.even
_get_id::
	.dbline -1
	.dbline 248
;    delay_1ms();
; }
; unsigned char get_id(void)                          //读取拨码开关
; {
	.dbline 250
;  unsigned char temp;
;  PORTC = addr_id;
	ldi R24,240
	out 0x8,R24
	.dbline 251
;  WDR();
	wdr
	.dbline 252
;  asm("nop");
	nop
	.dbline 253
;  asm("nop");
	nop
	.dbline 254
;  asm("nop");
	nop
	.dbline 255
;  asm("nop");
	nop
	.dbline 256
;  asm("nop");
	nop
	.dbline 257
;  asm("nop");
	nop
	.dbline 258
;  temp = PINB;
	in R16,0x3
	.dbline 259
;  temp = ~(temp);
	com R16
	.dbline 260
;  temp = temp&0x7f;
	andi R16,127
	.dbline 261
;  return temp;
	.dbline -2
L82:
	.dbline 0 ; func end
	ret
	.dbsym r temp 16 c
	.dbend
	.dbfunc e buzzer_on _buzzer_on fV
;           temp -> <dead>
	.even
_buzzer_on::
	.dbline -1
	.dbline 265
; }
; 
; void buzzer_on(void)
; {
	.dbline 267
; unsigned char temp;
; WDR();
	wdr
	.dbline 268
; out_state|=0x01;
	lds R24,_out_state
	ori R24,1
	sts _out_state,R24
	.dbline 269
; PORTC&=0xef;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 271
;  
; PORTE = (out_state<<2);
	lds R2,_out_state
	lsl R2
	lsl R2
	out 0xe,R2
	.dbline 272
; PORTD |= 0x80;
	sbi 0xb,7
	.dbline 273
;  asm("nop");
	nop
	.dbline 274
;  asm("nop");
	nop
	.dbline 275
; PORTD &= 0x7f;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline -2
L83:
	.dbline 0 ; func end
	ret
	.dbsym l temp 1 c
	.dbend
	.dbfunc e buzzer_off _buzzer_off fV
;           temp -> <dead>
	.even
_buzzer_off::
	.dbline -1
	.dbline 279
; }
; 
; void buzzer_off(void)
; {
	.dbline 281
;  unsigned char temp;
; WDR();
	wdr
	.dbline 282
; PORTC&=0xef;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 283
; out_state&=0xfe;
	lds R24,_out_state
	andi R24,254
	sts _out_state,R24
	.dbline 284
; PORTE = (out_state<<2);
	mov R2,R24
	lsl R2
	lsl R2
	out 0xe,R2
	.dbline 285
; PORTD |= 0x80;
	sbi 0xb,7

⌨️ 快捷键说明

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