📄 temperature.lis
字号:
.module temperature.c
.area vector(rom, abs)
.org 28
001C 67C0 rjmp _ad_handler
.area lit(rom, con, rel)
0000 _tabel::
0000 C0F9 .byte 192,249
0002 A4B0 .byte 164,176
0004 9992 .byte 153,146
0006 82F8 .byte 130,248
0008 8090 .byte 128,144
000A 8883 .byte 136,131
000C C6A1 .byte 198,161
000E 868E .byte 134,142
0010 89A3 .byte 137,163
0012 8CC8 .byte 140,200
0014 .dbfile D:\AVR调试\temperature\temperature.c
0014 .dbsym e tabel _tabel A[20:20]kc
.area text(rom, con, rel)
0000 .dbfile D:\AVR调试\temperature\temperature.c
0000 .dbfunc e delay _delay fV
0000 ; j -> R20
0000 ; i -> R22
0000 ; temp -> R16,R17
.even
0000 _delay::
0000 00D0 rcall push_gset2
0002 .dbline -1
0002 .dbline 14
0002 ; #include <io8535v.h>
0002 ; #include<macros.h>
0002 ; #define uchar unsigned char
0002 ; #define uint unsigned int
0002 ; #pragma interrupt_handler ad_handler:15
0002 ;
0002 ; #define Vref 5.0
0002 ;
0002 ; const unsigned char tabel[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x89,0xA3,0x8C,0xC8};
0002 ; uchar addata;
0002 ;
0002 ;
0002 ; void delay(uint temp)//10ms,16M晶振
0002 ; {
0002 0CC0 rjmp L3
0004 L2:
0004 .dbline 17
0004 ; uchar i,j;
0004 ; while(temp--)
0004 ; {
0004 .dbline 18
0004 ; for(j=213;j>0;j--)//1ms,58
0004 45ED ldi R20,213
0006 07C0 rjmp L8
0008 L5:
0008 .dbline 19
0008 64E9 ldi R22,148
000A 01C0 rjmp L12
000C L9:
000C .dbline 19
000C L10:
000C .dbline 19
000C 6A95 dec R22
000E L12:
000E .dbline 19
000E 2224 clr R2
0010 2616 cp R2,R22
0012 E0F3 brlo L9
0014 L6:
0014 .dbline 18
0014 4A95 dec R20
0016 L8:
0016 .dbline 18
0016 2224 clr R2
0018 2416 cp R2,R20
001A B0F3 brlo L5
001C .dbline 20
001C L3:
001C .dbline 16
001C 1801 movw R2,R16
001E 0150 subi R16,1
0020 1040 sbci R17,0
0022 2220 tst R2
0024 79F7 brne L2
0026 3320 tst R3
0028 69F7 brne L2
002A X0:
002A .dbline -2
002A L1:
002A 00D0 rcall pop_gset2
002C .dbline 0 ; func end
002C 0895 ret
002E .dbsym r j 20 c
002E .dbsym r i 22 c
002E .dbsym r temp 16 i
002E .dbend
.area lit(rom, con, rel)
0014 L14:
0014 00 .byte 0
0015 0000 .byte 0,0
.area text(rom, con, rel)
002E .dbfile D:\AVR调试\temperature\temperature.c
002E .dbfunc e LEDSCAN _LEDSCAN fV
002E ; disdata -> y+0
002E ; temp -> R20,R21
.even
002E _LEDSCAN::
002E 00D0 rcall push_gset1
0030 A801 movw R20,R16
0032 2397 sbiw R28,3
0034 .dbline -1
0034 .dbline 24
0034 ; for(i=148;i>0;i--);//1ms,53
0034 ; }
0034 ; }
0034 ;
0034 ; void LEDSCAN(temp)//显示程序
0034 ; {
0034 .dbline 25
0034 ; uchar disdata[3] ={0};
0034 80E0 ldi R24,<L14
0036 90E0 ldi R25,>L14
0038 FE01 movw R30,R28
003A 03E0 ldi R16,3
003C 10E0 ldi R17,0
003E FA93 st -y,R31
0040 EA93 st -y,R30
0042 9A93 st -y,R25
0044 8A93 st -y,R24
0046 00D0 rcall asgncblk
0048 .dbline 27
0048 ;
0048 ; disdata[0]=temp/1000;//取最高位
0048 28EE ldi R18,1000
004A 33E0 ldi R19,3
004C 8A01 movw R16,R20
004E 00D0 rcall div16s
0050 0883 std y+0,R16
0052 .dbline 28
0052 ; disdata[1]=temp%1000/100;//取最二位
0052 28EE ldi R18,1000
0054 33E0 ldi R19,3
0056 8A01 movw R16,R20
0058 00D0 rcall mod16s
005A 24E6 ldi R18,100
005C 30E0 ldi R19,0
005E 00D0 rcall div16s
0060 0983 std y+1,R16
0062 .dbline 29
0062 ; disdata[2]=temp%100/10;//取最三位
0062 24E6 ldi R18,100
0064 30E0 ldi R19,0
0066 8A01 movw R16,R20
0068 00D0 rcall mod16s
006A 2AE0 ldi R18,10
006C 30E0 ldi R19,0
006E 00D0 rcall div16s
0070 0A83 std y+2,R16
0072 .dbline 31
0072 ;
0072 ; PORTC|=0x01;//显示第一位
0072 A89A sbi 0x15,0
0074 .dbline 32
0074 ; PORTB=tabel[disdata[0]]&0x7f;
0074 80E0 ldi R24,<_tabel
0076 90E0 ldi R25,>_tabel
0078 E881 ldd R30,y+0
007A FF27 clr R31
007C E80F add R30,R24
007E F91F adc R31,R25
0080 E491 lpm R30,Z
0082 EF77 andi R30,127
0084 E8BB out 0x18,R30
0086 .dbline 33
0086 ; delay(1);
0086 01E0 ldi R16,1
0088 10E0 ldi R17,0
008A BADF rcall _delay
008C .dbline 34
008C ; PORTC&=0X00;
008C 2224 clr R2
008E 25BA out 0x15,R2
0090 .dbline 36
0090 ;
0090 ; PORTC|=0x02;//显示第二位
0090 A99A sbi 0x15,1
0092 .dbline 37
0092 ; PORTB=tabel[disdata[1]];
0092 80E0 ldi R24,<_tabel
0094 90E0 ldi R25,>_tabel
0096 E981 ldd R30,y+1
0098 FF27 clr R31
009A E80F add R30,R24
009C F91F adc R31,R25
009E E491 lpm R30,Z
00A0 E8BB out 0x18,R30
00A2 .dbline 38
00A2 ; delay(1);
00A2 01E0 ldi R16,1
00A4 10E0 ldi R17,0
00A6 ACDF rcall _delay
00A8 .dbline 39
00A8 ; PORTC&=0X00;
00A8 2224 clr R2
00AA 25BA out 0x15,R2
00AC .dbline 41
00AC ;
00AC ; PORTC|=0x04;//显示第三位
00AC AA9A sbi 0x15,2
00AE .dbline 42
00AE ; PORTB=tabel[disdata[2]];
00AE 80E0 ldi R24,<_tabel
00B0 90E0 ldi R25,>_tabel
00B2 EA81 ldd R30,y+2
00B4 FF27 clr R31
00B6 E80F add R30,R24
00B8 F91F adc R31,R25
00BA E491 lpm R30,Z
00BC E8BB out 0x18,R30
00BE .dbline 43
00BE ; delay(1);
00BE 01E0 ldi R16,1
00C0 10E0 ldi R17,0
00C2 9EDF rcall _delay
00C4 .dbline 44
00C4 ; PORTC&=0X00;
00C4 2224 clr R2
00C6 25BA out 0x15,R2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -