2个回答
展开全部
我这里有用汇编写的两个atmega 16之间用SPI通信的程序。主单片机查询发送11个字节的数据,从单片机中断接收这些数据。
主单片机从0090单元开始发送11字节的数据
f_chuans:
QQ2: CLR R30
LDI YL,$90
LDI YH,$00
QQ1: LD R16,Y+
OUT SPDR,R16
CBI PORTB,4
QQ0: SBIS SPSR,7
RJMP QQ0
CBI SPSR,7
SBI PORTB,4
INC R30
CPI R30,LOW(11)
BRNE QQ1
LDI R30,$00
RET
从单片机中断接收11个数据,存入到0270单元中
f_zhongd:IN R14,SREG
IN R15,SPDR
ST X+,R15
INC R20
CPI R20,LOW(11)
BRNE FF0
LDI XL,$70
LDI XH,$02
CLR R20
FF0:OUT SREG,R14
RETI
主单片机从0090单元开始发送11字节的数据
f_chuans:
QQ2: CLR R30
LDI YL,$90
LDI YH,$00
QQ1: LD R16,Y+
OUT SPDR,R16
CBI PORTB,4
QQ0: SBIS SPSR,7
RJMP QQ0
CBI SPSR,7
SBI PORTB,4
INC R30
CPI R30,LOW(11)
BRNE QQ1
LDI R30,$00
RET
从单片机中断接收11个数据,存入到0270单元中
f_zhongd:IN R14,SREG
IN R15,SPDR
ST X+,R15
INC R20
CPI R20,LOW(11)
BRNE FF0
LDI XL,$70
LDI XH,$02
CLR R20
FF0:OUT SREG,R14
RETI
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询