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

📄 display.lst

📁 M8+1302+18b20+8位数码管的sch和gcc源程序
💻 LST
字号:
   1               		.file	"display.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:
  72               	.global	__vector_9
  74               	__vector_9:
   1:display.c     **** #define display_c
   2:display.c     **** #include "main.h"
   3:display.c     **** /*
   4:display.c     **** 共阴4位一体数码管
   5:display.c     **** 上 1   2   3   4    5   6
   6:display.c     ****    s1  a   f   s2   s3  b   
   7:display.c     **** 下 1   2   3   4    5   6
   8:display.c     ****    e   d   dp  c    g   s4
   9:display.c     **** msb=p,lsb=a.顺序为pgfedcba
  10:display.c     **** */
  11:display.c     **** SIGNAL (SIG_OVERFLOW0)
  12:display.c     **** {
  76               	.LM1:
  77               	/* prologue: frame size=0 */
  78 0000 1F92      		push __zero_reg__
  79 0002 0F92      		push __tmp_reg__
  80 0004 0FB6      		in __tmp_reg__,__SREG__
  81 0006 0F92      		push __tmp_reg__
  82 0008 1124      		clr __zero_reg__
  83 000a 2F93      		push r18
  84 000c 3F93      		push r19
  85 000e 4F93      		push r20
  86 0010 5F93      		push r21
  87 0012 6F93      		push r22
  88 0014 8F93      		push r24
  89 0016 9F93      		push r25
  90 0018 EF93      		push r30
  91 001a FF93      		push r31
  92               	/* prologue end (size=14) */
  13:display.c     **** 	uchar i=0;
  94               	.LM2:
  95 001c 50E0      		ldi r21,lo8(0)
  14:display.c     **** 	uchar data_seg=display_buffer[display_count];
  97               	.LM3:
  98 001e 6091 0000 		lds r22,display_count
  99 0022 262F      		mov r18,r22
 100 0024 3327      		clr r19
 101 0026 F901      		movw r30,r18
 102 0028 E050      		subi r30,lo8(-(display_buffer))
 103 002a F040      		sbci r31,hi8(-(display_buffer))
 104 002c E081      		ld r30,Z
  15:display.c     **** 	uchar data_bit=~(1<<display_count);
 106               	.LM4:
 107 002e 81E0      		ldi r24,lo8(1)
 108 0030 90E0      		ldi r25,hi8(1)
 109 0032 02C0      		rjmp 2f
 110 0034 880F      	1:	lsl r24
 111 0036 991F      		rol r25
 112 0038 2A95      	2:	dec r18
 113 003a E2F7      		brpl 1b
 114 003c 482F      		mov r20,r24
 115 003e 4095      		com r20
  16:display.c     **** 	if((1<<display_count)==flash_control) data_bit|=flash_var;
 117               	.LM5:
 118 0040 2091 0000 		lds r18,flash_control
 119 0044 3327      		clr r19
 120 0046 8217      		cp r24,r18
 121 0048 9307      		cpc r25,r19
 122 004a 19F4      		brne .L2
 124               	.LM6:
 125 004c 8091 0000 		lds r24,flash_var
 126 0050 482B      		or r20,r24
 127               	.L2:
  17:display.c     **** 	display_count++;
 129               	.LM7:
 130 0052 862F      		mov r24,r22
 131 0054 8F5F      		subi r24,lo8(-(1))
 132 0056 8093 0000 		sts display_count,r24
  18:display.c     **** 	if(8==display_count) display_count=0;
 134               	.LM8:
 135 005a 8830      		cpi r24,lo8(8)
 136 005c 11F4      		brne .L9
 137 005e 5093 0000 		sts display_count,r21
 138               	.L9:
  19:display.c     **** //送位选
  20:display.c     **** 	for(i=0;i<8;i++)
  21:display.c     **** 	{
  22:display.c     **** 		if(data_bit&0x80) set_hc595_ser();
 140               	.LM9:
 141 0062 47FF      		sbrs r20,7
 142 0064 02C0      		rjmp .L7
 143 0066 C29A      		sbi 56-0x20,2
 144 0068 01C0      		rjmp .L8
 145               	.L7:
  23:display.c     **** 		else clr_hc595_ser();
 147               	.LM10:
 148 006a C298      		cbi 56-0x20,2
 149               	.L8:
  24:display.c     **** 		clr_hc595_srclk();
 151               	.LM11:
 152 006c C198      		cbi 56-0x20,1
  25:display.c     **** 		set_hc595_srclk();	
 154               	.LM12:
 155 006e C19A      		sbi 56-0x20,1
  26:display.c     **** 		data_bit<<=1;
 157               	.LM13:
 158 0070 440F      		lsl r20
 160               	.LM14:
 161 0072 5F5F      		subi r21,lo8(-(1))
 162 0074 5830      		cpi r21,lo8(8)
 163 0076 A8F3      		brlo .L9
 164 0078 57E0      		ldi r21,lo8(7)
 165               	.L15:
  27:display.c     **** 	}
  28:display.c     **** //送段码
  29:display.c     **** 	for(i=0;i<8;i++)
  30:display.c     **** 	{
  31:display.c     **** 		if(data_seg&0x80) set_hc595_ser();
 167               	.LM15:
 168 007a E7FF      		sbrs r30,7
 169 007c 02C0      		rjmp .L13
 170 007e C29A      		sbi 56-0x20,2
 171 0080 01C0      		rjmp .L14
 172               	.L13:
  32:display.c     **** 		else clr_hc595_ser();		
 174               	.LM16:
 175 0082 C298      		cbi 56-0x20,2
 176               	.L14:
  33:display.c     **** 		clr_hc595_srclk();
 178               	.LM17:
 179 0084 C198      		cbi 56-0x20,1
  34:display.c     **** 		set_hc595_srclk();
 181               	.LM18:
 182 0086 C19A      		sbi 56-0x20,1
  35:display.c     **** 		data_seg<<=1;
 184               	.LM19:
 185 0088 EE0F      		lsl r30
 187               	.LM20:
 188 008a 5150      		subi r21,lo8(-(-1))
 189 008c 57FF      		sbrs r21,7
 190 008e F5CF      		rjmp .L15
  36:display.c     **** 	}
  37:display.c     **** 	clr_hc595_srclk();
 192               	.LM21:
 193 0090 C198      		cbi 56-0x20,1
  38:display.c     **** 	clr_hc595_rclk();
 195               	.LM22:
 196 0092 C098      		cbi 56-0x20,0
  39:display.c     **** 	set_hc595_rclk();
 198               	.LM23:
 199 0094 C09A      		sbi 56-0x20,0
  40:display.c     **** 	clr_hc595_rclk();
 201               	.LM24:
 202 0096 C098      		cbi 56-0x20,0
  41:display.c     **** 	TCNT0=t0_tcnt;//定时10ms
 204               	.LM25:
 205 0098 87EF      		ldi r24,lo8(-9)
 206 009a 82BF      		out 82-0x20,r24
 207               	/* epilogue: frame size=0 */
 208 009c FF91      		pop r31
 209 009e EF91      		pop r30
 210 00a0 9F91      		pop r25
 211 00a2 8F91      		pop r24
 212 00a4 6F91      		pop r22
 213 00a6 5F91      		pop r21
 214 00a8 4F91      		pop r20
 215 00aa 3F91      		pop r19
 216 00ac 2F91      		pop r18
 217 00ae 0F90      		pop __tmp_reg__
 218 00b0 0FBE      		out __SREG__,__tmp_reg__
 219 00b2 0F90      		pop __tmp_reg__
 220 00b4 1F90      		pop __zero_reg__
 221 00b6 1895      		reti
 222               	/* epilogue end (size=14) */
 223               	/* function __vector_9 size 93 (65) */
 230               	.Lscope0:
 231               		.text
 233               	Letext:
 234               	/* File "display.c": code   93 = 0x005d (  65), prologues  14, epilogues  14 */
DEFINED SYMBOLS
                            *ABS*:00000000 display.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccghaaaa.s:74     .text:00000000 __vector_9
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccghaaaa.s:233    .text:000000b8 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
display_count
display_buffer
flash_control
flash_var

⌨️ 快捷键说明

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