本帖最后由 无聊逛1逛 于 2019-9-5 15:48 编辑
问题已解决.
手册:N76E003 有两个字节的SFR,更改这两个字节的数值,可以直接对HIRC频率产生改变,由于每更改一阶HIRC更改的值是恒定的,且由于HIRC已调整至非常准确的16 MHz,所以对这两个寄存器目前的值直接减去15,就可以得到16.6 MHz的结果。
1.keil C51 Define FOSC_166000
2.调整HIRC
void MODIFY_HIRC_VLAUE(void)
{
unsigned char hircmap0, hircmap1;
unsigned int trimvalue16bit;
set_IAPEN;
IAPAL = 0x30;
IAPAH = 0x00;
IAPCN = READ_UID;
set_IAPGO;
hircmap0 = IAPFD;
IAPAL = 0x31;
IAPAH = 0x00;
set_IAPGO;
hircmap1 = IAPFD;
clr_IAPEN;
trimvalue16bit = ((hircmap0 << 1) + (hircmap1 & 0x01));
trimvalue16bit = trimvalue16bit - 15;
hircmap1 = trimvalue16bit & 0x01;
hircmap0 = trimvalue16bit >> 1;
TA = 0XAA;
TA = 0X55;
RCTRIM0 = hircmap0;
TA = 0XAA;
TA = 0X55;
RCTRIM1 = hircmap1;
}
|