2019-07-15 18:52发布
zy2014 发表于 2014-8-7 16:32 你写的程序,请问你的定时周期是多少呢? TH0 TL0的大小还跟晶振有关系的。。。。。。 ...
zy2014 发表于 2014-8-7 17:09 记事本中写的,没有编译过,看看能不能理解
最多设置5个标签!
TH0 TL0的大小还跟晶振有关系的。。。。。。
我现在用的是12MHZ晶振, 定时周期如果为65ms那么我算出的TH0=0x02
TL0=0x17,为什么在实验显示上面,对于设置这个TH0、TL0,闪烁频率变化不是很明显呢
- #include<reg52.h>
- int num;
- void main()
- {
- TMOD=0x01;
- TH0=(65536-50000)/256; //12M晶振 周期50ms
- TL0=(65536-50000)%256;
- EA=1; //开总中断
- ET0=1;
- TR0=1;
- while(1);
- }
- void timer0() interrupt 1
- {
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- num++;//进入中断计数器家1
- if(num==20) //20*50ms=1s 1s后led灯反转
- {
- num=0;
- P1^0=~P1^0;
- }
- }
复制代码记事本中写的,没有编译过,看看能不能理解
嗯!能理解了,有了 num++;//进入中断计数器家1 if(num==20) //20*50ms=1s 1s后led灯反转
{
num=0;
P10=~P1^0;
},灯闪烁的就能很明显观察到了,
谢谢!那是不是所有灯闪烁的时候都要加延时呢?偏于观察
一周热门 更多>