📄 ad.lis
字号:
0600 4A92 st -y,R4
0602 3A92 st -y,R3
0604 2A92 st -y,R2
0606 8A01 movw R16,R20
0608 9B01 movw R18,R22
060A 00D0 rcall empy32s
060C 48EB ldi R20,184
060E 5CEC ldi R21,204
0610 68E4 ldi R22,72
0612 70E0 ldi R23,0
0614 1801 movw R2,R16
0616 2901 movw R4,R18
0618 240E add R2,R20
061A 351E adc R3,R21
061C 461E adc R4,R22
061E 571E adc R5,R23
0620 FE01 movw R30,R28
0622 2082 std z+0,R2
0624 3182 std z+1,R3
0626 4282 std z+2,R4
0628 5382 std z+3,R5
062A A9C0 rjmp L78
062C L77:
062C .dbline 187
062C ; else if(r>19855)
062C 4FE8 ldi R20,143
062E 5DE4 ldi R21,77
0630 60E0 ldi R22,0
0632 70E0 ldi R23,0
0634 FE01 movw R30,R28
0636 2084 ldd R2,z+8
0638 3184 ldd R3,z+9
063A 4284 ldd R4,z+10
063C 5384 ldd R5,z+11
063E 4215 cp R20,R2
0640 5305 cpc R21,R3
0642 6405 cpc R22,R4
0644 7505 cpc R23,R5
0646 04F5 brge L79
0648 .dbline 188
0648 ; temper=-90*r+6482000;
0648 FE01 movw R30,R28
064A 2084 ldd R2,z+8
064C 3184 ldd R3,z+9
064E 4284 ldd R4,z+10
0650 5384 ldd R5,z+11
0652 46EA ldi R20,166
0654 5FEF ldi R21,255
0656 6FEF ldi R22,255
0658 7FEF ldi R23,255
065A 5A92 st -y,R5
065C 4A92 st -y,R4
065E 3A92 st -y,R3
0660 2A92 st -y,R2
0662 8A01 movw R16,R20
0664 9B01 movw R18,R22
0666 00D0 rcall empy32s
0668 40E5 ldi R20,80
066A 58EE ldi R21,232
066C 62E6 ldi R22,98
066E 70E0 ldi R23,0
0670 1801 movw R2,R16
0672 2901 movw R4,R18
0674 240E add R2,R20
0676 351E adc R3,R21
0678 461E adc R4,R22
067A 571E adc R5,R23
067C FE01 movw R30,R28
067E 2082 std z+0,R2
0680 3182 std z+1,R3
0682 4282 std z+2,R4
0684 5382 std z+3,R5
0686 7BC0 rjmp L80
0688 L79:
0688 .dbline 189
0688 ; else if(r>11370)
0688 4AE6 ldi R20,106
068A 5CE2 ldi R21,44
068C 60E0 ldi R22,0
068E 70E0 ldi R23,0
0690 FE01 movw R30,R28
0692 2084 ldd R2,z+8
0694 3184 ldd R3,z+9
0696 4284 ldd R4,z+10
0698 5384 ldd R5,z+11
069A 4215 cp R20,R2
069C 5305 cpc R21,R3
069E 6405 cpc R22,R4
06A0 7505 cpc R23,R5
06A2 04F5 brge L81
06A4 .dbline 190
06A4 ; temper=-180*r+8199400;
06A4 FE01 movw R30,R28
06A6 2084 ldd R2,z+8
06A8 3184 ldd R3,z+9
06AA 4284 ldd R4,z+10
06AC 5384 ldd R5,z+11
06AE 4CE4 ldi R20,76
06B0 5FEF ldi R21,255
06B2 6FEF ldi R22,255
06B4 7FEF ldi R23,255
06B6 5A92 st -y,R5
06B8 4A92 st -y,R4
06BA 3A92 st -y,R3
06BC 2A92 st -y,R2
06BE 8A01 movw R16,R20
06C0 9B01 movw R18,R22
06C2 00D0 rcall empy32s
06C4 48EE ldi R20,232
06C6 5CE1 ldi R21,28
06C8 6DE7 ldi R22,125
06CA 70E0 ldi R23,0
06CC 1801 movw R2,R16
06CE 2901 movw R4,R18
06D0 240E add R2,R20
06D2 351E adc R3,R21
06D4 461E adc R4,R22
06D6 571E adc R5,R23
06D8 FE01 movw R30,R28
06DA 2082 std z+0,R2
06DC 3182 std z+1,R3
06DE 4282 std z+2,R4
06E0 5382 std z+3,R5
06E2 4DC0 rjmp L82
06E4 L81:
06E4 .dbline 191
06E4 ; else if(r>5786)
06E4 4AE9 ldi R20,154
06E6 56E1 ldi R21,22
06E8 60E0 ldi R22,0
06EA 70E0 ldi R23,0
06EC FE01 movw R30,R28
06EE 2084 ldd R2,z+8
06F0 3184 ldd R3,z+9
06F2 4284 ldd R4,z+10
06F4 5384 ldd R5,z+11
06F6 4215 cp R20,R2
06F8 5305 cpc R21,R3
06FA 6405 cpc R22,R4
06FC 7505 cpc R23,R5
06FE 04F5 brge L83
0700 .dbline 192
0700 ; temper=-360*r+10213000;
0700 FE01 movw R30,R28
0702 2084 ldd R2,z+8
0704 3184 ldd R3,z+9
0706 4284 ldd R4,z+10
0708 5384 ldd R5,z+11
070A 48E9 ldi R20,152
070C 5EEF ldi R21,254
070E 6FEF ldi R22,255
0710 7FEF ldi R23,255
0712 5A92 st -y,R5
0714 4A92 st -y,R4
0716 3A92 st -y,R3
0718 2A92 st -y,R2
071A 8A01 movw R16,R20
071C 9B01 movw R18,R22
071E 00D0 rcall empy32s
0720 48E8 ldi R20,136
0722 56ED ldi R21,214
0724 6BE9 ldi R22,155
0726 70E0 ldi R23,0
0728 1801 movw R2,R16
072A 2901 movw R4,R18
072C 240E add R2,R20
072E 351E adc R3,R21
0730 461E adc R4,R22
0732 571E adc R5,R23
0734 FE01 movw R30,R28
0736 2082 std z+0,R2
0738 3182 std z+1,R3
073A 4282 std z+2,R4
073C 5382 std z+3,R5
073E 1FC0 rjmp L84
0740 L83:
0740 .dbline 194
0740 ; else
0740 ; temper=-890*r+13095000;
0740 FE01 movw R30,R28
0742 2084 ldd R2,z+8
0744 3184 ldd R3,z+9
0746 4284 ldd R4,z+10
0748 5384 ldd R5,z+11
074A 46E8 ldi R20,134
074C 5CEF ldi R21,252
074E 6FEF ldi R22,255
0750 7FEF ldi R23,255
0752 5A92 st -y,R5
0754 4A92 st -y,R4
0756 3A92 st -y,R3
0758 2A92 st -y,R2
075A 8A01 movw R16,R20
075C 9B01 movw R18,R22
075E 00D0 rcall empy32s
0760 48E5 ldi R20,88
0762 50ED ldi R21,208
0764 67EC ldi R22,199
0766 70E0 ldi R23,0
0768 1801 movw R2,R16
076A 2901 movw R4,R18
076C 240E add R2,R20
076E 351E adc R3,R21
0770 461E adc R4,R22
0772 571E adc R5,R23
0774 FE01 movw R30,R28
0776 2082 std z+0,R2
0778 3182 std z+1,R3
077A 4282 std z+2,R4
077C 5382 std z+3,R5
077E L84:
077E L82:
077E L80:
077E L78:
077E L76:
077E L74:
077E L72:
077E L70:
077E L68:
077E L65:
077E .dbline 195
077E ; return temper;
077E FE01 movw R30,R28
0780 0081 ldd R16,z+0
0782 1181 ldd R17,z+1
0784 2281 ldd R18,z+2
0786 3381 ldd R19,z+3
0788 .dbline -2
0788 L63:
0788 2496 adiw R28,4
078A 00D0 rcall pop_gset2
078C 2496 adiw R28,4
078E .dbline 0 ; func end
078E 0895 ret
0790 .dbsym l temper 0 L
0790 .dbsym l r 8 L
0790 .dbend
0790 .dbfunc e ad_convert _ad_convert fV
0790 ; i -> R10,R11
0790 ; r -> y+0
0790 ; temp -> R12,R13
0790 ; vdin -> R12,R13
0790 ; vcc -> R10,R11
.even
0790 _ad_convert::
0790 00D0 rcall push_gset4
0792 2497 sbiw R28,4
0794 .dbline -1
0794 .dbline 200
0794 ; }
0794 ;
0794 ; //AD转换
0794 ; void ad_convert(void)
0794 ; {
0794 .dbline 202
0794 ;
0794 ; int i=0,vcc,vdin,temp;
0794 AA24 clr R10
0796 BB24 clr R11
0798 .dbline 204
0798 ; long r;
0798 ; adinit();
0798 0EDD rcall _adinit
079A .dbline 205
079A ; vcc=vcon(1024);//获得Vcc真实电压
079A 00E0 ldi R16,0
079C 14E0 ldi R17,4
079E 20E0 ldi R18,0
07A0 30E0 ldi R19,0
07A2 E9DD rcall _vcon
07A4 5801 movw R10,R16
07A6 .dbline 206
07A6 ; vdin=vcon((long)AdcConvertDin());//获得ACD4的电压值
07A6 0CDD rcall _AdcConvertDin
07A8 2227 clr R18
07AA 3327 clr R19
07AC E4DD rcall _vcon
07AE 6801 movw R12,R16
07B0 .dbline 210
07B0 ; //热敏电阻Rf阻值的计算:(R0是测量端的电阻,是4.7k)
07B0 ; //根据Vin/R0=(Avcc-Vin)/Rf得出
07B0 ; //Rf=(Avcc-Vin)*R0/Vin
07B0 ; r=((((long)vcc-(long)vdin)*47000)/(long)vdin)/10;
07B0 1601 movw R2,R12
07B2 4424 clr R4
07B4 37FC sbrc R3,7
07B6 4094 com R4
07B8 5524 clr R5
07BA 47FC sbrc R4,7
07BC 5094 com R5
07BE 3501 movw R6,R10
07C0 8824 clr R8
07C2 77FC sbrc R7,7
07C4 8094 com R8
07C6 9924 clr R9
07C8 87FC sbrc R8,7
07CA 9094 com R9
07CC 6218 sub R6,R2
07CE 7308 sbc R7,R3
07D0 8408 sbc R8,R4
07D2 9508 sbc R9,R5
07D4 48E9 ldi R20,152
07D6 57EB ldi R21,183
07D8 60E0 ldi R22,0
07DA 70E0 ldi R23,0
07DC 9A92 st -y,R9
07DE 8A92 st -y,R8
07E0 7A92 st -y,R7
07E2 6A92 st -y,R6
07E4 8A01 movw R16,R20
07E6 9B01 movw R18,R22
07E8 00D0 rcall empy32s
07EA 1601 movw R2,R12
07EC 4424 clr R4
07EE 37FC sbrc R3,7
07F0 4094 com R4
07F2 5524 clr R5
07F4 47FC sbrc R4,7
07F6 5094 com R5
07F8 5A92 st -y,R5
07FA 4A92 st -y,R4
07FC 3A92 st -y,R3
07FE 2A92 st -y,R2
0800 00D0 rcall div32s
0802 4AE0 ldi R20,10
0804 50E0 ldi R21,0
0806 60E0 ldi R22,0
0808 70E0 ldi R23,0
080A 7A93 st -y,R23
080C 6A93 st -y,R22
080E 5A93 st -y,R21
0810 4A93 st -y,R20
0812 00D0 rcall div32s
0814 FE01 movw R30,R28
0816 0083 std z+0,R16
0818 1183 std z+1,R17
081A 2283 std z+2,R18
081C 3383 std z+3,R19
081E .dbline 211
081E ; temp=temperature(r)/10000;
081E FE01 movw R30,R28
0820 0081 ldd R16,z+0
0822 1181 ldd R17,z+1
0824 2281 ldd R18,z+2
0826 3381 ldd R19,z+3
0828 C4DD rcall _temperature
082A 40E1 ldi R20,16
082C 57E2 ldi R21,39
082E 60E0 ldi R22,0
0830 70E0 ldi R23,0
0832 7A93 st -y,R23
0834 6A93 st -y,R22
0836 5A93 st -y,R21
0838 4A93 st -y,R20
083A 00D0 rcall div32s
083C 6801 movw R12,R16
083E .dbline 215
083E ; // printf("vcc value is %d\r\n",vcc);
083E ; //printf("temp value is %d\r\n",temp);
083E ;
083E ; Tx_Buf[2]=temp;
083E C0920200 sts _Tx_Buf+2,R12
0842 .dbline 216
0842 ; Tx_Buf[3]=temp>>8;
0842 1601 movw R2,R12
0844 232C mov R2,R3
0846 3324 clr R3
0848 27FC sbrc R2,7
084A 3094 com R3
084C 20920300 sts _Tx_Buf+3,R2
0850 .dbline 217
0850 ; Tx_Buf[4]=vcc;
0850 A0920400 sts _Tx_Buf+4,R10
0854 .dbline 218
0854 ; Tx_Buf[5]=vcc>>8;
0854 1501 movw R2,R10
0856 232C mov R2,R3
0858 3324 clr R3
085A 27FC sbrc R2,7
085C 3094 com R3
085E 20920500 sts _Tx_Buf+5,R2
0862 .dbline -2
0862 .dbline 219
0862 ; }
0862 L85:
0862 2496 adiw R28,4
0864 00D0 rcall pop_gset4
0866 .dbline 0 ; func end
0866 0895 ret
0868 .dbsym r i 10 I
0868 .dbsym l r 0 L
0868 .dbsym r temp 12 I
0868 .dbsym r vdin 12 I
0868 .dbsym r vcc 10 I
0868 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\公司用\atmega8l\final\nrf905_send1\ad.c
0000 _g_aAdValue:
0000 .blkb 16
0010 .dbsym s g_aAdValue _g_aAdValue A[16:8]i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -