宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 单片机中文指南
131
CLR TI ;清零串口发送中断标志
RET
;------------------------------------------------------------------------------
;此段程序只有主 MCU 调用
SPI_Send_Byte: ;SPI 发送一个字节
CLR EADC_SPI ;关 ADC 中断和 SPI 中断共享的总中断控制位
MOV SPDAT, A ;SPI 发送数据
SPI_Send_Byte_Wait:
MOV A, SPSTAT ;等待 SPIF=1 即等待 SPI 发送完毕
ANL A, #80H
JZ SPI_Send_Byte_Wait
SETB EADC_SPI ;开 ADC 中断和 SPI 中断共享的总中断控制位
RET
;------------------------------------------------------------------------------
Get_Byte_From_RS232: ;取 RS-232 串口中收到的数据累加器 A
MOV A, SBUF
CLR RI
RET
;------------------------------------------------------------------------------
END
;------------------------------------------------------------------------------
;更详细的资料可以参阅 STC12C5410AD.pdf (中文使用说明)。
;
;SPI 控制寄存器
; 7 6 5 4 3 2 1 0
;SPCTL SSIG SPEN DORD MSTR CPOL CPHA SPR1 SPR0
;
;SSIG: 忽略 SS 脚, 如果 SSIG=1, 由 MSTR 位决定主模式或从模式,
; 如果 SSIG=0, 由 SS 脚决定主模式或从模式。
;SPEN:SPI 使能位。如果 SPEN=0,SPI 功能被禁止,SPI 脚用作普通 IO 口
;DORD:SPI 数据传输顺序。
; 1:先传低位 LSB
; 0:先传高位 MSB
;MSTR:主 / 从模式选择位
;CPOL:SPI 时钟信号极性选择位
; 1:SPI 空闲时 SPICLK = 1,前跳变沿是下降沿,后跳变沿是上升沿。
; 0:SPI 空闲时 SPICLK = 0,前跳变沿是上升沿,后跳变沿是下降沿。
;CPHA:SPI 时钟信号相位选择位
; 1:数据由 SPICLK 前跳变沿驱动到口线,后跳变沿采样。
; 0:当 SS 脚为低(SSIG=0)时数据被驱动到口线,并且在 SPICLK 后跳变沿数据
; 被改变(被驱动到口线),在 SPICLK 前跳变沿数据被采样。注意:SSIG = 1
; 时操作未定义。
;SPR1-SPR0:主模式时 SPI 时钟速率选择
; 00:fosc/4
; 01:fosc/16
; 10:fosc/64