Bootstrap

c语言晶振频率值为12mHz,50个单片机晶振问题及解决方法小结

如果你的单片机只做AD采集转换,那就不需要太高的频率,内部4Mhz振荡器即可。

但如果还要做其他对时序要求较严的工作比如说总线通信,那就要考虑使用外部振荡器,因为内部振荡器的误差太大(即使校准了还有1%的误差) ,而用多大的晶振要看工作要求,频率越高单片机功耗越大。但只做AD的话,4M够了。

36、大家好。我想问个pic单片机的问题:晶振频率不一样。编译器自己带的库延时函数延时一样吗?比如晶振20MHZ delayus(1)和5MHZ delayus(1)是同是1us吗?

答: 应该一样.

因为频率不一样,编译时候你的设置不一样,编译时候自然计算需要的倍数,参数就不一样了.

但可能因为频率除不尽的缘故,有一点点差异

37、单片机外接24M的晶振,1ms的基准延时函数用C语言怎么写?

答:定时器T0 工作方式1 晶振频率24MHz

定时器最大定时时间(us):32768

定时器最小定时时间(us):0.5

【1ms精确定时C51代码】

void T0_init(void) //定时器初始化

{

TMOD |= 0x01;

TH0 = 0xf8; //设置定时器计数初值,定时1000us

TL0 = 0x33;

IE |= 0x82; //打开总中断

TR0 = 1; //启动定时器

}

void T0_intservice(void) interrupt 1 //定时器中断服务

{

TH0 = 0xf8; //重装载定时器计数初值

;