宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 单片机中文指南
119
; c ) 给主、从单片机上电。
; d) 用串口调试助手(STC 的 ISP 下载程序 STC-ISP.exe 3.2 以上版本提供了该功能)
; 向主单片机发送一串数据。
; 主单片机的 RS-232 串口每收到一个字节就立刻将收到的字节通过 SPI 口
; 发送到从单片机中,与此同时主单片机会收到从单片机发回的一个字节(见 3. SPI
; 通讯过程),主单片机又立刻把这个字节通过 RS-232 口发送到 PC 机。
; 从单片机的 SPI 口收到的数据后,把收到的数据放到自己的 SPDAT 寄存器
; 中,当下一次主单片机发送一个字节时把数据发回到主单片机。
; e) 在串口调试助手接收区观察接收的数据。
;
;5. 怎样用巡测方式接收 SPI 数据
; 本示例为中断方式接收 SPI 口数据,若想用巡测方式接收 SPI 数据可以用以下
; 几行指令实现:
; Wait_SPI_Receive_Byte:
; MOV A, SPSTAT ;判收到从 SPI 发回的数据否
; ANL A, #80H
; JZ Wait_SPI_Receive_Byte ;SPI 未收到数据, 继续等待
; MOV A, SPDAT ;SPI 已收到数据, 将收到的数据送累加器 A
; ...
;
;6. 实验条件: MCU 晶振频率 Fosc = 18.432MHz, PC 机 RS232 串口波特率等于 57600
; 实验结果: SPI 口传输数据无误。
; 由于本程序的 RS232 接收,SPI 端口的接收都没有使用接收缓冲区,所以 RS232
; 串口波特率不要高于 57600,若使用接收缓冲区,波特率可以到 115200 以上。
;------------------------------------------------------------------------------
;定义常量
;-----------------
; 定义功能常量,以下两行注释其中一行,取消另一行注释使之有效
;MASTER EQU 1 ;汇编后的程序代码下载到主单片机中
MASTER EQU 0 ;汇编后的程序代码下载到从单片机中
;-----------------
; 定义波特率自动重装数常量
;以下波特率是 PCON.7 = 0 时的数值, 若使 PCON.7 = 1 可将波特率加倍
;RELOAD_8BIT_DATA EQU 0FFH ;Fosc=22.1184MHz, Baud = 57600
;RELOAD_8BIT_DATA EQU 0FBH ;Fosc=18.432MHz, Baud=9600, 1T 运行时 Baud=115200
RELOAD_8BIT_DATA EQU 0F6H ;Fosc=18.432MHz, Baud=4800, 1T 运行时 Baud=57600
;RELOAD_8BIT_DATA EQU 0FFH ;Fosc=11.059MHz, Baud = 28800、
;------------------------------------------------------------------------------
;定义特殊功能寄存器
AUXR EQU 8EH
;AUXR 特殊功能寄存器的 bit3 是 SPI 中断允许控制位 ESPI
;IE 特殊功能寄存器的 bit5 是 ADC 和 SPI 两个中断共享的总中断允许控制位 EADC_SPI
;要产生 SPI 中断, 需要 ESPI/EADC_SPI/EA 都为 1
;------------------------------------------------------------------------------