使用c8051f410单片机时外部无源晶振总是不起振,用手按一按就好了,为什么啊?

我是按照规定的电路图接的,并联10M电阻, 22pf电容接地。晶振总是不灵,用手指按一按就好了。而且我设计过三块板子都是这样,不知道为什么,用的都是同一次买的单片机,晶振也换过了,电容也换过的,电阻也换过的,就是不行。程序肯定是木有问题的

第1个回答  2013-05-28
如果程序你确定没问题,那硬件的问题极大,我之前遇到过单片机接地不良和某一个引角对地短路或负载过大造成单片机工作不正常,甚至是晶振根本就不起振。你先好好查一下硬件电路吧。追问

第一块板子是我购买的开发核心板,接着我又设计了两块板子,都是这个问题。电阻我从1M换到了100M都没有用。悲剧,我的测试程序用的是卖家给的,卖家坚信他们 的程序木有问题

第2个回答  2013-05-27
一般属于静态工作点不对。10M的电阻不接或者换成100M试试。
第3个回答  2013-05-25
void PCA_Init()
{
PCA0MD &= ~0x40;
PCA0MD = 0x00;
}
void Port_IO_Init()
{
P1MDIN = 0xFC;
P1SKIP = 0x03;
//……
}
void Oscillator_Init()
{
int i = 0;
P1 |= 0x03;
OSCXCN = 0x67;
for (i = 0; i < 3000; i++); // Wait 1ms for initialization
while ((OSCXCN & 0x80) == 0);
CLKSEL = 0x01;
OSCICN = 0x00;
}
检查一下上述配置,8成还是程序的问题。本回答被提问者和网友采纳

C8051F021 单片机串口通信问题
(TI0是发送“完成”中断标志),程序退出中断后,过一会(按4800波特率发完一个字节的时间)TI0才是1,然后你中断里又没有处理TI0为1的情况,所以程序会一直进中断,但不会有什么动作,除非是RI0为1.

相似回答