background image
宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商   www.MCU-Memory.com   STC12C5410AD 系列 1T 8051 单片机中文指南
129
        MOV   TH0, #0C4H            ;重装数 = 65536-15360 = 50176 = C400H
                                    ;晶振频率 =18.432MHz 时, 每 10mS 中断 1 次
        INC   T0_10mS_count         ;10 毫秒计数(T0 中断次数) + 1
        MOV   A, #0C7H              ;0C8H = 199, 检测是否中断了 200 次(2 秒)
        CLR   C
        SUBB  A, T0_10mS_count
        JNC   timer0_Exit
        CPL   Slave1_SS             ;改变当前选择的从单片机
        CPL   Slave2_SS
        MOV   T0_10mS_count, #0     ;清 0 10 毫秒计数(T0 中断次数)
timer0_Exit:
        POP   ACC                   ;恢复断点现场
        POP   PSW
        RETI
else
timer0_Routine:                     ;本程序中从单片机不需要使用定时器 0
        RETI
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
;------------------------------------------------------------------------------
Initial_System:
    ACALL Initial_UART              ;初始化串口
    ACALL Initial_SPI               ;初始化 SPI
    SETB  TR0                       ;启动 T0
    SETB  ET0                       ;开 T0 中断
    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    Tl   Rl
    MOV   SCON, #50H                ;0101,0000 8 位可变波特率, 无奇偶校验