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

📄 hf3223.lst

📁 一款电力行业使用的温湿度控制器源代码 湿度传感器采用HF3223 温度采用DS18B20 单片机采用mega8 编程采用winavr2007
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"hf3223.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               	.global	f_h_is_read
 125               	.global	f_h_is_read
 126               		.section .bss
 129               	f_h_is_read:
 130 0000 00        		.skip 1,0
 131               	.global	fhz_20ms
 132               	.global	fhz_20ms
 135               	fhz_20ms:
 136 0001 0000 0000 		.skip 100,0
 136      0000 0000 
 136      0000 0000 
 136      0000 0000 
 136      0000 0000 
 137               	.global	test_freq
 138               	.global	test_freq
 141               	test_freq:
 142 0065 0000      		.skip 2,0
 143               	.global	hf3223_f
 144               	.global	hf3223_f
 147               	hf3223_f:
 148 0067 0000      		.skip 2,0
 149               	.global	t0_cnt
 150               	.global	t0_cnt
 153               	t0_cnt:
 154 0069 0000 0000 		.skip 20,0
 154      0000 0000 
 154      0000 0000 
 154      0000 0000 
 154      0000 0000 
 155               		.text
 158               	.global	hf3223_convert
 160               	hf3223_convert:
   1:drive/hf3223.c **** #include "inc/config.h"
   2:drive/hf3223.c **** 
   3:drive/hf3223.c **** 
   4:drive/hf3223.c **** u16 t0_cnt[10]={ };//测频值
   5:drive/hf3223.c **** u16 hf3223_f =0;
   6:drive/hf3223.c **** u16 test_freq=0;
   7:drive/hf3223.c **** 
   8:drive/hf3223.c **** u08 fhz_20ms[100]={};//ARRAY FOR THE temerary buffer for cnter
   9:drive/hf3223.c **** 
  10:drive/hf3223.c **** BOOL f_h_is_read = false;
  11:drive/hf3223.c **** 
  12:drive/hf3223.c **** 
  13:drive/hf3223.c **** u08 hf3223_convert(u16 fhz)
  14:drive/hf3223.c **** {
 162               	.LM1:
 163               	/* prologue: frame size=0 */
 164               	/* prologue end (size=0) */
 165 0000 9C01      		movw r18,r24
  15:drive/hf3223.c **** 	u08  RH=100; 
 167               	.LM2:
 168 0002 84E6      		ldi r24,lo8(100)
  16:drive/hf3223.c **** 	//fhz = 2*fhz; //采样周期为500ms
  17:drive/hf3223.c **** 	if(fhz > 9595) 			 
 170               	.LM3:
 171 0004 95E2      		ldi r25,hi8(9596)
 172 0006 2C37      		cpi r18,lo8(9596)
 173 0008 3907      		cpc r19,r25
 174 000a 10F0      		brlo .L2
  18:drive/hf3223.c **** 	{
  19:drive/hf3223.c **** 		RH=0;
 176               	.LM4:
 177 000c 80E0      		ldi r24,lo8(0)
 178 000e 19C0      		rjmp .L3
 179               	.L2:
  20:drive/hf3223.c **** 	}
  21:drive/hf3223.c **** 	else if( fhz < 8000)
 181               	.LM5:
 182 0010 9FE1      		ldi r25,hi8(8000)
 183 0012 2034      		cpi r18,lo8(8000)
 184 0014 3907      		cpc r19,r25
 185 0016 A8F0      		brlo .L3
  22:drive/hf3223.c **** 	{
  23:drive/hf3223.c **** 		RH =100;
  24:drive/hf3223.c **** 	}
  25:drive/hf3223.c **** 	else
  26:drive/hf3223.c **** 	{
  27:drive/hf3223.c **** 		RH	 = ((  9595-fhz)*10/148);
 187               	.LM6:
 188 0018 8BE7      		ldi r24,lo8(9595)
 189 001a 95E2      		ldi r25,hi8(9595)
 190 001c 821B      		sub r24,r18
 191 001e 930B      		sbc r25,r19
 192 0020 9C01      		movw r18,r24
 193 0022 43E0      		ldi r20,3
 194 0024 220F      	1:	lsl r18
 195 0026 331F      		rol r19
 196 0028 4A95      		dec r20
 197 002a E1F7      		brne 1b
 198 002c 280F      		add r18,r24
 199 002e 391F      		adc r19,r25
 200 0030 820F      		add r24,r18
 201 0032 931F      		adc r25,r19
 202 0034 64E9      		ldi r22,lo8(148)
 203 0036 70E0      		ldi r23,hi8(148)
 204 0038 00D0      		rcall __udivmodhi4
 205 003a CB01      		movw r24,r22
  28:drive/hf3223.c **** 		if(RH>100)RH=100;
 207               	.LM7:
 208 003c 6536      		cpi r22,lo8(101)
 209 003e 08F0      		brlo .L3
 210 0040 84E6      		ldi r24,lo8(100)
 211               	.L3:
  29:drive/hf3223.c **** 	}
  30:drive/hf3223.c **** 
  31:drive/hf3223.c **** 
  32:drive/hf3223.c **** 	return RH;
  33:drive/hf3223.c **** 
  34:drive/hf3223.c **** }
 213               	.LM8:
 214 0042 9927      		clr r25
 215               	/* epilogue: frame size=0 */
 216 0044 0895      		ret
 217               	/* epilogue end (size=1) */
 218               	/* function hf3223_convert size 35 (34) */
 223               	.Lscope0:
 225               	.global	hf3223_read
 227               	hf3223_read:
  35:drive/hf3223.c **** 
  36:drive/hf3223.c **** 
  37:drive/hf3223.c **** 
  38:drive/hf3223.c **** 
  39:drive/hf3223.c **** void hf3223_read(void)
  40:drive/hf3223.c **** {
 229               	.LM9:
 230               	/* prologue: frame size=0 */
 231               	/* prologue end (size=0) */
  41:drive/hf3223.c **** 	if( f_h_is_read ==true)
 233               	.LM10:
 234 0046 4091 0000 		lds r20,f_h_is_read
 235 004a 4130      		cpi r20,lo8(1)
 236 004c 09F0      		breq .+2
 237 004e 4DC0      		rjmp .L7
  42:drive/hf3223.c **** 	{   	
  43:drive/hf3223.c **** 		 hf3223_f = t0_cnt[0]+t0_cnt[1]+
 239               	.LM11:
 240 0050 8091 0000 		lds r24,t0_cnt
 241 0054 9091 0000 		lds r25,(t0_cnt)+1
 242 0058 2091 0000 		lds r18,t0_cnt+2
 243 005c 3091 0000 		lds r19,(t0_cnt+2)+1
 244 0060 820F      		add r24,r18
 245 0062 931F      		adc r25,r19
 246 0064 2091 0000 		lds r18,t0_cnt+4
 247 0068 3091 0000 		lds r19,(t0_cnt+4)+1
 248 006c 820F      		add r24,r18
 249 006e 931F      		adc r25,r19
 250 0070 2091 0000 		lds r18,t0_cnt+6
 251 0074 3091 0000 		lds r19,(t0_cnt+6)+1
 252 0078 820F      		add r24,r18
 253 007a 931F      		adc r25,r19
 254 007c 2091 0000 		lds r18,t0_cnt+8
 255 0080 3091 0000 		lds r19,(t0_cnt+8)+1
 256 0084 820F      		add r24,r18
 257 0086 931F      		adc r25,r19
 258 0088 2091 0000 		lds r18,t0_cnt+10
 259 008c 3091 0000 		lds r19,(t0_cnt+10)+1
 260 0090 820F      		add r24,r18
 261 0092 931F      		adc r25,r19
 262 0094 2091 0000 		lds r18,t0_cnt+12
 263 0098 3091 0000 		lds r19,(t0_cnt+12)+1
 264 009c 820F      		add r24,r18
 265 009e 931F      		adc r25,r19
 266 00a0 2091 0000 		lds r18,t0_cnt+14
 267 00a4 3091 0000 		lds r19,(t0_cnt+14)+1
 268 00a8 820F      		add r24,r18
 269 00aa 931F      		adc r25,r19
 270 00ac 2091 0000 		lds r18,t0_cnt+16
 271 00b0 3091 0000 		lds r19,(t0_cnt+16)+1
 272 00b4 820F      		add r24,r18
 273 00b6 931F      		adc r25,r19
 274 00b8 2091 0000 		lds r18,t0_cnt+18
 275 00bc 3091 0000 		lds r19,(t0_cnt+18)+1
 276 00c0 820F      		add r24,r18
 277 00c2 931F      		adc r25,r19
 278 00c4 9093 0000 		sts (hf3223_f)+1,r25
 279 00c8 8093 0000 		sts hf3223_f,r24
  44:drive/hf3223.c **** 				   t0_cnt[2]+t0_cnt[3]+
  45:drive/hf3223.c **** 				   t0_cnt[4]+t0_cnt[5]+
  46:drive/hf3223.c **** 				   t0_cnt[6]+t0_cnt[7]+
  47:drive/hf3223.c **** 				   t0_cnt[8]+t0_cnt[9];
  48:drive/hf3223.c **** 		
  49:drive/hf3223.c **** 		if( hf3223_f < 5000 )
 281               	.LM12:
 282 00cc 8858      		subi r24,lo8(5000)
 283 00ce 9341      		sbci r25,hi8(5000)
 284 00d0 18F4      		brsh .L9
  50:drive/hf3223.c **** 		{
  51:drive/hf3223.c **** 		  f_sensor_h = false;
 286               	.LM13:
 287 00d2 1092 0000 		sts f_sensor_h,__zero_reg__
 288 00d6 02C0      		rjmp .L10
 289               	.L9:
  52:drive/hf3223.c **** 		}
  53:drive/hf3223.c **** 		else

⌨️ 快捷键说明

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