怎么利用51单片机计时器计时500m in?

作者&投稿:丛店 (若有异议请与网页底部的电邮联系)
~ 我说一下原理
12MHZ的51单片机,定时器最大只能定时65.535ms,所以要定时500ms的时间,
需要产生10次50ms的定时。
步骤如下:
1、每隔50ms定时器中断溢出,计数+1。
2、当计数达到10次时,便产生了500ms的定时啦,然后,你自己根据你的设计,需要让单片机做什么就自己写些什么(比如让某个io口取反)
3、计数达到10次后,不要忘了初始化计数。
最后给点建议:1、要让定时器计数50ms,只能在定时器的工作方式1下进行;
2、定时器初值: TH0 = 0x3C; TL0 = 0x0B0;(我使用的是定时器0)
思路和原理都给你了,只要你看懂了,想让计时器计时多少s都如鱼得水。


举例说明51内核单片机定时器\/计数器的主要用途
计时器与计数器其实质是相类似的,可以这样理解,定时器只是个特殊的计数器,计数器是对外部的脉冲进行计数,而定时器是对单片机的系统时钟进行计数,而系统时钟是非常精准的,可以精确的计算出间隔时间所以叫定时器。由此可以想象出他们的用处,用处非常多,不好列举。比如 计数器:可以对外部的的脉冲信号...

急!51单片机定时计数器实验编程(汇编语言)
将计数值按二进制数在P1口驱动发光二极管显示出来,到15秒后,计数值清零再从0开始计。--这些发光二极管,是低电平发光,还是高电平发光?下面的程序,适合于低电平发光:ORG 0000H LJMP START ORG 000BH DEC A MOV P1, A RETI ORG 0030H START:MOV TMOD, #16H MOV ...

51单片机中实现计数功能
你的代码基本是对的,只是51单片机的存储类型比较乱,80H单元是不能直接寻址的。您的代码第一行 count equ 80h ,之后的代码中对count的直接寻址实际是对SFR而不是片内RAM操作,所以工作异常。代码第一行 count equ 80h 改为 count equ 40h 即可对P3.7的脉冲计数。至于代码用于P3.7接实际的...

51单片机制作简易数字频率计程序
这里有一个四位数码管的频率计,供参考 include <reg52.h>#define uchar unsigned char#define uint unsigned intuchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; \/\/所需的段的位码\/\/uchar wei[4]={0XEf,0XDf,0XBf,0X7f}; \/\/位的控制端(开发板)uc...

怎样用51单片机的计数器0来计一个脉冲宽度
将计数器设置成计数模式,时钟输入选择外部输入,也就是你那个脉冲作为时钟,开始计数即可

51单片机的计数器如何来记录外部送给单片机的脉冲的C程序
如果要记录多少个,比如计数初值装0,那么在你设定的计数时间段内,如果计数值超过了65536个那么我们可以通过开计数中断的方式,来进行进位累加啊,每产生一次计数中断这进位标志加一啊.比如在1秒钟内,我们的进位标志设为CONT,那么计数N=65536*CONT+HT0+TL0(设用TO做计数器);每过完一秒钟我们清零CONT,HT0...

51单片机制作频率计,测周法如何测量(用T0和T1两个就可以了吗),求大虾...
include <REG51.H> define U8 unsigned char U8 code tab[]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28};U8 code scn[]={0x7f,0xbf,0xdf,0xef};\/\/先点亮左边一个数码管 U8 buf[4]={0,0,0,0};\/\/ 显示缓冲区 U8 cnt = 0; \/\/ 扫描计数 unsigned int freq...

51单片机的数字频率计
      由P3.4输入信号,低电平有效,触发T0外部中断。当T0触发中断的时候执行的程序。这里只进行了一个操作,t0++。所以,t0的值表示触发了几次中断,也就表示接受到的脉冲几次从0到65536。所以会有t0*65536。 另外,由于计时的机制是THO++、TL0++,所以,THOTL0就表示当前的计...

请问如何在51单片机上实现8路独立计时器?
先挑准一个或者两个时间基数,比如你这8路分别要是 5s 2s 3s 7s 1分钟 6分钟 3分钟 10分钟 ,那么你就选1s和1分钟做时间基数。用tmer0和tmer1分别来实现。比如在tmer0中断中用一个变量x计数,每中断一次,x就自加一(x++),比如:当在tmer0中断里当x为3的时候,就响应3s那路的定时。5...

怎样用51单片机P3.3口外部电平变化做一个4位数码管显示的计数器?要求...
\/*p0口接段选,p1口接位选*\/ include"reg51.h"define uchar unsigned char define uint unsigned int uchar qian,bai,shi,ge;uint num=0;uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};\/\/共阴数码管的编码 void ISR(void)\/\/中断服务程序 { num++;qian=num...

班戈县18585355178: 怎样使用51单片机的定时器? -
娄栏博乐: 1. 设定工作方式TMOD=..... 2. 装入初值 TH0=...TL0=....TH1=....TL1=..... 3.开启定时器中断和总中断ET0=1或ET1=1 EA=1 4.启动时器 TR0=1 TR1=1 5.写中断服务程序 其中 3和5可以没有

班戈县18585355178: 如何利用51单片机实现一个计时器? -
娄栏博乐: 方法一:用定时器中断计时模式循环计时.方法二:用CPU消耗时钟周期指令计时(浪费资源).思路:用定时器中断计时,溢出时形成中断信号,标识为一个基本周期t,所定时间T/t=n为周期循环数,到时形成定时触发信号.

班戈县18585355178: 如何用51单片机输出500kHz的时钟频率 -
娄栏博乐: 对于传统51单片机,如果晶振12M,不断地执行访问外部存储器指令,ALE引脚上可以输出500kHZ的脉冲信号

班戈县18585355178: 单片机怎么做定时器 能定时几个小时到几十个小时的 -
娄栏博乐: 用定时器定时500ms,然后用变量进行计数,设置秒,分,小时,最好用汇编,只要考虑好,误差是很小的.你可以从网上搜一下51单片机设计的校园打铃的程序参考.另外,可以用专门的时钟芯片,比如DS1302之类的.

班戈县18585355178: 51单片机怎么实现计时? -
娄栏博乐: 嘿嘿 还是让俺来帮你解决吧 1 关于定时器定时时间的计算问题:如果使用的是12M晶振计算,指令周期1uS,定时器是加1计数器,即是对内部时钟即指令周期脉冲计数 每当1uS到时,计数器加1.假设 定时器的初始值=X,则每到1uS 计数器...

班戈县18585355178: 如何用单片机制作倒数计时器 -
娄栏博乐: 也就是百倒计时30秒吗? 用内部定时器就可以, 以51为例度 60ms*500=30s(每次定时60毫秒 循环500次) 60ms初值 TC=版2^16-60000=5536=15A0(H) ORG 0000HLJMP MAINORG 000BHLJMP TO_INT ;ORG 0100H MAIN: MOV IE ,#...

班戈县18585355178: 如何利用单片机产生500HZ的信号 -
娄栏博乐: 使用单片机的定时器可以产生500Hz的信号 以51单片机为例,程序如下:#include<reg51.h> sbit Wave=P1^6; unsigned char k=0; void main() { Wave=0; EA=1;//开总中断 TMOD=0x01;//设置定时器0为工作方式1 TH0=(65536-10000)/256; TL0=(...

班戈县18585355178: 51单片机的定时器计时怎样计?51单片机的定时器计时怎样计算
娄栏博乐: 51但单片机的定时,要先计算,然后根据要求编写程序,计算会用到公式:t=Tc*(2L-TC)=12/f*(2L-TC) t是定时时间 Tc是机器周期 fs是晶振频率 L是计数器的长度 对于T0,T1有下面三种方式:

班戈县18585355178: 利用51单片机的定时器1(t1)产生一个500hz的方波,由p1.1口输出,晶振12mhz采用 -
娄栏博乐: t=1/f t=2ms 周期为2ms 利用定时器每1ms进入一次中断,中断中将p1,1输出状态改变 就可以输出500hz的方波

班戈县18585355178: 单片机实现500KHZ时钟信号 -
娄栏博乐: 500kz的时钟周期是2us 在12M晶振的情况下,机器周期1us,不能用中断,因为进中断就要3个机器周期即3us就已经超出了时钟周期(另外退中断和高低电平切换也要花掉若干个机器周期)用程序的话 LOOP: CPL P1.0 ---- 1US AJMP LOOP ----...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网