发新帖我要提问
12
返回列表
打印

定时问题!

[复制链接]
楼主: sankyo_feng
手机看帖
扫描二维码
随时随地手机跟帖
21
sankyo_feng|  楼主 | 2010-6-6 21:14 | 只看该作者 回帖奖励 |倒序浏览
#define uchar unsigned char //定义一下方便使用
#define uint  unsigned int
#define ulong unsigned long
#include <reg52.h>     //包括一个52标准内核的头文件
sbit P10 = P1^0; //要控制的LED灯
bit m00=0;
int t;
//精确定时1秒钟闪烁LED
void main(void) // 主程序
{
RCAP2H =0x10; //赋T2的预置值0x1000,溢出30次就是1秒钟
RCAP2L =0x00;
TR2=1;   //启动定时器
ET2=1;    //打开定时器2中断
EA=1;     //打开总中断
while(1)  //程序循环
{  ;//主程序在这里就不断自循环,实际应用中,这里是做主要工作
   
               if(m00==1) //反转LED灯的亮灭
                 {t++;m00=0;}
               if(t==30) //T2的预置值0x1000,溢出30次就是1秒钟,晶振22118400HZ
               {
                t=0;
                P10=~P10;  
               }
        }
}
//定时器2中断
timer2() interrupt 5  
{

TF2=0;

m00=1;
}
}

程序这样好像就可以了,时间参数还的再调一下,不过基本的问题解决了,谢谢!

使用特权

评论回复
22
tjx727| | 2010-6-8 21:27 | 只看该作者
不明白楼主一定要多弄一个变量m00,直接写在定时器里面不就可以了啊,写在定时器里面要是执行的程序很多的话就不会很准了。

使用特权

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

本版积分规则