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

📄 led.s

📁 51单片机的
💻 S
📖 第 1 页 / 共 5 页
字号:
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	sts _JS_003+1,R3
	sts _JS_003,R2
	sts _JS_003+2+1,R5
	sts _JS_003+2,R4
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	sts _JS_003+1,R3
	sts _JS_003,R2
	sts _JS_003+2+1,R5
	sts _JS_003+2,R4
	xcall _TEST
	.dbline -2
	.dbline 143
;    //display_times();         //TEST USE
;   
;   
;    
; }
L5:
	adiw R28,4
	xcall pop_gset2
	xcall pop_lset
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e TEST _TEST fV
	.even
_TEST::
	xcall push_gset2
	.dbline -1
	.dbline 146
; /////////////////test/////////////////////////////////////
; void  TEST()
; {
	.dbline 148
;   //LED_DISPLAY_V4=8;          //TEST
;   if (JS_003==10000)
	ldi R20,16
	ldi R21,39
	ldi R22,0
	ldi R23,0
	lds R4,_JS_003+2
	lds R5,_JS_003+2+1
	lds R2,_JS_003
	lds R3,_JS_003+1
	cp R2,R20
	cpc R3,R21
	cpc R4,R22
	cpc R5,R23
	brne L7
	.dbline 149
;            {
	.dbline 150
;            LED_DISPLAY_V5=14;
	ldi R24,14
	sts _LED_DISPLAY_V5,R24
	.dbline 152
;              
;            }  
	xjmp L8
L7:
	.dbline 153
;     else if (JS_003==20000)  
	ldi R20,32
	ldi R21,78
	ldi R22,0
	ldi R23,0
	lds R4,_JS_003+2
	lds R5,_JS_003+2+1
	lds R2,_JS_003
	lds R3,_JS_003+1
	cp R2,R20
	cpc R3,R21
	cpc R4,R22
	cpc R5,R23
	brne L9
	.dbline 154
;          {
	.dbline 155
;          JS_003=0;  
	.dbline 156
;          LED_DISPLAY_V5=13;
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	sts _JS_003+1,R21
	sts _JS_003,R20
	sts _JS_003+2+1,R23
	sts _JS_003+2,R22
	ldi R24,13
	sts _LED_DISPLAY_V5,R24
	.dbline 157
;          } 
L9:
L8:
	.dbline -2
	.dbline 158
; }
L6:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e timer2_init _timer2_init fV
	.even
_timer2_init::
	.dbline -1
	.dbline 165
; /////////////////////////timer2///////////////////////////////////////////////////////////////////
; //TIMER2 initialize - prescale:32
; // WGM: Normal
; // desired value: 10uSec
; // actual value: 10.000uSec (0.0%)
; void timer2_init(void)
; {
	.dbline 166
;  TCCR2 = 0x00; //stop
	clr R2
	out 0x25,R2
	.dbline 167
;  ASSR  = 0x00; //set async mode
	out 0x22,R2
	.dbline 168
;  TCNT2 = 0xFB; //setup
	ldi R24,251
	out 0x24,R24
	.dbline 169
;  OCR2  = 0x05;
	ldi R24,5
	out 0x23,R24
	.dbline 170
;  TCCR2 = 0x03; //start
	ldi R24,3
	out 0x25,R24
	.dbline -2
	.dbline 171
; }
L11:
	.dbline 0 ; func end
	ret
	.dbend
	.area vector(rom, abs)
	.org 16
	jmp _timer2_ovf_isr
	.area text(rom, con, rel)
	.dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
	.dbfunc e timer2_ovf_isr _timer2_ovf_isr fV
	.even
_timer2_ovf_isr::
	st -y,R24
	in R24,0x3f
	st -y,R24
	.dbline -1
	.dbline 175
; 
; #pragma interrupt_handler timer2_ovf_isr:5
; void timer2_ovf_isr(void)   //10us
; {
	.dbline 176
;  TCNT2 = 0xFB; //reload counter value
	ldi R24,251
	out 0x24,R24
	.dbline -2
	.dbline 180
;  //ICP_INT_JS();
;  //ICP_INT_CLR_JS();
;  
; }
L12:
	ld R24,y+
	out 0x3f,R24
	ld R24,y+
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e KEY_CHK _KEY_CHK fV
	.even
_KEY_CHK::
	.dbline -1
	.dbline 184
; /////////////////////////KEY_CHK/////////////////////////////////////////////////////////////
; 
; void KEY_CHK()
; {
	.dbline 187
; 
;     
; KEY_CHK_MODE();                  // 调用   KEY_CHK_MODE
	xcall _KEY_CHK_MODE
	.dbline 188
; KEY_CHK_MENU();                  // 调用   KEY_CHK_MENU
	xcall _KEY_CHK_MENU
	.dbline 189
; KEY_CHK_UP();                    // 调用   KEY_CHK_UP
	xcall _KEY_CHK_UP
	.dbline 190
; KEY_CHK_DOWN();                  // 调用   KEY_CHK_DOWN		
	.dbline -2
	.dbline 191
; }
L13:
	.dbline 0 ; func end
	xjmp _KEY_CHK_DOWN
	.dbend
	.dbfunc e KEY_CHK_MODE _KEY_CHK_MODE fV
	.even
_KEY_CHK_MODE::
	.dbline -1
	.dbline 194
; //////////////////////////MODE///////////////////////////////////////////////////////////
; void KEY_CHK_MODE()                   //100us /times
; {
	.dbline 195
;     KEY_BANK=KEY_INPUT;               // 取PINC值
	.dbline 196
;     KEY_BANK&=0X01;                   // 取mode 值	
	.dbline 197
; if (KEY_BANK==0)     //有按下 执行   
	in R2,0x13
	sts _KEY_BANK,R2
	mov R24,R2
	andi R24,1
	sts _KEY_BANK,R24
	tst R24
	brne L15
	.dbline 198
;    {      //TEST--------OK------------->>>>  
	.dbline 199
;        KEY_BANK=1;               
	.dbline 200
;        JS_004=++JS_004;
	.dbline 201
;        if (JS_004==1)
	ldi R24,1
	sts _KEY_BANK,R24
	lds R24,_JS_004
	subi R24,255    ; addi 1
	mov R2,R24
	sts _JS_004,R2
	sts _JS_004,R2
	cpi R24,1
	brne L17
	.dbline 202
;                         {
	.dbline 204
;   		 		  //LED_DISPLAY_V1=11;
;  	 			  LED_DISPLAY_V2=0;
	.dbline 205
;   				  LED_DISPLAY_V3=0;
	.dbline 206
;   				  LED_DISPLAY_V4=1;  				  
	clr R2
	sts _LED_DISPLAY_V2,R2
	sts _LED_DISPLAY_V3,R2
	ldi R24,1
	sts _LED_DISPLAY_V4,R24
	.dbline 207
;                         }
	xjmp L16
L17:
	.dbline 208
;        else if (JS_004==2)
	lds R24,_JS_004
	cpi R24,2
	brne L16
	.dbline 209
;                          {
	.dbline 210
;                                   JS_004&=0;
	.dbline 212
;              	  	          //LED_DISPLAY_V1=10;
;  	 	   	 	  LED_DISPLAY_V2=0;
	.dbline 213
;   			 	  LED_DISPLAY_V3=0;
	.dbline 214
;   			 	  LED_DISPLAY_V4=1;
	clr R2
	sts _JS_004,R2
	sts _LED_DISPLAY_V2,R2
	sts _LED_DISPLAY_V3,R2
	ldi R24,1
	sts _LED_DISPLAY_V4,R24
	.dbline 215
;                          }
	.dbline 216
;    }
	xjmp L16
L15:
	.dbline 218
	clr R2
	sts _KEY_BANK,R2
L16:
	.dbline -2
	.dbline 220
;    else
;       KEY_BANK=0;
;     
; }
L14:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e KEY_PRESS_CHECK_OFF _KEY_PRESS_CHECK_OFF fV
	.even
_KEY_PRESS_CHECK_OFF::
	.dbline -1
	.dbline 223
; 
; void KEY_PRESS_CHECK_OFF()
; {
	.dbline 224
;        KEY_BANK=KEY_INPUT;      // 取PINC值
	.dbline 225
;        KEY_BANK&=0X01;    
	.dbline 226
;      if  (KEY_BANK==0)          // V1有按下
	in R2,0x13
	sts _KEY_BANK,R2
	mov R24,R2
	andi R24,1
	sts _KEY_BANK,R24
	tst R24
	brne L22
	.dbline 227
;          KEY_PAN_MODE_3=1;
	ldi R24,1
	sts _KEY_PAN_MODE_3,R24
	xjmp L23
L22:
	.dbline 229
	clr R2
	sts _KEY_PAN_MODE_3,R2
L23:
	.dbline -2
	.dbline 230
;      else                       // V1没有按下  
;          KEY_PAN_MODE_3=0;
; }
L21:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e KEY_CHK_MENU _KEY_CHK_MENU fV
	.even
_KEY_CHK_MENU::
	.dbline -1
	.dbline 233
; ///////////////////////////////MENU/////////////////////////////////////////////////////////////////
; void KEY_CHK_MENU() 
; {
	.dbline -2
	.dbline 234
; }
L24:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e KEY_CHK_UP _KEY_CHK_UP fV
	.even
_KEY_CHK_UP::
	xcall push_gset2
	sbiw R28,4
	.dbline -1
	.dbline 237
; ///////////////////////////////UP///////////////////////////////////////////////////////////////////////
; void KEY_CHK_UP() 
; {
	.dbline 238
;     KEY_BANK=KEY_INPUT;               // 取PINC值
	.dbline 239
;     KEY_BANK=KEY_BANK>>2;
	.dbline 240
;     KEY_BANK&=0X01;                   // 取DOWN 值
	.dbline 241
;   if (KEY_BANK==0)              //press on  do it
	in R2,0x13
	sts _KEY_BANK,R2
	lsr R2
	lsr R2
	sts _KEY_BANK,R2
	mov R24,R2
	andi R24,1
	sts _KEY_BANK,R24
	tst R24
	breq X0
	xjmp L26
X0:
	.dbline 242
;       {    
	.dbline 244
;            
;            JS_PRESS_OFF_UP==0;  
	.dbline 246
;            
;        if (JS_PRESS_ON_UP_1==0)            //press on  yes   first times
	lds R2,_JS_PRESS_ON_UP_1
	tst R2
	brne L28
	.dbline 247
;            {
	.dbline 248
;            JS_PRESS_ON_UP_1=1;
	.dbline 249
;            JS_PRESS_ON_UP=0;
	.dbline 250
;            JS_PRESS_ON_UP_FAST=0;      
	.dbline 251
;            JS_PRESS_ON_UP_10000=0;
	.dbline 252
;            LED_DISPLAY_UP_DMX512();
	ldi R24,1
	sts _JS_PRESS_ON_UP_1,R24
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	sts _JS_PRESS_ON_UP+1,R21
	sts _JS_PRESS_ON_UP,R20
	sts _JS_PRESS_ON_UP+2+1,R23
	sts _JS_PRESS_ON_UP+2,R22
	clr R2
	clr R3
	sts _JS_PRESS_ON_UP_FAST+1,R3
	sts _JS_PRESS_ON_UP_FAST,R2
	sts _JS_PRESS_ON_UP_10000,R2
	xcall _LED_DISPLAY_UP_DMX512
	.dbline 257
;            
;               // JS_UP_MODE=++JS_UP_MODE;
;               //   if (JS_UP_MODE==4)
;               //   JS_UP_MODE=0;
;            }  
	xjmp L27
L28:
	.dbline 259
;         else
;         {
	.dbline 260
;                if (JS_PRESS_ON_UP_10000==1)
	lds R24,_JS_PRESS_ON_UP_10000
	cpi R24,1
	brne L30
	.dbline 261
;                    {
	.dbline 262
;                                       if (JS_PRESS_ON_UP_FAST==2000)
	lds R24,_JS_PRESS_ON_UP_FAST
	lds R25,_JS_PRESS_ON_UP_FAST+1
	cpi R24,208
	ldi R30,7
	cpc R25,R30
	brne L32
	.dbline 263
;                                         {
	.dbline 264
;                     			JS_PRESS_ON_UP_FAST=0;          
	.dbline 265
;                     			LED_DISPLAY_UP_DMX512();
	clr R2
	clr R3
	sts _JS_PRESS_ON_UP_FAST+1,R3
	sts _JS_PRESS_ON_UP_FAST,R2
	xcall _LED_DISPLAY_UP_DMX512
	.dbline 266
;                     			}
	xjmp L33
L32:
	.dbline 268
;                			     else
;                    			JS_PRESS_ON_UP_FAST=++JS_PRESS_ON_UP_FAST; 			
	lds R24,_JS_PRESS_ON_UP_FAST
	lds R25,_JS_PRESS_ON_UP_FAST+1
	adiw R24,1
	sts _JS_PRESS_ON_UP_FAST+1,R25
	sts _JS_PRESS_ON_UP_FAST,R24
	sts _JS_PRESS_ON_UP_FAST+1,R25
	sts _JS_PRESS_ON_UP_FAST,R24
L33:
	.dbline 269
;                    }
L30:
	.dbline 271
;                    
;                if (JS_PRESS_ON_UP==30000)
	ldi R20,48
	ldi R21,117
	ldi R22,0
	ldi R23,0
	lds R4,_JS_PRESS_ON_UP+2
	lds R5,_JS_PRESS_ON_UP+2+1
	lds R2,_JS_PRESS_ON_UP
	lds R3,_JS_PRESS_ON_UP+1
	cp R2,R20
	cpc R3,R21
	cpc R4,R22
	cpc R5,R23
	brne L34
	.dbline 272
;                     {
	.dbline 273
;                     JS_PRESS_ON_UP=0;          
	.dbline 274
;                     JS_PRESS_ON_UP_10000=1; 
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	sts _JS_PRESS_ON_UP+1,R21
	sts _JS_PRESS_ON_UP,R20
	sts _JS_PRESS_ON_UP+2+1,R23
	sts _JS_PRESS_ON_UP+2,R22
	ldi R24,1
	sts _JS_PRESS_ON_UP_10000,R24
	.dbline 275
;                     }
	xjmp L27
L34:
	.dbline 277
;                else
;                    JS_PRESS_ON_UP=++JS_PRESS_ON_UP;                   
	ldi R20,1
	ldi R21,0
	ldi R22,0
	ldi R23,0
	lds R4,_JS_PRESS_ON_UP+2
	lds R5,_JS_PRESS_ON_UP+2+1
	lds R2,_JS_PRESS_ON_UP
	lds R3,_JS_PRESS_ON_UP+1
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	movw R30,R28
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	sts _JS_PRESS_ON_UP+1,R3
	sts _JS_PRESS_ON_UP,R2
	sts _JS_PRESS_ON_UP+2+1,R5
	sts _JS_PRESS_ON_UP+2,R4
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	sts _JS_PRESS_ON_UP+1,R3
	sts _JS_PRESS_ON_UP,R2
	sts _JS_PRESS_ON_UP+2+1,R5
	sts _JS_PRESS_ON_UP+2,R4
	.dbline 278
;          }       
	.dbline 279
;      }
	xjmp L27
L26:
	.dbline 281
;   else        //unpress     
;            {
	.dbline 282
;                JS_PRESS_ON_UP=0;
	.dbline 283
;                JS_PRESS_ON_UP_10000=0; 
	.dbline 284
;                JS_PRESS_ON_UP_FAST=0;     
	.dbline 285
;                JS_PRESS_OFF_UP=++JS_PRESS_OFF_UP; 
	.dbline 286
;              if (JS_PRESS_OFF_UP==2000)
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	sts _JS_PRESS_ON_UP+1,R21
	sts _JS_PRESS_ON_UP,R20
	sts _JS_PRESS_ON_UP+2+1,R23
	sts _JS_PRESS_ON_UP+2,R22
	clr R2
	sts _JS_PRESS_ON_UP_10000,R2
	clr R3
	sts _JS_PRESS_ON_UP_FAST+1,R3
	sts _JS_PRESS_ON_UP_FAST,R2
	lds R24,_JS_PRESS_OFF_UP
	lds R25,_JS_PRESS_OFF_UP+1
	adiw R24,1
	sts _JS_PRESS_OFF_UP+1,R25
	sts _JS_PRESS_OFF_UP,R24
	sts _JS_PRESS_OFF_UP+1,R25
	sts _JS_PRESS_OFF_UP,R24
	cpi R24,208
	ldi R30,7
	cpc R25,R30
	brne L36
	.dbline 287
;                           { 
	.dbline 288
;                            JS_PRESS_ON_UP_1=0;
	.dbline 289
;                            JS_PRESS_OFF_UP=0;          
	sts _JS_PRESS_ON_UP_1,R2
	sts _JS_PRESS_OFF_UP+1,R3
	sts _JS_PRESS_OFF_UP,R2
	.dbline 290
;                           } 
L36:
	.dbline 291
L27:
	.dbline -2
	.dbline 293
; 	    }		   
;                         
; }
L25:
	adiw R28,4

⌨️ 快捷键说明

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