没事试了一下STC8A外部晶振这样启动
以前用STC15系列,使用外部晶振时在软件上选一下就可以,如果外部晶振没有焊,单片机默认是内部时钟运行的,现在STC8A单片机软件上没有选项,需要在代码中启动外部晶振,官方的例程是死等晶振稳定,如果晶振没有焊,就卡住了,试了一下将死等改成等一段保守时间,如果晶振没有稳定启动,就默认用内部时钟工作。考虑到有些情况用晶振可以更稳定,但用内部时钟也能满足的情况下,这样启动,即使晶振损坏也能像STC15一样正常工作,供参考:P_SW2 = 0x80;
XOSCCR = 0xc0; //启动外部晶振
for(j=0;j<65535;j++) //官方例程是while (!(XOSCCR & 1));
{
if ((XOSCCR & 1)) //判断时钟稳定位
{
CKDIV = 0x00; //时钟不分频
CKSEL = 0x01; //选择外部晶振
break;
}
}
P_SW2 &= ~0x80; 小技巧集锦:
坛友MYQQ2018的经验:
如果代码里面没有使用到串口的话,不掉电下载很简单的,都用了好多年了,就几行代码,如下
void serial(void) interrupt 4
{
delay(300);
if(RI)
ISP_CONTR=0x60;
else
TI=0;
} XTXB 发表于 2019-7-18 18:53
小技巧集锦:
坛友MYQQ2018的经验:
如果代码里面没有使用到串口的话,不掉电下载很简单的,都用了好多年了 ...
学习了,有机会试试看,谢谢
页:
[1]