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

📄 thermometer_icc.lis

📁 at9535下 同步串口spi的c语言编程 at9535下 同步串口spi的c语言编程
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module Thermometer_ICC.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_ICC.c
 000A                   .dbsym e Table _Table A[10:10]c
                        .area text(rom, con, rel)
 0000                   .dbfile J:\AVRpractice\BOOK\SPI\Thermometer_ICC.c
 0000                   .dbfunc e DelayMs _DelayMs fV
 0000           ;              j -> R20,R21
 0000           ;              i -> R16,R17
                        .even
 0000           _DelayMs::
 0000 00D0              rcall push_gset1
 0002                   .dbline -1
 0002                   .dbline 12
 0002           ; #include <IO8535V.h>
 0002           ; #include <MACROS.H>
 0002           ; #define uchar unsigned char
 0002           ; #define uint  unsigned int
 0002           ; uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
 0002           ; //SPI INTERFACE
 0002           ; //sbit CE=PB^4;   置1:|0x10 ,置0:&0xef
 0002           ; //sbit SDI=PB^5;  置1:|0x20 ,置0:&0xdf 
 0002           ; //sbit SDO=PB^6;  置1:|0x40 ,置0:&0xbf
 0002           ; //sbit SCLK=PB^7; 置1:|0x80 ,置0:&0x7f
 0002           ; void DelayMs(uint i)
 0002           ; {uint j;
 0002                   .dbline 13
 0002           ;  for(;i!=0;i--)
 0002 0AC0              rjmp L5
 0004           L2:
 0004                   .dbline 14
 0004                   .dbline 14
 0004 40ED              ldi R20,2000
 0006 57E0              ldi R21,7
 0008 02C0              rjmp L9
 000A           L6:
 000A                   .dbline 14
 000A                   .dbline 14
 000A                   .dbline 14
 000A           L7:
 000A                   .dbline 14
 000A 4150              subi R20,1
 000C 5040              sbci R21,0
 000E           L9:
 000E                   .dbline 14
 000E 4030              cpi R20,0
 0010 4507              cpc R20,R21
 0012 D9F7              brne L6
 0014           X0:
 0014                   .dbline 14
 0014           L3:
 0014                   .dbline 13
 0014 0150              subi R16,1
 0016 1040              sbci R17,0
 0018           L5:
 0018                   .dbline 13
 0018 0030              cpi R16,0
 001A 0107              cpc R16,R17
 001C 99F7              brne L2
 001E           X1:
 001E                   .dbline -2
 001E                   .dbline 15
 001E           ;    {for(j=2000;j!=0;j--) {;}}
 001E           ; }
 001E           L1:
 001E 00D0              rcall pop_gset1
 0020                   .dbline 0 ; func end
 0020 0895              ret
 0022                   .dbsym r j 20 i
 0022                   .dbsym r i 16 i
 0022                   .dbend
 0022                   .dbfunc e DelayNOP _DelayNOP fV
 0022           ;              i -> R16
                        .even
 0022           _DelayNOP::
 0022                   .dbline -1
 0022                   .dbline 18
 0022           ; 
 0022           ; void DelayNOP(uchar i)
 0022           ; {for(;i!=0;i--)  
 0022                   .dbline 18
 0022 02C0              rjmp L14
 0024           L11:
 0024                   .dbline 19
 0024                   .dbline 19
 0024 0000              nop
 0026                   .dbline 19
 0026           L12:
 0026                   .dbline 18
 0026 0A95              dec R16
 0028           L14:
 0028                   .dbline 18
 0028 0023              tst R16
 002A E1F7              brne L11
 002C                   .dbline -2
 002C                   .dbline 20
 002C           ;     { NOP();}
 002C           ; } 
 002C           L10:
 002C                   .dbline 0 ; func end
 002C 0895              ret
 002E                   .dbsym r i 16 c
 002E                   .dbend
 002E                   .dbfunc e Display _Display fV
 002E           ;            sel -> R20
 002E           ;              i -> R22
 002E           ;              p -> R10,R11
                        .even
 002E           _Display::
 002E 00D0              rcall push_gset3
 0030 A02E              mov R10,R16
 0032 B12E              mov R11,R17
 0034                   .dbline -1
 0034                   .dbline 23
 0034           ; 
 0034           ; void Display(uchar *p)
 0034           ; {uchar i,sel=0x01;
 0034                   .dbline 23
 0034 41E0              ldi R20,1
 0036                   .dbline 24
 0036           ;  for(i=0;i<4;i++)
 0036 6627              clr R22
 0038 17C0              rjmp L19
 003A           L16:
 003A                   .dbline 25
 003A                   .dbline 25
 003A 4BBB              out 0x1b,R20
 003C                   .dbline 26
 003C E62F              mov R30,R22
 003E FF27              clr R31
 0040 EA0D              add R30,R10
 0042 FB1D              adc R31,R11
 0044 E081              ldd R30,z+0
 0046 FF27              clr R31
 0048 80E0              ldi R24,<_Table
 004A 90E0              ldi R25,>_Table
 004C E80F              add R30,R24
 004E F91F              adc R31,R25
 0050 2080              ldd R2,z+0
 0052 3324              clr R3
 0054 8FEF              ldi R24,255
 0056 90E0              ldi R25,0
 0058 8219              sub R24,R2
 005A 9309              sbc R25,R3
 005C 85BB              out 0x15,R24
 005E                   .dbline 27
 005E 02E0              ldi R16,2
 0060 10E0              ldi R17,0
 0062 CEDF              rcall _DelayMs
 0064                   .dbline 28
 0064 440F              lsl R20
 0066                   .dbline 29
 0066           L17:
 0066                   .dbline 24
 0066 6395              inc R22
 0068           L19:
 0068                   .dbline 24
 0068 6430              cpi R22,4
 006A 38F3              brlo L16
 006C                   .dbline -2
 006C                   .dbline 30
 006C           ;   {PORTA=sel;
 006C           ;    PORTC=0xff-Table[p[i]];
 006C           ;    DelayMs(2);
 006C           ;    sel=sel<<1;
 006C           ;   }
 006C           ; }
 006C           L15:
 006C 00D0              rcall pop_gset3
 006E                   .dbline 0 ; func end
 006E 0895              ret
 0070                   .dbsym r sel 20 c
 0070                   .dbsym r i 22 c
 0070                   .dbsym r p 10 pc
 0070                   .dbend
 0070                   .dbfunc e Set_CE _Set_CE fV
 0070           ;              i -> R16
                        .even
 0070           _Set_CE::
 0070                   .dbline -1
 0070                   .dbline 33
 0070           ; 
 0070           ; void Set_CE(uchar i)
 0070           ; {if(i==1) PORTB=PORTB|0x10;
 0070                   .dbline 33
 0070 0130              cpi R16,1
 0072 09F4              brne L21
 0074                   .dbline 33
 0074 C49A              sbi 0x18,4
 0076           L21:
 0076                   .dbline 34
 0076 0023              tst R16
 0078 19F4              brne L23
 007A                   .dbline 34
 007A 88B3              in R24,0x18
 007C 8F7E              andi R24,239
 007E 88BB              out 0x18,R24
 0080           L23:
 0080                   .dbline -2
 0080                   .dbline 34
 0080           ;  if(i==0) PORTB=PORTB&0xef;}
 0080           L20:
 0080                   .dbline 0 ; func end
 0080 0895              ret
 0082                   .dbsym r i 16 c
 0082                   .dbend
 0082                   .dbfunc e Set_SDI _Set_SDI fV
 0082           ;              i -> R16
                        .even
 0082           _Set_SDI::
 0082                   .dbline -1
 0082                   .dbline 37
 0082           ;  
 0082           ; void Set_SDI(uchar i)
 0082           ; {if(i==1) PORTB=PORTB|0x20;
 0082                   .dbline 37
 0082 0130              cpi R16,1
 0084 09F4              brne L26
 0086                   .dbline 37
 0086 C59A              sbi 0x18,5
 0088           L26:
 0088                   .dbline 38
 0088 0023              tst R16
 008A 19F4              brne L28
 008C                   .dbline 38
 008C 88B3              in R24,0x18
 008E 8F7D              andi R24,223
 0090 88BB              out 0x18,R24
 0092           L28:
 0092                   .dbline -2
 0092                   .dbline 38
 0092           ;  if(i==0) PORTB=PORTB&0xdf;}
 0092           L25:
 0092                   .dbline 0 ; func end
 0092 0895              ret
 0094                   .dbsym r i 16 c
 0094                   .dbend
 0094                   .dbfunc e Set_SCLK _Set_SCLK fV
 0094           ;              i -> R16
                        .even
 0094           _Set_SCLK::
 0094                   .dbline -1
 0094                   .dbline 41
 0094           ;  
 0094           ; void Set_SCLK(uchar i)
 0094           ; {if(i==1) PORTB=PORTB|0x80;
 0094                   .dbline 41
 0094 0130              cpi R16,1
 0096 09F4              brne L31
 0098                   .dbline 41
 0098 C79A              sbi 0x18,7
 009A           L31:
 009A                   .dbline 42
 009A 0023              tst R16
 009C 19F4              brne L33
 009E                   .dbline 42
 009E 88B3              in R24,0x18
 00A0 8F77              andi R24,127
 00A2 88BB              out 0x18,R24
 00A4           L33:
 00A4                   .dbline -2
 00A4                   .dbline 42
 00A4           ;  if(i==0) PORTB=PORTB&0x7f;}
 00A4           L30:
 00A4                   .dbline 0 ; func end
 00A4 0895              ret
 00A6                   .dbsym r i 16 c
 00A6                   .dbend
 00A6                   .dbfunc e SPI_Init _SPI_Init fV
                        .even
 00A6           _SPI_Init::
 00A6                   .dbline -1
 00A6                   .dbline 45
 00A6           ; 
 00A6           ; void SPI_Init(void)
 00A6           ; {Set_CE(0);//CE=0;//Disable Chip_Select
 00A6                   .dbline 45
 00A6 0027              clr R16
 00A8 E3DF              rcall _Set_CE
 00AA                   .dbline 46
 00AA           ;  Set_SCLK(1);//SCLK=1;//Clock Polarity(CPOL)=1
 00AA 01E0              ldi R16,1
 00AC                   .dbline -2
 00AC                   .dbline 47
 00AC           ; }
 00AC           L35:
 00AC                   .dbline 0 ; func end
 00AC F3CF              rjmp _Set_SCLK
 00AE                   .dbend
 00AE                   .dbfunc e SPI_Process _SPI_Process fV
 00AE           ;              i -> R22
 00AE           ;             p2 -> R20,R21
 00AE           ;             p1 -> R22,R23
                        .even
 00AE           _SPI_Process::
 00AE 00D0              rcall push_gset2
 00B0 422F              mov R20,R18
 00B2 532F              mov R21,R19
 00B4 602F              mov R22,R16
 00B6 712F              mov R23,R17
 00B8                   .dbline -1
 00B8                   .dbline 50
 00B8           ; 
 00B8           ; void SPI_Process(uchar *p1,uchar *p2)
 00B8           ; {uchar i;
 00B8                   .dbline 51
 00B8           ;  p2[0]=p1[0]/100;
 00B8 14E6              ldi R17,100
 00BA E62F              mov R30,R22
 00BC F72F              mov R31,R23
 00BE 0081              ldd R16,z+0
 00C0 00D0              rcall div8u
 00C2 E42F              mov R30,R20
 00C4 F52F              mov R31,R21
 00C6 0083              std z+0,R16
 00C8                   .dbline 52
 00C8           ;  i=p1[0]%100;
 00C8 14E6              ldi R17,100
 00CA E62F              mov R30,R22
 00CC F72F              mov R31,R23
 00CE 0081              ldd R16,z+0
 00D0 00D0              rcall mod8u
 00D2 602F              mov R22,R16
 00D4                   .dbline 53
 00D4           ;  p2[1]=i/10;
 00D4 1AE0              ldi R17,10
 00D6 00D0              rcall div8u
 00D8 E42F              mov R30,R20
 00DA F52F              mov R31,R21
 00DC 0183              std z+1,R16
 00DE                   .dbline 54
 00DE           ;  p2[2]=i-p2[1]*10;
 00DE E42F              mov R30,R20
 00E0 F52F              mov R31,R21
 00E2 1181              ldd R17,z+1
 00E4 0AE0              ldi R16,10
 00E6 00D0              rcall mpy8s
 00E8 262E              mov R2,R22
 00EA 201A              sub R2,R16
 00EC E42F              mov R30,R20
 00EE F52F              mov R31,R21
 00F0 2282              std z+2,R2
 00F2                   .dbline 55
 00F2           ;  p2[3]=0;

⌨️ 快捷键说明

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