📄 adc_led.lst
字号:
__start:
__text_start:
46 EFCF LDI R28,0xFF
47 E1D0 LDI R29,0x10
48 BFCD OUT 0x3D,R28
49 BFDE OUT 0x3E,R29
4A 51CE SUBI R28,0x1E
4B 40D0 SBCI R29,0
4C EA0A LDI R16,0xAA
4D 8308 STD Y+0,R16
4E 2400 CLR R0
4F E0E0 LDI R30,0
50 E0F1 LDI R31,1
51 E011 LDI R17,1
52 30E0 CPI R30,0
53 07F1 CPC R31,R17
54 F011 BEQ 0x0057
55 9201 ST R0,Z+
56 CFFB RJMP 0x0052
57 8300 STD Z+0,R16
58 E8EC LDI R30,0x8C
59 E0F0 LDI R31,0
5A E0A0 LDI R26,0
5B E0B1 LDI R27,1
5C E010 LDI R17,0
5D E000 LDI R16,0
5E BF0B OUT 0x3B,R16
5F 38EC CPI R30,0x8C
60 07F1 CPC R31,R17
61 F021 BEQ 0x0066
62 95C8 LPM
63 9631 ADIW R30,1
64 920D ST R0,X+
65 CFF9 RJMP 0x005F
66 940E 0072 CALL _main
_exit:
68 CFFF RJMP _exit
FILE: E:\16实验程序\模数转换\adc_led\ADC_led.c
(0001) //ADC转换程序
(0002) //用led显示ADC0的电压值
(0003) #include<iom16v.h>
(0004) #define uchar unsigned char
(0005) #define uint unsigned int
(0006)
(0007) void s_ms(uint ms)
(0008) {
(0009) for(;ms>1;ms--);
_s_ms:
ms --> R16
69 C002 RJMP 0x006C
6A 5001 SUBI R16,1
6B 4010 SBCI R17,0
6C E081 LDI R24,1
6D E090 LDI R25,0
6E 1780 CP R24,R16
6F 0791 CPC R25,R17
70 F3C8 BCS 0x006A
71 9508 RET
(0010) }
(0011)
(0012) //ADC0测试,用8位LED显示ADHL
(0013) //主函数
(0014) main()
(0015) {
(0016) uchar adc_l,adc_h,i;
(0017) DDRA=0xff;
_main:
adc_h --> R12
adc_l --> R10
i --> R20
72 EF8F LDI R24,0xFF
73 BB8A OUT 0x1A,R24
(0018) PORTA=0x00;
74 2422 CLR R2
75 BA2B OUT 0x1B,R2
(0019) DDRB=0xff;
76 BB87 OUT 0x17,R24
(0020) DDRD=0xff;
77 BB81 OUT 0x11,R24
(0021) PORTD=0xff;
78 BB82 OUT 0x12,R24
79 C014 RJMP 0x008E
(0022) while(1)
(0023) {
(0024) // ADCSR=0x00;
(0025) ADMUX=0x40; //AVCC参考电压 ADC0输入
7A E480 LDI R24,0x40
7B B987 OUT 0x07,R24
(0026) // ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADFR)|0x07; //128分频,循环取值
(0027) ADCSRA=(1<<ADEN)|(1<<ADSC)|0x07; //128分频,循环取值
7C EC87 LDI R24,0xC7
7D B986 OUT 0x06,R24
(0028) s_ms(500); //延时
7E EF04 LDI R16,0xF4
7F E011 LDI R17,1
80 DFE8 RCALL _s_ms
(0029) adc_l=ADCL;
81 B0A4 IN R10,0x04
(0030) adc_h=ADCH;
82 B0C5 IN R12,0x05
(0031) PORTD=~adc_l;
83 2C2A MOV R2,R10
84 9420 COM R2
85 BA22 OUT 0x12,R2
(0032) for(i=0;i<10;i++)
86 2744 CLR R20
87 C004 RJMP 0x008C
(0033) {
(0034) s_ms(60000);
FILE: <library>
88 E600 LDI R16,0x60
89 EE1A LDI R17,0xEA
8A DFDE RCALL _s_ms
8B 9543 INC R20
8C 304A CPI R20,0xA
8D F3D0 BCS 0x0088
8E CFEB RJMP 0x007A
8F 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -