background image
宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商   www.MCU-Memory.com   STC12C5410AD 系列 1T 8051 单片机中文指南
126
;3. SPI  通讯过程:
;    主单片机与从单片机的 SPI 8 位移位寄存器连接成一个循环的 16  位移位寄存器。
;当主单片机程序向 SPDAT  写入一个字节时,立即启动一个连续的 8  位移位通讯过程:
;主单片机的 SCLK  脚向从单片机的 SCLK  脚发出一串脉冲,在这串脉冲的驱动下,  主
;单片机 SPI 8 位移位寄存器中的数据移到了从单片机的 SPI 8 位移位寄存器中;  与此
;同时,从单片机 SPI 8 位移位寄存器中的数据移到了主单片机的 SPI 8 位移位寄存器
; 中。利用这样的数据交换机制,主单片机既可向从单片机发送数据,又可读从单片机
; 中的数据。
;4. 使用方法
;  a) 修改程序,使 MASTER_SLAVE EQU 0 的那行有效。汇编后的程序代码下载到
;     主单片机中。
;  b) 修改程序,使 MASTER_SLAVE EQU 1 的那行有效。汇编后的程序代码下载到
;     从单片机 #1  中。
;  c) 修改程序,使 MASTER_SLAVE EQU 2 的那行有效。汇编后的程序代码下载到
;     从单片机 #2  中。
;     d )   给主、从单片机上电。
;  e) 主单片机用 Slave1_SS 和 Slave2_SS 口线选择当前选中的从单片机,  每一时刻
;     只有一个从单片机被选中。当 Slave1_SS  的 LED  灯亮时,从单片机 #1  被选中;
;     当 Slave2_SS  的 LED  灯亮时,从单片机 #2  被选中。
;         用串口调试助手(STC 的 ISP 下载程序 STC-ISP.exe 3.2 以上版本提供了
;     该功能)向主单片机发送一串数据。主单片机每收到一个字节就立刻将收到的字节
;     通过 SPI  口发送到当前选中的从单片机中。从单片机 #1  将 SPI  口收到的数据
;     再放到自己的 SPDAT  寄存器中,当下一次主单片机发送一个字节时把数据发回到
;     主单片机; 从单片机 #2 将 SPI 口收到的数据加 1 以后再放到自己的 SPDAT
;           寄存器中,当下一次主单片机发送一个字节时把数据发回到主单片机。
;  f)  在串口调试助手接收区观察接收的数据。
;5.  用巡测方式接收 SPI 数据
;       本示例为中断方式接收 SPI  口数据,若想用巡测方式接收 SPI 数据可以用以下
;    几行指令实现:
;   Wait_SPI_Receive_Byte:
;       MOV A, SPSTAT                   ;判收到从 SPI 发回的数据?
;       ANL A, #80H
;       JZ  Wait_SPI_Receive_Byte       ;SPI 未收到数据, 继续等待
;         ...                           ;SPI 已收到数据
;         ...
;6. 实验条件: MCU 晶振频率 Fosc = 18.432MHz, PC 机 RS232 串口波特率等于 57600
;   实验结果: SPI  口传输数据无误。
;------------------------------------------------------------------------------
;定义常量
;-----------------
; 定义功能常量,以下  3   行注释其中  2   行,使一行有效