单片机设置定时器TOMD的一些问题 都没有办法和你说了,你都弄清楚了定时器0为工作方式就是1,TMOD=0x01,那我想定时器1为工作方式1呢,这个配置和T0配置完成一样。TMOD高4位是T1低4位是T0TM0D=0x10 这样不就定时T1 模式1吗,在TOMD高4位配置就是T1低四位配置就是T0,我这么讲你在不明白,那你就别学习单片机了,希望我的回答对你有帮助!
两个数码管显示的数值可以作为单片机定时器的定时时间吗? 请你明确你的程序具体出什么问题,别让我们再去读整个程序啊!你可以这样描述:不显示、计数不正确、时间间隔不正确等等…大致看了一下,感觉有几个思路问题,给你些提示吧:1.你的程序会不断的执行display(),原因是超级循环体里面没有对display的执行条件予以限制,我想着一定是你不希望的吧,而且通常这样会带来问题!解决:增加一个标志变量,你的限定条件是1秒刷新一次显示,在定时器中断中计数到达1秒时置位这一个标志,在超级循环体中的部分使用:if(标识变量){display();标识变量=0;清零标志,很重要!}你上面的程序 if(a=20){} 也可以有类似的效果,不过你没有把display包括进去就有问题了。2.从优化的角度讲TH0=(65536-50000)/256这样的语句是垃圾代码,你应该把具体的值算出来填写上去才对,否则单片机运行的时候还需要计算这个太浪费。如果你想程序便于理解又便于维护你可以这样:define THVALUE(65536-50000)/256TH0=THVALUE;这样在编译的时候编译器会帮你完成计算。同样是优化,temp计数再转换成个十百位也不理想,其实本例中你的temp没有其它用处,你完全可以这样:ge+;if(ge=10){shi+;ge=0;}if(shi=10){bai+;shi=0;}if(bai=10){bai=0;。
单片机怎么做定时器 能定时几个小时到几十个小时的 用定时器定时500ms,然后用变量进行计数,设置秒,分,小时,最好用汇编,只要考虑好,误差是很小的。你可以从网上搜一下51单片机设计的校园打铃的程序参考。。
单片机定时器定时的时间怎么算? 单片机的2113定时时间的计算公式=计数值(5261定时值)*机器周期=计数值(4102定时值)*12/晶振频率。上面的两个等号是等1653价的,因为,单片机的机器周期=12秒/晶振频率,因此两个公式通用。完成一个基本操作所需要的时间称为机器周期。一般,一个机器周期由 若干个S周期(状态周期)组成。80C51系列单片机一个机器周期由6个S周期组成。一个S周期(状态周期),由2个时钟周期组成。若干个机器周期,组成了指令周期。根据指令不同,所需的机器周期数也不同。扩展资料几种典型指令;1、单字节周期指令(比如 INC A)2、双字节单周期指令(比如 ADD A,#data)3、单字节双周期指令(比如 INC DPTR)4、单字节双周期指令(比如MOVX A@DPTR)参考资料来源:《单片机初级教程 单片机基础》张迎新 杜小平 等编著 北京航空航天大学出版社第三章 单片机的结构及原理 3.5 CPU时序及时钟电路参考资料来源:-机器周期
用51单片机实现每隔一秒数码管显示刷新一次,用定时器0实现定时功能。但数码管始终没有显示。代码如下: 你这是实物电路板,还是仿真哪?你用了定时器T0,而且写中断子程序,可是,T0却没有开中断哪。加一行ET0=1;要加这一行你的程序还有其它的问题,修改后的程序发在下面,并有仿真图。includeincludeunsigned char code LED7Code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,/0-9字模0x88,0x83,0xc6,0xa1,0x86,0x8e};共阳极7段数码管A-F字模,原来的是错误的.unsigned char num,temp;void system_init(){EA=1;开中断总开关ET0=1;加一行,开定时器T0中断TMOD=0x01;定时器0方式1TH0=(65535-50000)/256;定时50msTL0=(65535-50000)%256;num=0;temp=0;TR0=1;开定时器0P0=LED7Code[num];不能是num+}void main(){system_init();参数初始化while(1){if(temp=20)/定时1s,刷新数码管数字显示{temp=0;标志位置零,计数程序修改后是这样的num+;原来的写法有问题if(num>;15)num=0;P0=LED7Code[num];显示字符,不能是num+}}}void Time()interrupt 1 using 1/中断函数{TH0=(65535-50000)/256;定时50msTL0=(65535-50000)%256;temp+;}
如何用单片机的定时器精确定时? 用单片机本身的定时来做2113电子表,我个人认为,这种5261方法不可取,现在有很多时钟4102芯片,与1653单片机接口也很简单,它有专门的外部晶振,而且在时间精确是,是绝对准确的。只要你能够按照时序与它产生通讯,就可以达到时间的精确。毕竟,单片机本身不是专让用来做时钟的,而专门的时钟芯片才会有此条件。这是我们公司主板时钟电路图,此芯片除了时钟功能,还自带2KB FLASH存储器,双功能,你可以参考一下。比起你用单片机模拟定时,效率高得多,而且与单片机的接口只有两根线,接口简单,操作方便,关键还可以当EPPROM用。如果你要具体资料,可以联系我,我还可以给你提供程序参考