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

📄 main.lst

📁 一款电力行业使用的温湿度控制器源代码 湿度传感器采用HF3223 温度采用DS18B20 单片机采用mega8 编程采用winavr2007
💻 LST
字号:
   1               		.file	"main.c"
   2               		.arch atmega8
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
 124               		.data
 127               	t_is_read:
 128 0000 01        		.byte	1
 129               		.text
 131               	.global	main
 133               	main:
   1:task/main.c   **** #include "inc/config.h"
   2:task/main.c   **** 
   3:task/main.c   **** 
   4:task/main.c   **** static BOOL t_is_read=true;
   5:task/main.c   **** 
   6:task/main.c   **** int main(void)
   7:task/main.c   **** {
 135               	.LM1:
 136               	/* prologue: frame size=0 */
 137 0000 C0E0      		ldi r28,lo8(__stack - 0)
 138 0002 D0E0      		ldi r29,hi8(__stack - 0)
 139 0004 DEBF      		out __SP_H__,r29
 140 0006 CDBF      		out __SP_L__,r28
 141               	/* prologue end (size=4) */
   8:task/main.c   ****     cli()			;      
 143               	.LM2:
 144               	/* #APP */
 145 0008 F894      		cli
   9:task/main.c   ****     TimerInit()		;
 147               	.LM3:
 148               	/* #NOAPP */
 149 000a 00D0      		rcall TimerInit
  10:task/main.c   ****     sei();
 151               	.LM4:
 152               	/* #APP */
 153 000c 7894      		sei
  11:task/main.c   ****     SynRamFromE2prom(); 
 155               	.LM5:
 156               	/* #NOAPP */
 157 000e 00D0      		rcall SynRamFromE2prom
  12:task/main.c   ****     DisplayTemperature(1300);   
 159               	.LM6:
 160 0010 84E1      		ldi r24,lo8(1300)
 161 0012 95E0      		ldi r25,hi8(1300)
 162 0014 00D0      		rcall DisplayTemperature
  13:task/main.c   ****     DisplayHumidity(101);
 164               	.LM7:
 165 0016 85E6      		ldi r24,lo8(101)
 166 0018 00D0      		rcall DisplayHumidity
  14:task/main.c   **** 	RelayRst();
 168               	.LM8:
 169 001a 00D0      		rcall RelayRst
  15:task/main.c   **** 	RelayJudge(AlrmStatusT,AlrmStatusH);
 171               	.LM9:
 172 001c 6091 0000 		lds r22,AlrmStatusH
 173 0020 8091 0000 		lds r24,AlrmStatusT
 174 0024 00D0      		rcall RelayJudge
  16:task/main.c   **** 	DisplayPower(ON);
 176               	.LM10:
 177 0026 81E0      		ldi r24,lo8(1)
 178 0028 00D0      		rcall DisplayPower
  17:task/main.c   **** 	
  18:task/main.c   **** 	wdt_enable ( WDTO_500MS);
 180               	.LM11:
 181 002a 88E1      		ldi r24,lo8(24)
 182 002c 90E0      		ldi r25,hi8(24)
 183 002e 2DE0      		ldi r18,lo8(13)
 184               	/* #APP */
 185 0030 0FB6      		in __tmp_reg__,__SREG__
 186 0032 F894      		cli
 187 0034 A895      		wdr
 188 0036 81BD      		out 33,r24
 189 0038 0FBE      		out __SREG__,__tmp_reg__
 190 003a 21BD      		out 33,r18
 191               	/* #NOAPP */
 192               	.L2:
  19:task/main.c   **** 	
  20:task/main.c   **** 	/*
  21:task/main.c   **** 	while(1)
  22:task/main.c   **** 	{
  23:task/main.c   **** 	  wdt_reset();
  24:task/main.c   **** 	   hf3223_read();
  25:task/main.c   **** 	   DisplayNum(hf3223_f);
  26:task/main.c   **** 	   		if(hf3223_f<8100)
  27:task/main.c   ****         {
  28:task/main.c   ****           f_sensor_h =false;
  29:task/main.c   **** 		  DisplayHumidityAlarm(OFF);
  30:task/main.c   **** 		}
  31:task/main.c   **** 		else
  32:task/main.c   ****         {
  33:task/main.c   ****           f_sensor_h =true;
  34:task/main.c   **** 		  DisplayHumidityAlarm(ON);
  35:task/main.c   **** 		}
  36:task/main.c   **** 		
  37:task/main.c   **** 	
  38:task/main.c   **** 	}*/
  39:task/main.c   **** 	
  40:task/main.c   **** 	while(1)
  41:task/main.c   **** 	{
  42:task/main.c   **** 	  
  43:task/main.c   **** 	  wdt_reset   ();
 194               	.LM12:
 195               	/* #APP */
 196 003c A895      		wdr
  44:task/main.c   **** 	  hf3223_read();
 198               	.LM13:
 199               	/* #NOAPP */
 200 003e 00D0      		rcall hf3223_read
  45:task/main.c   **** 	  if(SystemStatus == RUN)
 202               	.LM14:
 203 0040 9091 0000 		lds r25,SystemStatus
 204 0044 9923      		tst r25
 205 0046 09F0      		breq .+2
 206 0048 59C0      		rjmp .L4
  46:task/main.c   **** 	  {
  47:task/main.c   **** 	  
  48:task/main.c   **** 	  ////////////////////////////////////////
  49:task/main.c   **** 		 if(f_500ms ==true && t_is_read==true)
 208               	.LM15:
 209 004a 8091 0000 		lds r24,f_500ms
 210 004e 8130      		cpi r24,lo8(1)
 211 0050 49F4      		brne .L5
 212 0052 8091 0000 		lds r24,t_is_read
 213 0056 8130      		cpi r24,lo8(1)
 214 0058 29F4      		brne .L5
  50:task/main.c   **** 		 {
  51:task/main.c   **** 		    f_500ms   = false;
 216               	.LM16:
 217 005a 9093 0000 		sts f_500ms,r25
  52:task/main.c   **** 			t_is_read = false;
 219               	.LM17:
 220 005e 9093 0000 		sts t_is_read,r25
  53:task/main.c   **** 			 convert_T( );  
 222               	.LM18:
 223 0062 00D0      		rcall convert_T
 224               	.L5:
  54:task/main.c   ****          }
  55:task/main.c   **** 		 
  56:task/main.c   **** 		 
  57:task/main.c   **** 	///////////////////////////////////////////////////////////	 
  58:task/main.c   **** 	     if(f_1s==true  )
 226               	.LM19:
 227 0064 8091 0000 		lds r24,f_1s
 228 0068 8130      		cpi r24,lo8(1)
 229 006a 09F0      		breq .+2
 230 006c 54C0      		rjmp .L17
  59:task/main.c   **** 		 {
  60:task/main.c   **** 			f_1s= false;
 232               	.LM20:
 233 006e 1092 0000 		sts f_1s,__zero_reg__
  61:task/main.c   **** 			
  62:task/main.c   **** 			if(t_is_read == false)//////////////
 235               	.LM21:
 236 0072 C091 0000 		lds r28,t_is_read
 237 0076 CC23      		tst r28
 238 0078 D1F4      		brne .L7
  63:task/main.c   **** 			{
  64:task/main.c   **** 				if(read_T()==true)
 240               	.LM22:
 241 007a 00D0      		rcall read_T
 242 007c 8130      		cpi r24,lo8(1)
 243 007e 79F4      		brne .L8
  65:task/main.c   **** 				{
  66:task/main.c   **** 				   DisplayTemperature(Temperature);
 245               	.LM23:
 246 0080 8091 0000 		lds r24,Temperature
 247 0084 9091 0000 		lds r25,(Temperature)+1
 248 0088 00D0      		rcall DisplayTemperature
  67:task/main.c   **** 				  AlrmStatusT =CompareTem(Temperature,AlrmStatusT);
 250               	.LM24:
 251 008a 6091 0000 		lds r22,AlrmStatusT
 252 008e 8091 0000 		lds r24,Temperature
 253 0092 9091 0000 		lds r25,(Temperature)+1
 254 0096 00D0      		rcall CompareTem
 255 0098 8093 0000 		sts AlrmStatusT,r24
 256 009c 05C0      		rjmp .L9
 257               	.L8:
  68:task/main.c   **** 				}
  69:task/main.c   **** 				else
  70:task/main.c   **** 				{
  71:task/main.c   **** 				   DisplayTemperature(1300);
 259               	.LM25:
 260 009e 84E1      		ldi r24,lo8(1300)
 261 00a0 95E0      		ldi r25,hi8(1300)
 262 00a2 00D0      		rcall DisplayTemperature
  72:task/main.c   **** 				  AlrmStatusT = NO_ALARM;
 264               	.LM26:
 265 00a4 C093 0000 		sts AlrmStatusT,r28
 266               	.L9:
  73:task/main.c   **** 				}
  74:task/main.c   **** 				t_is_read =true; //recover信号量
 268               	.LM27:
 269 00a8 81E0      		ldi r24,lo8(1)
 270 00aa 8093 0000 		sts t_is_read,r24
 271               	.L7:
  75:task/main.c   **** 			}//////////////////////////////////
  76:task/main.c   **** 			 
  77:task/main.c   **** 			 
  78:task/main.c   **** 			  
  79:task/main.c   **** 			if(f_sensor_h==true)
 273               	.LM28:
 274 00ae 8091 0000 		lds r24,f_sensor_h
 275 00b2 8130      		cpi r24,lo8(1)
 276 00b4 59F4      		brne .L10
  80:task/main.c   **** 			{	
  81:task/main.c   **** 			    DisplayHumidity(Humidity);
 278               	.LM29:
 279 00b6 8091 0000 		lds r24,Humidity
 280 00ba 00D0      		rcall DisplayHumidity
  82:task/main.c   **** 			   AlrmStatusH =CompareHum(Humidity,AlrmStatusH);
 282               	.LM30:
 283 00bc 6091 0000 		lds r22,AlrmStatusH
 284 00c0 8091 0000 		lds r24,Humidity
 285 00c4 00D0      		rcall CompareHum
 286 00c6 8093 0000 		sts AlrmStatusH,r24
 287 00ca 04C0      		rjmp .L11
 288               	.L10:
  83:task/main.c   ****             }
  84:task/main.c   **** 			else
  85:task/main.c   **** 			{
  86:task/main.c   **** 			    DisplayHumidity(101);
 290               	.LM31:
 291 00cc 85E6      		ldi r24,lo8(101)
 292 00ce 00D0      		rcall DisplayHumidity
  87:task/main.c   ****                AlrmStatusH = NO_ALARM;			
 294               	.LM32:
 295 00d0 1092 0000 		sts AlrmStatusH,__zero_reg__
 296               	.L11:
  88:task/main.c   **** 			}  
  89:task/main.c   ****  
  90:task/main.c   **** 		
  91:task/main.c   **** 			///////////////////////////////////
  92:task/main.c   **** 
  93:task/main.c   **** 			///////////////////////////////
  94:task/main.c   **** 			 if(SystemMode== AUTO_TH)
 298               	.LM33:
 299 00d4 8091 0000 		lds r24,SystemMode
 300 00d8 8823      		tst r24
 301 00da E9F4      		brne .L17
  95:task/main.c   **** 			 {
  96:task/main.c   **** 				RelayJudge(AlrmStatusT,AlrmStatusH);
 303               	.LM34:
 304 00dc 6091 0000 		lds r22,AlrmStatusH
 305 00e0 8091 0000 		lds r24,AlrmStatusT
 306 00e4 00D0      		rcall RelayJudge
  97:task/main.c   **** 				///////
  98:task/main.c   **** 				if(AlrmStatusT==NO_ALARM)		 
 308               	.LM35:
 309 00e6 8091 0000 		lds r24,AlrmStatusT
 310 00ea 8111      		cpse r24,__zero_reg__
  99:task/main.c   **** 				{
 100:task/main.c   **** 					DisplayTemperatureAlarm(OFF);
 101:task/main.c   **** 				}
 102:task/main.c   **** 				else
 103:task/main.c   **** 				{
 104:task/main.c   **** 					DisplayTemperatureAlarm(ON);
 312               	.LM36:
 313 00ec 81E0      		ldi r24,lo8(1)
 314               	.L19:
 315 00ee 00D0      		rcall DisplayTemperatureAlarm
 105:task/main.c   **** 				}
 106:task/main.c   **** 				///////
 107:task/main.c   **** 
 108:task/main.c   **** 				if(AlrmStatusH==NO_ALARM)		 
 317               	.LM37:
 318 00f0 8091 0000 		lds r24,AlrmStatusH
 319 00f4 8111      		cpse r24,__zero_reg__
 109:task/main.c   **** 				{
 110:task/main.c   **** 					DisplayHumidityAlarm(OFF);
 111:task/main.c   **** 				}
 112:task/main.c   **** 				else
 113:task/main.c   **** 				{
 114:task/main.c   **** 					DisplayHumidityAlarm(ON);
 321               	.LM38:
 322 00f6 81E0      		ldi r24,lo8(1)
 323               	.L20:
 324 00f8 00D0      		rcall DisplayHumidityAlarm
 325 00fa 0DC0      		rjmp .L17
 326               	.L4:
 115:task/main.c   **** 				}/////
 116:task/main.c   **** 			 }
 117:task/main.c   **** 			////////////////////////////////
 118:task/main.c   ****          }
 119:task/main.c   **** 		//////////////////////////////////////////////////////end 1s
 120:task/main.c   **** 
 121:task/main.c   **** 		///////////////////////////////////
 122:task/main.c   **** 	  
 123:task/main.c   **** 	  
 124:task/main.c   **** 	  
 125:task/main.c   **** 	  
 126:task/main.c   **** 	  
 127:task/main.c   **** 	  }
 128:task/main.c   **** ///////////////////////////////////////////////////////////end run mode	  
 129:task/main.c   **** 	  else
 130:task/main.c   **** 	  {
 131:task/main.c   **** 	       if(f_60s)
 328               	.LM39:
 329 00fc 8091 0000 		lds r24,f_60s
 330 0100 8823      		tst r24
 331 0102 49F0      		breq .L17
 132:task/main.c   ****         {
 133:task/main.c   ****             f_60s=false;
 333               	.LM40:
 334 0104 1092 0000 		sts f_60s,__zero_reg__
 134:task/main.c   ****             FlashDigRst();
 336               	.LM41:
 337 0108 00D0      		rcall FlashDigRst
 135:task/main.c   ****             RmvDot(5);
 339               	.LM42:
 340 010a 85E0      		ldi r24,lo8(5)
 341 010c 90E0      		ldi r25,hi8(5)
 342 010e 00D0      		rcall RmvDot
 136:task/main.c   ****             SynRamFromE2prom(); //清除ram中被改变,而未在eeprom备份的值
 344               	.LM43:
 345 0110 00D0      		rcall SynRamFromE2prom
 137:task/main.c   ****             SystemStatus=RUN; 	//系统状态恢复成运行态
 347               	.LM44:
 348 0112 1092 0000 		sts SystemStatus,__zero_reg__
 349               	.L17:
 138:task/main.c   ****      	}
 139:task/main.c   **** 	  
 140:task/main.c   **** 	  }
 141:task/main.c   **** 	  
 142:task/main.c   **** 	  KeyScan    ( );
 351               	.LM45:
 352 0116 00D0      		rcall KeyScan
 143:task/main.c   **** 	  KeyProcess ( );
 354               	.LM46:
 355 0118 00D0      		rcall KeyProcess
 356 011a 90CF      		rjmp .L2
 357               	/* epilogue: frame size=0 */
 358               	/* epilogue: noreturn */
 359               	/* epilogue end (size=0) */
 360               	/* function main size 153 (149) */
 362               	.Lscope0:
 364               		.text
 366               	Letext:
 367               	/* File "task/main.c": code  153 = 0x0099 ( 149), prologues   4, epilogues   0 */
DEFINED SYMBOLS
                            *ABS*:00000000 main.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccEPaaaa.s:3      *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccEPaaaa.s:4      *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccEPaaaa.s:5      *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccEPaaaa.s:6      *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccEPaaaa.s:7      *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccEPaaaa.s:127    .data:00000000 t_is_read
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccEPaaaa.s:133    .text:00000000 main
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccEPaaaa.s:366    .text:0000011c Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
TimerInit
SynRamFromE2prom
DisplayTemperature
DisplayHumidity
RelayRst
AlrmStatusH
AlrmStatusT
RelayJudge
DisplayPower
hf3223_read
SystemStatus
f_500ms
convert_T
f_1s
read_T
Temperature
CompareTem
f_sensor_h
Humidity
CompareHum
SystemMode
DisplayTemperatureAlarm
DisplayHumidityAlarm
f_60s
FlashDigRst
RmvDot
KeyScan
KeyProcess

⌨️ 快捷键说明

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