📄 mmc.lst
字号:
01CD E886 LDI R24,0x86
01CE BF8C OUT 0x3C,R24
(0025) // 允许收发,接收完成后中断
(0026) UCSR1B|=(1<<RXCIE1)|(1<<TXEN1)|(1<<RXEN1);
01CF B181 IN R24,0x01
01D0 6988 ORI R24,0x98
01D1 B981 OUT 0x01,R24
01D2 9508 RET
(0027) }
(0028)
(0029) //******************************************
(0030) //*名称: uart1_send()
(0031) //*功能: 串口1发送数据
(0032) //******************************************
(0033) void uart1_send(unsigned char data)
(0034) {
(0035) // 检测是否可以发送,UDRE=1寄存器为空
(0036) while ( !( UCSR1A & (1<<UDRE1)) )
_uart1_send:
data --> R16
01D3 9B15 SBIS 0x02,5
01D4 CFFE RJMP _uart1_send
(0037) ;
(0038) UDR1=data;
01D5 B903 OUT 0x03,R16
01D6 9508 RET
(0039) }
(0040)
(0041) //******************************************
(0042) //*名称: uart1_rev()
(0043) //*功能: 串口0接收数据
(0044) //******************************************
(0045) unsigned char uart1_rev(void)
(0046) {
(0047) // 检测是否接收完成
(0048) while ( !(UCSR1A & (1<<RXC1)) )
_uart1_rev:
01D7 9B17 SBIS 0x02,7
01D8 CFFE RJMP _uart1_rev
(0049) ;
(0050) // 返回接收数据
(0051) return UDR1;
01D9 B103 IN R16,0x03
01DA 9508 RET
_uart1_intrev:
01DB D043 RCALL push_lset
(0052) }
(0053)
(0054) //******************************************
(0055) //*名称: uart1_intrev()
(0056) //*功能: 串口1中断方式接收数据
(0057) //******************************************
(0058) #pragma interrupt_handler uart1_intrev:iv_USART1_RXC
(0059) void uart1_intrev(void)
(0060) {
(0061) asm("cli");
01DC 94F8 BCLR 7
(0062) uart1_send(UDR1);
01DD B103 IN R16,0x03
01DE DFF4 RCALL _uart1_send
(0063) asm("sei");
01DF 9478 BSET 7
01E0 D053 RCALL pop_lset
01E1 9518 RETI
FILE: E:\SOUCER~1\M162MMC\spi.c
(0001) /* INCLUDE参数 */
(0002) #include <iom162v.h>
(0003)
(0004) /************************************
(0005) * SPI初始化
(0006) ************************************/
(0007) void spi_init(void)
(0008) {
(0009) DDRB|=(1<<PB4); /* SS端设置为输出 */
_spi_init:
01E2 9ABC SBI 0x17,4
(0010) DDRB|=(1<<PB5); /* MOSI端口设置为输出 */
01E3 9ABD SBI 0x17,5
(0011) DDRB&=~(1<<PB6); /* MISO端口设置为输入 */
01E4 98BE CBI 0x17,6
(0012) DDRB|=(1<<PB7); /* SCK端口设置为输出 */
01E5 9ABF SBI 0x17,7
(0013) SPCR|=(1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0); /* SPI ENABLE,MASTER MODE,Fsoc/16 */
01E6 B18D IN R24,0x0D
01E7 6583 ORI R24,0x53
01E8 B98D OUT 0x0D,R24
(0014) PORTB|=(1<<PB4); /* SS=1 */
01E9 9AC4 SBI 0x18,4
01EA 9508 RET
(0015) }
(0016)
(0017) /************************************
(0018) * SPI转入高速模式
(0019) ************************************/
(0020) void SPIHiSPD(void)
(0021) {
(0022) SPCR|=(0<<SPR1)|(0<<SPR0); /* SPI ENABLE,MASTER MODE,Fsoc/16 */
_SPIHiSPD:
01EB B02D IN R2,0x0D
01EC B82D OUT 0x0D,R2
(0023) SPSR|=(1<<SPI2X);
01ED 9A70 SBI 0x0E,0
01EE 9508 RET
_spi_send:
temp --> R20
data --> R16
01EF D018 RCALL push_gset1
(0024) }
(0025)
(0026) /************************************
(0027) * SPI发送数据
(0028) ************************************/
(0029) unsigned char spi_send(unsigned char data)
(0030) {
(0031) unsigned char temp;
(0032) SPDR = data;
01F0 B90F OUT 0x0F,R16
01F1 C001 RJMP 0x01F3
(0033) while(!(SPSR & (1<<SPIF)))
(0034) {
(0035) asm("nop");
01F2 0000 NOP
01F3 9B77 SBIS 0x0E,7
01F4 CFFD RJMP 0x01F2
(0036) }
(0037) temp = SPDR;
01F5 B14F IN R20,0x0F
(0038) return temp;
FILE: <library>
01F6 2F04 MOV R16,R20
01F7 D013 RCALL pop_gset1
01F8 9508 RET
push_arg4:
01F9 940E02AB CALL 0x2AB
push_arg2:
01FB 9508 RET
pop_gset2:
01FC E0E2 LDI R30,2
01FD C00E RJMP pop
pop_gset4:
01FE E0E8 LDI R30,0x8
01FF C00C RJMP pop
push_gset5:
0200 92FA ST R15,-Y
0201 92EA ST R14,-Y
push_gset4:
0202 92DA ST R13,-Y
0203 92CA ST R12,-Y
push_gset3:
0204 92BA ST R11,-Y
0205 92AA ST R10,-Y
push_gset2:
0206 937A ST R23,-Y
0207 936A ST R22,-Y
push_gset1:
0208 935A ST R21,-Y
0209 934A ST R20,-Y
020A 9508 RET
pop_gset1:
020B E0E1 LDI R30,1
pop:
020C 9149 LD R20,Y+
020D 9159 LD R21,Y+
020E FDE0 SBRC R30,0
020F 9508 RET
0210 9169 LD R22,Y+
0211 9179 LD R23,Y+
0212 FDE1 SBRC R30,1
0213 9508 RET
0214 90A9 LD R10,Y+
0215 90B9 LD R11,Y+
0216 FDE2 SBRC R30,2
0217 9508 RET
0218 90C9 LD R12,Y+
0219 90D9 LD R13,Y+
021A FDE3 SBRC R30,3
021B 9508 RET
021C 90E9 LD R14,Y+
021D 90F9 LD R15,Y+
021E 9508 RET
push_lset:
021F 93FA ST R31,-Y
0220 93EA ST R30,-Y
0221 93BA ST R27,-Y
0222 93AA ST R26,-Y
0223 939A ST R25,-Y
0224 938A ST R24,-Y
0225 940E02AB CALL 0x2AB
0227 929A ST R9,-Y
0228 928A ST R8,-Y
0229 927A ST R7,-Y
022A 926A ST R6,-Y
022B 925A ST R5,-Y
022C 924A ST R4,-Y
022D 923A ST R3,-Y
022E 922A ST R2,-Y
022F 921A ST R1,-Y
0230 920A ST R0,-Y
0231 B60F IN R0,0x3F
0232 920A ST R0,-Y
0233 9508 RET
pop_lset:
0234 9009 LD R0,Y+
0235 BE0F OUT 0x3F,R0
0236 9009 LD R0,Y+
0237 9019 LD R1,Y+
0238 9029 LD R2,Y+
0239 9039 LD R3,Y+
023A 9049 LD R4,Y+
023B 9059 LD R5,Y+
023C 9069 LD R6,Y+
023D 9079 LD R7,Y+
023E 9089 LD R8,Y+
023F 9099 LD R9,Y+
0240 9109 LD R16,Y+
0241 9119 LD R17,Y+
0242 9129 LD R18,Y+
0243 9139 LD R19,Y+
0244 9189 LD R24,Y+
0245 9199 LD R25,Y+
0246 91A9 LD R26,Y+
0247 91B9 LD R27,Y+
0248 91E9 LD R30,Y+
0249 91F9 LD R31,Y+
024A 9508 RET
lsl32:
024B 920F PUSH R0
024C 9009 LD R0,Y+
024D 2000 TST R0
024E F031 BEQ 0x0255
024F 0F00 LSL R16
0250 1F11 ROL R17
0251 1F22 ROL R18
0252 1F33 ROL R19
0253 940A DEC R0
0254 CFF8 RJMP 0x024D
0255 900F POP R0
0256 9508 RET
lsr32:
0257 920F PUSH R0
0258 9009 LD R0,Y+
0259 2000 TST R0
025A F031 BEQ 0x0261
025B 9536 LSR R19
025C 9527 ROR R18
025D 9517 ROR R17
025E 9507 ROR R16
025F 940A DEC R0
0260 CFF8 RJMP 0x0259
0261 900F POP R0
0262 9508 RET
asgncblk:
0263 93AA ST R26,-Y
0264 93BA ST R27,-Y
0265 93EA ST R30,-Y
0266 93FA ST R31,-Y
0267 920A ST R0,-Y
0268 81AF LDD R26,Y+7
0269 85B8 LDD R27,Y+8
026A 81ED LDD R30,Y+5
026B 81FE LDD R31,Y+6
026C 3000 CPI R16,0
026D 0701 CPC R16,R17
026E F031 BEQ 0x0275
026F 95C8 LPM
0270 920D ST R0,X+
0271 9631 ADIW R30,1
0272 5001 SUBI R16,1
0273 4010 SBCI R17,0
0274 CFF7 RJMP 0x026C
0275 9009 LD R0,Y+
0276 91F9 LD R31,Y+
0277 91E9 LD R30,Y+
0278 91B9 LD R27,Y+
0279 91A9 LD R26,Y+
027A 9624 ADIW R28,4
027B 9508 RET
<created procedures>:
027C E090 LDI R25,0
027D 01FE MOVW R30,R28
027E E006 LDI R16,6
027F E010 LDI R17,0
0280 93FA ST R31,-Y
0281 93EA ST R30,-Y
0282 939A ST R25,-Y
0283 938A ST R24,-Y
0284 9508 RET
0285 E090 LDI R25,0
0286 01FE MOVW R30,R28
0287 8420 LDD R2,Z+8
0288 8431 LDD R3,Z+9
0289 8442 LDD R4,Z+10
028A 8453 LDD R5,Z+11
028B 938A ST R24,-Y
028C 0181 MOVW R16,R2
028D 0192 MOVW R18,R4
028E 9508 RET
028F E090 LDI R25,0
0290 01FE MOVW R30,R28
0291 8422 LDD R2,Z+10
0292 8433 LDD R3,Z+11
0293 8444 LDD R4,Z+12
0294 8455 LDD R5,Z+13
0295 938A ST R24,-Y
0296 0181 MOVW R16,R2
0297 0192 MOVW R18,R4
0298 9508 RET
0299 01FE MOVW R30,R28
029A 8422 LDD R2,Z+10
029B 8433 LDD R3,Z+11
029C 8444 LDD R4,Z+12
029D 8455 LDD R5,Z+13
029E 9508 RET
029F 01FE MOVW R30,R28
02A0 8420 LDD R2,Z+8
02A1 8431 LDD R3,Z+9
02A2 8442 LDD R4,Z+10
02A3 8453 LDD R5,Z+11
02A4 9508 RET
02A5 E080 LDI R24,0
02A6 E091 LDI R25,1
02A7 01FA MOVW R30,R20
02A8 0FE8 ADD R30,R24
02A9 1FF9 ADC R31,R25
02AA 9508 RET
02AB 933A ST R19,-Y
02AC 932A ST R18,-Y
02AD 931A ST R17,-Y
02AE 930A ST R16,-Y
02AF 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -