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

📄 led.lst

📁 一款电力行业使用的温湿度控制器源代码 湿度传感器采用HF3223 温度采用DS18B20 单片机采用mega8 编程采用winavr2007
💻 LST
📖 第 1 页 / 共 5 页
字号:
 389 0136 BD9A      		sbi 55-0x20,5
 390 0138 C598      		cbi 56-0x20,5
 391 013a 1CC0      		rjmp .L3
 392               	.L7:
 394               	.LM17:
 395 013c C330      		cpi r28,lo8(3)
 396 013e 19F4      		brne .L9
 397 0140 8E9A      		sbi 49-0x20,6
 398 0142 9698      		cbi 50-0x20,6
 399 0144 17C0      		rjmp .L3
 400               	.L9:
 402               	.LM18:
 403 0146 C230      		cpi r28,lo8(2)
 404 0148 19F4      		brne .L11
 405 014a 8F9A      		sbi 49-0x20,7
 406 014c 9798      		cbi 50-0x20,7
 407 014e 12C0      		rjmp .L3
 408               	.L11:
 410               	.LM19:
 411 0150 C130      		cpi r28,lo8(1)
 412 0152 19F4      		brne .L13
 413 0154 B89A      		sbi 55-0x20,0
 414 0156 C098      		cbi 56-0x20,0
 415 0158 0DC0      		rjmp .L3
 416               	.L13:
 418               	.LM20:
 419 015a C630      		cpi r28,lo8(6)
 420 015c 19F4      		brne .L15
 421 015e BB9A      		sbi 55-0x20,3
 422 0160 C398      		cbi 56-0x20,3
 423 0162 08C0      		rjmp .L3
 424               	.L15:
 426               	.LM21:
 427 0164 C730      		cpi r28,lo8(7)
 428 0166 21F0      		breq .L22
 430               	.LM22:
 431 0168 C830      		cpi r28,lo8(8)
 432 016a 11F0      		breq .L22
 434               	.LM23:
 435 016c C930      		cpi r28,lo8(9)
 436 016e 11F4      		brne .L3
 437               	.L22:
 438 0170 BE9A      		sbi 55-0x20,6
 439 0172 C698      		cbi 56-0x20,6
 440               	.L3:
 441               	/* epilogue: frame size=0 */
 442 0174 CF91      		pop r28
 443 0176 0895      		ret
 444               	/* epilogue end (size=2) */
 445               	/* function DispSeperateShow size 57 (54) */
 447               	.Lscope1:
 451               	.global	Hex2Bcd
 453               	Hex2Bcd:
  76:drive/led.c   **** }
  77:drive/led.c   **** 
  78:drive/led.c   **** 
  79:drive/led.c   **** void    Hex2Bcd( uint16 bytevalue,uint8 bcdval[5] )
  80:drive/led.c   **** {
 455               	.LM24:
 456               	/* prologue: frame size=0 */
 457               	/* prologue end (size=0) */
 458 0178 FB01      		movw r30,r22
 459 017a DB01      		movw r26,r22
 460 017c 24E0      		ldi r18,lo8(4)
 461               	.L27:
  81:drive/led.c   **** 	   u08 j;
  82:drive/led.c   ****      for ( j = 0; j < 5 ;j++)
  83:drive/led.c   ****          {
  84:drive/led.c   ****             bcdval[j]= 0;
 463               	.LM25:
 464 017e 1D92      		st X+,__zero_reg__
 466               	.LM26:
 467 0180 2150      		subi r18,lo8(-(-1))
 468 0182 27FF      		sbrs r18,7
 469 0184 FCCF      		rjmp .L27
  85:drive/led.c   ****          }
  86:drive/led.c   ****      //万位处理
  87:drive/led.c   ****     while( bytevalue >= 10000)   //20060402 判断中的>=不能写成>,否则有错,特别是会
  88:drive/led.c   ****                                  //各位数为10,在显示时显示成“a” 
  89:drive/led.c   ****          { 
  90:drive/led.c   ****             bcdval[0]++;
  91:drive/led.c   ****             bytevalue-=10000;
 471               	.LM27:
 472 0186 27E2      		ldi r18,hi8(10000)
 473 0188 8031      		cpi r24,lo8(10000)
 474 018a 9207      		cpc r25,r18
 475 018c 48F0      		brlo .L43
 476 018e 2081      		ld r18,Z
 477               	.L30:
 479               	.LM28:
 480 0190 2F5F      		subi r18,lo8(-(1))
 482               	.LM29:
 483 0192 8051      		subi r24,lo8(-(-10000))
 484 0194 9742      		sbci r25,hi8(-(-10000))
 485 0196 37E2      		ldi r19,hi8(10000)
 486 0198 8031      		cpi r24,lo8(10000)
 487 019a 9307      		cpc r25,r19
 488 019c C8F7      		brsh .L30
 489 019e 2083      		st Z,r18
 490               	.L43:
  92:drive/led.c   ****           }
  93:drive/led.c   ****      //千位处理
  94:drive/led.c   ****     while( bytevalue >= 1000)
  95:drive/led.c   ****         {
  96:drive/led.c   ****             bcdval[1]++;
  97:drive/led.c   ****             bytevalue-=1000;
 492               	.LM30:
 493 01a0 23E0      		ldi r18,hi8(1000)
 494 01a2 883E      		cpi r24,lo8(1000)
 495 01a4 9207      		cpc r25,r18
 496 01a6 48F0      		brlo .L45
 497 01a8 2181      		ldd r18,Z+1
 498               	.L33:
 500               	.LM31:
 501 01aa 2F5F      		subi r18,lo8(-(1))
 503               	.LM32:
 504 01ac 885E      		subi r24,lo8(-(-1000))
 505 01ae 9340      		sbci r25,hi8(-(-1000))
 506 01b0 33E0      		ldi r19,hi8(1000)
 507 01b2 883E      		cpi r24,lo8(1000)
 508 01b4 9307      		cpc r25,r19
 509 01b6 C8F7      		brsh .L33
 510 01b8 2183      		std Z+1,r18
 511               	.L45:
  98:drive/led.c   ****          }
  99:drive/led.c   ****     //百位处理
 100:drive/led.c   ****     while( bytevalue >= 100)
 101:drive/led.c   ****          { 
 102:drive/led.c   ****            bcdval[2]++;
 103:drive/led.c   ****            bytevalue-=100;
 513               	.LM33:
 514 01ba 8436      		cpi r24,100
 515 01bc 9105      		cpc r25,__zero_reg__
 516 01be 40F0      		brlo .L47
 517 01c0 2281      		ldd r18,Z+2
 518               	.L36:
 520               	.LM34:
 521 01c2 2F5F      		subi r18,lo8(-(1))
 523               	.LM35:
 524 01c4 8456      		subi r24,lo8(-(-100))
 525 01c6 9040      		sbci r25,hi8(-(-100))
 526 01c8 8436      		cpi r24,100
 527 01ca 9105      		cpc r25,__zero_reg__
 528 01cc D0F7      		brsh .L36
 529 01ce 2283      		std Z+2,r18
 530               	.L47:
 104:drive/led.c   ****          }
 105:drive/led.c   ****     //十位处理
 106:drive/led.c   ****     while(bytevalue  >= 10)
 107:drive/led.c   ****         { 
 108:drive/led.c   ****           bcdval[3]++;    
 109:drive/led.c   ****           bytevalue-=10;
 532               	.LM36:
 533 01d0 8A30      		cpi r24,10
 534 01d2 9105      		cpc r25,__zero_reg__
 535 01d4 38F0      		brlo .L49
 536 01d6 2381      		ldd r18,Z+3
 537               	.L39:
 539               	.LM37:
 540 01d8 2F5F      		subi r18,lo8(-(1))
 542               	.LM38:
 543 01da 0A97      		sbiw r24,10
 544 01dc 8A30      		cpi r24,10
 545 01de 9105      		cpc r25,__zero_reg__
 546 01e0 D8F7      		brsh .L39
 547 01e2 2383      		std Z+3,r18
 548               	.L49:
 110:drive/led.c   ****          }
 111:drive/led.c   ****     //个位处理
 112:drive/led.c   ****      bcdval[4]=bytevalue;
 550               	.LM39:
 551 01e4 8483      		std Z+4,r24
 552               	/* epilogue: frame size=0 */
 553 01e6 0895      		ret
 554               	/* epilogue end (size=1) */
 555               	/* function Hex2Bcd size 56 (55) */
 560               	.Lscope2:
 562               	.global	__vector_4
 564               	__vector_4:
 113:drive/led.c   **** 
 114:drive/led.c   **** }
 115:drive/led.c   **** 
 116:drive/led.c   **** 
 117:drive/led.c   **** /**************************************************************
 118:drive/led.c   **** * functionname: signal(sig_overflow0)
 119:drive/led.c   **** ***************************************************************/
 120:drive/led.c   **** static uint16   cnt         = 0 ;    	/*软定时器,用于设定时标   */
 121:drive/led.c   **** static uint8    LedCnt      = 0 ;    	/*用于数码管的刷新计数     */
 122:drive/led.c   **** static uint16   fLedFlashMap= 0 ;       /*用于闪烁位的指示         */
 123:drive/led.c   **** static uint8    fFlashison  = 0 ;    	/*指示闪烁中的明暗两种状态 */
 124:drive/led.c   ****  u08     tick_15ms    = 0 ;     
 125:drive/led.c   **** static u16     tick_500ms   = 0 ;
 126:drive/led.c   **** static u16     tick_1s      = 0 ;
 127:drive/led.c   **** static u16     tick_5s      = 0 ;
 128:drive/led.c   **** static u16     tick_60s     = 0 ;
 129:drive/led.c   **** 
 130:drive/led.c   **** /*********定时器2的中断,来产生系统工作的基本时序**************/
 131:drive/led.c   **** 
 132:drive/led.c   **** SIGNAL(SIG_OVERFLOW2)
 133:drive/led.c   **** //SIGNAL(SIG_OVERFLOW0)
 134:drive/led.c   **** {
 566               	.LM40:
 567               	/* prologue: frame size=0 */
 568 01e8 1F92      		push __zero_reg__
 569 01ea 0F92      		push __tmp_reg__
 570 01ec 0FB6      		in __tmp_reg__,__SREG__
 571 01ee 0F92      		push __tmp_reg__
 572 01f0 1124      		clr __zero_reg__
 573 01f2 2F93      		push r18
 574 01f4 3F93      		push r19
 575 01f6 4F93      		push r20
 576 01f8 5F93      		push r21
 577 01fa 6F93      		push r22
 578 01fc 7F93      		push r23
 579 01fe 8F93      		push r24
 580 0200 9F93      		push r25
 581 0202 AF93      		push r26
 582 0204 BF93      		push r27
 583 0206 EF93      		push r30
 584 0208 FF93      		push r31
 585               	/* prologue end (size=17) */
 135:drive/led.c   ****    u08 ledbuffer = 0;       
 587               	.LM41:
 588 020a E0E0      		ldi r30,lo8(0)
 136:drive/led.c   ****   TCNT2  = TIMER2_BGN_VAL;  
 590               	.LM42:
 591 020c 80EE      		ldi r24,lo8(-32)
 592 020e 84BD      		out 68-0x20,r24
 137:drive/led.c   ****      //TCNT0  = TIMER0_BGN_VAL;  
 138:drive/led.c   ****    
 139:drive/led.c   ****    if( tick_15ms++ >= 15/T0_TICK &&f_15ms==false    )   {   tick_15ms =0;f_15ms=true;timer0_stop();
 594               	.LM43:
 595 0210 8091 0000 		lds r24,tick_15ms
 596 0214 982F      		mov r25,r24
 597 0216 8F5F      		subi r24,lo8(-(1))
 598 0218 8093 0000 		sts tick_15ms,r24
 599 021c 9F30      		cpi r25,lo8(15)
 600 021e 50F0      		brlo .L55
 602               	.LM44:
 603 0220 8091 0000 		lds r24,f_15ms
 604 0224 8823      		tst r24
 605 0226 31F4      		brne .L55
 606 0228 E093 0000 		sts tick_15ms,r30
 607 022c 81E0      		ldi r24,lo8(1)
 608 022e 8093 0000 		sts f_15ms,r24
 609 0232 00D0      		rcall timer0_stop
 610               	.L55:
 140:drive/led.c   ****    if( tick_500ms++>= 500/T0_TICK&&f_500ms==false  )   {   tick_500ms=0;f_500ms=true;}
 612               	.LM45:
 613 0234 8091 0000 		lds r24,tick_500ms
 614 0238 9091 0000 		lds r25,(tick_500ms)+1
 615 023c 9C01      		movw r18,r24
 616 023e 0196      		adiw r24,1
 617 0240 9093 0000 		sts (tick_500ms)+1,r25
 618 0244 8093 0000 		sts tick_500ms,r24
 619 0248 245F      		subi r18,lo8(500)
 620 024a 3140      		sbci r19,hi8(500)
 621 024c 58F0      		brlo .L56
 622 024e 8091 0000 		lds r24,f_500ms
 623 0252 8823      		tst r24
 624 0254 39F4      		brne .L56
 625 0256 1092 0000 		sts (tick_500ms)+1,__zero_reg__
 626 025a 1092 0000 		sts tick_500ms,__zero_reg__
 627 025e 81E0      		ldi r24,lo8(1)
 628 0260 8093 0000 		sts f_500ms,r24
 629               	.L56:
 141:drive/led.c   ****    if( tick_1s++   >= 1000/T0_TICK&&f_1s==false     )   {   tick_1s   =0;f_1s=true;   }
 631               	.LM46:
 632 0264 8091 0000 		lds r24,tick_1s
 633 0268 9091 0000 		lds r25,(tick_1s)+1
 634 026c 9C01      		movw r18,r24
 635 026e 0196      		adiw r24,1
 636 0270 9093 0000 		sts (tick_1s)+1,r25
 637 0274 8093 0000 		sts tick_1s,r24
 638 0278 285E      		subi r18,lo8(1000)
 639 027a 3340      		sbci r19,hi8(1000)
 640 027c 58F0      		brlo .L57
 641 027e 8091 0000 		lds r24,f_1s
 642 0282 8823      		tst r24
 643 0284 39F4      		brne .L57
 644 0286 1092 0000 		sts (tick_1s)+1,__zero_reg__
 645 028a 1092 0000 		sts tick_1s,__zero_reg__
 646 028e 81E0      		ldi r24,lo8(1)
 647 0290 8093 0000 		sts f_1s,r24
 648               	.L57:
 142:drive/led.c   ****    if( tick_5s++   >= 3000/T0_TICK&&f_5s==false     )   {   tick_5s   =0;f_5s=true;   }
 650               	.LM47:
 651 0294 8091 0000 		lds r24,tick_5s
 652 0298 9091 0000 		lds r25,(tick_5s)+1
 653 029c 9C01      		movw r18,r24
 654 029e 0196      		adiw r24,1
 655 02a0 9093 0000 		sts (tick_5s)+1,r25
 656 02a4 8093 0000 		sts tick_5s,r24
 657 02a8 285B      		subi r18,lo8(3000)
 658 02aa 3B40      		sbci r19,hi8(3000)
 659 02ac 58F0      		brlo .L58
 660 02ae 8091 0000 		lds r24,f_5s
 661 02b2 8823      		tst r24
 662 02b4 39F4      		brne .L58
 663 02b6 1092 0000 		sts (tick_5s)+1,__zero_reg__
 664 02ba 1092 0000 		sts tick_5s,__zero_reg__
 665 02be 81E0      		ldi r24,lo8(1)
 666 02c0 8093 0000 		sts f_5s,r24
 667               	.L58:
 143:drive/led.c   ****    if( tick_60s++  >= 20000/T0_TICK&&f_60s==false   )   {   tick_60s  =0;f_60s=true;  }
 669               	.LM48:
 670 02c4 8091 0000 		lds r24,tick_60s
 671 02c8 9091 0000 		lds r25,(tick_60s)+1
 672 02cc 9C01      		movw r18,r24
 673 02ce 0196      		adiw r24,1
 674 02d0 9093 0000 		sts (tick_60s)+1,r25
 675 02d4 8093 0000 		sts tick_60s,r24
 676 02d8 2052      		subi r18,lo8(20000)
 677 02da 3E44      		sbci r19,hi8(20000)
 678 02dc 58F0      		brlo .L59
 679 02de 8091 0000 		lds r24,f_60s
 680 02e2 8823      		tst r24
 681 02e4 39F4      		brne .L59
 682 02e6 1092 0000 		sts (tick_60s)+1,__zero_reg__
 683 02ea 1092 0000 		sts tick_60s,__zero_reg__
 684 02ee 81E0      		ldi r24,lo8(1)

⌨️ 快捷键说明

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