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

📄 led.lst

📁 一款电力行业使用的温湿度控制器源代码 湿度传感器采用HF3223 温度采用DS18B20 单片机采用mega8 编程采用winavr2007
💻 LST
📖 第 1 页 / 共 5 页
字号:
   1               		.file	"led.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	tick_15ms
 125               	.global	tick_15ms
 126               		.section .bss
 129               	tick_15ms:
 130 0000 00        		.skip 1,0
 131               	.global	LedSeg
 132               		.section	.progmem.data,"a",@progbits
 135               	LedSeg:
 136 0000 3F        		.byte	63
 137 0001 06        		.byte	6
 138 0002 5B        		.byte	91
 139 0003 4F        		.byte	79
 140 0004 66        		.byte	102
 141 0005 6D        		.byte	109
 142 0006 7D        		.byte	125
 143 0007 07        		.byte	7
 144 0008 7F        		.byte	127
 145 0009 6F        		.byte	111
 146 000a 77        		.byte	119
 147 000b 7C        		.byte	124
 148 000c 39        		.byte	57
 149 000d 58        		.byte	88
 150 000e 5E        		.byte	94
 151 000f 79        		.byte	121
 152 0010 71        		.byte	113
 153 0011 76        		.byte	118
 154 0012 74        		.byte	116
 155 0013 38        		.byte	56
 156 0014 54        		.byte	84
 157 0015 37        		.byte	55
 158 0016 5C        		.byte	92
 159 0017 73        		.byte	115
 160 0018 50        		.byte	80
 161 0019 78        		.byte	120
 162 001a 3E        		.byte	62
 163 001b 40        		.byte	64
 164 001c 00        		.byte	0
 165               	.global	fLedDotMap
 166               	.global	fLedDotMap
 167               		.section .bss
 170               	fLedDotMap:
 171 0001 00        		.skip 1,0
 172               		.lcomm tick_60s,2
 173               		.lcomm tick_1s,2
 174               		.lcomm tick_500ms,2
 175               		.lcomm fLedFlashMap,2
 176               		.lcomm LedCnt,1
 177               		.lcomm fFlashison,1
 178               		.lcomm cnt,2
 179               		.lcomm tick_5s,2
 180               		.text
 183               	.global	ByteToHC164
 185               	ByteToHC164:
   1:drive/led.c   **** #include"inc/config.h"
   2:drive/led.c   **** 
   3:drive/led.c   **** 
   4:drive/led.c   **** 
   5:drive/led.c   **** u08     LedData[11];        //各位显存的初始化
   6:drive/led.c   **** u08     fLedDotMap=0x00 ;   //对应WEI为1 则数码管加“.”
   7:drive/led.c   **** BOOL    fledalrm    ;       //主要是0-4位
   8:drive/led.c   **** 
   9:drive/led.c   **** /**共阴***/
  10:drive/led.c   **** 
  11:drive/led.c   **** 
  12:drive/led.c   ****  const u08 PROGMEM LedSeg[29]=
  13:drive/led.c   **** {
  14:drive/led.c   ****         0x3f,/*0*/
  15:drive/led.c   ****         0x06,/*1*/
  16:drive/led.c   ****         0x5b,/*2*/
  17:drive/led.c   ****         0x4f,/*3*/
  18:drive/led.c   ****         0x66,/*4*/
  19:drive/led.c   ****         0x6d,/*5*/
  20:drive/led.c   ****         0x7d,/*6*/
  21:drive/led.c   ****         0x07,/*7*/
  22:drive/led.c   ****         0x7f,/*8*/
  23:drive/led.c   ****         0x6f,/*9*/
  24:drive/led.c   ****         0x77,/*a*/   //10
  25:drive/led.c   ****         0x7c,/*b*/        //11
  26:drive/led.c   ****         0x39,/*c*/        //12
  27:drive/led.c   ****         0x58,/*c*/        //13
  28:drive/led.c   ****         0x5e,/*d*/        //14
  29:drive/led.c   ****         0x79,/*e*/        //15
  30:drive/led.c   ****         0x71,/*f*/        //16
  31:drive/led.c   ****         0x76,/*h*/        //17
  32:drive/led.c   ****         0x74,/*h*/        //18
  33:drive/led.c   ****         0x38,/*l*/        //19
  34:drive/led.c   ****         0x54,/*n*/        //20
  35:drive/led.c   ****         0x37,/*n*/        //21
  36:drive/led.c   ****         0x5c,/*o*/        //22
  37:drive/led.c   ****         0x73,/*p*/        //23
  38:drive/led.c   ****         0x50,/*r*/        //24
  39:drive/led.c   ****         0x78,/*t*/        //25
  40:drive/led.c   ****         0x3e,/*u*/       //26
  41:drive/led.c   ****         0x40,/*-*/      //27
  42:drive/led.c   ****         0x00/*消隐码*/  //28 
  43:drive/led.c   **** 
  44:drive/led.c   ****  }; 
  45:drive/led.c   **** 
  46:drive/led.c   **** 
  47:drive/led.c   **** void   DispSeperateShow( unit8 content,unit8 position )
  48:drive/led.c   **** {
  49:drive/led.c   **** 	DIG_RST();//共阴极。消隐,防止数据乱码,可去,因ByteTo164中已经包含
  50:drive/led.c   **** 	ByteToHC164(  content  );
  51:drive/led.c   ****  
  52:drive/led.c   **** 		 if(position == DIG1){ LED1 = LED_ON;}
  53:drive/led.c   **** 	else if(position == DIG2){ LED2 = LED_ON;}
  54:drive/led.c   **** 	else if(position == DIG3){ LED3 = LED_ON;}
  55:drive/led.c   **** 	else if(position == DIG4){ LED4 = LED_ON;}
  56:drive/led.c   **** 	else if(position == DIG5){ LED5 = LED_ON;}
  57:drive/led.c   **** 	else if(position == DIG6){ LED0 = LED_ON;}
  58:drive/led.c   **** 	else if(position == DIG7){ LED6 = LED_ON;} 
  59:drive/led.c   **** 	else if(position == DIG8){ LED6 = LED_ON;}
  60:drive/led.c   ****  	else if(position == DIG9){ LED6 = LED_ON;}
  61:drive/led.c   ****  
  62:drive/led.c   ****  
  63:drive/led.c   **** }
  64:drive/led.c   **** void ByteToHC164(uint8 ledbuffer)
  65:drive/led.c   **** {
 187               	.LM1:
 188               	/* prologue: frame size=0 */
 189               	/* prologue end (size=0) */
 190 0000 282F      		mov r18,r24
  66:drive/led.c   **** 
  67:drive/led.c   ****      DIG_RST();    //令所有位选置1
 192               	.LM2:
 193 0002 BB9A      		sbi 55-0x20,3
 194 0004 C39A      		sbi 56-0x20,3
 195 0006 BC9A      		sbi 55-0x20,4
 196 0008 C49A      		sbi 56-0x20,4
 197 000a BD9A      		sbi 55-0x20,5
 198 000c C59A      		sbi 56-0x20,5
 199 000e 8E9A      		sbi 49-0x20,6
 200 0010 969A      		sbi 50-0x20,6
 201 0012 8F9A      		sbi 49-0x20,7
 202 0014 979A      		sbi 50-0x20,7
 203 0016 B89A      		sbi 55-0x20,0
 204 0018 C09A      		sbi 56-0x20,0
 205 001a BE9A      		sbi 55-0x20,6
 206 001c C69A      		sbi 56-0x20,6
  68:drive/led.c   **** 	 SEG_A = (ledbuffer&(1<<0))>>0;
 208               	.LM3:
 209 001e B99A      		sbi 55-0x20,1
 210 0020 982F      		mov r25,r24
 211 0022 9170      		andi r25,lo8(1)
 212 0024 990F      		lsl r25
 213 0026 88B3      		in r24,56-0x20
 214 0028 8D7F      		andi r24,lo8(-3)
 215 002a 892B      		or r24,r25
 216 002c 88BB      		out 56-0x20,r24
  69:drive/led.c   **** 	 SEG_B = (ledbuffer&(1<<1))>>1;
 218               	.LM4:
 219 002e BF9A      		sbi 55-0x20,7
 220 0030 3327      		clr r19
 221 0032 C901      		movw r24,r18
 222 0034 8270      		andi r24,lo8(2)
 223 0036 9070      		andi r25,hi8(2)
 224 0038 9595      		asr r25
 225 003a 8795      		ror r24
 226 003c 982F      		mov r25,r24
 227 003e 9795      		ror r25
 228 0040 9927      		clr r25
 229 0042 9795      		ror r25
 230 0044 88B3      		in r24,56-0x20
 231 0046 8F77      		andi r24,lo8(127)
 232 0048 892B      		or r24,r25
 233 004a 88BB      		out 56-0x20,r24
  70:drive/led.c   **** 	 SEG_C = (ledbuffer&(1<<2))>>2;
 235               	.LM5:
 236 004c A19A      		sbi 52-0x20,1
 237 004e C901      		movw r24,r18
 238 0050 8470      		andi r24,lo8(4)
 239 0052 9070      		andi r25,hi8(4)
 240 0054 9595      		asr r25
 241 0056 8795      		ror r24
 242 0058 9595      		asr r25
 243 005a 8795      		ror r24
 244 005c 982F      		mov r25,r24
 245 005e 990F      		lsl r25
 246 0060 85B3      		in r24,53-0x20
 247 0062 8D7F      		andi r24,lo8(-3)
 248 0064 892B      		or r24,r25
 249 0066 85BB      		out 53-0x20,r24
  71:drive/led.c   **** 	 SEG_D = (ledbuffer&(1<<3))>>3;
 251               	.LM6:
 252 0068 A29A      		sbi 52-0x20,2
 253 006a C901      		movw r24,r18
 254 006c 8870      		andi r24,lo8(8)
 255 006e 9070      		andi r25,hi8(8)
 256 0070 73E0      		ldi r23,3
 257 0072 9595      	1:	asr r25
 258 0074 8795      		ror r24
 259 0076 7A95      		dec r23
 260 0078 E1F7      		brne 1b
 261 007a 982F      		mov r25,r24
 262 007c 990F      		lsl r25
 263 007e 990F      		lsl r25
 264 0080 85B3      		in r24,53-0x20
 265 0082 8B7F      		andi r24,lo8(-5)
 266 0084 892B      		or r24,r25
 267 0086 85BB      		out 53-0x20,r24
  72:drive/led.c   **** 	 SEG_E = (ledbuffer&(1<<4))>>4;
 269               	.LM7:
 270 0088 8D9A      		sbi 49-0x20,5
 271 008a C901      		movw r24,r18
 272 008c 8071      		andi r24,lo8(16)
 273 008e 9070      		andi r25,hi8(16)
 274 0090 64E0      		ldi r22,4
 275 0092 9595      	1:	asr r25
 276 0094 8795      		ror r24
 277 0096 6A95      		dec r22
 278 0098 E1F7      		brne 1b
 279 009a 982F      		mov r25,r24
 280 009c 9295      		swap r25
 281 009e 990F      		lsl r25
 282 00a0 907E      		andi r25,0xe0
 283 00a2 82B3      		in r24,50-0x20
 284 00a4 8F7D      		andi r24,lo8(-33)
 285 00a6 892B      		or r24,r25
 286 00a8 82BB      		out 50-0x20,r24
  73:drive/led.c   **** 	 SEG_F = (ledbuffer&(1<<5))>>5;
 288               	.LM8:
 289 00aa BA9A      		sbi 55-0x20,2
 290 00ac C901      		movw r24,r18
 291 00ae 8072      		andi r24,lo8(32)
 292 00b0 9070      		andi r25,hi8(32)
 293 00b2 55E0      		ldi r21,5
 294 00b4 9595      	1:	asr r25
 295 00b6 8795      		ror r24
 296 00b8 5A95      		dec r21
 297 00ba E1F7      		brne 1b
 298 00bc 982F      		mov r25,r24
 299 00be 990F      		lsl r25
 300 00c0 990F      		lsl r25
 301 00c2 88B3      		in r24,56-0x20
 302 00c4 8B7F      		andi r24,lo8(-5)
 303 00c6 892B      		or r24,r25
 304 00c8 88BB      		out 56-0x20,r24
  74:drive/led.c   **** 	 SEG_G = (ledbuffer&(1<<6))>>6;
 306               	.LM9:
 307 00ca A09A      		sbi 52-0x20,0
 308 00cc C901      		movw r24,r18
 309 00ce 8074      		andi r24,lo8(64)
 310 00d0 9070      		andi r25,hi8(64)
 311 00d2 46E0      		ldi r20,6
 312 00d4 9595      	1:	asr r25
 313 00d6 8795      		ror r24
 314 00d8 4A95      		dec r20
 315 00da E1F7      		brne 1b
 316 00dc 982F      		mov r25,r24
 317 00de 9170      		andi r25,lo8(1)
 318 00e0 85B3      		in r24,53-0x20
 319 00e2 8E7F      		andi r24,lo8(-2)
 320 00e4 892B      		or r24,r25
 321 00e6 85BB      		out 53-0x20,r24
  75:drive/led.c   **** 	 SEG_DP= (ledbuffer&(1<<7))>>7;
 323               	.LM10:
 324 00e8 A39A      		sbi 52-0x20,3
 325 00ea 220F      		lsl r18
 326 00ec 232F      		mov r18,r19
 327 00ee 221F      		rol r18
 328 00f0 330B      		sbc r19,r19
 329 00f2 3195      		neg r19
 330 00f4 922F      		mov r25,r18
 331 00f6 990F      		lsl r25
 332 00f8 990F      		lsl r25
 333 00fa 990F      		lsl r25
 334 00fc 85B3      		in r24,53-0x20
 335 00fe 877F      		andi r24,lo8(-9)
 336 0100 892B      		or r24,r25
 337 0102 85BB      		out 53-0x20,r24
 338               	/* epilogue: frame size=0 */
 339 0104 0895      		ret
 340               	/* epilogue end (size=1) */
 341               	/* function ByteToHC164 size 131 (130) */
 343               	.Lscope0:
 347               	.global	DispSeperateShow
 349               	DispSeperateShow:
 351               	.LM11:
 352               	/* prologue: frame size=0 */
 353 0106 CF93      		push r28
 354               	/* prologue end (size=1) */
 355 0108 C62F      		mov r28,r22
 357               	.LM12:
 358 010a BB9A      		sbi 55-0x20,3
 359 010c C39A      		sbi 56-0x20,3
 360 010e BC9A      		sbi 55-0x20,4
 361 0110 C49A      		sbi 56-0x20,4
 362 0112 BD9A      		sbi 55-0x20,5
 363 0114 C59A      		sbi 56-0x20,5
 364 0116 8E9A      		sbi 49-0x20,6
 365 0118 969A      		sbi 50-0x20,6
 366 011a 8F9A      		sbi 49-0x20,7
 367 011c 979A      		sbi 50-0x20,7
 368 011e B89A      		sbi 55-0x20,0
 369 0120 C09A      		sbi 56-0x20,0
 370 0122 BE9A      		sbi 55-0x20,6
 371 0124 C69A      		sbi 56-0x20,6
 373               	.LM13:
 374 0126 6CDF      		rcall ByteToHC164
 376               	.LM14:
 377 0128 C530      		cpi r28,lo8(5)
 378 012a 19F4      		brne .L5
 380               	.LM15:
 381 012c BC9A      		sbi 55-0x20,4
 382 012e C498      		cbi 56-0x20,4
 383 0130 21C0      		rjmp .L3
 384               	.L5:
 386               	.LM16:
 387 0132 C430      		cpi r28,lo8(4)
 388 0134 19F4      		brne .L7

⌨️ 快捷键说明

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