background image
宏晶科技: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
;------------------------------------------------------------------------------