宏晶科技: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 ;等待发送完毕, 未发送完毕跳回本行