大家好,用单片机定时器中断做一个99小时的定时器,怎么用程序实现。单片机定时器中断的定

基于单片机的多功能定时器设计与实现_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于单片机的多功能定时器设计与实现
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩37页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢21ic官方微信-->
后使用快捷导航没有帐号?
请完成以下验证码
查看: 7063|回复: 15
请问如何计算单片机程序的运行时间呢?
&&已结帖(20)
主题帖子积分
初级工程师, 积分 2171, 距离下一级还需 829 积分
初级工程师, 积分 2171, 距离下一级还需 829 积分
主题帖子积分
专家等级:结帖率:97%
主题帖子积分
初级工程师, 积分 2171, 距离下一级还需 829 积分
初级工程师, 积分 2171, 距离下一级还需 829 积分
最近BOSS要我看看一个屏幕驱动板程序运行的时间,已在人机工程试验中,去除掉运行程序的时间。但我还真没这个概念。难道要我数有多少条指令,然后乘机器周期计算?但一条C语言语句,转很成几条机器指令呢?
, , , , , ,
满意回复+10
利用一个I/O脚,用示波器测量。
时间不太长的话用定时器记录,时间很长的话弄一个时钟芯片。
最简单的方法,利用单片机的Timer,程序开始运行起动,结果停止,再计算Timer的时间,就可以知道程序运行的时间了,只不过这个前提是晶振你知道他的频率,不然就 ...
主题帖子积分
资深技术员, 积分 429, 距离下一级还需 71 积分
资深技术员, 积分 429, 距离下一级还需 71 积分
主题帖子积分
专家等级:结帖率:88%
主题帖子积分
资深技术员, 积分 429, 距离下一级还需 71 积分
资深技术员, 积分 429, 距离下一级还需 71 积分
时间不太长的话用定时器记录,时间很长的话弄一个时钟芯片。
想得多,做得少,人笨又不读书。
主题帖子积分
助理工程师, 积分 1633, 距离下一级还需 367 积分
助理工程师, 积分 1633, 距离下一级还需 367 积分
主题帖子积分
专家等级:结帖率:93%
主题帖子积分
助理工程师, 积分 1633, 距离下一级还需 367 积分
助理工程师, 积分 1633, 距离下一级还需 367 积分
可以另用一单片机写一程序,计算时间!
单片机学习交流群:&&欢迎加入
主题帖子积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
看看c的基本知识喽
& & & & & & & &
没有最好只有更好!
主题帖子积分
初级工程师, 积分 2171, 距离下一级还需 829 积分
初级工程师, 积分 2171, 距离下一级还需 829 积分
主题帖子积分
专家等级:结帖率:97%
主题帖子积分
初级工程师, 积分 2171, 距离下一级还需 829 积分
初级工程师, 积分 2171, 距离下一级还需 829 积分
lll605866 你的意思不会真的让我去算C语句对应的指令吧,:L
主题帖子积分
助理工程师, 积分 1300, 距离下一级还需 700 积分
助理工程师, 积分 1300, 距离下一级还需 700 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
助理工程师, 积分 1300, 距离下一级还需 700 积分
助理工程师, 积分 1300, 距离下一级还需 700 积分
利用一个I/O脚,用示波器测量。
主题帖子积分
中级工程师, 积分 3109, 距离下一级还需 1891 积分
中级工程师, 积分 3109, 距离下一级还需 1891 积分
主题帖子积分
专家等级:结帖率:96%
主题帖子积分
中级工程师, 积分 3109, 距离下一级还需 1891 积分
中级工程师, 积分 3109, 距离下一级还需 1891 积分
最简单的方法,利用单片机的Timer,程序开始运行起动,结果停止,再计算Timer的时间,就可以知道程序运行的时间了,只不过这个前提是晶振你知道他的频率,不然就有误差。
主题帖子积分
初级工程师, 积分 2171, 距离下一级还需 829 积分
初级工程师, 积分 2171, 距离下一级还需 829 积分
主题帖子积分
专家等级:结帖率:97%
主题帖子积分
初级工程师, 积分 2171, 距离下一级还需 829 积分
初级工程师, 积分 2171, 距离下一级还需 829 积分
fushaobing 好主意
主题帖子积分
技术达人, 积分 9245, 距离下一级还需 755 积分
技术达人, 积分 9245, 距离下一级还需 755 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
技术达人, 积分 9245, 距离下一级还需 755 积分
技术达人, 积分 9245, 距离下一级还需 755 积分
利用调试工具的function profile功能. 要看你用的调试器功能是不是够全面了.
主题帖子积分
高级技术员, 积分 522, 距离下一级还需 478 积分
高级技术员, 积分 522, 距离下一级还需 478 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
高级技术员, 积分 522, 距离下一级还需 478 积分
高级技术员, 积分 522, 距离下一级还需 478 积分
主题帖子积分
助理工程师, 积分 1189, 距离下一级还需 811 积分
助理工程师, 积分 1189, 距离下一级还需 811 积分
主题帖子积分
专家等级:结帖率:33%
主题帖子积分
助理工程师, 积分 1189, 距离下一级还需 811 积分
助理工程师, 积分 1189, 距离下一级还需 811 积分
在程序运行完后输出一条指令
主题帖子积分
资深技术员, 积分 441, 距离下一级还需 59 积分
资深技术员, 积分 441, 距离下一级还需 59 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
资深技术员, 积分 441, 距离下一级还需 59 积分
资深技术员, 积分 441, 距离下一级还需 59 积分
编译器有这个功能,可以看程序的运行时间的 。
主题帖子积分
资深技术员, 积分 333, 距离下一级还需 167 积分
资深技术员, 积分 333, 距离下一级还需 167 积分
主题帖子积分
专家等级:结帖率:87%
主题帖子积分
资深技术员, 积分 333, 距离下一级还需 167 积分
资深技术员, 积分 333, 距离下一级还需 167 积分
keil就有这个功能
主题帖子积分
初级技术员, 积分 61, 距离下一级还需 39 积分
初级技术员, 积分 61, 距离下一级还需 39 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
初级技术员, 积分 61, 距离下一级还需 39 积分
初级技术员, 积分 61, 距离下一级还需 39 积分
keil中的仿真功能,在语句前后设置断点,计算时间差
主题帖子积分
初级技术员, 积分 84, 距离下一级还需 16 积分
初级技术员, 积分 84, 距离下一级还需 16 积分
主题帖子积分
专家等级:结帖率:61%
主题帖子积分
初级技术员, 积分 84, 距离下一级还需 16 积分
初级技术员, 积分 84, 距离下一级还需 16 积分
delin17 发表于
最简单的方法,利用单片机的Timer,程序开始运行起动,结果停止,再计算Timer的时间,就可以知道程序运行的 ...
如果我运行的程序时间超过定时器的最大时间该怎么改进一下呢?
主题帖子积分
中级工程师, 积分 3309, 距离下一级还需 1691 积分
中级工程师, 积分 3309, 距离下一级还需 1691 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
中级工程师, 积分 3309, 距离下一级还需 1691 积分
中级工程师, 积分 3309, 距离下一级还需 1691 积分
<font color="# 发表于
如果我运行的程序时间超过定时器的最大时间该怎么改进一下呢?
假设你定时器中断时间为1ms。
那么,设一个unsigned long变量(32位,16位可能不够),开机就启动,每中断一次就+1。
32位从全0变成全1要多少个1毫秒,你自己算吧。。。
精华达人奖章
等级类勋章
湍急之河流
发帖类勋章
时间类勋章
技术高手奖章
人才类勋章
涓涓之细流
发帖类勋章
技术奇才奖章
人才类勋章
社区建设奖章
等级类勋章
时间类勋章
技术导师奖章
人才类勋章
精英会员奖章
等级类勋章
时间类勋章
沉静之湖泊
发帖类勋章
欢快之小溪
发帖类勋章
晶莹之水滴
发帖类勋章
技术新星奖章
人才类勋章
时间类勋章
热门推荐 /3基于51单片机的定时系统,定时器程序到底该怎么加 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
基于51单片机的定时系统,定时器程序到底该怎么加
10:26:39  
以下是我的主函数,现在能实现的功能是,时间、温度、湿度交替显示。现在想实现的功能是当湿度条件到达时,使继电器动作闭合四个小时,谁能讲一下定时器程序应该怎么加,谢谢!
void main()
unsigned char i,j,k;
unsigned char *datP
unsigned int temp,temp1,s,m;
// S_Time&&RTC={0x00,0x33,0x23,0x04,0x21,0x05,0x15}; //初始化时间结构体变量(设置时间:日 14:59:55&&星期一)
//& && && &&&55秒 59分 14时 周一 10日 11月 14年
UartInit();
MAX7219_Init ();//初始化MAX7219
MAX7219_SetBrightness (5) ;//亮度设置 1-15 min-max
adcinit();
&&TIME_Dsip();//显示时间
&&Delay(100);
&&adcinit(1);
&&temp=adcmea(1);
&&Temp_Dsip((char)temp);
&&Delay(100);
&&adcinit(0);
&&temp=adcmea(0);
&&Temp_Dsip((char)temp);
&&Delay(100);
&&Read_RT();//显示温度
&&temp=TMP_BCD();
&&temp=temp&&4;
&&Temp_Dsip((char)temp);& &
&&Delay(100);
&&temp=RH_BCD();//显示湿度
&&temp=temp&&4;&&
&&Hum_Dsip((char)temp);
&&Delay(100);
&&InitADC();
&&s= GetADCResult(1);
&&m=s/1000;
&&MAX7219_DisplayChar (0x01,&&m);
&&MAX7219_DisplayChar (0x02,&&m);
&&m=(s%100)/10;
&&MAX7219_DisplayChar (0x03,&&m);
&&MAX7219_DisplayChar (0x04,&&m);
&&Delay(100);
&&Uart_Send(UART_DataBuff);
等待验证会员
10:44:39  
//配置为双8位定时器,主函数
& & & & TMOD =&&0x01;
& & & & TH0 = (65536 - 45872) / 256 ;
& & & & TL0 = (65536 - 45872) % 256 ;
& & & & EA = 1;
& & & & ET0 = 1;
& & & & TR0 = 1;
//下面为一分钟计时,自己去改后加入继电器程序
void T0_Time() interrupt 1
& & & & & & & & TH0 = ()/256 ;& &
& & & & & & & & TL0 = ()%256 ;& & & &
& && && && && & num1++;& & & &
& & & & & & & & if (num1 == 20)
& & & & & & & & {
& & & & & & & && && & num1==0;
& & & & & & & & }& & & &
10:48:25  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
//配置为双8位定时器,主函数
& & & & TMOD =&&0x01;
加在哪里呢,主要我有一个湿度达到一定值才开启计时四小时的条件
10:49:21  
本帖最后由 xintuxing 于
11:01 编辑
首先要配置相关的定时器寄存器和中断寄存器:TMOD,TCON,IE,具体的配置位请查询相应资料。
第二,在文件的任何位置(不是头文件之前和其他函数里面)添加下面函数
void Time_SER()&&interrupt&&1//定时器0中断程序
& && && &TL1 = 0;& && &&&//这两句是初值重装 ,可以是其他的比如50mS中断一次
& && &&&TH1 = 0;& && &&&if(湿度值==湿度条件)
& && && && && &继电器关闭;
& && && && &&&计数条件=1;
& && &if(计数条件) Count++;
& && &if(Count&=20)//50mS中断一次20次就刚好一秒
& && && && && &Count=0;//清零,等待下一次计满20
& && && && && &Sec++;//秒增加
& && && && && & if(Sec&59)
& && && && && &{
& && && && && && && && &MIN++;
& && && && && && && && &if(MIN&240)//四小时
& && && && && && && && & {
& && && && && && && && && && && & 继电器开启;
& && && && && && && && && && && & MIN = 0;//等待下一次
& && && && && && && && && && && & 计数条件 = 0;
& && && && && && && && &&&}
等待验证会员
10:54:29  
加在哪里呢,主要我有一个湿度达到一定值才开启计时四小时的条件
就是达到后把TR0=0,变成TR0=1,打开定时器,就开启4小时了,之后在中断函数使TR0=0,就行了,希望有帮助。
11:11:16  
就是达到后把TR0=0,变成TR0=1,打开定时器,就开启4小时了,之后在中断函数使TR0=0,就行了,希望有帮助。
能留个QQ么,后期有问题向您咨询,谢谢了
等待验证会员
11:12:15  
能留个QQ么,后期有问题向您咨询,谢谢了
& && && && && && &&&
Powered by
供应链服务
商务及广告合作
Jeffery Guo
关注我们的微信
供应链服务 PCB/IC/PCBA
版权所有 (C) 深圳华强聚丰电子科技有限公司}

我要回帖

更多关于 单片机定时器中断 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信