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

📄 adc_sram.lst

📁 基于AVR单片机 Atmel Mega128的AD采集程序。
💻 LST
📖 第 1 页 / 共 5 页
字号:
   1               		.file	"adc_sram.c"
   2               		.arch atmega128
   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
  12               		.text
  13               	.Ltext0:
  74               	.global	INITIATION
  76               	INITIATION:
   1:G:/HVCBASOFT/AD/adc_sram.c **** #include <avr/io.h>
   2:G:/HVCBASOFT/AD/adc_sram.c **** #include <avr/signal.h>
   3:G:/HVCBASOFT/AD/adc_sram.c **** #include <avr/interrupt.h>
   4:G:/HVCBASOFT/AD/adc_sram.c **** #include <stdlib.h>
   5:G:/HVCBASOFT/AD/adc_sram.c **** #include <inttypes.h>
   6:G:/HVCBASOFT/AD/adc_sram.c **** #include "adc_sram.h"
   7:G:/HVCBASOFT/AD/adc_sram.c **** #include "macro.h"
   8:G:/HVCBASOFT/AD/adc_sram.c **** //全局变量/////////////////////////////
   9:G:/HVCBASOFT/AD/adc_sram.c **** extern uint8_t global_sample_mode_flag;//采样方式标志:手动或自动
  10:G:/HVCBASOFT/AD/adc_sram.c **** extern uint16_t global_ad_counter;//AD转换计数器
  11:G:/HVCBASOFT/AD/adc_sram.c **** extern uint8_t global_operation_detected_flag;//检测到动作标志
  12:G:/HVCBASOFT/AD/adc_sram.c **** uint8_t global_channel_flag;//通道标志
  13:G:/HVCBASOFT/AD/adc_sram.c **** extern uint16_t global_close_counter;//合闸线圈地址计数器
  14:G:/HVCBASOFT/AD/adc_sram.c **** extern uint16_t global_trip_counter;//分闸线圈地址计数器
  15:G:/HVCBASOFT/AD/adc_sram.c **** extern uint16_t global_motor_counter;//打压电机地址计数器
  16:G:/HVCBASOFT/AD/adc_sram.c **** extern uint16_t global_voltage_counter;//操作电压地址计数器
  17:G:/HVCBASOFT/AD/adc_sram.c **** extern uint8_t global_ad_finish_flag;//AD转换结束标志
  18:G:/HVCBASOFT/AD/adc_sram.c **** //AD板子的初始化,包括端口方向,串口初始化等
  19:G:/HVCBASOFT/AD/adc_sram.c **** void INITIATION(void)
  20:G:/HVCBASOFT/AD/adc_sram.c **** {
  78               	.LM1:
  79               	/* prologue: frame size=0 */
  80 0000 CF93      		push r28
  81 0002 DF93      		push r29
  82 0004 CDB7      		in r28,__SP_L__
  83 0006 DEB7      		in r29,__SP_H__
  84               	/* prologue end (size=4) */
  21:G:/HVCBASOFT/AD/adc_sram.c **** 	DDRC=0xFF;//端口C输出
  86               	.LM2:
  87 0008 8FEF      		ldi r24,lo8(-1)
  88 000a 8093 3400 		sts 52,r24
  22:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTC=0xFF;
  90               	.LM3:
  91 000e 8FEF      		ldi r24,lo8(-1)
  92 0010 8093 3500 		sts 53,r24
  23:G:/HVCBASOFT/AD/adc_sram.c **** 	DDRF|=0x0F;//端口F输出
  94               	.LM4:
  95 0014 8091 6100 		lds r24,97
  96 0018 8F60      		ori r24,lo8(15)
  97 001a 8093 6100 		sts 97,r24
  24:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(DDRB,2);//CONVST初始化,输出
  99               	.LM5:
 100 001e 8091 3700 		lds r24,55
 101 0022 8460      		ori r24,lo8(4)
 102 0024 8093 3700 		sts 55,r24
  25:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTB,2);
 104               	.LM6:
 105 0028 8091 3800 		lds r24,56
 106 002c 8460      		ori r24,lo8(4)
 107 002e 8093 3800 		sts 56,r24
  26:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(DDRG,0);//WR初始化,输出1
 109               	.LM7:
 110 0032 8091 6400 		lds r24,100
 111 0036 8160      		ori r24,lo8(1)
 112 0038 8093 6400 		sts 100,r24
  27:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTG,0);
 114               	.LM8:
 115 003c 8091 6500 		lds r24,101
 116 0040 8160      		ori r24,lo8(1)
 117 0042 8093 6500 		sts 101,r24
  28:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(DDRG,1);//RD初始化,输出1
 119               	.LM9:
 120 0046 8091 6400 		lds r24,100
 121 004a 8260      		ori r24,lo8(2)
 122 004c 8093 6400 		sts 100,r24
  29:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTG,1);
 124               	.LM10:
 125 0050 8091 6500 		lds r24,101
 126 0054 8260      		ori r24,lo8(2)
 127 0056 8093 6500 		sts 101,r24
  30:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(DDRG,2);//ALE初始化,输出1
 129               	.LM11:
 130 005a 8091 6400 		lds r24,100
 131 005e 8460      		ori r24,lo8(4)
 132 0060 8093 6400 		sts 100,r24
  31:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTG,2);
 134               	.LM12:
 135 0064 8091 6500 		lds r24,101
 136 0068 8460      		ori r24,lo8(4)
 137 006a 8093 6500 		sts 101,r24
  32:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(DDRD,5);//CS_ADC初始化,输出1
 139               	.LM13:
 140 006e 8091 3100 		lds r24,49
 141 0072 8062      		ori r24,lo8(32)
 142 0074 8093 3100 		sts 49,r24
  33:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTD,5);
 144               	.LM14:
 145 0078 8091 3200 		lds r24,50
 146 007c 8062      		ori r24,lo8(32)
 147 007e 8093 3200 		sts 50,r24
  34:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(DDRD,6);//CS_RAM初始化,输出1
 149               	.LM15:
 150 0082 8091 3100 		lds r24,49
 151 0086 8064      		ori r24,lo8(64)
 152 0088 8093 3100 		sts 49,r24
  35:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTD,6);
 154               	.LM16:
 155 008c 8091 3200 		lds r24,50
 156 0090 8064      		ori r24,lo8(64)
 157 0092 8093 3200 		sts 50,r24
  36:G:/HVCBASOFT/AD/adc_sram.c **** 	UART_SETTING(19200,7372800);//串口初始化
 159               	.LM17:
 160 0096 40E0      		ldi r20,lo8(7372800)
 161 0098 50E8      		ldi r21,hi8(7372800)
 162 009a 60E7      		ldi r22,hlo8(7372800)
 163 009c 70E0      		ldi r23,hhi8(7372800)
 164 009e 80E0      		ldi r24,lo8(19200)
 165 00a0 9BE4      		ldi r25,hi8(19200)
 166 00a2 0E94 0000 		call UART_SETTING
  37:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(DDRE,2);//串口接收控制
 168               	.LM18:
 169 00a6 8091 2200 		lds r24,34
 170 00aa 8460      		ori r24,lo8(4)
 171 00ac 8093 2200 		sts 34,r24
  38:G:/HVCBASOFT/AD/adc_sram.c **** 	cbi(PORTE,2);
 173               	.LM19:
 174 00b0 8091 2300 		lds r24,35
 175 00b4 8B7F      		andi r24,lo8(-5)
 176 00b6 8093 2300 		sts 35,r24
  39:G:/HVCBASOFT/AD/adc_sram.c **** }
 178               	.LM20:
 179               	/* epilogue: frame size=0 */
 180 00ba DF91      		pop r29
 181 00bc CF91      		pop r28
 182 00be 0895      		ret
 183               	/* epilogue end (size=3) */
 184               	/* function INITIATION size 96 (89) */
 186               	.Lscope0:
 189               	.global	delay_ms
 191               	delay_ms:
  40:G:/HVCBASOFT/AD/adc_sram.c **** //延时程序
  41:G:/HVCBASOFT/AD/adc_sram.c **** void delay_ms(void)
  42:G:/HVCBASOFT/AD/adc_sram.c **** {
 193               	.LM21:
 194               	/* prologue: frame size=1 */
 195 00c0 CF93      		push r28
 196 00c2 DF93      		push r29
 197 00c4 CDB7      		in r28,__SP_L__
 198 00c6 DEB7      		in r29,__SP_H__
 199 00c8 2197      		sbiw r28,1
 200 00ca 0FB6      		in __tmp_reg__,__SREG__
 201 00cc F894      		cli
 202 00ce DEBF      		out __SP_H__,r29
 203 00d0 0FBE      		out __SREG__,__tmp_reg__
 204 00d2 CDBF      		out __SP_L__,r28
 205               	/* prologue end (size=10) */
  43:G:/HVCBASOFT/AD/adc_sram.c **** 	uint8_t i;
  44:G:/HVCBASOFT/AD/adc_sram.c **** 	for(i=0;i<0x01;i++){;}
 207               	.LM22:
 208               	.LBB2:
 209 00d4 1982      		std Y+1,__zero_reg__
 210               	.L9:
 211 00d6 8981      		ldd r24,Y+1
 212 00d8 8823      		tst r24
 213 00da 09F0      		breq .L11
 214 00dc 04C0      		rjmp .L8
 215               	.L11:
 216 00de 8981      		ldd r24,Y+1
 217 00e0 8F5F      		subi r24,lo8(-(1))
 218 00e2 8983      		std Y+1,r24
 219 00e4 F8CF      		rjmp .L9
  45:G:/HVCBASOFT/AD/adc_sram.c **** }
 221               	.LM23:
 222               	.L8:
 223               	.LBE2:
 224               	/* epilogue: frame size=1 */
 225 00e6 2196      		adiw r28,1
 226 00e8 0FB6      		in __tmp_reg__,__SREG__
 227 00ea F894      		cli
 228 00ec DEBF      		out __SP_H__,r29
 229 00ee 0FBE      		out __SREG__,__tmp_reg__
 230 00f0 CDBF      		out __SP_L__,r28
 231 00f2 DF91      		pop r29
 232 00f4 CF91      		pop r28
 233 00f6 0895      		ret
 234               	/* epilogue end (size=9) */
 235               	/* function delay_ms size 28 (9) */
 240               	.Lscope1:
 244               	.global	EXTERN_INTERRUPT_OPEN
 246               	EXTERN_INTERRUPT_OPEN:
  46:G:/HVCBASOFT/AD/adc_sram.c **** 
  47:G:/HVCBASOFT/AD/adc_sram.c **** //开外部中断
  48:G:/HVCBASOFT/AD/adc_sram.c **** void EXTERN_INTERRUPT_OPEN(uint8_t index)
  49:G:/HVCBASOFT/AD/adc_sram.c **** {
 248               	.LM24:
 249               	/* prologue: frame size=1 */
 250 00f8 CF93      		push r28
 251 00fa DF93      		push r29
 252 00fc CDB7      		in r28,__SP_L__
 253 00fe DEB7      		in r29,__SP_H__
 254 0100 2197      		sbiw r28,1
 255 0102 0FB6      		in __tmp_reg__,__SREG__
 256 0104 F894      		cli
 257 0106 DEBF      		out __SP_H__,r29
 258 0108 0FBE      		out __SREG__,__tmp_reg__
 259 010a CDBF      		out __SP_L__,r28
 260               	/* prologue end (size=10) */
 261 010c 8983      		std Y+1,r24
  50:G:/HVCBASOFT/AD/adc_sram.c **** 	EICRA=0xAA;
 263               	.LM25:
 264 010e 8AEA      		ldi r24,lo8(-86)
 265 0110 8093 6A00 		sts 106,r24
  51:G:/HVCBASOFT/AD/adc_sram.c **** 	EICRB=0xAA;//设置下降沿触发
 267               	.LM26:
 268 0114 8AEA      		ldi r24,lo8(-86)
 269 0116 8093 5A00 		sts 90,r24
  52:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(EIMSK,index);
 271               	.LM27:
 272 011a 8981      		ldd r24,Y+1
 273 011c 282F      		mov r18,r24
 274 011e 3327      		clr r19
 275 0120 81E0      		ldi r24,lo8(1)
 276 0122 90E0      		ldi r25,hi8(1)
 277 0124 02C0      		rjmp 2f
 278 0126 880F      	1:	lsl r24
 279 0128 991F      		rol r25
 280 012a 2A95      	2:	dec r18
 281 012c E2F7      		brpl 1b
 282 012e 2091 5900 		lds r18,89
 283 0132 822B      		or r24,r18
 284 0134 8093 5900 		sts 89,r24
  53:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(SREG,7);//将寄存器SREG的“I”置1
 286               	.LM28:
 287 0138 8091 5F00 		lds r24,95
 288 013c 8068      		ori r24,lo8(-128)
 289 013e 8093 5F00 		sts 95,r24
  54:G:/HVCBASOFT/AD/adc_sram.c **** }
 291               	.LM29:
 292               	/* epilogue: frame size=1 */
 293 0142 2196      		adiw r28,1
 294 0144 0FB6      		in __tmp_reg__,__SREG__
 295 0146 F894      		cli
 296 0148 DEBF      		out __SP_H__,r29
 297 014a 0FBE      		out __SREG__,__tmp_reg__
 298 014c CDBF      		out __SP_L__,r28
 299 014e DF91      		pop r29
 300 0150 CF91      		pop r28
 301 0152 0895      		ret
 302               	/* epilogue end (size=9) */
 303               	/* function EXTERN_INTERRUPT_OPEN size 47 (28) */
 305               	.Lscope2:
 309               	.global	EXTERN_INTERRUPT_CLOSE
 311               	EXTERN_INTERRUPT_CLOSE:
  55:G:/HVCBASOFT/AD/adc_sram.c **** 
  56:G:/HVCBASOFT/AD/adc_sram.c **** //关外部中断
  57:G:/HVCBASOFT/AD/adc_sram.c **** void EXTERN_INTERRUPT_CLOSE(uint8_t index)
  58:G:/HVCBASOFT/AD/adc_sram.c **** {
 313               	.LM30:
 314               	/* prologue: frame size=1 */
 315 0154 CF93      		push r28
 316 0156 DF93      		push r29
 317 0158 CDB7      		in r28,__SP_L__
 318 015a DEB7      		in r29,__SP_H__
 319 015c 2197      		sbiw r28,1
 320 015e 0FB6      		in __tmp_reg__,__SREG__
 321 0160 F894      		cli
 322 0162 DEBF      		out __SP_H__,r29
 323 0164 0FBE      		out __SREG__,__tmp_reg__
 324 0166 CDBF      		out __SP_L__,r28
 325               	/* prologue end (size=10) */
 326 0168 8983      		std Y+1,r24
  59:G:/HVCBASOFT/AD/adc_sram.c **** 	cbi(EIMSK,index);
 328               	.LM31:
 329 016a 8981      		ldd r24,Y+1
 330 016c 282F      		mov r18,r24
 331 016e 3327      		clr r19
 332 0170 81E0      		ldi r24,lo8(1)
 333 0172 90E0      		ldi r25,hi8(1)
 334 0174 02C0      		rjmp 2f
 335 0176 880F      	1:	lsl r24
 336 0178 991F      		rol r25
 337 017a 2A95      	2:	dec r18
 338 017c E2F7      		brpl 1b
 339 017e 982F      		mov r25,r24
 340 0180 9095      		com r25
 341 0182 8091 5900 		lds r24,89
 342 0186 8923      		and r24,r25
 343 0188 8093 5900 		sts 89,r24
  60:G:/HVCBASOFT/AD/adc_sram.c **** //	sbi(SREG,7);//将寄存器SREG的“I”置1
  61:G:/HVCBASOFT/AD/adc_sram.c **** }
 345               	.LM32:
 346               	/* epilogue: frame size=1 */
 347 018c 2196      		adiw r28,1
 348 018e 0FB6      		in __tmp_reg__,__SREG__
 349 0190 F894      		cli
 350 0192 DEBF      		out __SP_H__,r29
 351 0194 0FBE      		out __SREG__,__tmp_reg__
 352 0196 CDBF      		out __SP_L__,r28
 353 0198 DF91      		pop r29
 354 019a CF91      		pop r28
 355 019c 0895      		ret
 356               	/* epilogue end (size=9) */
 357               	/* function EXTERN_INTERRUPT_CLOSE size 38 (19) */
 359               	.Lscope3:
 364               	.global	SRAM_1M_8_WRITE
 366               	SRAM_1M_8_WRITE:
  62:G:/HVCBASOFT/AD/adc_sram.c **** 
  63:G:/HVCBASOFT/AD/adc_sram.c **** //SRAM写操作
  64:G:/HVCBASOFT/AD/adc_sram.c **** void SRAM_1M_8_WRITE(uint32_t address,uint8_t data)
  65:G:/HVCBASOFT/AD/adc_sram.c **** {
 368               	.LM33:
 369               	/* prologue: frame size=5 */
 370 019e CF93      		push r28
 371 01a0 DF93      		push r29
 372 01a2 CDB7      		in r28,__SP_L__
 373 01a4 DEB7      		in r29,__SP_H__
 374 01a6 2597      		sbiw r28,5
 375 01a8 0FB6      		in __tmp_reg__,__SREG__

⌨️ 快捷键说明

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