background image
宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商   www.MCU-Memory.com   STC12C5410AD 系列 1T 8051 单片机中文指南
121
else
Slave_Check_SPI:
        JNB   SPI_Receive, Slave_Check_SPI ;判收到主 SPI 发回的数据否
        ;从单片机 SPI 端口已收到新的数据
        MOV   A, SPI_buffer         ;取 " 主单片机 SPI 端口发的数据 "
        CLR   SPI_Receive           ;清 0 从单片机 SPI 端口收到数据标志位
        MOV   SPDAT, A              ;将收到数据送 SPDAT, 准备下一次通讯时发回
        SJMP  Slave_Check_SPI
endif
;------------------------------------------------------------------------------
ADC_SPI_Interrupt_Routine:          ;ADC_SPI 中断服务程序
    ;SPI 中断服务程序
    MOV   SPSTAT, #11000000B        ;0C0H, 清 0 标志位 SPIF 和 WCOL
                  ;特别注意:是向标志位 SPIF/WCOL 写 1,将 SPIF/WCOL  清成 0
                  ;特别注意:不是向标志位 SPIF/WCOL 写 0,将 SPIF/WCOL  清成 0
    MOV   A, SPDAT                  ;保存收到的数据
    MOV   SPI_buffer, A
    SETB  SPI_Receive               ;树立 SPI 端口收到数据标志
    RETI
;------------------------------------------------------------------------------
Init_System:
    ACALL Initial_UART              ;初始化串口
    ACALL Initial_SPI               ;初始化 SPI
    MOV   Flags, #0                 ;清标志字
    SETB  EA                        ;开总中断
    RET
;------------------------------------------------------------------------------
Initial_UART:                       ;初始化串口
; SCON  Bit:   7       6     5     4     3     2     1    0
;            SM0/FE   SM1   SM2   REN   TB8   RB8    TI   RI
    MOV   SCON, #50H                ;0101,0000 8 位可变波特率, 无奇偶校验
    MOV   TMOD, #21H                ;T1 为自动重装模式
    MOV   TH1, #RELOAD_8BIT_DATA
    MOV   TL1, #RELOAD_8BIT_DATA
;    MOV   PCON, #80H               ;取消本行指令注释,波特率加倍。
;使以下两行有效,波特率快 12 倍,即波特率 = 4800*12=57600
    MOV   A, #01000000B             ;T1 以 1T 的速度计数,是普通 8051 的 12 倍
    ORL   AUXR, A
    SETB  TR1                       ;启动定时器 1 开始计数
    RET
;------------------------------------------------------------------------------
Initial_SPI:                        ;初始化 SPI
;SPI 控制寄存器