| 本帖最后由 无聊逛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;
 }
 
 
 
 
 
 |