📄 1.lis
字号:
0570 7A93 st -y,R23
0572 6A93 st -y,R22
0574 5A93 st -y,R21
0576 4A93 st -y,R20
0578 0E940000 xcall div32u
057C 5801 movw R10,R16
057E .dbline 119
057E ; voltage=temp;
057E B0920F00 sts _voltage+1,R11
0582 A0920E00 sts _voltage,R10
0586 .dbline 120
0586 ; switch(adc_mux)
0586 C0901000 lds R12,_adc_mux
058A DD24 clr R13
058C CC20 tst R12
058E 11F4 brne X9
0590 DD20 tst R13
0592 71F0 breq L51
0594 X9:
0594 C601 movw R24,R12
0596 8130 cpi R24,1
0598 E0E0 ldi R30,0
059A 9E07 cpc R25,R30
059C 71F0 breq L52
059E X10:
059E 8230 cpi R24,2
05A0 E0E0 ldi R30,0
05A2 9E07 cpc R25,R30
05A4 79F0 breq L53
05A6 X11:
05A6 8330 cpi R24,3
05A8 E0E0 ldi R30,0
05AA 9E07 cpc R25,R30
05AC 81F0 breq L54
05AE X12:
05AE 13C0 xjmp L48
05B0 L51:
05B0 .dbline 122
05B0 ; {
05B0 ; case 0:V0=temp;break;
05B0 B0920B00 sts _V0+1,R11
05B4 A0920A00 sts _V0,R10
05B8 .dbline 122
05B8 0EC0 xjmp L49
05BA L52:
05BA .dbline 123
05BA ; case 1:V1=temp;break;
05BA B0920900 sts _V1+1,R11
05BE A0920800 sts _V1,R10
05C2 .dbline 123
05C2 09C0 xjmp L49
05C4 L53:
05C4 .dbline 124
05C4 ; case 2:V2=temp;break;
05C4 B0920700 sts _V2+1,R11
05C8 A0920600 sts _V2,R10
05CC .dbline 124
05CC 04C0 xjmp L49
05CE L54:
05CE .dbline 125
05CE ; case 3:V3=temp;break;
05CE B0920500 sts _V3+1,R11
05D2 A0920400 sts _V3,R10
05D6 .dbline 125
05D6 L48:
05D6 L49:
05D6 .dbline 127
05D6 ; }
05D6 ; LCD_write_shu(0,0,temp);
05D6 B982 std y+1,R11
05D8 A882 std y+0,R10
05DA 2227 clr R18
05DC 3327 clr R19
05DE 0027 clr R16
05E0 1127 clr R17
05E2 5EDE xcall _LCD_write_shu
05E4 .dbline -2
05E4 L47:
05E4 .dbline 0 ; func end
05E4 2296 adiw R28,2
05E6 0C940000 xjmp pop_xgsetF03C
05EA .dbsym l i 3 c
05EA .dbsym r temp 10 i
05EA .dbend
.area vector(rom, abs)
.org 56
0038 0C94F502 jmp _adc_isr
.area text(rom, con, rel)
05EA .dbfile C:\DOCUME~1\qiuqiu\桌面\测试\1\1.c
05EA .dbfunc e adc_isr _adc_isr fV
.even
05EA _adc_isr::
05EA 8A93 st -y,R24
05EC 9A93 st -y,R25
05EE 8FB7 in R24,0x3f
05F0 8A93 st -y,R24
05F2 .dbline -1
05F2 .dbline 134
05F2 ;
05F2 ; }
05F2 ;
05F2 ;
05F2 ; #pragma interrupt_handler adc_isr:15
05F2 ; void adc_isr(void)
05F2 ; {
05F2 .dbline 136
05F2 ; //转换完成后中断处理
05F2 ; adc_rel=ADC&0x3ff; //
05F2 84B1 in R24,0x4
05F4 95B1 in R25,0x5
05F6 9370 andi R25,3
05F8 90931200 sts _adc_rel+1,R25
05FC 80931100 sts _adc_rel,R24
0600 .dbline 137
0600 ; ADMUX =(1<<REFS1)|(1<<REFS0)|(adc_mux&0x1f);
0600 80911000 lds R24,_adc_mux
0604 8F71 andi R24,31
0606 806C ori R24,192
0608 87B9 out 0x7,R24
060A .dbline 138
060A ; ADCSRA|=(1<<ADSC);//启动AD转换//启动AD转换
060A 369A sbi 0x6,6
060C .dbline -2
060C L55:
060C .dbline 0 ; func end
060C 8991 ld R24,y+
060E 8FBF out 0x3f,R24
0610 9991 ld R25,y+
0612 8991 ld R24,y+
0614 1895 reti
0616 .dbend
0616 .dbfunc e init_devices _init_devices fV
.even
0616 _init_devices::
0616 .dbline -1
0616 .dbline 145
0616 ;
0616 ; }
0616 ;
0616 ;
0616 ;
0616 ; void init_devices(void)
0616 ; {
0616 .dbline 146
0616 ; CLI(); //禁止所有中断
0616 F894 cli
0618 .dbline 147
0618 ; MCUCR = 0x00;
0618 2224 clr R2
061A 25BE out 0x35,R2
061C .dbline 148
061C ; MCUCSR = 0x80;//禁止JTAG
061C 80E8 ldi R24,128
061E 84BF out 0x34,R24
0620 .dbline 149
0620 ; GICR = 0x00;
0620 2BBE out 0x3b,R2
0622 .dbline 150
0622 ; port_init();
0622 12DF xcall _port_init
0624 .dbline 151
0624 ; timer1_init();
0624 1DDF xcall _timer1_init
0626 .dbline 152
0626 ; adc_init();
0626 7BDF xcall _adc_init
0628 .dbline 153
0628 ; SEI();//开全局中断
0628 7894 sei
062A .dbline -2
062A L56:
062A .dbline 0 ; func end
062A 0895 ret
062C .dbend
062C .dbfunc e qianjin _qianjin fV
.even
062C _qianjin::
062C 2297 sbiw R28,2
062E .dbline -1
062E .dbline 157
062E ; }
062E ;
062E ; void qianjin()
062E ; {
062E .dbline 159
062E ; //PORTC|=0x80;
062E ; PORTC=0x8A; //1010前进
062E 8AE8 ldi R24,138
0630 85BB out 0x15,R24
0632 .dbline 160
0632 ; LCD_write_string(0,1,"qianjin ");
0632 80E0 ldi R24,<L58
0634 90E0 ldi R25,>L58
0636 9983 std y+1,R25
0638 8883 std y+0,R24
063A 21E0 ldi R18,1
063C 0027 clr R16
063E C0DD xcall _LCD_write_string
0640 .dbline -2
0640 L57:
0640 .dbline 0 ; func end
0640 2296 adiw R28,2
0642 0895 ret
0644 .dbend
0644 .dbfunc e houtui _houtui fV
.even
0644 _houtui::
0644 2297 sbiw R28,2
0646 .dbline -1
0646 .dbline 163
0646 ; }
0646 ; void houtui()
0646 ; {
0646 .dbline 164
0646 ; PORTC=0x85; //0101后退
0646 85E8 ldi R24,133
0648 85BB out 0x15,R24
064A .dbline 165
064A ; LCD_write_string(0,1,"houtui ");
064A 80E0 ldi R24,<L60
064C 90E0 ldi R25,>L60
064E 9983 std y+1,R25
0650 8883 std y+0,R24
0652 21E0 ldi R18,1
0654 0027 clr R16
0656 B4DD xcall _LCD_write_string
0658 .dbline -2
0658 L59:
0658 .dbline 0 ; func end
0658 2296 adiw R28,2
065A 0895 ret
065C .dbend
065C .dbfunc e zuozhuan _zuozhuan fV
.even
065C _zuozhuan::
065C 2297 sbiw R28,2
065E .dbline -1
065E .dbline 169
065E ; }
065E ;
065E ; void zuozhuan()
065E ; {
065E .dbline 170
065E ; PORTC=0x82; //0010 左传
065E 82E8 ldi R24,130
0660 85BB out 0x15,R24
0662 .dbline 171
0662 ; LCD_write_string(0,1,"zuozhuan");
0662 80E0 ldi R24,<L62
0664 90E0 ldi R25,>L62
0666 9983 std y+1,R25
0668 8883 std y+0,R24
066A 21E0 ldi R18,1
066C 0027 clr R16
066E A8DD xcall _LCD_write_string
0670 .dbline -2
0670 L61:
0670 .dbline 0 ; func end
0670 2296 adiw R28,2
0672 0895 ret
0674 .dbend
0674 .dbfunc e youzhuan _youzhuan fV
.even
0674 _youzhuan::
0674 2297 sbiw R28,2
0676 .dbline -1
0676 .dbline 174
0676 ; }
0676 ; void youzhuan()
0676 ; {
0676 .dbline 175
0676 ; PORTC=0x88; //1000右转
0676 88E8 ldi R24,136
0678 85BB out 0x15,R24
067A .dbline 176
067A ; LCD_write_string(0,1,"youzhuan");
067A 80E0 ldi R24,<L64
067C 90E0 ldi R25,>L64
067E 9983 std y+1,R25
0680 8883 std y+0,R24
0682 21E0 ldi R18,1
0684 0027 clr R16
0686 9CDD xcall _LCD_write_string
0688 .dbline -2
0688 L63:
0688 .dbline 0 ; func end
0688 2296 adiw R28,2
068A 0895 ret
068C .dbend
068C .dbfunc e stop _stop fV
.even
068C _stop::
068C 2297 sbiw R28,2
068E .dbline -1
068E .dbline 179
068E ; }
068E ; void stop()
068E ; {
068E .dbline 180
068E ; PORTC=0x80;
068E 80E8 ldi R24,128
0690 85BB out 0x15,R24
0692 .dbline 181
0692 ; LCD_write_string(0,1,"stop ");
0692 80E0 ldi R24,<L66
0694 90E0 ldi R25,>L66
0696 9983 std y+1,R25
0698 8883 std y+0,R24
069A 21E0 ldi R18,1
069C 0027 clr R16
069E 90DD xcall _LCD_write_string
06A0 .dbline -2
06A0 L65:
06A0 .dbline 0 ; func end
06A0 2296 adiw R28,2
06A2 0895 ret
06A4 .dbend
06A4 .dbfunc e get_adc _get_adc fV
.even
06A4 _get_adc::
06A4 2297 sbiw R28,2
06A6 .dbline -1
06A6 .dbline 185
06A6 ; }
06A6 ;
06A6 ; void get_adc()
06A6 ; {
06A6 .dbline 186
06A6 ; if(adc_old!=adc_rel)
06A6 20901100 lds R2,_adc_rel
06AA 30901200 lds R3,_adc_rel+1
06AE 40900C00 lds R4,_adc_old
06B2 50900D00 lds R5,_adc_old+1
06B6 4214 cp R4,R2
06B8 5304 cpc R5,R3
06BA 49F0 breq L68
06BC X13:
06BC .dbline 187
06BC ; {
06BC .dbline 188
06BC ; adc_old=adc_rel;
06BC 30
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -