单片机C语言定时器如何调用

我现在定时器的初始程序与中断,假设我现在需要将机器从开机开始计时,到三十秒做第一个动作,该如何调用,求大神知道程序如下/*************************... 我现在定时器的初始程序与中断,假设我现在需要将机器从开机开始计时,到三十秒做第一个动作,该如何调用,求大神知道

程序如下
/*******************************************************************
【函数原形 】: init_time
【功能说明 】: 定时器初始化程序
【参数说明 】:
【编写时间 】: 2012年12月10日
【修改时间 】:
【初始位置 】:
************************************************************************/
void init_time()
{
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET0=1;
TR0=1;
}
void time_0()interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
coint++;
}
展开
 我来答
天云小店
2015-05-27 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:783万
展开全部

单片机中通过中断的方式来调用定时器。


具体的调用方式可以参考通过如下程序:

程序功能:利用定时器进行定时,实现每秒中led闪烁一次

#include<reg52.h>
sbit led = P0^0;
unsigned int num;
void main(void)
{
TMOD = 0x00;   // 工作方式0
TH0 = (8192 - 5000) / 32;  // 12M晶振下定时5ms
TL0 = (8192 - 5000) % 32;
EA = 1;    // 开总中断
ET0 = 1;    // 开定时器中断
TR0 = 1;    // 启动定时器
while(1)
{
  if(num == 200)   // 定时1秒钟到
{
num = 0;   // 计数器清零
led = ~led;   // led灯取反,实现1秒闪烁一次
}
}
}

void timer() interrupt 1  // 定时器1工作与方式0
{
TH0 = (8192 - 5000) / 32;  // 重装初值
TL0 = (8192 - 5000) % 32;
num++;  // 计数器加1

}
二弼萌8
2012-12-11 · TA获得超过666个赞
知道小有建树答主
回答量:1159
采纳率:0%
帮助的人:335万
展开全部
count++到30秒触发一个函数就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1020831656
2012-12-11
知道答主
回答量:16
采纳率:0%
帮助的人:21.2万
展开全部
void init_time()
{
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET0=1;
TR0=1;
}

void main()
{
init_time();
while(1);
}

void time_0()interrupt 1 //中断函数放主函数后面就行,不需要声明
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;//假设这个定时为10毫秒,我就不计算了
coint++; //全局变量,别忘了定义
if(coint==3000)//10ms*3000=30s
{
LED=~LED;//这是要执行的动作,以灯亮灭为例;
coint=0;计数器清零,重新开始计数;
}
}
追问
你好请问,我程序如果后面还要有别的动作,如何做成全局定时
追答
这个本身就是全局定时反复执行的,每隔三十秒就执行一次。要是想在中断后进行别的动作,可以把动作程序写在主程序while(1)的位置,比如在while(1)里面写个流水灯的程序,现象就是流水灯一直流动,每隔三十秒中断中控制的那个灯亮灭变化一次,两者互不影响。建议你深入理解一下中断的概念http://zhidao.baidu.com/question/2195108.html
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式