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

📄 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:
  92               	.global	__vector_9
  94               	__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     **** {
  96               	.LM1:
  97               	/* prologue: frame size=0 */
  98 0000 1F92      		push __zero_reg__
  99 0002 0F92      		push __tmp_reg__
 100 0004 0FB6      		in __tmp_reg__,__SREG__
 101 0006 0F92      		push __tmp_reg__
 102 0008 1124      		clr __zero_reg__
 103 000a 2F93      		push r18
 104 000c 3F93      		push r19
 105 000e 4F93      		push r20
 106 0010 5F93      		push r21
 107 0012 6F93      		push r22
 108 0014 8F93      		push r24
 109 0016 9F93      		push r25
 110 0018 EF93      		push r30
 111 001a FF93      		push r31
 112               	/* prologue end (size=14) */
  13:display.c     **** 	uchar i=0;
 114               	.LM2:
 115 001c 50E0      		ldi r21,lo8(0)
  14:display.c     **** 	uchar data_seg=display_buffer[display_count];
 117               	.LM3:
 118 001e 6091 0000 		lds r22,display_count
 119 0022 262F      		mov r18,r22
 120 0024 3327      		clr r19
 121 0026 F901      		movw r30,r18
 122 0028 E050      		subi r30,lo8(-(display_buffer))
 123 002a F040      		sbci r31,hi8(-(display_buffer))
 124 002c E081      		ld r30,Z
  15:display.c     **** 	uchar data_bit=~(1<<display_count);
 126               	.LM4:
 127 002e 81E0      		ldi r24,lo8(1)
 128 0030 90E0      		ldi r25,hi8(1)
 129 0032 02C0      		rjmp 2f
 130 0034 880F      	1:	lsl r24
 131 0036 991F      		rol r25
 132 0038 2A95      	2:	dec r18
 133 003a E2F7      		brpl 1b
 134 003c 482F      		mov r20,r24
 135 003e 4095      		com r20
  16:display.c     **** 	if((1<<display_count)==flash_control) data_bit|=flash_var;
 137               	.LM5:
 138 0040 2091 0000 		lds r18,flash_control
 139 0044 3327      		clr r19
 140 0046 8217      		cp r24,r18
 141 0048 9307      		cpc r25,r19
 142 004a 19F4      		brne .L2
 144               	.LM6:
 145 004c 8091 0000 		lds r24,flash_var
 146 0050 482B      		or r20,r24
 147               	.L2:
  17:display.c     **** 	display_count++;
 149               	.LM7:
 150 0052 862F      		mov r24,r22
 151 0054 8F5F      		subi r24,lo8(-(1))
 152 0056 8093 0000 		sts display_count,r24
  18:display.c     **** 	if(8==display_count) display_count=0;
 154               	.LM8:
 155 005a 8830      		cpi r24,lo8(8)
 156 005c 11F4      		brne .L9
 157 005e 5093 0000 		sts display_count,r21
 158               	.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();
 160               	.LM9:
 161 0062 47FF      		sbrs r20,7
 162 0064 02C0      		rjmp .L7
 163 0066 C29A      		sbi 56-0x20,2
 164 0068 01C0      		rjmp .L8
 165               	.L7:
  23:display.c     **** 		else clr_hc595_ser();
 167               	.LM10:
 168 006a C298      		cbi 56-0x20,2
 169               	.L8:
  24:display.c     **** 		clr_hc595_srclk();
 171               	.LM11:
 172 006c C198      		cbi 56-0x20,1
  25:display.c     **** 		set_hc595_srclk();	
 174               	.LM12:
 175 006e C19A      		sbi 56-0x20,1
  26:display.c     **** 		data_bit<<=1;
 177               	.LM13:
 178 0070 440F      		lsl r20
 180               	.LM14:
 181 0072 5F5F      		subi r21,lo8(-(1))
 182 0074 5830      		cpi r21,lo8(8)
 183 0076 A8F3      		brlo .L9
 184 0078 57E0      		ldi r21,lo8(7)
 185               	.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();
 187               	.LM15:
 188 007a E7FF      		sbrs r30,7
 189 007c 02C0      		rjmp .L13
 190 007e C29A      		sbi 56-0x20,2
 191 0080 01C0      		rjmp .L14
 192               	.L13:
  32:display.c     **** 		else clr_hc595_ser();		
 194               	.LM16:
 195 0082 C298      		cbi 56-0x20,2
 196               	.L14:
  33:display.c     **** 		clr_hc595_srclk();
 198               	.LM17:
 199 0084 C198      		cbi 56-0x20,1
  34:display.c     **** 		set_hc595_srclk();
 201               	.LM18:
 202 0086 C19A      		sbi 56-0x20,1
  35:display.c     **** 		data_seg<<=1;
 204               	.LM19:
 205 0088 EE0F      		lsl r30
 207               	.LM20:
 208 008a 5150      		subi r21,lo8(-(-1))
 209 008c 57FF      		sbrs r21,7
 210 008e F5CF      		rjmp .L15
  36:display.c     **** 	}
  37:display.c     **** 	clr_hc595_srclk();
 212               	.LM21:
 213 0090 C198      		cbi 56-0x20,1
  38:display.c     **** 	clr_hc595_rclk();
 215               	.LM22:
 216 0092 C098      		cbi 56-0x20,0
  39:display.c     **** 	set_hc595_rclk();
 218               	.LM23:
 219 0094 C09A      		sbi 56-0x20,0
  40:display.c     **** 	clr_hc595_rclk();
 221               	.LM24:
 222 0096 C098      		cbi 56-0x20,0
  41:display.c     **** 	TCNT0=t0_tcnt;//定时10ms
 224               	.LM25:
 225 0098 87EF      		ldi r24,lo8(-9)
 226 009a 82BF      		out 82-0x20,r24
 227               	/* epilogue: frame size=0 */
 228 009c FF91      		pop r31
 229 009e EF91      		pop r30
 230 00a0 9F91      		pop r25
 231 00a2 8F91      		pop r24
 232 00a4 6F91      		pop r22
 233 00a6 5F91      		pop r21
 234 00a8 4F91      		pop r20
 235 00aa 3F91      		pop r19
 236 00ac 2F91      		pop r18
 237 00ae 0F90      		pop __tmp_reg__
 238 00b0 0FBE      		out __SREG__,__tmp_reg__
 239 00b2 0F90      		pop __tmp_reg__
 240 00b4 1F90      		pop __zero_reg__
 241 00b6 1895      		reti
 242               	/* epilogue end (size=14) */
 243               	/* function __vector_9 size 93 (65) */
 250               	.Lscope0:
 251               		.text
 253               	Letext:
 254               	/* File "display.c": code   93 = 0x005d (  65), prologues  14, epilogues  14 */
DEFINED SYMBOLS
                            *ABS*:00000000 display.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmubaaa.s:3      *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmubaaa.s:4      *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmubaaa.s:5      *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmubaaa.s:6      *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmubaaa.s:7      *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmubaaa.s:94     .text:00000000 __vector_9
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmubaaa.s:253    .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 + -