宏晶科技: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 行,使一行有效