建议你重新阅读下教材或者重新看看相关的视频.有些概念性的东西不能走捷径的,否则问题多多,事半功倍. 你把中断初值写在MAIN的主循环里,并且没有打开ET0 EA,你要想想如下问题. 中断到底执行了吗? 就算执行了, TF0有可能会置1吗? |
应该不是不能判断是否有溢出,要看定时器是否启动了,PC指针追踪一下流向。 |
代码逻辑错误,不能循环赋值定时器 |
代码写的有问题,顺序执行 |
看这贴我回复的程序代码http://www.51hei.com/bbs/mcu-h24-13.html |
虽然写这种判断,中断里处理或者 while 处理均可,来点简单的: TR0=1; TMOD=0x01; TH0=(65535-5000)/256; TL0=(65535-5000)%256; while(1) { if(TF0) { TF0=0; .... } } 楼主的代码,就好像去厨房烧开水,刚刚把火点上,就看温度是不是到了100℃。 起码也得多看几个轮回啊 ![]() |
很可惜这个论坛没"我回复过的帖子"的功能,无法找到之前相关中断的帖子,费大时间找不到之前的帖子,很不方便. |
注意代码书写的顺序,所有计算机程序都是顺序型的,代码的顺序代表要执行的次序,直接影响程序是否正确 |
没人么。。。。。。 |