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

📄 ad转换.lst

📁 基于ATMEGA16的AD转换的C程序源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
     399 E090      LDI	R25,0
     39A 0FE8      ADD	R30,R24
     39B 1FF9      ADC	R31,R25
     39C 9104      LPM	R16,0(Z)
     39D DEF4      RCALL	_WR_dat
(0262) 			x+=2;							
     39E 5F4E      SUBI	R20,0xFE
     39F 4F5F      SBCI	R21,0xFF
     3A0 01C6      MOVW	R24,R12
     3A1 9601      ADIW	R24,1
     3A2 016C      MOVW	R12,R24
     3A3 01C6      MOVW	R24,R12
     3A4 3088      CPI	R24,0x8
     3A5 E0E0      LDI	R30,0
     3A6 079E      CPC	R25,R30
     3A7 F318      BCS	0x038B
(0263) 		}									
(0264) 		x=0;								
     3A8 2744      CLR	R20
     3A9 2755      CLR	R21
(0265) 		for(i=0;i<8;i++)					
     3AA 24CC      CLR	R12
     3AB 24DD      CLR	R13
     3AC C01C      RJMP	0x03C9
(0266) 		{									
(0267) 			WR_dat(Bitmap[512+y+x]);		
     3AD 01FB      MOVW	R30,R22
     3AE 50E0      SUBI	R30,0
     3AF 4FFE      SBCI	R31,0xFE
     3B0 0FE4      ADD	R30,R20
     3B1 1FF5      ADC	R31,R21
     3B2 E584      LDI	R24,0x54
     3B3 E090      LDI	R25,0
     3B4 0FE8      ADD	R30,R24
     3B5 1FF9      ADC	R31,R25
     3B6 9104      LPM	R16,0(Z)
     3B7 DEDA      RCALL	_WR_dat
(0268) 			WR_dat(Bitmap[512+y+x+1]);		
     3B8 01FB      MOVW	R30,R22
     3B9 50E0      SUBI	R30,0
     3BA 4FFE      SBCI	R31,0xFE
     3BB 0FE4      ADD	R30,R20
     3BC 1FF5      ADC	R31,R21
     3BD 9631      ADIW	R30,1
     3BE E584      LDI	R24,0x54
     3BF E090      LDI	R25,0
     3C0 0FE8      ADD	R30,R24
     3C1 1FF9      ADC	R31,R25
     3C2 9104      LPM	R16,0(Z)
     3C3 DECE      RCALL	_WR_dat
(0269) 			x+=2;							
     3C4 5F4E      SUBI	R20,0xFE
     3C5 4F5F      SBCI	R21,0xFF
     3C6 01C6      MOVW	R24,R12
     3C7 9601      ADIW	R24,1
     3C8 016C      MOVW	R12,R24
     3C9 01C6      MOVW	R24,R12
     3CA 3088      CPI	R24,0x8
     3CB E0E0      LDI	R30,0
     3CC 079E      CPC	R25,R30
     3CD F2F8      BCS	0x03AD
(0270) 		}									
(0271) 		x=0;								
     3CE 2744      CLR	R20
     3CF 2755      CLR	R21
(0272) 		y+=16;								
     3D0 5F60      SUBI	R22,0xF0
     3D1 4F7F      SBCI	R23,0xFF
     3D2 01C5      MOVW	R24,R10
     3D3 9601      ADIW	R24,1
     3D4 015C      MOVW	R10,R24
     3D5 01C5      MOVW	R24,R10
     3D6 3280      CPI	R24,0x20
     3D7 E0E0      LDI	R30,0
     3D8 079E      CPC	R25,R30
     3D9 F408      BCC	0x03DB
     3DA CFA7      RJMP	0x0382
(0273) 	}										
(0274) 	WR_control(0x36);							
     3DB E306      LDI	R16,0x36
     3DC DEC8      RCALL	_WR_control
(0275) 	delay_nus(80);							
     3DD E500      LDI	R16,0x50
     3DE E010      LDI	R17,0
     3DF DE71      RCALL	_delay_nus
(0276) 	WR_control(0x30);							
     3E0 E300      LDI	R16,0x30
     3E1 DEC3      RCALL	_WR_control
(0277) 	delay_nus(80);							
     3E2 E500      LDI	R16,0x50
     3E3 E010      LDI	R17,0
     3E4 DE6C      RCALL	_delay_nus
     3E5 940C 047A JMP	pop_xgsetF03C
FILE: D:\垃圾站\00\adc\ad.c
(0001) #include "iom16v.h"
(0002) #include "macros.h"
(0003) #include "delay.h"
(0004) #include "lcd.h"
(0005) unsigned int time;
(0006) void Adc_Init(void)
(0007) {
(0008)  ADMUX=0xc0;                //片内2.56基准源,通道为ADC0
_Adc_Init:
     3E7 EC80      LDI	R24,0xC0
     3E8 B987      OUT	0x07,R24
(0009)  ADCSRA=0X00;                //停止ADC
     3E9 2422      CLR	R2
     3EA B826      OUT	0x06,R2
(0010) 
(0011)  ACSR=(1<<ACD);				 //关闭模拟比较器
     3EB E880      LDI	R24,0x80
     3EC B988      OUT	0x08,R24
(0012)  ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADIE)
     3ED EC8F      LDI	R24,0xCF
     3EE B986      OUT	0x06,R24
     3EF 9508      RET
_Adc_isr:
     3F0 940E 0483 CALL	push_lset
     3F2 9722      SBIW	R28,2
(0013) 		|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);	//使能ADC、启动AD转换、使能ADC中断、128分频
(0014)                                             
(0015) }
(0016) 
(0017) #pragma interrupt_handler Adc_isr:15
(0018) void Adc_isr(void)
(0019) {
(0020)  	 	time=ADC&0x3ff;
     3F3 B184      IN	R24,0x04
     3F4 B195      IN	R25,0x05
     3F5 7093      ANDI	R25,3
     3F6 9390 006C STS	time+1,R25
     3F8 9380 006B STS	time,R24
(0021)   	 	//time=ADCH;		                //取出转换结果到缓冲数组
(0022) 		lcd_write2(2,1,time);           //显示转换结果
     3FA 011C      MOVW	R2,R24
     3FB 8239      STD	Y+1,R3
     3FC 8228      STD	Y+0,R2
     3FD E021      LDI	R18,1
     3FE E002      LDI	R16,2
     3FF DF34      RCALL	_lcd_write2
(0023) 		delay_nms(200);
     400 EC08      LDI	R16,0xC8
     401 E010      LDI	R17,0
     402 DE5C      RCALL	_delay_nms
(0024) 		ADCSRA|=(1<<ADSC);				//启动转换
     403 9A36      SBI	0x06,6
     404 9622      ADIW	R28,2
     405 940E 049A CALL	pop_lset
     407 9518      RETI
(0025) }
(0026) void main()
(0027) {CLI();
_main:
     408 94F8      BCLR	7
(0028)  Adc_Init();
     409 DFDD      RCALL	_Adc_Init
(0029)  Lcd_INT();
     40A DF13      RCALL	_Lcd_INT
(0030)  lcd_clear();
     40B DEB1      RCALL	_lcd_clear
(0031)  SEI();
FILE: <library>
     40C 9478      BSET	7
     40D 9508      RET
mod16u:
     40E 9468      BSET	6
     40F C001      RJMP	xdiv16u
div16u:
     410 94E8      BCLR	6
xdiv16u:
     411 92EA      ST	R14,-Y
     412 92FA      ST	R15,-Y
     413 938A      ST	R24,-Y
     414 24EE      CLR	R14
     415 24FF      CLR	R15
     416 E180      LDI	R24,0x10
     417 0F00      LSL	R16
     418 1F11      ROL	R17
     419 1CEE      ROL	R14
     41A 1CFF      ROL	R15
     41B 16E2      CP	R14,R18
     41C 06F3      CPC	R15,R19
     41D F018      BCS	0x0421
     41E 1AE2      SUB	R14,R18
     41F 0AF3      SBC	R15,R19
     420 9503      INC	R16
     421 958A      DEC	R24
     422 F7A1      BNE	0x0417
     423 F416      BRTC	0x0426
     424 2D0E      MOV	R16,R14
     425 2D1F      MOV	R17,R15
     426 9189      LD	R24,Y+
     427 90F9      LD	R15,Y+
     428 90E9      LD	R14,Y+
     429 9508      RET
pop_xgset003C:
     42A 90A9      LD	R10,Y+
     42B 90B9      LD	R11,Y+
     42C 90C9      LD	R12,Y+
     42D 90D9      LD	R13,Y+
     42E 9508      RET
pop_xgset00FC:
     42F 90A9      LD	R10,Y+
     430 90B9      LD	R11,Y+
     431 90C9      LD	R12,Y+
     432 90D9      LD	R13,Y+
     433 90E9      LD	R14,Y+
     434 90F9      LD	R15,Y+
     435 9508      RET
push_xgsetF0FC:
     436 937A      ST	R23,-Y
     437 936A      ST	R22,-Y
push_xgset30FC:
     438 935A      ST	R21,-Y
     439 934A      ST	R20,-Y
push_xgset00FC:
     43A 92FA      ST	R15,-Y
     43B 92EA      ST	R14,-Y
push_xgset003C:
     43C 92DA      ST	R13,-Y
     43D 92CA      ST	R12,-Y
     43E 92BA      ST	R11,-Y
     43F 92AA      ST	R10,-Y
     440 9508      RET
push_xgset300C:
     441 935A      ST	R21,-Y
     442 934A      ST	R20,-Y
     443 92BA      ST	R11,-Y
     444 92AA      ST	R10,-Y
     445 9508      RET
pop_xgset300C:
     446 90A9      LD	R10,Y+
     447 90B9      LD	R11,Y+
     448 9149      LD	R20,Y+
     449 9159      LD	R21,Y+
     44A 9508      RET
push_xgsetF000:
     44B 937A      ST	R23,-Y
     44C 936A      ST	R22,-Y
     44D 935A      ST	R21,-Y
     44E 934A      ST	R20,-Y
     44F 9508      RET
pop_xgsetF000:
     450 9149      LD	R20,Y+
     451 9159      LD	R21,Y+
     452 9169      LD	R22,Y+
     453 9179      LD	R23,Y+
     454 9508      RET
push_xgsetF00C:
     455 937A      ST	R23,-Y
     456 936A      ST	R22,-Y
     457 935A      ST	R21,-Y
     458 934A      ST	R20,-Y
     459 92BA      ST	R11,-Y
     45A 92AA      ST	R10,-Y
     45B 9508      RET
pop_xgsetF00C:
     45C 90A9      LD	R10,Y+
     45D 90B9      LD	R11,Y+
     45E 9149      LD	R20,Y+
     45F 9159      LD	R21,Y+
     460 9169      LD	R22,Y+
     461 9179      LD	R23,Y+
     462 9508      RET
push_xgset303C:
     463 935A      ST	R21,-Y
     464 934A      ST	R20,-Y
     465 92DA      ST	R13,-Y
     466 92CA      ST	R12,-Y
     467 92BA      ST	R11,-Y
     468 92AA      ST	R10,-Y
     469 9508      RET
pop_xgset303C:
     46A 90A9      LD	R10,Y+
     46B 90B9      LD	R11,Y+
     46C 90C9      LD	R12,Y+
     46D 90D9      LD	R13,Y+
     46E 9149      LD	R20,Y+
     46F 9159      LD	R21,Y+
     470 9508      RET
push_xgsetF03C:
     471 937A      ST	R23,-Y
     472 936A      ST	R22,-Y
     473 935A      ST	R21,-Y
     474 934A      ST	R20,-Y
     475 92DA      ST	R13,-Y
     476 92CA      ST	R12,-Y
     477 92BA      ST	R11,-Y
     478 92AA      ST	R10,-Y
     479 9508      RET
pop_xgsetF03C:
     47A 90A9      LD	R10,Y+
     47B 90B9      LD	R11,Y+
     47C 90C9      LD	R12,Y+
     47D 90D9      LD	R13,Y+
     47E 9149      LD	R20,Y+
     47F 9159      LD	R21,Y+
     480 9169      LD	R22,Y+
     481 9179      LD	R23,Y+
     482 9508      RET
push_lset:
     483 93FA      ST	R31,-Y
     484 93EA      ST	R30,-Y
     485 93BA      ST	R27,-Y
     486 93AA      ST	R26,-Y
     487 939A      ST	R25,-Y
     488 938A      ST	R24,-Y
     489 933A      ST	R19,-Y
     48A 932A      ST	R18,-Y
     48B 931A      ST	R17,-Y
     48C 930A      ST	R16,-Y
     48D 929A      ST	R9,-Y
     48E 928A      ST	R8,-Y
     48F 927A      ST	R7,-Y
     490 926A      ST	R6,-Y
     491 925A      ST	R5,-Y
     492 924A      ST	R4,-Y
     493 923A      ST	R3,-Y
     494 922A      ST	R2,-Y
     495 921A      ST	R1,-Y
     496 920A      ST	R0,-Y
     497 B60F      IN	R0,0x3F
     498 920A      ST	R0,-Y
     499 9508      RET
pop_lset:
     49A 9009      LD	R0,Y+
     49B BE0F      OUT	0x3F,R0
     49C 9009      LD	R0,Y+
     49D 9019      LD	R1,Y+
     49E 9029      LD	R2,Y+
     49F 9039      LD	R3,Y+
     4A0 9049      LD	R4,Y+
     4A1 9059      LD	R5,Y+
     4A2 9069      LD	R6,Y+
     4A3 9079      LD	R7,Y+
     4A4 9089      LD	R8,Y+
     4A5 9099      LD	R9,Y+
     4A6 9109      LD	R16,Y+
     4A7 9119      LD	R17,Y+
     4A8 9129      LD	R18,Y+
     4A9 9139      LD	R19,Y+
     4AA 9189      LD	R24,Y+
     4AB 9199      LD	R25,Y+
     4AC 91A9      LD	R26,Y+
     4AD 91B9      LD	R27,Y+
     4AE 91E9      LD	R30,Y+
     4AF 91F9      LD	R31,Y+
     4B0 9508      RET

⌨️ 快捷键说明

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