⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 temperature.lis

📁 单片机实行温度 的测量原理的的程序,简单,明了
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .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 + -