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

📄 thermometer.lis

📁 AVRkaifashili.rar
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module Thermometer.c
                        .area data(ram, con, rel)
 0000           _Table::
 0000                   .blkb 2
                        .area idata
 0000 3F06              .byte 63,6
                        .area data(ram, con, rel)
 0002                   .blkb 2
                        .area idata
 0002 5B4F              .byte 91,'O
                        .area data(ram, con, rel)
 0004                   .blkb 2
                        .area idata
 0004 666D              .byte 'f,'m
                        .area data(ram, con, rel)
 0006                   .blkb 2
                        .area idata
 0006 7D07              .byte 125,7
                        .area data(ram, con, rel)
 0008                   .blkb 2
                        .area idata
 0008 7F6F              .byte 127,'o
                        .area data(ram, con, rel)
 000A                   .dbfile J:\AVRpractice\BOOK\SPI\Thermometer.c
 000A                   .dbsym e Table _Table A[10:10]c
 000A           _Data::
 000A                   .blkb 2
                        .area idata
 000A 0000              .byte 0,0
                        .area data(ram, con, rel)
 000C                   .dbfile J:\AVRpractice\BOOK\SPI\Thermometer.c
 000C                   .blkb 2
                        .area idata
 000C 0000              .byte 0,0
                        .area data(ram, con, rel)
 000E                   .dbfile J:\AVRpractice\BOOK\SPI\Thermometer.c
 000E                   .dbsym e Data _Data A[4:4]c
 000E           _Temp::
 000E                   .blkb 1
                        .area idata
 000E 00                .byte 0
                        .area data(ram, con, rel)
 000F                   .dbfile J:\AVRpractice\BOOK\SPI\Thermometer.c
 000F                   .dbsym e Temp _Temp c
                        .area text(rom, con, rel)
 0000                   .dbfile J:\AVRpractice\BOOK\SPI\Thermometer.c
 0000                   .dbfunc e DelayMs _DelayMs fV
 0000           ;              j -> R20
 0000           ;              i -> R16,R17
                        .even
 0000           _DelayMs::
 0000 00D0              rcall push_gset1
 0002                   .dbline -1
 0002                   .dbline 15
 0002           ; #include <io8535v.h>
 0002           ; #include <macros.h>
 0002           ; #define uchar unsigned char
 0002           ; #define uint  unsigned int
 0002           ; //SPI-AVR interface
 0002           ; //sbit CE=PB^4;    0001 0000  0x10  0xef
 0002           ; //sbit SCLK=PB^7;  1000 0000  0x80  0x7f
 0002           ; //sbit SDO=PB^6;   0100 0000  0x40  0xbf
 0002           ; //sbit SDI=PB^5;   0010 0000  0x20  0xdf
 0002           ; uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
 0002           ; uchar Data[4]={0,0,0,0};
 0002           ; uchar Temp=0;
 0002           ; 
 0002           ; void DelayMs(uint i)  
 0002           ; {uchar j;
 0002                   .dbline 16
 0002           ;  for(;i!=0;i--)
 0002 07C0              rjmp L5
 0004           L2:
 0004                   .dbline 17
 0004                   .dbline 17
 0004 44E6              ldi R20,100
 0006 01C0              rjmp L9
 0008           L6:
 0008                   .dbline 17
 0008                   .dbline 17
 0008                   .dbline 17
 0008           L7:
 0008                   .dbline 17
 0008 4A95              dec R20
 000A           L9:
 000A                   .dbline 17
 000A 4423              tst R20
 000C E9F7              brne L6
 000E                   .dbline 17
 000E           L3:
 000E                   .dbline 16
 000E 0150              subi R16,1
 0010 1040              sbci R17,0
 0012           L5:
 0012                   .dbline 16
 0012 0030              cpi R16,0
 0014 0107              cpc R16,R17
 0016 B1F7              brne L2
 0018           X0:
 0018                   .dbline -2
 0018                   .dbline 18
 0018           ;   {for(j=100;j!=0;j--) {;}}
 0018           ; }
 0018           L1:
 0018 00D0              rcall pop_gset1
 001A                   .dbline 0 ; func end
 001A 0895              ret
 001C                   .dbsym r j 20 c
 001C                   .dbsym r i 16 i
 001C                   .dbend
 001C                   .dbfunc e Display _Display fV
 001C           ;            sel -> R20
 001C           ;              i -> R22
 001C           ;              p -> R10,R11
                        .even
 001C           _Display::
 001C 00D0              rcall push_gset3
 001E A02E              mov R10,R16
 0020 B12E              mov R11,R17
 0022                   .dbline -1
 0022                   .dbline 21
 0022           ; 
 0022           ; void Display(uchar *p)
 0022           ; {uchar i,sel=0x01;
 0022                   .dbline 21
 0022 41E0              ldi R20,1
 0024                   .dbline 22
 0024           ;  for(i=0;i<4;i++)
 0024 6627              clr R22
 0026 17C0              rjmp L14
 0028           L11:
 0028                   .dbline 23
 0028                   .dbline 23
 0028 4BBB              out 0x1b,R20
 002A                   .dbline 24
 002A E62F              mov R30,R22
 002C FF27              clr R31
 002E EA0D              add R30,R10
 0030 FB1D              adc R31,R11
 0032 E081              ldd R30,z+0
 0034 FF27              clr R31
 0036 80E0              ldi R24,<_Table
 0038 90E0              ldi R25,>_Table
 003A E80F              add R30,R24
 003C F91F              adc R31,R25
 003E 2080              ldd R2,z+0
 0040 3324              clr R3
 0042 8FEF              ldi R24,255
 0044 90E0              ldi R25,0
 0046 8219              sub R24,R2
 0048 9309              sbc R25,R3
 004A 85BB              out 0x15,R24
 004C                   .dbline 25
 004C 04E1              ldi R16,20
 004E 10E0              ldi R17,0
 0050 D7DF              rcall _DelayMs
 0052                   .dbline 26
 0052 440F              lsl R20
 0054                   .dbline 27
 0054           L12:
 0054                   .dbline 22
 0054 6395              inc R22
 0056           L14:
 0056                   .dbline 22
 0056 6430              cpi R22,4
 0058 38F3              brlo L11
 005A                   .dbline -2
 005A                   .dbline 28
 005A           ;   {PORTA=sel;
 005A           ;    PORTC=0xff-Table[p[i]];
 005A           ;    DelayMs(20);
 005A           ;    sel=sel<<1;
 005A           ;   }
 005A           ; }
 005A           L10:
 005A 00D0              rcall pop_gset3
 005C                   .dbline 0 ; func end
 005C 0895              ret
 005E                   .dbsym r sel 20 c
 005E                   .dbsym r i 22 c
 005E                   .dbsym r p 10 pc
 005E                   .dbend
 005E                   .dbfunc e SPI_Init _SPI_Init fV
                        .even
 005E           _SPI_Init::
 005E                   .dbline -1
 005E                   .dbline 31
 005E           ; 
 005E           ; void SPI_Init(void)
 005E           ; {//CE=0;//Disable Chip_Select
 005E                   .dbline 32
 005E           ;  PORTB=PORTB&0xef;
 005E 88B3              in R24,0x18
 0060 8F7E              andi R24,239
 0062 88BB              out 0x18,R24
 0064                   .dbline 34
 0064           ;  //SCLK=1;//Clock Polarity(CPOL)=1
 0064           ;  PORTB=PORTB|0x80;
 0064 C79A              sbi 0x18,7
 0066                   .dbline -2
 0066                   .dbline 35
 0066           ; }
 0066           L15:
 0066                   .dbline 0 ; func end
 0066 0895              ret
 0068                   .dbend
 0068                   .dbfunc e SPI_Process _SPI_Process fV
 0068           ;              i -> R22
 0068           ;             p2 -> R20,R21
 0068           ;             p1 -> R10
                        .even
 0068           _SPI_Process::
 0068 00D0              rcall push_gset3
 006A 422F              mov R20,R18
 006C 532F              mov R21,R19
 006E A02E              mov R10,R16
 0070                   .dbline -1
 0070                   .dbline 38
 0070           ; 
 0070           ; void SPI_Process(uchar p1,uchar *p2)
 0070           ; {uchar i;
 0070                   .dbline 39
 0070           ;  i=p1;
 0070 6A2D              mov R22,R10
 0072                   .dbline 40
 0072           ;  p2[0]=0;
 0072 2224              clr R2
 0074 E42F              mov R30,R20
 0076 F52F              mov R31,R21
 0078 2082              std z+0,R2
 007A                   .dbline 41
 007A           ;  p2[1]=i/100;
 007A 14E6              ldi R17,100
 007C 062F              mov R16,R22
 007E 00D0              rcall div8u
 0080 E42F              mov R30,R20
 0082 F52F              mov R31,R21
 0084 0183              std z+1,R16
 0086                   .dbline 42
 0086           ;  p2[2]=(i-i/100*p2[1])/10;
 0086 14E6              ldi R17,100
 0088 062F              mov R16,R22
 008A 00D0              rcall div8u
 008C E42F              mov R30,R20
 008E F52F              mov R31,R21
 0090 1181              ldd R17,z+1
 0092 00D0              rcall mpy8s
 0094 202E              mov R2,R16
 0096 062F              mov R16,R22
 0098 0219              sub R16,R2
 009A 1AE0              ldi R17,10
 009C 00D0              rcall div8u
 009E E42F              mov R30,R20
 00A0 F52F              mov R31,R21
 00A2 0283              std z+2,R16
 00A4                   .dbline 43
 00A4           ;  p2[3]=i-p2[1]*100-p2[2]*10;
 00A4 E42F              mov R30,R20
 00A6 F52F              mov R31,R21
 00A8 1181              ldd R17,z+1
 00AA 04E6              ldi R16,100
 00AC 00D0              rcall mpy8s
 00AE 262E              mov R2,R22
 00B0 201A              sub R2,R16
 00B2 E42F              mov R30,R20
 00B4 F52F              mov R31,R21
 00B6 1281              ldd R17,z+2
 00B8 0AE0              ldi R16,10
 00BA 00D0              rcall mpy8s
 00BC 201A              sub R2,R16
 00BE E42F              mov R30,R20
 00C0 F52F              mov R31,R21
 00C2 2382              std z+3,R2
 00C4                   .dbline -2
 00C4                   .dbline 44
 00C4           ; }
 00C4           L16:
 00C4 00D0              rcall pop_gset3
 00C6                   .dbline 0 ; func end
 00C6 0895              ret
 00C8                   .dbsym r i 22 c
 00C8                   .dbsym r p2 20 pc
 00C8                   .dbsym r p1 10 c
 00C8                   .dbend
 00C8                   .dbfunc e SPI_Write1Byte _SPI_Write1Byte fV
 00C8           ;              i -> R20
 00C8           ;           Data -> R22
 00C8           ;        Address -> R10
                        .even
 00C8           _SPI_Write1Byte::
 00C8 00D0              rcall push_gset3
 00CA 622F              mov R22,R18
 00CC A02E              mov R10,R16
 00CE                   .dbline -1
 00CE                   .dbline 47
 00CE           ; 
 00CE           ; void SPI_Write1Byte(uchar Address,uchar Data)
 00CE           ; {uchar i;
 00CE                   .dbline 48
 00CE           ;  PORTB=PORTB&0xdf;//SDI=0;
 00CE 88B3              in R24,0x18
 00D0 8F7D              andi R24,223
 00D2 88BB              out 0x18,R24
 00D4                   .dbline 49

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -