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