📄 adc0832.lis
字号:
.module adc0832.c
.area text(rom, con, rel)
0000 .dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\adc0832.c
0000 .dbfunc e read_adc _read_adc fc
0000 ; data1 -> R16
0000 ; i -> R18
.even
0000 _read_adc::
0000 .dbline -1
0000 .dbline 7
0000 ; //adc0832相关程序
0000 ; #include "adc0832.h"
0000 ;
0000 ;
0000 ;
0000 ; uchar read_adc(void)
0000 ; {
0000 .dbline 9
0000 ; uchar i,data1;
0000 ; Clr_adc_cs;//bADcs = 0;
0000 C698 cbi 0x18,6
0002 .dbline 10
0002 ; Clr_adc_clk;//bADcl=0;
0002 C598 cbi 0x18,5
0004 .dbline 12
0004 ;
0004 ; Set_adc_data;//bADda=1; //PB.4
0004 C49A sbi 0x18,4
0006 .dbline 13
0006 ; Set_adc_clk;//bADcl=1; //PB.5
0006 C59A sbi 0x18,5
0008 .dbline 14
0008 ; Clr_adc_clk;//bADcl=0;
0008 C598 cbi 0x18,5
000A .dbline 16
000A ;
000A ; Set_adc_data;//bADda=1;
000A C49A sbi 0x18,4
000C .dbline 17
000C ; Set_adc_clk;// bADcl=1;
000C C59A sbi 0x18,5
000E .dbline 18
000E ; Clr_adc_clk;//bADcl=0;
000E C598 cbi 0x18,5
0010 .dbline 19
0010 ; Clr_adc_data;//bADda=0;
0010 C498 cbi 0x18,4
0012 .dbline 21
0012 ;
0012 ; Set_adc_clk;//bADcl=1;
0012 C59A sbi 0x18,5
0014 .dbline 22
0014 ; Clr_adc_clk;//bADcl=0;
0014 C598 cbi 0x18,5
0016 .dbline 23
0016 ; Set_adc_data;//bADda=1;
0016 C49A sbi 0x18,4
0018 .dbline 25
0018 ;
0018 ; Set_adc_clk;//bADcl=1;
0018 C59A sbi 0x18,5
001A .dbline 26
001A ; Clr_adc_clk;//bADcl=0;
001A C598 cbi 0x18,5
001C .dbline 27
001C ; adc_data_in; //DDRB清零,单片机输入
001C BC98 cbi 0x17,4
001E .dbline 28
001E ; for(i=8;i>0;i--)
001E 28E0 ldi R18,8
0020 09C0 rjmp L5
0022 L2:
0022 .dbline 29
0022 ; {
0022 .dbline 30
0022 ; data1<<=1;
0022 000F lsl R16
0024 .dbline 31
0024 ; Clr_adc_clk;//bADcl=0;
0024 C598 cbi 0x18,5
0026 .dbline 32
0026 ; asm("nop"); //延时很关键1us
0026 0000 nop
0028 .dbline 33
0028 ; Set_adc_clk;//bADcl=1;
0028 C59A sbi 0x18,5
002A .dbline 34
002A ; asm("nop");
002A 0000 nop
002C .dbline 35
002C ; if(adc_read_data) data1|=0x01;
002C B49B sbis 0x16,4
002E 01C0 rjmp L6
0030 X0:
0030 .dbline 35
0030 0160 ori R16,1
0032 L6:
0032 .dbline 36
0032 ; }
0032 L3:
0032 .dbline 28
0032 2A95 dec R18
0034 L5:
0034 .dbline 28
0034 80E0 ldi R24,0
0036 8217 cp R24,R18
0038 A0F3 brlo L2
003A X1:
003A .dbline 37
003A ; Set_adc_cs;// bADcs=1;
003A C69A sbi 0x18,6
003C .dbline 38
003C ; adc_data_out;
003C BC9A sbi 0x17,4
003E .dbline 40
003E ;
003E ; return data1;
003E .dbline -2
003E L1:
003E .dbline 0 ; func end
003E 0895 ret
0040 .dbsym r data1 16 c
0040 .dbsym r i 18 c
0040 .dbend
0040 .dbfunc e returnvol _returnvol fi
0040 ; data2 -> R10
.even
0040 _returnvol::
0040 00D0 rcall push_xgsetF00C
0042 .dbline -1
0042 .dbline 45
0042 ;
0042 ; }
0042 ;
0042 ; uint returnvol(void)
0042 ; {
0042 .dbline 47
0042 ; uchar data2;
0042 ; data2=((ulong)read_adc()*493)/256;
0042 DEDF rcall _read_adc
0044 202E mov R2,R16
0046 3324 clr R3
0048 4424 clr R4
004A 5524 clr R5
004C 4DEE ldi R20,237
004E 51E0 ldi R21,1
0050 60E0 ldi R22,0
0052 70E0 ldi R23,0
0054 5A92 st -y,R5
0056 4A92 st -y,R4
0058 3A92 st -y,R3
005A 2A92 st -y,R2
005C 8A01 movw R16,R20
005E 9B01 movw R18,R22
0060 00D0 rcall empy32u
0062 88E0 ldi R24,8
0064 90E0 ldi R25,0
0066 8A93 st -y,R24
0068 00D0 rcall lsr32
006A A02E mov R10,R16
006C .dbline 49
006C ;
006C ; return data2;
006C 1127 clr R17
006E .dbline -2
006E L8:
006E .dbline 0 ; func end
006E 00C0 rjmp pop_xgsetF00C
0070 .dbsym r data2 10 c
0070 .dbend
0070 ;
0070 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -