51单片机中断疑问
2019-07-15 09:50发布
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
郭天祥的书中51
单片机中断为什么要二次装初值,不理解??
代码:
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit led1=P1^0;
- uchar num;
- void main(){
- TMOD=0x01;
- TH0=(65536-45872)/256;//装初值
- TL0=(65536-45872)%256;
- EA=1;//打开中断总开关
- ET0=1;//开定时器0中断
- TR0=1;//启动定时器0
- while(1);//程序停止在这里等待中断发生
- }
- void T0_time() interrupt 1{
- TH0=(65536-45872)/256;重装初值11.0592M晶振定时50ms数为45872
- TL0=(65536-45872)%256;
- num++;
- if(num==20){//如果到了20次,说明1秒时间到
- num=0;//然后把num清零,重新再计20次
- led1=~led1;//让发光管状态取反
- }
- }
复制代码
实测在main主函数不装初值也是一样的呀?
一周热门 更多>