求助定时中断程序!

[复制链接]
 楼主| 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;
 楼主| xxiongweibing 发表于 2009-9-9 09:01 | 显示全部楼层
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

53

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部