实验环境
mcu:8051U-34K64@7.4.11U
下载时高速IRC频率调整为 45.1584MHz
问题描述
烧录程序时把IRC频率调整为45.1584MHz,无法准确地操作IO状态。例如,拉低P0.7的电平。
代码中已经参照手册第7章,逐bit修改寄存器,以下是关于HSCLK的配置代码:
- HSCLKCONF:
- ; master clock source selection
- MOV DR28, #WORD0 CLKSEL
- MOVH DR28, #WORD2 CLKSEL
- MOV R11, @DR28
- ANL A, #NOT 4FH
- MOV @DR28, R11
- ; enable internal HIRC
- MOV DR28, #WORD0 HIRCCR
- MOVH DR28, #WORD2 HIRCCR
- MOV R11, @DR28
- ORL A, #80H
- MOV @DR28, R11
- WAITHIRCDONE:
- MOV R11, @DR28
- JNB ACC.0, WAITHIRCDONE
- ; high speed I/O's clock prescale: 1
- MOV A, #1D
- MOV DR28, #WORD0 HSCLKDIV
- MOVH DR28, #WORD2 HSCLKDIV
- MOV @DR28, R11
- ; I2S's clock prescale: 1
- MOV A, #1D
- MOV DR28, #WORD0 I2S_CLKDIV
- MOVH DR28, #WORD2 I2S_CLKDIV
- MOV @DR28, R11
- ; MCLK prescale
- MOV A, #4D
- MOV DR28, #WORD0 CLKDIV
- MOVH DR28, #WORD2 CLKDIV
- MOV @DR28, R11
- RET
复制代码
想拉低P0.7. 已经使能P0.7的高速IO翻转模式,仍然无法控制它。
但是如果在烧录时,把IRC配置为12MHz,则能正常控制P0.7的电平。
请教下,是哪里出错了?
|