打印

求助定时中断程序!

[复制链接]
1825|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xxiongweibing|  楼主 | 2009-8-20 08:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用定时/计数器做定时有两种方法,一是查询中断溢出标志TF0/TF1,还有一种就是中断。每种方法都试了就是没这个功能,请教大侠帮忙看下问题到底出在哪里?非常感谢!
#include"reg51.h"                             
sbit P1_0=P1^0;
main()
{
P1=0xff;
TMOD=0X01;
TH0=0X15;
TL0=0XA0;
TR0=1;
while(1)
{
if(TF0)
{
TF0=0;
TH0=0X15;
TL0=0XA0;
P1_1=!P1_1;
第二种程序
#include<reg51.h>
sbit P1_0=P1)_0;
void time0(void)interrupt 1
{
TH0=0X15;
TL0=0XA0;
P1_1=!P1_1;
}
main()
{
while(1)
{
P1=0xff;
TMOD=0X01;
TH0=0X15;
TL0=0XA0;
EA=1;
ET0=1;
TR0=1;
}
}
这两个程序本来功能是P1_0延时60MS闪烁,编译后ISP下载到开发板上却没有这个功能,不知道问题出在哪里,请前辈指教。

相关帖子

沙发
cauhorse| | 2009-8-20 10:14 | 只看该作者
TMOD=0X01;
TH0=0X15;
TL0=0XA0;
EA=1;
ET0=1;
TR0=1;
这些个初始化定时器的语句,放到while(1)外面去。

使用特权

评论回复
板凳
xxiongweibing|  楼主 | 2009-8-20 16:19 | 只看该作者
非常感谢Cauhorse兄,先试下!

使用特权

评论回复
地板
sammertang| | 2009-8-22 09:14 | 只看该作者
60ms的延时
th0=(65535-60000)/256;
tl0=(65535-60000)%256;

使用特权

评论回复
5
xxiongweibing|  楼主 | 2009-9-9 09:01 | 只看该作者
谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

53

帖子

0

粉丝