1. 晶振1m等于多少秒
计数器是按机器周期算的
一个机器周期=12时钟周期
不管时钟多少,都按一个机器周期=12时钟周期计算 //**** 关键 ****//
12MHZ时钟换过来就是1M机器周期(1M/S)
1ms就是1000机器周期;
6MHZ时钟换过来就是0.5M机器周期(0.5M/S)
1ms就是500机器周期
8位计数器最高范围是65536,
如果我们要记时1s,可以以10ms为单位,循环记时100次
现在就是初始化,10ms为例
TL0=-10000; //对T0计数初始化赋值,用12M的JT,10ms也就是机器周期计数10000
TH0=-10000>>8;
这就是初始化,一次溢出10ms
(若用6M的JT,10ms也就是机器周期计数5000)
当然这只是其中一部分,具体还有比如TR0(1)的设置
溢出中断允许等!
上面两句等价于
TL0=55536;//(65536-10000)
TH0=55536>>8;
相当于从55536开始数,
数10000次(10ms)后溢出,为一个记数周期
100次后就是1s
上述过程是在中断服务程序中的
上面的内容不知道对你有没有用~~(网上找的)
2. 晶振12mhz
输出频率为12MHZ的方波,低电平为0,高电平为VCC,一般3.3V
3. 6mhz晶振怎么延时1ms
void delay(unsigned int x) //延时 x ms { unsigned int i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } 延时1ms 即为使x=1; 这程序延时约1ms(x=1时用keil测出来约 0.96831272ms,近似1ms),用C语言很难做到准确的1ms。注意晶振为11.0592MHZ的时候用~ 晶振为12MHZ时 把 i=120 近似值1ms
4. 12mhz晶振怎么延时1ms
定时器计数最大值为65535,再计一次则溢出,产生中断。
也就是说初值设置成65535(65536-1)时,定时1个机器周期。
所以正确答案是65536-1000,此时定时1000个机器周期,12M晶振1个机器周期为1微秒,1000个就是1ms啦!
5. 晶振6mhz
首先知道1GHz=1000MHz,1MHz=1000kHz
1kHz=1000Hz
8MHz=8*10^3KHz=8*10^6Hz,即8百万Hz。举例说明
对于频率11.0592MHz晶振,定时器设置为250,smod设置1那么根据计算公式
波特率=2132(8∗10^6/12∗(256−250))=6944