宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 单片机中文指南
120
;定义 SPI 特殊功能寄存器, 详细说明见本程序的后部或 STC 12C5410AD 中文指南
SPCTL EQU 85H
SPSTAT EQU 84H
SPDAT EQU 86H
EADC_SPI EQU IE.5
;------------------------------------------------------------------------------
;定义 SPI 脚
SCLK EQU P1.7
MISO EQU P1.6
MOSI EQU P1.5
SS EQU P1.4
;------------------------------------------------------------------------------
;定义单片机管脚
LED_MCU_START EQU P3.4
;------------------------------------------------------------------------------
;定义变量
Flags EQU 20H
SPI_Receive EQU Flags.0 ;SPI 端口收到数据标志位
SPI_buffer EQU 30H ;该变量用于保存 SPI 端口收到的数据
;------------------------------------------------------------------------------
ORG 0000H
LJMP MAIN
;------------------------------------------------------------------------------
ORG 002BH ;ADC_SPI 中断服务程序入口
LJMP ADC_SPI_Interrupt_Routine
;------------------------------------------------------------------------------
ORG 0080H
MAIN:
CLR LED_MCU_START ;点亮 MCU 开始工作指示灯
MOV SP, #7FH
ACALL Init_System ;系统初始化
if MASTER
Check_RS232:
JNB RI, Master_Check_SPI ;判 RS-232 串口中收到数据否
;主单片机 RS-232 串口已收到新的数据
ACALL Get_Byte_From_RS232 ;主单片机将 RS-232 串口中收到的数据送到累加器 A
ACALL SPI_Send_Byte ;主单片机将累加器 A 中的数据发送到从机 SPI
SJMP Check_RS232
Master_Check_SPI:
JNB SPI_Receive, Check_RS232 ;判收到从 SPI 发回的数据否
;主单片机 SPI 端口已收到新的数据
MOV A, SPI_buffer ;将 " 从 SPI 发回的数据 " 送到累加器 A
CLR SPI_Receive ;清 0 主单片机 SPI 端口收到数据标志位
ACALL RS232_Send_Byte ;将累加器 A 中的数据发送到 PC 机
SJMP Check_RS232