📄 111.lis
字号:
.module _111.c
.area text(rom, con, rel)
0000 .dbfile ..\..\..\..\PROTEU~2\5.avr\19.温度测量ds18b20\3.开搞ds18b20\111.c
0000 .dbfile D:\教程及心得\Proteus\PROTEU~2\5.avr\19.温度测量ds18b20\3.开搞ds18b20\111.c
0000 .dbfunc e delay1s _delay1s fV
0000 ; i -> R16
0000 ; j -> R18
0000 ; k -> R20
.even
0000 _delay1s::
0000 4A93 st -y,R20
0002 .dbline -1
0002 .dbline 11
0002 ; //ICC-AVR application builder : 2008/11/19 20:51:44
0002 ; // Target : M8
0002 ; // Crystal: 8.0000Mhz
0002 ;
0002 ; #include <iom8v.h>
0002 ; #include <macros.h>
0002 ; #include "mydelay.h"
0002 ; #include "ds18b20.h"
0002 ;
0002 ; void delay1s(void)
0002 ; {
0002 .dbline 13
0002 ; unsigned char i,j,k;
0002 ; for (i=100;i>0;i--)
0002 04E6 ldi R16,100
0004 0DC0 rjmp L5
0006 L2:
0006 .dbline 14
0006 ; for (j=100;j>0;j--)
0006 24E6 ldi R18,100
0008 07C0 rjmp L9
000A L6:
000A .dbline 15
000A ; for (k=20;k>0;k--)
000A 44E1 ldi R20,20
000C 01C0 rjmp L13
000E L10:
000E .dbline 16
000E ; ;
000E L11:
000E .dbline 15
000E 4A95 dec R20
0010 L13:
0010 .dbline 15
0010 80E0 ldi R24,0
0012 8417 cp R24,R20
0014 E0F3 brlo L10
0016 X0:
0016 L7:
0016 .dbline 14
0016 2A95 dec R18
0018 L9:
0018 .dbline 14
0018 80E0 ldi R24,0
001A 8217 cp R24,R18
001C B0F3 brlo L6
001E X1:
001E L3:
001E .dbline 13
001E 0A95 dec R16
0020 L5:
0020 .dbline 13
0020 80E0 ldi R24,0
0022 8017 cp R24,R16
0024 80F3 brlo L2
0026 X2:
0026 .dbline -2
0026 L1:
0026 .dbline 0 ; func end
0026 4991 ld R20,y+
0028 0895 ret
002A .dbsym r i 16 c
002A .dbsym r j 18 c
002A .dbsym r k 20 c
002A .dbend
002A .dbfunc e port_init _port_init fV
.even
002A _port_init::
002A .dbline -1
002A .dbline 19
002A ; }
002A ; void port_init(void)
002A ; {
002A .dbline 20
002A ; PORTB = 0x00;
002A 2224 clr R2
002C 28BA out 0x18,R2
002E .dbline 21
002E ; DDRB = 0xff;
002E 8FEF ldi R24,255
0030 87BB out 0x17,R24
0032 .dbline 22
0032 ; PORTC = 0x00; //m103 output only
0032 25BA out 0x15,R2
0034 .dbline 23
0034 ; DDRC = 0x00;
0034 24BA out 0x14,R2
0036 .dbline 24
0036 ; PORTD = 0x00;
0036 22BA out 0x12,R2
0038 .dbline 25
0038 ; DDRD = 0xff;
0038 81BB out 0x11,R24
003A .dbline -2
003A L14:
003A .dbline 0 ; func end
003A 0895 ret
003C .dbend
003C .dbfunc e init_devices _init_devices fV
.even
003C _init_devices::
003C .dbline -1
003C .dbline 30
003C ; }
003C ;
003C ; //call this routine to initialize all peripherals
003C ; void init_devices(void)
003C ; {
003C .dbline 32
003C ; //stop errant interrupts until set up
003C ; CLI(); //disable all interrupts
003C F894 cli
003E .dbline 33
003E ; port_init();
003E F5DF rcall _port_init
0040 .dbline 35
0040 ;
0040 ; MCUCR = 0x00;
0040 2224 clr R2
0042 25BE out 0x35,R2
0044 .dbline 36
0044 ; GICR = 0x00;
0044 2BBE out 0x3b,R2
0046 .dbline 37
0046 ; TIMSK = 0x00; //timer interrupt sources
0046 29BE out 0x39,R2
0048 .dbline 38
0048 ; SEI(); //re-enable interrupts
0048 7894 sei
004A .dbline -2
004A L15:
004A .dbline 0 ; func end
004A 0895 ret
004C .dbend
004C .dbfunc e main _main fV
004C ; dataH -> R10
004C ; dataL -> R12
004C ; data -> R10,R11
.even
004C _main::
004C .dbline -1
004C .dbline 43
004C ; //all peripherals are now initialized
004C ; }
004C ;
004C ; void main(void)
004C ; {
004C .dbline 46
004C ; unsigned int data;
004C ; unsigned char dataL,dataH;
004C ; init_devices();
004C F7DF rcall _init_devices
004E 07C0 rjmp L18
0050 L17:
0050 .dbline 48
0050 ; while(1)
0050 ; {
0050 .dbline 49
0050 ; convert();
0050 00D0 rcall _convert
0052 .dbline 50
0052 ; data=rdtemp();
0052 00D0 rcall _rdtemp
0054 5801 movw R10,R16
0056 .dbline 51
0056 ; dataL=data;
0056 CA2C mov R12,R10
0058 .dbline 52
0058 ; dataH=data>>8;
0058 AB2C mov R10,R11
005A BB24 clr R11
005C .dbline 53
005C ; delay1s();
005C D1DF rcall _delay1s
005E .dbline 54
005E ; }
005E L18:
005E .dbline 47
005E F8CF rjmp L17
0060 X3:
0060 .dbline -2
0060 L16:
0060 .dbline 0 ; func end
0060 0895 ret
0062 .dbsym r dataH 10 c
0062 .dbsym r dataL 12 c
0062 .dbsym r data 10 i
0062 .dbend
0062 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -