宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 单片机中文指南
121
else
Slave_Check_SPI:
JNB SPI_Receive, Slave_Check_SPI ;判收到主 SPI 发回的数据否
;从单片机 SPI 端口已收到新的数据
MOV A, SPI_buffer ;取 " 主单片机 SPI 端口发的数据 "
CLR SPI_Receive ;清 0 从单片机 SPI 端口收到数据标志位
MOV SPDAT, A ;将收到数据送 SPDAT, 准备下一次通讯时发回
SJMP Slave_Check_SPI
endif
;------------------------------------------------------------------------------
ADC_SPI_Interrupt_Routine: ;ADC_SPI 中断服务程序
;SPI 中断服务程序
MOV SPSTAT, #11000000B ;0C0H, 清 0 标志位 SPIF 和 WCOL
;特别注意:是向标志位 SPIF/WCOL 写 1,将 SPIF/WCOL 清成 0
;特别注意:不是向标志位 SPIF/WCOL 写 0,将 SPIF/WCOL 清成 0
MOV A, SPDAT ;保存收到的数据
MOV SPI_buffer, A
SETB SPI_Receive ;树立 SPI 端口收到数据标志
RETI
;------------------------------------------------------------------------------
Init_System:
ACALL Initial_UART ;初始化串口
ACALL Initial_SPI ;初始化 SPI
MOV Flags, #0 ;清标志字
SETB EA ;开总中断
RET
;------------------------------------------------------------------------------
Initial_UART: ;初始化串口
; SCON Bit: 7 6 5 4 3 2 1 0
; SM0/FE SM1 SM2 REN TB8 RB8 TI RI
MOV SCON, #50H ;0101,0000 8 位可变波特率, 无奇偶校验
MOV TMOD, #21H ;T1 为自动重装模式
MOV TH1, #RELOAD_8BIT_DATA
MOV TL1, #RELOAD_8BIT_DATA
; MOV PCON, #80H ;取消本行指令注释,波特率加倍。
;使以下两行有效,波特率快 12 倍,即波特率 = 4800*12=57600
MOV A, #01000000B ;T1 以 1T 的速度计数,是普通 8051 的 12 倍
ORL AUXR, A
SETB TR1 ;启动定时器 1 开始计数
RET
;------------------------------------------------------------------------------
Initial_SPI: ;初始化 SPI
;SPI 控制寄存器