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

📄 ds1302.lst

📁 M8+1302+18b20+8位数码管的sch和gcc源程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
   1               		.file	"ds1302.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:
  74               	.global	ds1302_write
  76               	ds1302_write:
   1:ds1302.c      **** #define ds1302_c
   2:ds1302.c      **** #include "main.h"
   3:ds1302.c      **** void ds1302_write(uchar reg,uchar data)
   4:ds1302.c      **** {
  78               	.LM1:
  79               	/* prologue: frame size=0 */
  80               	/* prologue end (size=0) */
   5:ds1302.c      **** 	uchar i=0;
   6:ds1302.c      **** 	set_ds1302_io_ddr();
  82               	.LM2:
  83 0000 A19A      		sbi 52-0x20,1
   7:ds1302.c      **** 	asm("nop");
  85               	.LM3:
  86               	/* #APP */
  87 0002 0000      		nop
   8:ds1302.c      **** 	asm("nop");
  89               	.LM4:
  90 0004 0000      		nop
   9:ds1302.c      **** 	clr_ds1302_rst();
  92               	.LM5:
  93               	/* #NOAPP */
  94 0006 A898      		cbi 53-0x20,0
  10:ds1302.c      **** 	asm("nop");
  96               	.LM6:
  97               	/* #APP */
  98 0008 0000      		nop
  11:ds1302.c      **** 	asm("nop");
 100               	.LM7:
 101 000a 0000      		nop
  12:ds1302.c      **** 	clr_ds1302_sclk();
 103               	.LM8:
 104               	/* #NOAPP */
 105 000c AA98      		cbi 53-0x20,2
  13:ds1302.c      **** 	asm("nop");
 107               	.LM9:
 108               	/* #APP */
 109 000e 0000      		nop
  14:ds1302.c      **** 	asm("nop");
 111               	.LM10:
 112 0010 0000      		nop
  15:ds1302.c      **** 	set_ds1302_rst();
 114               	.LM11:
 115               	/* #NOAPP */
 116 0012 A89A      		sbi 53-0x20,0
  16:ds1302.c      **** 	asm("nop");
 118               	.LM12:
 119               	/* #APP */
 120 0014 0000      		nop
  17:ds1302.c      **** 	asm("nop");
 122               	.LM13:
 123 0016 0000      		nop
  18:ds1302.c      **** 	for(i=8;i>0;i--)
 125               	.LM14:
 126               	/* #NOAPP */
 127 0018 98E0      		ldi r25,lo8(8)
 128               	.L7:
  19:ds1302.c      **** 	{		
  20:ds1302.c      **** 		if(reg&0x01) set_ds1302_io();
 130               	.LM15:
 131 001a 80FF      		sbrs r24,0
 132 001c 02C0      		rjmp .L5
 133 001e A99A      		sbi 53-0x20,1
 134 0020 01C0      		rjmp .L6
 135               	.L5:
  21:ds1302.c      **** 		else clr_ds1302_io();
 137               	.LM16:
 138 0022 A998      		cbi 53-0x20,1
 139               	.L6:
  22:ds1302.c      **** 		asm("nop");
 141               	.LM17:
 142               	/* #APP */
 143 0024 0000      		nop
  23:ds1302.c      **** 		asm("nop");
 145               	.LM18:
 146 0026 0000      		nop
  24:ds1302.c      **** 		set_ds1302_sclk();	
 148               	.LM19:
 149               	/* #NOAPP */
 150 0028 AA9A      		sbi 53-0x20,2
  25:ds1302.c      **** 		asm("nop");
 152               	.LM20:
 153               	/* #APP */
 154 002a 0000      		nop
  26:ds1302.c      **** 		asm("nop");
 156               	.LM21:
 157 002c 0000      		nop
  27:ds1302.c      **** 		clr_ds1302_sclk();
 159               	.LM22:
 160               	/* #NOAPP */
 161 002e AA98      		cbi 53-0x20,2
  28:ds1302.c      **** 		asm("nop");
 163               	.LM23:
 164               	/* #APP */
 165 0030 0000      		nop
  29:ds1302.c      **** 		asm("nop");
 167               	.LM24:
 168 0032 0000      		nop
  30:ds1302.c      **** 		reg>>=1;
 170               	.LM25:
 171               	/* #NOAPP */
 172 0034 8695      		lsr r24
 174               	.LM26:
 175 0036 9150      		subi r25,lo8(-(-1))
 176 0038 81F7      		brne .L7
  31:ds1302.c      **** 	}
  32:ds1302.c      **** 	for(i=8;i>0;i--)
 178               	.LM27:
 179 003a 98E0      		ldi r25,lo8(8)
 180               	.L13:
  33:ds1302.c      **** 	{		
  34:ds1302.c      **** 		if(data&0x01) set_ds1302_io();
 182               	.LM28:
 183 003c 60FF      		sbrs r22,0
 184 003e 02C0      		rjmp .L11
 185 0040 A99A      		sbi 53-0x20,1
 186 0042 01C0      		rjmp .L12
 187               	.L11:
  35:ds1302.c      **** 		else clr_ds1302_io();
 189               	.LM29:
 190 0044 A998      		cbi 53-0x20,1
 191               	.L12:
  36:ds1302.c      **** 		asm("nop");
 193               	.LM30:
 194               	/* #APP */
 195 0046 0000      		nop
  37:ds1302.c      **** 		asm("nop");
 197               	.LM31:
 198 0048 0000      		nop
  38:ds1302.c      **** 		set_ds1302_sclk();
 200               	.LM32:
 201               	/* #NOAPP */
 202 004a AA9A      		sbi 53-0x20,2
  39:ds1302.c      **** 		asm("nop");
 204               	.LM33:
 205               	/* #APP */
 206 004c 0000      		nop
  40:ds1302.c      **** 		asm("nop");
 208               	.LM34:
 209 004e 0000      		nop
  41:ds1302.c      **** 		clr_ds1302_sclk();
 211               	.LM35:
 212               	/* #NOAPP */
 213 0050 AA98      		cbi 53-0x20,2
  42:ds1302.c      **** 		asm("nop");
 215               	.LM36:
 216               	/* #APP */
 217 0052 0000      		nop
  43:ds1302.c      **** 		asm("nop");
 219               	.LM37:
 220 0054 0000      		nop
  44:ds1302.c      **** 		data>>=1;
 222               	.LM38:
 223               	/* #NOAPP */
 224 0056 6695      		lsr r22
 226               	.LM39:
 227 0058 9150      		subi r25,lo8(-(-1))
 228 005a 81F7      		brne .L13
  45:ds1302.c      **** 	}
  46:ds1302.c      **** 	clr_ds1302_rst();
 230               	.LM40:
 231 005c A898      		cbi 53-0x20,0
  47:ds1302.c      **** 	asm("nop");
 233               	.LM41:
 234               	/* #APP */
 235 005e 0000      		nop
  48:ds1302.c      **** 	asm("nop");
 237               	.LM42:
 238 0060 0000      		nop
  49:ds1302.c      **** 	clr_ds1302_io_ddr();
 240               	.LM43:
 241               	/* #NOAPP */
 242 0062 A198      		cbi 52-0x20,1
  50:ds1302.c      **** 	asm("nop");
 244               	.LM44:
 245               	/* #APP */
 246 0064 0000      		nop
  51:ds1302.c      **** 	asm("nop");
 248               	.LM45:
 249 0066 0000      		nop
 250               	/* #NOAPP */
 251               	/* epilogue: frame size=0 */
 252 0068 0895      		ret
 253               	/* epilogue end (size=1) */
 254               	/* function ds1302_write size 79 (78) */
 259               	.Lscope0:
 262               	.global	ds1302_read
 264               	ds1302_read:
  52:ds1302.c      **** }
  53:ds1302.c      **** uchar ds1302_read(uchar reg)
  54:ds1302.c      **** {
 266               	.LM46:
 267               	/* prologue: frame size=0 */
 268               	/* prologue end (size=0) */
  55:ds1302.c      **** 	uchar data=0;
 270               	.LM47:
 271 006a 90E0      		ldi r25,lo8(0)
  56:ds1302.c      **** 	uchar i=0;
  57:ds1302.c      **** 	reg+=1;//读标志
 273               	.LM48:
 274 006c 8F5F      		subi r24,lo8(-(1))
  58:ds1302.c      **** 	set_ds1302_io_ddr();	
 276               	.LM49:
 277 006e A19A      		sbi 52-0x20,1
  59:ds1302.c      **** 	asm("nop");
 279               	.LM50:
 280               	/* #APP */
 281 0070 0000      		nop
  60:ds1302.c      **** 	asm("nop");
 283               	.LM51:
 284 0072 0000      		nop
  61:ds1302.c      **** 	clr_ds1302_rst();
 286               	.LM52:
 287               	/* #NOAPP */
 288 0074 A898      		cbi 53-0x20,0
  62:ds1302.c      **** 	asm("nop");
 290               	.LM53:
 291               	/* #APP */
 292 0076 0000      		nop
  63:ds1302.c      **** 	asm("nop");
 294               	.LM54:
 295 0078 0000      		nop
  64:ds1302.c      **** 	clr_ds1302_sclk();
 297               	.LM55:
 298               	/* #NOAPP */
 299 007a AA98      		cbi 53-0x20,2
  65:ds1302.c      **** 	asm("nop");
 301               	.LM56:
 302               	/* #APP */
 303 007c 0000      		nop
  66:ds1302.c      **** 	asm("nop");
 305               	.LM57:
 306 007e 0000      		nop
  67:ds1302.c      **** 	set_ds1302_rst();
 308               	.LM58:
 309               	/* #NOAPP */
 310 0080 A89A      		sbi 53-0x20,0
  68:ds1302.c      **** 	asm("nop");
 312               	.LM59:
 313               	/* #APP */
 314 0082 0000      		nop
  69:ds1302.c      **** 	asm("nop");
 316               	.LM60:
 317 0084 0000      		nop
  70:ds1302.c      **** 	for(i=8;i>0;i--)
 319               	.LM61:
 320               	/* #NOAPP */
 321 0086 28E0      		ldi r18,lo8(8)
 322               	.L24:
  71:ds1302.c      **** 	{
  72:ds1302.c      **** 		
  73:ds1302.c      **** 		if(reg&0x01) set_ds1302_io();
 324               	.LM62:
 325 0088 80FF      		sbrs r24,0
 326 008a 02C0      		rjmp .L22
 327 008c A99A      		sbi 53-0x20,1
 328 008e 01C0      		rjmp .L23
 329               	.L22:
  74:ds1302.c      **** 		else clr_ds1302_io();
 331               	.LM63:
 332 0090 A998      		cbi 53-0x20,1
 333               	.L23:
  75:ds1302.c      **** 		asm("nop");
 335               	.LM64:
 336               	/* #APP */
 337 0092 0000      		nop
  76:ds1302.c      **** 		asm("nop");
 339               	.LM65:
 340 0094 0000      		nop
  77:ds1302.c      **** 		set_ds1302_sclk();
 342               	.LM66:
 343               	/* #NOAPP */
 344 0096 AA9A      		sbi 53-0x20,2
  78:ds1302.c      **** 		asm("nop");
 346               	.LM67:
 347               	/* #APP */
 348 0098 0000      		nop
  79:ds1302.c      **** 		asm("nop");
 350               	.LM68:
 351 009a 0000      		nop
  80:ds1302.c      **** 		clr_ds1302_sclk();
 353               	.LM69:
 354               	/* #NOAPP */
 355 009c AA98      		cbi 53-0x20,2
  81:ds1302.c      **** 		asm("nop");
 357               	.LM70:
 358               	/* #APP */
 359 009e 0000      		nop
  82:ds1302.c      **** 		asm("nop");
 361               	.LM71:
 362 00a0 0000      		nop
  83:ds1302.c      **** 		reg>>=1;
 364               	.LM72:
 365               	/* #NOAPP */
 366 00a2 8695      		lsr r24
 368               	.LM73:
 369 00a4 2150      		subi r18,lo8(-(-1))
 370 00a6 81F7      		brne .L24
  84:ds1302.c      **** 	}
  85:ds1302.c      **** 	clr_ds1302_io_ddr();
 372               	.LM74:
 373 00a8 A198      		cbi 52-0x20,1
  86:ds1302.c      **** 	asm("nop");
 375               	.LM75:
 376               	/* #APP */
 377 00aa 0000      		nop
  87:ds1302.c      **** 	asm("nop");
 379               	.LM76:
 380 00ac 0000      		nop
  88:ds1302.c      **** 	for(i=8;i>0;i--)
 382               	.LM77:
 383               	/* #NOAPP */
 384 00ae 28E0      		ldi r18,lo8(8)
 385               	.L29:
  89:ds1302.c      **** 	{	
  90:ds1302.c      **** 		data>>=1;
 387               	.LM78:
 388 00b0 9695      		lsr r25
  91:ds1302.c      **** 		if(in_ds1302_io()) data|=0x80;
 390               	.LM79:
 391 00b2 9999      		sbic 51-0x20,1
 392 00b4 9068      		ori r25,lo8(-128)
 393               	.L28:
  92:ds1302.c      **** 		asm("nop");
 395               	.LM80:
 396               	/* #APP */
 397 00b6 0000      		nop
  93:ds1302.c      **** 		asm("nop");
 399               	.LM81:
 400 00b8 0000      		nop
  94:ds1302.c      **** 		set_ds1302_sclk();
 402               	.LM82:
 403               	/* #NOAPP */
 404 00ba AA9A      		sbi 53-0x20,2
  95:ds1302.c      **** 		asm("nop");
 406               	.LM83:
 407               	/* #APP */
 408 00bc 0000      		nop
  96:ds1302.c      **** 		asm("nop");
 410               	.LM84:
 411 00be 0000      		nop
  97:ds1302.c      **** 		clr_ds1302_sclk();
 413               	.LM85:
 414               	/* #NOAPP */
 415 00c0 AA98      		cbi 53-0x20,2
  98:ds1302.c      **** 		asm("nop");
 417               	.LM86:
 418               	/* #APP */
 419 00c2 0000      		nop
  99:ds1302.c      **** 		asm("nop");
 421               	.LM87:
 422 00c4 0000      		nop
 424               	.LM88:
 425               	/* #NOAPP */
 426 00c6 2150      		subi r18,lo8(-(-1))
 427 00c8 99F7      		brne .L29
 100:ds1302.c      **** 	}
 101:ds1302.c      **** 	clr_ds1302_rst();
 429               	.LM89:
 430 00ca A898      		cbi 53-0x20,0
 102:ds1302.c      **** 	asm("nop");
 432               	.LM90:
 433               	/* #APP */
 434 00cc 0000      		nop
 103:ds1302.c      **** 	asm("nop");
 436               	.LM91:
 437 00ce 0000      		nop
 104:ds1302.c      **** 	return(data);
 105:ds1302.c      **** }
 439               	.LM92:

⌨️ 快捷键说明

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