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

📄 spi.lis

📁 AVRkaifashili.rar
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00A2 F52F              mov R31,R21
 00A4 1181              ldd R17,z+1
 00A6 04E6              ldi R16,100
 00A8 00D0              rcall mpy8s
 00AA 262E              mov R2,R22
 00AC 201A              sub R2,R16
 00AE E42F              mov R30,R20
 00B0 F52F              mov R31,R21
 00B2 1281              ldd R17,z+2
 00B4 0AE0              ldi R16,10
 00B6 00D0              rcall mpy8s
 00B8 201A              sub R2,R16
 00BA E42F              mov R30,R20
 00BC F52F              mov R31,R21
 00BE 2382              std z+3,R2
 00C0                   .dbline -2
 00C0                   .dbline 35
 00C0           ; }
 00C0           L20:
 00C0 00D0              rcall pop_gset2
 00C2                   .dbline 0 ; func end
 00C2 0895              ret
 00C4                   .dbsym r i 22 c
 00C4                   .dbsym r p 20 pc
 00C4                   .dbend
 00C4                   .dbfunc e Write_Byte _Write_Byte fV
 00C4           ;          clear -> R20
 00C4           ;           Data -> R18
 00C4           ;        Address -> R16
                        .even
 00C4           _Write_Byte::
 00C4 00D0              rcall push_gset1
 00C6                   .dbline -1
 00C6                   .dbline 38
 00C6           ; 
 00C6           ; void Write_Byte(uchar Address,uchar Data)
 00C6           ; {uchar clear;
 00C6                   .dbline 39
 00C6           ;  PORTB=PORTB|0x10; //使能SPI器件
 00C6 C49A              sbi 0x18,4
 00C8                   .dbline 40
 00C8           ;  SPDR=Address;
 00C8 0FB9              out 0xf,R16
 00CA           L22:
 00CA                   .dbline 41
 00CA                   .dbline 41
 00CA                   .dbline 41
 00CA           L23:
 00CA                   .dbline 41
 00CA           ;  while(!(SPSR&0x80)) {;}
 00CA 779B              sbis 0xe,7
 00CC FECF              rjmp L22
 00CE                   .dbline 42
 00CE           ;  clear=SPSR;
 00CE 4EB1              in R20,0xe
 00D0                   .dbline 43
 00D0           ;  clear=SPDR;
 00D0 4FB1              in R20,0xf
 00D2                   .dbline 44
 00D2           ;  SPDR=Data;
 00D2 2FB9              out 0xf,R18
 00D4           L25:
 00D4                   .dbline 45
 00D4                   .dbline 45
 00D4                   .dbline 45
 00D4           L26:
 00D4                   .dbline 45
 00D4           ;  while(!(SPSR&0x80)) {;}
 00D4 779B              sbis 0xe,7
 00D6 FECF              rjmp L25
 00D8                   .dbline 46
 00D8           ;  clear=SPSR;
 00D8 4EB1              in R20,0xe
 00DA                   .dbline 47
 00DA           ;  clear=SPDR;
 00DA 4FB1              in R20,0xf
 00DC                   .dbline 48
 00DC           ;  PORTB=PORTB&0xef;
 00DC 88B3              in R24,0x18
 00DE 8F7E              andi R24,239
 00E0 88BB              out 0x18,R24
 00E2                   .dbline -2
 00E2                   .dbline 49
 00E2           ; }
 00E2           L21:
 00E2 00D0              rcall pop_gset1
 00E4                   .dbline 0 ; func end
 00E4 0895              ret
 00E6                   .dbsym r clear 20 c
 00E6                   .dbsym r Data 18 c
 00E6                   .dbsym r Address 16 c
 00E6                   .dbend
 00E6                   .dbfunc e Read_Byte _Read_Byte fc
 00E6           ;           Data -> R20
 00E6           ;          clear -> R22
 00E6           ;        Address -> R16
                        .even
 00E6           _Read_Byte::
 00E6 00D0              rcall push_gset2
 00E8                   .dbline -1
 00E8                   .dbline 52
 00E8           ;  
 00E8           ; uchar Read_Byte(uchar Address)
 00E8           ; {uchar clear;
 00E8                   .dbline 54
 00E8           ;  uchar Data;
 00E8           ;  PORTB=PORTB|0x10;
 00E8 C49A              sbi 0x18,4
 00EA                   .dbline 55
 00EA           ;  SPDR=Address;
 00EA 0FB9              out 0xf,R16
 00EC           L29:
 00EC                   .dbline 56
 00EC                   .dbline 56
 00EC                   .dbline 56
 00EC           L30:
 00EC                   .dbline 56
 00EC           ;  while(!(SPSR&0x80)) {;}
 00EC 779B              sbis 0xe,7
 00EE FECF              rjmp L29
 00F0                   .dbline 57
 00F0           ;  clear=SPSR;
 00F0 6EB1              in R22,0xe
 00F2                   .dbline 58
 00F2           ;  clear=SPDR;
 00F2 6FB1              in R22,0xf
 00F4                   .dbline 59
 00F4           ;  SPDR=Address;//发空数据
 00F4 0FB9              out 0xf,R16
 00F6           L32:
 00F6                   .dbline 60
 00F6                   .dbline 60
 00F6                   .dbline 60
 00F6           L33:
 00F6                   .dbline 60
 00F6           ;  while(!(SPSR&0x80)) {;}
 00F6 779B              sbis 0xe,7
 00F8 FECF              rjmp L32
 00FA                   .dbline 61
 00FA           ;  clear=SPSR;
 00FA 6EB1              in R22,0xe
 00FC                   .dbline 62
 00FC           ;  Data=SPDR;
 00FC 4FB1              in R20,0xf
 00FE                   .dbline 63
 00FE           ;  PORTB=PORTB&0xef;
 00FE 88B3              in R24,0x18
 0100 8F7E              andi R24,239
 0102 88BB              out 0x18,R24
 0104                   .dbline 64
 0104           ;  return(Data);
 0104 042F              mov R16,R20
 0106                   .dbline -2
 0106           L28:
 0106 00D0              rcall pop_gset2
 0108                   .dbline 0 ; func end
 0108 0895              ret
 010A                   .dbsym r Data 20 c
 010A                   .dbsym r clear 22 c
 010A                   .dbsym r Address 16 c
 010A                   .dbend
 010A                   .dbfunc e main _main fV
 010A           ;          value -> R20
                        .even
 010A           _main::
 010A                   .dbline -1
 010A                   .dbline 68
 010A           ; }
 010A           ; 
 010A           ; void main(void)
 010A           ; {uchar value;
 010A                   .dbline 69
 010A           ;  DDRA=0xff;
 010A 8FEF              ldi R24,255
 010C 8ABB              out 0x1a,R24
 010E                   .dbline 70
 010E           ;  DDRC=0xff;
 010E 84BB              out 0x14,R24
 0110                   .dbline 71
 0110           ;  DDRB=0xbf;
 0110 8FEB              ldi R24,191
 0112 87BB              out 0x17,R24
 0114                   .dbline 72
 0114           ;  PORTA=0xff;
 0114 8FEF              ldi R24,255
 0116 8BBB              out 0x1b,R24
 0118                   .dbline 73
 0118           ;  PORTC=0x00;
 0118 2224              clr R2
 011A 25BA              out 0x15,R2
 011C                   .dbline 74
 011C           ;  DelayMs(3000);
 011C 08EB              ldi R16,3000
 011E 1BE0              ldi R17,11
 0120 6FDF              rcall _DelayMs
 0122                   .dbline 75
 0122           ;  PORTC=0xff;
 0122 8FEF              ldi R24,255
 0124 85BB              out 0x15,R24
 0126                   .dbline 76
 0126           ;  SPCR=0x5c;//0101 1100
 0126 8CE5              ldi R24,92
 0128 8DB9              out 0xd,R24
 012A                   .dbline 77
 012A           ;  Write_Byte(0x80,0xf0);//8位,自由转换模式
 012A 20EF              ldi R18,240
 012C 00E8              ldi R16,128
 012E CADF              rcall _Write_Byte
 0130 0CC0              rjmp L37
 0132           L36:
 0132                   .dbline 79
 0132                   .dbline 79
 0132 01E0              ldi R16,1
 0134 D8DF              rcall _Read_Byte
 0136                   .dbline 80
 0136 02E0              ldi R16,2
 0138 D6DF              rcall _Read_Byte
 013A 402F              mov R20,R16
 013C                   .dbline 81
 013C 242F              mov R18,R20
 013E 00E0              ldi R16,<_Data
 0140 10E0              ldi R17,>_Data
 0142 93DF              rcall _Convert
 0144                   .dbline 82
 0144 00E0              ldi R16,<_Data
 0146 10E0              ldi R17,>_Data
 0148 69DF              rcall _Display
 014A                   .dbline 82
 014A           L37:
 014A                   .dbline 78
 014A F3CF              rjmp L36
 014C           X1:
 014C                   .dbline -2
 014C                   .dbline 83
 014C           ;  while(1)
 014C           ;   {value=Read_Byte(0x01);
 014C           ;    value=Read_Byte(0x02);
 014C           ;    Convert(Data,value);
 014C           ;    Display(Data);}
 014C           ; }
 014C           L35:
 014C                   .dbline 0 ; func end
 014C 0895              ret
 014E                   .dbsym r value 20 c
 014E                   .dbend

⌨️ 快捷键说明

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