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

📄 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:
  94               	.global	ds1302_write
  96               	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      **** {
  98               	.LM1:
  99               	/* prologue: frame size=0 */
 100               	/* prologue end (size=0) */
   5:ds1302.c      **** 	uchar i=0;
   6:ds1302.c      **** 	set_ds1302_io_ddr();
 102               	.LM2:
 103 0000 A19A      		sbi 52-0x20,1
   7:ds1302.c      **** 	asm("nop");
 105               	.LM3:
 106               	/* #APP */
 107 0002 0000      		nop
   8:ds1302.c      **** 	asm("nop");
 109               	.LM4:
 110 0004 0000      		nop
   9:ds1302.c      **** 	clr_ds1302_rst();
 112               	.LM5:
 113               	/* #NOAPP */
 114 0006 A898      		cbi 53-0x20,0
  10:ds1302.c      **** 	asm("nop");
 116               	.LM6:
 117               	/* #APP */
 118 0008 0000      		nop
  11:ds1302.c      **** 	asm("nop");
 120               	.LM7:
 121 000a 0000      		nop
  12:ds1302.c      **** 	clr_ds1302_sclk();
 123               	.LM8:
 124               	/* #NOAPP */
 125 000c AA98      		cbi 53-0x20,2
  13:ds1302.c      **** 	asm("nop");
 127               	.LM9:
 128               	/* #APP */
 129 000e 0000      		nop
  14:ds1302.c      **** 	asm("nop");
 131               	.LM10:
 132 0010 0000      		nop
  15:ds1302.c      **** 	set_ds1302_rst();
 134               	.LM11:
 135               	/* #NOAPP */
 136 0012 A89A      		sbi 53-0x20,0
  16:ds1302.c      **** 	asm("nop");
 138               	.LM12:
 139               	/* #APP */
 140 0014 0000      		nop
  17:ds1302.c      **** 	asm("nop");
 142               	.LM13:
 143 0016 0000      		nop
  18:ds1302.c      **** 	for(i=8;i>0;i--)
 145               	.LM14:
 146               	/* #NOAPP */
 147 0018 98E0      		ldi r25,lo8(8)
 148               	.L7:
  19:ds1302.c      **** 	{		
  20:ds1302.c      **** 		if(reg&0x01) set_ds1302_io();
 150               	.LM15:
 151 001a 80FF      		sbrs r24,0
 152 001c 02C0      		rjmp .L5
 153 001e A99A      		sbi 53-0x20,1
 154 0020 01C0      		rjmp .L6
 155               	.L5:
  21:ds1302.c      **** 		else clr_ds1302_io();
 157               	.LM16:
 158 0022 A998      		cbi 53-0x20,1
 159               	.L6:
  22:ds1302.c      **** 		asm("nop");
 161               	.LM17:
 162               	/* #APP */
 163 0024 0000      		nop
  23:ds1302.c      **** 		asm("nop");
 165               	.LM18:
 166 0026 0000      		nop
  24:ds1302.c      **** 		set_ds1302_sclk();	
 168               	.LM19:
 169               	/* #NOAPP */
 170 0028 AA9A      		sbi 53-0x20,2
  25:ds1302.c      **** 		asm("nop");
 172               	.LM20:
 173               	/* #APP */
 174 002a 0000      		nop
  26:ds1302.c      **** 		asm("nop");
 176               	.LM21:
 177 002c 0000      		nop
  27:ds1302.c      **** 		clr_ds1302_sclk();
 179               	.LM22:
 180               	/* #NOAPP */
 181 002e AA98      		cbi 53-0x20,2
  28:ds1302.c      **** 		asm("nop");
 183               	.LM23:
 184               	/* #APP */
 185 0030 0000      		nop
  29:ds1302.c      **** 		asm("nop");
 187               	.LM24:
 188 0032 0000      		nop
  30:ds1302.c      **** 		reg>>=1;
 190               	.LM25:
 191               	/* #NOAPP */
 192 0034 8695      		lsr r24
 194               	.LM26:
 195 0036 9150      		subi r25,lo8(-(-1))
 196 0038 81F7      		brne .L7
  31:ds1302.c      **** 	}
  32:ds1302.c      **** 	for(i=8;i>0;i--)
 198               	.LM27:
 199 003a 98E0      		ldi r25,lo8(8)
 200               	.L13:
  33:ds1302.c      **** 	{		
  34:ds1302.c      **** 		if(data&0x01) set_ds1302_io();
 202               	.LM28:
 203 003c 60FF      		sbrs r22,0
 204 003e 02C0      		rjmp .L11
 205 0040 A99A      		sbi 53-0x20,1
 206 0042 01C0      		rjmp .L12
 207               	.L11:
  35:ds1302.c      **** 		else clr_ds1302_io();
 209               	.LM29:
 210 0044 A998      		cbi 53-0x20,1
 211               	.L12:
  36:ds1302.c      **** 		asm("nop");
 213               	.LM30:
 214               	/* #APP */
 215 0046 0000      		nop
  37:ds1302.c      **** 		asm("nop");
 217               	.LM31:
 218 0048 0000      		nop
  38:ds1302.c      **** 		set_ds1302_sclk();
 220               	.LM32:
 221               	/* #NOAPP */
 222 004a AA9A      		sbi 53-0x20,2
  39:ds1302.c      **** 		asm("nop");
 224               	.LM33:
 225               	/* #APP */
 226 004c 0000      		nop
  40:ds1302.c      **** 		asm("nop");
 228               	.LM34:
 229 004e 0000      		nop
  41:ds1302.c      **** 		clr_ds1302_sclk();
 231               	.LM35:
 232               	/* #NOAPP */
 233 0050 AA98      		cbi 53-0x20,2
  42:ds1302.c      **** 		asm("nop");
 235               	.LM36:
 236               	/* #APP */
 237 0052 0000      		nop
  43:ds1302.c      **** 		asm("nop");
 239               	.LM37:
 240 0054 0000      		nop
  44:ds1302.c      **** 		data>>=1;
 242               	.LM38:
 243               	/* #NOAPP */
 244 0056 6695      		lsr r22
 246               	.LM39:
 247 0058 9150      		subi r25,lo8(-(-1))
 248 005a 81F7      		brne .L13
  45:ds1302.c      **** 	}
  46:ds1302.c      **** 	clr_ds1302_rst();
 250               	.LM40:
 251 005c A898      		cbi 53-0x20,0
  47:ds1302.c      **** 	asm("nop");
 253               	.LM41:
 254               	/* #APP */
 255 005e 0000      		nop
  48:ds1302.c      **** 	asm("nop");
 257               	.LM42:
 258 0060 0000      		nop
  49:ds1302.c      **** 	clr_ds1302_io_ddr();
 260               	.LM43:
 261               	/* #NOAPP */
 262 0062 A198      		cbi 52-0x20,1
  50:ds1302.c      **** 	asm("nop");
 264               	.LM44:
 265               	/* #APP */
 266 0064 0000      		nop
  51:ds1302.c      **** 	asm("nop");
 268               	.LM45:
 269 0066 0000      		nop
 270               	/* #NOAPP */
 271               	/* epilogue: frame size=0 */
 272 0068 0895      		ret
 273               	/* epilogue end (size=1) */
 274               	/* function ds1302_write size 79 (78) */
 279               	.Lscope0:
 282               	.global	ds1302_read
 284               	ds1302_read:
  52:ds1302.c      **** }
  53:ds1302.c      **** uchar ds1302_read(uchar reg)
  54:ds1302.c      **** {
 286               	.LM46:
 287               	/* prologue: frame size=0 */
 288               	/* prologue end (size=0) */
  55:ds1302.c      **** 	uchar data=0;
 290               	.LM47:
 291 006a 90E0      		ldi r25,lo8(0)
  56:ds1302.c      **** 	uchar i=0;
  57:ds1302.c      **** 	reg+=1;//读标志
 293               	.LM48:
 294 006c 8F5F      		subi r24,lo8(-(1))
  58:ds1302.c      **** 	set_ds1302_io_ddr();	
 296               	.LM49:
 297 006e A19A      		sbi 52-0x20,1
  59:ds1302.c      **** 	asm("nop");
 299               	.LM50:
 300               	/* #APP */
 301 0070 0000      		nop
  60:ds1302.c      **** 	asm("nop");
 303               	.LM51:
 304 0072 0000      		nop
  61:ds1302.c      **** 	clr_ds1302_rst();
 306               	.LM52:
 307               	/* #NOAPP */
 308 0074 A898      		cbi 53-0x20,0
  62:ds1302.c      **** 	asm("nop");
 310               	.LM53:
 311               	/* #APP */
 312 0076 0000      		nop
  63:ds1302.c      **** 	asm("nop");
 314               	.LM54:
 315 0078 0000      		nop
  64:ds1302.c      **** 	clr_ds1302_sclk();
 317               	.LM55:
 318               	/* #NOAPP */
 319 007a AA98      		cbi 53-0x20,2
  65:ds1302.c      **** 	asm("nop");
 321               	.LM56:
 322               	/* #APP */
 323 007c 0000      		nop
  66:ds1302.c      **** 	asm("nop");
 325               	.LM57:
 326 007e 0000      		nop
  67:ds1302.c      **** 	set_ds1302_rst();
 328               	.LM58:
 329               	/* #NOAPP */
 330 0080 A89A      		sbi 53-0x20,0
  68:ds1302.c      **** 	asm("nop");
 332               	.LM59:
 333               	/* #APP */
 334 0082 0000      		nop
  69:ds1302.c      **** 	asm("nop");
 336               	.LM60:
 337 0084 0000      		nop
  70:ds1302.c      **** 	for(i=8;i>0;i--)
 339               	.LM61:
 340               	/* #NOAPP */
 341 0086 28E0      		ldi r18,lo8(8)
 342               	.L24:
  71:ds1302.c      **** 	{
  72:ds1302.c      **** 		
  73:ds1302.c      **** 		if(reg&0x01) set_ds1302_io();
 344               	.LM62:
 345 0088 80FF      		sbrs r24,0
 346 008a 02C0      		rjmp .L22
 347 008c A99A      		sbi 53-0x20,1
 348 008e 01C0      		rjmp .L23
 349               	.L22:
  74:ds1302.c      **** 		else clr_ds1302_io();
 351               	.LM63:
 352 0090 A998      		cbi 53-0x20,1
 353               	.L23:
  75:ds1302.c      **** 		asm("nop");
 355               	.LM64:
 356               	/* #APP */
 357 0092 0000      		nop
  76:ds1302.c      **** 		asm("nop");
 359               	.LM65:
 360 0094 0000      		nop
  77:ds1302.c      **** 		set_ds1302_sclk();
 362               	.LM66:
 363               	/* #NOAPP */
 364 0096 AA9A      		sbi 53-0x20,2
  78:ds1302.c      **** 		asm("nop");
 366               	.LM67:
 367               	/* #APP */
 368 0098 0000      		nop
  79:ds1302.c      **** 		asm("nop");
 370               	.LM68:
 371 009a 0000      		nop
  80:ds1302.c      **** 		clr_ds1302_sclk();
 373               	.LM69:
 374               	/* #NOAPP */
 375 009c AA98      		cbi 53-0x20,2
  81:ds1302.c      **** 		asm("nop");
 377               	.LM70:
 378               	/* #APP */
 379 009e 0000      		nop
  82:ds1302.c      **** 		asm("nop");
 381               	.LM71:
 382 00a0 0000      		nop
  83:ds1302.c      **** 		reg>>=1;
 384               	.LM72:
 385               	/* #NOAPP */
 386 00a2 8695      		lsr r24
 388               	.LM73:
 389 00a4 2150      		subi r18,lo8(-(-1))
 390 00a6 81F7      		brne .L24
  84:ds1302.c      **** 	}
  85:ds1302.c      **** 	clr_ds1302_io_ddr();
 392               	.LM74:
 393 00a8 A198      		cbi 52-0x20,1
  86:ds1302.c      **** 	asm("nop");
 395               	.LM75:
 396               	/* #APP */
 397 00aa 0000      		nop
  87:ds1302.c      **** 	asm("nop");
 399               	.LM76:
 400 00ac 0000      		nop
  88:ds1302.c      **** 	for(i=8;i>0;i--)
 402               	.LM77:
 403               	/* #NOAPP */
 404 00ae 28E0      		ldi r18,lo8(8)
 405               	.L29:
  89:ds1302.c      **** 	{	
  90:ds1302.c      **** 		data>>=1;
 407               	.LM78:
 408 00b0 9695      		lsr r25
  91:ds1302.c      **** 		if(in_ds1302_io()) data|=0x80;
 410               	.LM79:
 411 00b2 9999      		sbic 51-0x20,1
 412 00b4 9068      		ori r25,lo8(-128)
 413               	.L28:
  92:ds1302.c      **** 		asm("nop");
 415               	.LM80:
 416               	/* #APP */
 417 00b6 0000      		nop
  93:ds1302.c      **** 		asm("nop");
 419               	.LM81:
 420 00b8 0000      		nop
  94:ds1302.c      **** 		set_ds1302_sclk();
 422               	.LM82:
 423               	/* #NOAPP */
 424 00ba AA9A      		sbi 53-0x20,2
  95:ds1302.c      **** 		asm("nop");
 426               	.LM83:
 427               	/* #APP */
 428 00bc 0000      		nop
  96:ds1302.c      **** 		asm("nop");
 430               	.LM84:
 431 00be 0000      		nop
  97:ds1302.c      **** 		clr_ds1302_sclk();
 433               	.LM85:
 434               	/* #NOAPP */
 435 00c0 AA98      		cbi 53-0x20,2
  98:ds1302.c      **** 		asm("nop");
 437               	.LM86:
 438               	/* #APP */
 439 00c2 0000      		nop
  99:ds1302.c      **** 		asm("nop");
 441               	.LM87:
 442 00c4 0000      		nop
 444               	.LM88:
 445               	/* #NOAPP */
 446 00c6 2150      		subi r18,lo8(-(-1))
 447 00c8 99F7      		brne .L29
 100:ds1302.c      **** 	}
 101:ds1302.c      **** 	clr_ds1302_rst();
 449               	.LM89:
 450 00ca A898      		cbi 53-0x20,0
 102:ds1302.c      **** 	asm("nop");
 452               	.LM90:
 453               	/* #APP */
 454 00cc 0000      		nop
 103:ds1302.c      **** 	asm("nop");
 456               	.LM91:
 457 00ce 0000      		nop
 104:ds1302.c      **** 	return(data);
 105:ds1302.c      **** }
 459               	.LM92:

⌨️ 快捷键说明

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