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

📄 led.lst

📁 一款电力行业使用的温湿度控制器源代码 湿度传感器采用HF3223 温度采用DS18B20 单片机采用mega8 编程采用winavr2007
💻 LST
📖 第 1 页 / 共 5 页
字号:
 685 02f0 8093 0000 		sts f_60s,r24
 686               	.L59:
 144:drive/led.c   ****    
 145:drive/led.c   ****     if( ++cnt > (200/T0_TICK)  )  
 688               	.LM49:
 689 02f4 8091 0000 		lds r24,cnt
 690 02f8 9091 0000 		lds r25,(cnt)+1
 691 02fc 0196      		adiw r24,1
 692 02fe 9093 0000 		sts (cnt)+1,r25
 693 0302 8093 0000 		sts cnt,r24
 694 0306 893C      		cpi r24,201
 695 0308 9105      		cpc r25,__zero_reg__
 696 030a 48F0      		brlo .L60
 146:drive/led.c   ****     {
 147:drive/led.c   ****          cnt =0;                   
 698               	.LM50:
 699 030c 1092 0000 		sts (cnt)+1,__zero_reg__
 700 0310 1092 0000 		sts cnt,__zero_reg__
 148:drive/led.c   **** 
 149:drive/led.c   ****          fFlashison =~ fFlashison; 
 702               	.LM51:
 703 0314 8091 0000 		lds r24,fFlashison
 704 0318 8095      		com r24
 705 031a 8093 0000 		sts fFlashison,r24
 706               	.L60:
 150:drive/led.c   ****      }
 151:drive/led.c   **** 
 152:drive/led.c   **** 	     ledbuffer =LedData[LedCnt];
 708               	.LM52:
 709 031e 6091 0000 		lds r22,LedCnt
 710 0322 862F      		mov r24,r22
 711 0324 9927      		clr r25
 712 0326 FC01      		movw r30,r24
 713 0328 E050      		subi r30,lo8(-(LedData))
 714 032a F040      		sbci r31,hi8(-(LedData))
 715 032c E081      		ld r30,Z
 153:drive/led.c   **** //--------------------------------------------------------------------------------
 154:drive/led.c   ****     if( ( fLedFlashMap&(1<<LedCnt))!=0 )  
 717               	.LM53:
 718 032e 21E0      		ldi r18,lo8(1)
 719 0330 30E0      		ldi r19,hi8(1)
 720 0332 02C0      		rjmp 2f
 721 0334 220F      	1:	lsl r18
 722 0336 331F      		rol r19
 723 0338 8A95      	2:	dec r24
 724 033a E2F7      		brpl 1b
 725 033c 8091 0000 		lds r24,fLedFlashMap
 726 0340 9091 0000 		lds r25,(fLedFlashMap)+1
 727 0344 8223      		and r24,r18
 728 0346 9323      		and r25,r19
 729 0348 892B      		or r24,r25
 730 034a 19F0      		breq .L61
 155:drive/led.c   ****     {
 156:drive/led.c   ****           ledbuffer =ledbuffer&fFlashison;// 
 732               	.LM54:
 733 034c 8091 0000 		lds r24,fFlashison
 734 0350 E823      		and r30,r24
 735               	.L61:
 157:drive/led.c   ****     }
 158:drive/led.c   **** //----------------------------------------------------------------
 159:drive/led.c   ****          DispSeperateShow  (   ledbuffer , LedCnt  );   
 737               	.LM55:
 738 0352 8E2F      		mov r24,r30
 739 0354 D8DE      		rcall DispSeperateShow
 160:drive/led.c   **** 
 161:drive/led.c   **** 		 LedCnt ++ ;
 741               	.LM56:
 742 0356 8091 0000 		lds r24,LedCnt
 743 035a 8F5F      		subi r24,lo8(-(1))
 744 035c 8093 0000 		sts LedCnt,r24
 162:drive/led.c   **** 
 163:drive/led.c   ****         if( DIGMAX == LedCnt )   LedCnt=1;
 746               	.LM57:
 747 0360 8A30      		cpi r24,lo8(10)
 748 0362 19F4      		brne .L54
 749 0364 81E0      		ldi r24,lo8(1)
 750 0366 8093 0000 		sts LedCnt,r24
 751               	.L54:
 752               	/* epilogue: frame size=0 */
 753 036a FF91      		pop r31
 754 036c EF91      		pop r30
 755 036e BF91      		pop r27
 756 0370 AF91      		pop r26
 757 0372 9F91      		pop r25
 758 0374 8F91      		pop r24
 759 0376 7F91      		pop r23
 760 0378 6F91      		pop r22
 761 037a 5F91      		pop r21
 762 037c 4F91      		pop r20
 763 037e 3F91      		pop r19
 764 0380 2F91      		pop r18
 765 0382 0F90      		pop __tmp_reg__
 766 0384 0FBE      		out __SREG__,__tmp_reg__
 767 0386 0F90      		pop __tmp_reg__
 768 0388 1F90      		pop __zero_reg__
 769 038a 1895      		reti
 770               	/* epilogue end (size=17) */
 771               	/* function __vector_4 size 215 (181) */
 776               	.Lscope3:
 778               	.global	FlashDigRst
 780               	FlashDigRst:
 164:drive/led.c   ****                       
 165:drive/led.c   **** }
 166:drive/led.c   ****  void  FlashDigRst(void)
 167:drive/led.c   **** {
 782               	.LM58:
 783               	/* prologue: frame size=0 */
 784               	/* prologue end (size=0) */
 168:drive/led.c   ****       fLedFlashMap = 0;             
 786               	.LM59:
 787 038c 1092 0000 		sts (fLedFlashMap)+1,__zero_reg__
 788 0390 1092 0000 		sts fLedFlashMap,__zero_reg__
 789               	/* epilogue: frame size=0 */
 790 0394 0895      		ret
 791               	/* epilogue end (size=1) */
 792               	/* function FlashDigRst size 5 (4) */
 794               	.Lscope4:
 797               	.global	FlashDigOn
 799               	FlashDigOn:
 169:drive/led.c   **** }
 170:drive/led.c   **** 
 171:drive/led.c   ****  
 172:drive/led.c   ****  void  FlashDigOn(uint16 whichDig)
 173:drive/led.c   **** {
 801               	.LM60:
 802               	/* prologue: frame size=0 */
 803               	/* prologue end (size=0) */
 174:drive/led.c   **** 	  fLedFlashMap|= (1<<whichDig);  
 805               	.LM61:
 806 0396 21E0      		ldi r18,lo8(1)
 807 0398 30E0      		ldi r19,hi8(1)
 808 039a 02C0      		rjmp 2f
 809 039c 220F      	1:	lsl r18
 810 039e 331F      		rol r19
 811 03a0 8A95      	2:	dec r24
 812 03a2 E2F7      		brpl 1b
 813 03a4 8091 0000 		lds r24,fLedFlashMap
 814 03a8 9091 0000 		lds r25,(fLedFlashMap)+1
 815 03ac 822B      		or r24,r18
 816 03ae 932B      		or r25,r19
 817 03b0 9093 0000 		sts (fLedFlashMap)+1,r25
 818 03b4 8093 0000 		sts fLedFlashMap,r24
 819               	/* epilogue: frame size=0 */
 820 03b8 0895      		ret
 821               	/* epilogue end (size=1) */
 822               	/* function FlashDigOn size 19 (18) */
 824               	.Lscope5:
 827               	.global	FlashDigOff
 829               	FlashDigOff:
 175:drive/led.c   **** }
 176:drive/led.c   ****   void  FlashDigOff(uint16 whichDig)
 177:drive/led.c   **** {
 831               	.LM62:
 832               	/* prologue: frame size=0 */
 833               	/* prologue end (size=0) */
 178:drive/led.c   ****       fLedFlashMap&= ~(1<<whichDig);  
 835               	.LM63:
 836 03ba 21E0      		ldi r18,lo8(1)
 837 03bc 30E0      		ldi r19,hi8(1)
 838 03be 02C0      		rjmp 2f
 839 03c0 220F      	1:	lsl r18
 840 03c2 331F      		rol r19
 841 03c4 8A95      	2:	dec r24
 842 03c6 E2F7      		brpl 1b
 843 03c8 2095      		com r18
 844 03ca 3095      		com r19
 845 03cc 8091 0000 		lds r24,fLedFlashMap
 846 03d0 9091 0000 		lds r25,(fLedFlashMap)+1
 847 03d4 8223      		and r24,r18
 848 03d6 9323      		and r25,r19
 849 03d8 9093 0000 		sts (fLedFlashMap)+1,r25
 850 03dc 8093 0000 		sts fLedFlashMap,r24
 851               	/* epilogue: frame size=0 */
 852 03e0 0895      		ret
 853               	/* epilogue end (size=1) */
 854               	/* function FlashDigOff size 21 (20) */
 856               	.Lscope6:
 858               	.global	RmvDotAll
 860               	RmvDotAll:
 179:drive/led.c   **** }
 180:drive/led.c   **** 
 181:drive/led.c   **** /**************add num pot***************/
 182:drive/led.c   **** void  RmvDotAll(void)
 183:drive/led.c   **** {
 862               	.LM64:
 863               	/* prologue: frame size=0 */
 864               	/* prologue end (size=0) */
 184:drive/led.c   ****       fLedDotMap = 0;            
 866               	.LM65:
 867 03e2 1092 0000 		sts fLedDotMap,__zero_reg__
 868               	/* epilogue: frame size=0 */
 869 03e6 0895      		ret
 870               	/* epilogue end (size=1) */
 871               	/* function RmvDotAll size 3 (2) */
 873               	.Lscope7:
 876               	.global	AddDotOn
 878               	AddDotOn:
 185:drive/led.c   **** }
 186:drive/led.c   **** 
 187:drive/led.c   ****  
 188:drive/led.c   ****  void  AddDotOn(uint16 whichDig)
 189:drive/led.c   **** {
 880               	.LM66:
 881               	/* prologue: frame size=0 */
 882               	/* prologue end (size=0) */
 190:drive/led.c   **** 	  fLedDotMap|= (1<<whichDig);    
 884               	.LM67:
 885 03e8 21E0      		ldi r18,lo8(1)
 886 03ea 30E0      		ldi r19,hi8(1)
 887 03ec 02C0      		rjmp 2f
 888 03ee 220F      	1:	lsl r18
 889 03f0 331F      		rol r19
 890 03f2 8A95      	2:	dec r24
 891 03f4 E2F7      		brpl 1b
 892 03f6 8091 0000 		lds r24,fLedDotMap
 893 03fa 822B      		or r24,r18
 894 03fc 8093 0000 		sts fLedDotMap,r24
 895               	/* epilogue: frame size=0 */
 896 0400 0895      		ret
 897               	/* epilogue end (size=1) */
 898               	/* function AddDotOn size 14 (13) */
 900               	.Lscope8:
 903               	.global	RmvDot
 905               	RmvDot:
 191:drive/led.c   **** }
 192:drive/led.c   ****   void  RmvDot(uint16 whichDig)
 193:drive/led.c   **** {
 907               	.LM68:
 908               	/* prologue: frame size=0 */
 909               	/* prologue end (size=0) */
 194:drive/led.c   ****       fLedDotMap&= ~(1<<whichDig);   
 911               	.LM69:
 912 0402 21E0      		ldi r18,lo8(1)
 913 0404 30E0      		ldi r19,hi8(1)
 914 0406 02C0      		rjmp 2f
 915 0408 220F      	1:	lsl r18
 916 040a 331F      		rol r19
 917 040c 8A95      	2:	dec r24
 918 040e E2F7      		brpl 1b
 919 0410 922F      		mov r25,r18
 920 0412 9095      		com r25
 921 0414 8091 0000 		lds r24,fLedDotMap
 922 0418 8923      		and r24,r25
 923 041a 8093 0000 		sts fLedDotMap,r24
 924               	/* epilogue: frame size=0 */
 925 041e 0895      		ret
 926               	/* epilogue end (size=1) */
 927               	/* function RmvDot size 16 (15) */
 929               	.Lscope9:
 933               	.global	LedUpdateByDig
 935               	LedUpdateByDig:
 195:drive/led.c   **** }
 196:drive/led.c   **** 
 197:drive/led.c   **** 
 198:drive/led.c   **** 
 199:drive/led.c   **** 
 200:drive/led.c   **** 
 201:drive/led.c   **** 
 202:drive/led.c   **** 
 203:drive/led.c   **** /*******************************************************************
 204:drive/led.c   **** *  subname:     void Displayhumidity(uint8 humidity);
 205:drive/led.c   **** ********************************************************************/
 206:drive/led.c   **** void DisplayHumidity(uint8 humidity)
 207:drive/led.c   **** {
 208:drive/led.c   ****     if((humidity>100))
 209:drive/led.c   ****     {	
 210:drive/led.c   ****        	LedData[4] = 0x40 ; //directly pass the value to led buffer
 211:drive/led.c   ****        	LedData[5] = 0x40 ;
 212:drive/led.c   ****        	LedData[6] = 0x40 ;
 213:drive/led.c   ****     }
 214:drive/led.c   ****     else
 215:drive/led.c   ****     {  
 216:drive/led.c   **** 	   if(humidity==100)
 217:drive/led.c   **** 	   {
 218:drive/led.c   ****          LedUpdateByDig(4,humidity/100 ) ;//也可用该函数
 219:drive/led.c   **** 		         LedUpdateByDig(5,0 ) ;//也可用该函数
 220:drive/led.c   ****        }
 221:drive/led.c   **** 	   else
 222:drive/led.c   **** 	   {
 223:drive/led.c   **** 	     LedData[4] = 0x00 ;  
 224:drive/led.c   **** 	       LedUpdateByDig(5,humidity/10 ) ;//也可用该函数
 225:drive/led.c   **** 	   }
 226:drive/led.c   **** 
 227:drive/led.c   ****         LedUpdateByDig(6,humidity%10 ) ;//也可用该函数
 228:drive/led.c   ****     }
 229:drive/led.c   **** }
 230:drive/led.c   **** 
 231:drive/led.c   **** 
 232:drive/led.c   **** 
 233:drive/led.c   **** void LedUpdateByDig(uint8 Dig_n,uint8 led_val )
 234:drive/led.c   **** {
 937               	.LM70:
 938               	/* prologue: frame size=0 */
 939               	/* prologue end (size=0) */
 235:drive/led.c   **** 
 236:drive/led.c   ****    if( ( (fLedDotMap&(1<<Dig_n)) !=0 )&& (led_val!=28))  
 941               	.LM71:
 942 0420 9091 0000 		lds r25,fLedDotMap
 943 0424 292F      		mov r18,r25
 944 0426 3327      		clr r19
 945 0428 A82F      		mov r26,r24
 946 042a BB27      		clr r27
 947 042c 0A2E      		mov r0,r26
 948 042e 02C0      		rjmp 2f
 949 0430 3595      	1:	asr r19
 950 0432 2795      		ror r18
 951 0434 0A94      	2:	dec r0
 952 0436 E2F7      		brpl 1b
 953 0438 20FF      		sbrs r18,0
 954 043a 0BC0      		rjmp .L70
 956               	.LM72:
 957 043c 6C31      		cpi r22,lo8(28)
 958 043e 49F0      		breq .L70
 237:drive/led.c   ****         //content!=0x00 消除发消隐时
 238:drive/led.c   ****    {
 239:drive/led.c   **** 	    LedData[Dig_n] =pgm_read_byte(LedSeg+led_val)|0x80;
 960               	.LM73:
 961 0440 A050      		subi r26,lo8(-(LedData))
 962 0442 B040      		sbci r27,hi8(-(LedData))
 963               	.LBB2:
 964 0444 E62F      		mov r30,r22

⌨️ 快捷键说明

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