1.定时器TMOD寄存器
C/T这一位用来控制定时器工作方式。本来T上面有一横表示低电平有效。c为计数,也即是及外部脉冲的个数,也会是定时器溢出及中断。GATE这一位用来设定外部中断脉冲是否可启动定时器。 意思就是当GATE=1时,定时器的启动有二个位控制,即TR0和int0(这是对定时器0来说的,T1的话上二位就是1)。定时器只有在上二位都是一的情况下才会启动。我们就可以利用这个功能来测量脉冲的宽度。
我们知道在其他单片机中我们测脉冲宽度可以利用外部中断在上升沿河下降沿各读取一次定时器值来测定。但51单片机没有上升沿中断,也就没有办法测出高电平宽度。现在我们可以这样做,令TR0=1,GATE=1,这时定时器的启动只有INT0控制。当INT0为高电平时定时器启动,为低电平时定时器关闭。我们设置下降沿中断,在中断中就可以读取高电平所占的时间了。但是这样做只能得到高电平时间按。要想得到脉冲周期,可以再开一个定时器,另外一个就正常工作,这样就可以得到脉冲周期。也就可以求出脉冲宽度了。
T0的工作方式3相信很少人记得,我还没有用过,但是我感觉做起码在我们需要用到的时候,还知道有这个功能。方式3可以把T0当作二个独立的计数器使用。在高级应用中肯定会有用吧。
定时器会存在误差,原因是在执行定时器中断的时候,会占用3到8个机器周期不等。这段时间我们并没有算到计数器初值里面。要想消除误差:1.可以把定时器低八位设为0,中断中只要给TH0赋值,因为此时定时器已经开始启动了,低八位其实已经不是0了。2.将低四位设为0.赋初值时,利用ORL TL1,# ;加上你设定的初值。还有其他方法。
还有一点T0和T1的工作方式2看似工作方式是一样的,其实T1在方式2的时候不能中断,而T0是可以中断的。
关键字:51单片机 定时器 寄存器
引用地址:
51单片机定时器总结
推荐阅读最新更新时间:2024-03-16 13:25
51单片机-数码管小数点
1.显示小数点 我们可能忽略了数码管上还有一段发光二极管,这个在它的右下角,平时我们点亮这个小点是用来表示数字的小数点。要想让这个小数点即使显示的数字一直变但它还是保持常亮状态有什么办法吗。 我们不可能为每一个数字再弄一个带小数点的真值表数组,这样太麻烦了,熟悉C语言知识的话,我们用另一种方法。 大家要明白这个知识点:(0x7F)&(0xC0)=0x40 用二进制表示 0111 1111 & 1100 0000 = 0100 0000 01000000(0x40)就是使数码管显示0的同时还显示小数点了 所以不管是0xC0还是要显示其他数字,我们只要“0x7F & LedBuff ”就能保持住
[单片机]
基于51单片机开发板8*8LED矩阵的贪吃蛇程序
引语:过年的时候闲着无聊,恰好也刚学了点51开发板的东西,所以就想写一个贪吃蛇的小程序。在网上总结了一些关于贪吃蛇的算法,于是就有了以下的程序。 先来说以一下算法的原理:将8*8LED看作是直角坐标系,将左上角定为坐标原点。定义两个数组 snake_x ,snake_y 用来存储蛇的x,y轴坐标。因此,我们的核心算法就是小蛇惯性保持自己的运动姿态,产生食物,以及小蛇吃到食物后长度增加。 再来看一下我的开发板,我的开发板是德飞莱51开发板,这里不再讲解其8*8LED的工作原理,直接上代码 void Hc595SendByte() { unsigned char a; SRCLK=0; RCLK=0; for(a=
[单片机]
51单片机学前预备知识
一.单片机的概念: 在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。 二.单片机的用途: 工业自动化:数据采集,测控技术; 智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等; 消费类电子产品:洗衣机、电冰箱、空调机、手机等; 凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根据具体实际情况选择不同性能的单片机,如:atmel,stc,pic,avr,凌阳,80C51,arm等。 三.怎么学单片机: 实践第一;补充必要的理论知识,即缺什么补什么;做工程项目积累经验。(可在网络上搜索些题目,也可自己有什么想法大胆的去试验。)。 四.为什么选择51
[单片机]
写了一个 51单片机外部中断程序
/*以下是能在keilC 中变异的源码,直接粘贴过去就行,外部中断0(INT0)和外部中断1都有(INT1)*/ /*程序很简单,但是对新手来说还是很实用的*/ /*******************************************************************/ /* */ /* 单片机开发系统演示程序 - INT0 INT1 中断计数 */ /* */ /* 6位数码管显示 */ /*
[单片机]
89S51单片机看门狗功能的使用方法
在ATMEL的89S51系列的89S51与89C51功能相同,指令兼容。HEX程序无需任何转换可以直接使用。89S51只比89C51增加了一个看门狗功能。 向看门狗寄存器(WDTRST地址是0A6H)中先写入01EH,再写入0E1H,即可激活看门狗。 汇编程序如下: Mov 0A6H,#01EH ;先送1E Mov 0A6H,#0E1H ;后送E1 C51程序如下: 在AT89X51.h声明文件中增加一行 sfr WDTRST = 0xA6来声明看门狗寄存器。 Main() { WDTRST=0x1E; //先送1E WDTRST=0xE1; //后送E1 喂狗指令与激活相同: WDTRST=0x1E; WDTRST=0xE1; 注
[单片机]
51单片机驱动DS12C887的时钟芯片C语言程序
本程序旨在读出DS12C887的时间,显示部分只做了分和秒的部分,已通过测试,详细注释很好用的。 #include absacc.h #include reg51.h #define uchar unsigned char #define MCA XBYTE /*寄存器A*/ #define MCB XBYTE /* 寄存器B*/ #define MCC XBYTE /* 寄存器C*/ #define MCD XBYTE /*寄存器D */ #define HOURW XBYTE /*时报警*/ #define SECONDW XBYTE /*秒报警*/ #define YEAR XB
[单片机]
怎样研发一个以80C51单片机为核心的压力测量控制系统?
1 引言 目前我国发展煤炭生产机械化发展迅速。综采设备的应用,是提高效率、改善安全状况的措施。 影响开机率的一个主要因素是支架对工作面的顶板控制的好坏,因此,对综采工作面进行矿压监测与控制是很有必要的。要做到这一点,首先需要对井下工作面的液压支架的实际工作状况进行监测,通过对检测数据处理、分析,评定其效果,并采取相应措施,以提高开机率、提高产量。本文以监测综采液压支架的压力为研究内容,开发了一套基于单片机的压力测量控制系统。 2 压力测量控制系统功能设计 压力测量控制系统用于监测支架压力, 每台测量控制系统配有四只传感器, 可分别通过高压油管连接支架的立柱、平衡千斤顶, 前探梁千斤顶的油压腔。压力测量控制系统接收到通讯测量控制
[单片机]
基于51单片机的交通灯控制系统课程设计
一、设计要求: 1,十字路口的交通控制系统指挥着人和各种车辆的安全运行,对交叉口实行科学的管理与控制是交通控制工程的重要研究课题,是保障交叉口的交通安全和充分发挥交叉口的通行能力的重要措施,是解决城市交通问题的有效途径。交通灯信号灯的出现是人类历史上的一次重大改革,使人类的聚居生活,产生了深远的影响。使交通得以有效管制,对于疏导交通流量,提高道路通行能力,减少交通事故有明显效果。如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。随着电子技术的发展,利用单片机技术对交通灯进行智能化管理,已成为目前广泛采用的方法。
[单片机]