background image
宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商   www.MCU-Memory.com   STC12C5410AD 系列 1T 8051 单片机中文指南
130
     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
if MASTER_SLAVE == 0
    MOV   SPCTL,#11111100B          ;0FCH, 忽略 SS 脚, 设为主机
    ;SSIG=1: 忽略 SS 脚
    ;SPEN=1:允许 SPI 工作
    ;DORD=1:先传低位 LSB
    ;MSTR=1:设为主机
    ;CPOL=1:SPI 空闲时 SPICLK = 1,前跳变沿是下降沿,后跳变沿是上升沿。
    ;CPHA=1:数据由 SPICLK  前跳变沿驱动到 SPI 口线,SPI  模块在后跳变沿采样数据。
    ;SPR1,SPR0 = 00:主模式时 SPI 时钟源选择为 fosc/4
else
    MOV   SPCTL,#01101100B          ;6CH, 设为从机, 由 SS 脚决定是否已被选中
    ;SSIG=0: 由 SS 脚决定主模式或从模式。
    ;SPEN=1:允许 SPI 工作
    ;DORD=1:先传低位 LSB
    ;MSTR=0:设为从机
    ;CPOL=1:SPI 空闲时 SPICLK = 1,前跳变沿是下降沿,后跳变沿是上升沿。
    ;CPHA=1:数据由 SPICLK  前跳变沿驱动到 SPI 口线,SPI  模块在后跳变沿采样数据。
    ;SPR1,SPR0 = 00:主模式时 SPI 时钟源选择为 fosc/4
endif
    MOV   SPSTAT,#11000000B         ;清 0 标志位 SPIF(SPSTAT.7), WCOL(SPSTAT.6)
                                    ;向该两个标志位写 "1" 会将它们清 0
    MOV   A, #00001000B
    ORL   AUXR, A                   ;令 ESPI(AUXR.3)=1,允许 SPIF(SPSTAT.7)产生中断
    SETB  EADC_SPI                  ;开 ADC 中断和 SPI 中断共享的总中断控制位
    RET
;------------------------------------------------------------------------------
RS232_Send_Byte:                    ;RS232 串口发送一个字节
    CLR   TI                        ;清零串口发送中断标志
    MOV   SBUF, A
RS232_Send_Wait:
    JNB   TI, RS232_Send_Wait       ;等待发送完毕, 未发送完毕跳回本行