定时器/计数器0之定时器

/*
效果说明:
      定时器中断:通过单片机计数使程序执行
      一秒中断一次,中断发生时高四位亮一秒,中断发生后又回到主程序

*/

#include <reg51.h>
#include <stdio.h>
unsigned int i;
void delay()//延时子函数
{
   i=1000000;
   while(i--);//执行一次大概要一毫秒 这里给它一秒就是中断发生时高四位亮一秒
  }

//中断初始化
void zhongduan1()
{
   ET0 = 1;//启动计数器中断开关
   EA = 1;//总开关
   /*
   定时器的核心在这
   */
   TMOD = 0x09;
   TH0 = 0x0D8;
   TL0 = 0x0F0;
   TR0 = 1;//启动定时器
 }

void main()//主函数
 {
    zhongduan1();//中断初始化
    while(1)//while死循环,主程序一直执行,也就是点亮低四位一直亮,中断发生时就跳出执行中断函数程序,中断发生后又回到主程序
    {
      P0 = 0xf0;//点亮低四位
    }
 }

 //中断程序 也就是中断后要执行的程序
 void zhongduan() interrupt 1
 {
      i++;
    if(i == 10)//让中断函数再循环10再执行其程序
    {  i = 0;
       P0 = ~0xf0;//高四位亮
    delay();//延时子函数调用  变现为中断发生时所要执行程序的时间
    TH0 = 0x0D8;
    TL0 = 0x0F0;
     }

}    

时间: 2024-11-02 18:44:35

定时器/计数器0之定时器的相关文章

N76E003的定时器/计数器 0和1

定时器/计数器 0和1N76E003系列定时器/计数器 0和1是2个16位定时器/计数器.每个都是由两个8位的寄存器组成的16位计数寄存器. 对于定时器/计数器0,高8位寄存器是TH0. 低8位寄存器是TL0. 同样定时器/计数器1也有两个8位寄存器, TH1 和TL1. TCON 和 TMOD 可以配置定时器/计数器0和1的工作模式. 通过TMOD中的 位来选择定时器或计数器功能. 每个定时器/计数器都有选择位,TMOD的第2位选择定时器/计数器0功能,TMOD的第6位选择定时器/计数器1功能

51单片机中断机制(定时器/计数器)

单片机中断简介 52单片机一共有6个中断源,它们的符号,名称以及各产生的条件分别如下: INT0 - 外部中断0,由P3.2端口线引入,低电平或下降沿引起 INT1 - 外部中断1,由P3.3端口线引入,低电平或下降沿引起 T0    - 定时器/计数器0中断, 由T0计数器计满回零引起 T1    - 定时器/计数器1中断, 由T1计数器计满回零引起 T2    - 定时器/计数器2中断, 由T2计数器计满回零引起 TI/RI - 串行口中断,串行端口完成一帧字符发送/接收后引起 其中T2是5

定时器计数器中断

定时器/计数器的工作由TMOD与TCON两个寄存器控制,TCON是控制寄存器,控制启动停止以及设置溢出标志,TMOD确定工作方式和功能.计数器溢出时会使得TCON寄存器中TF0或者TF1置1,并向CPU发出中断请求. TMOD 工作方式寄存器 TMOD在单片机复位时全部被清零,其高四位设置定时器1,低四位设置定时器0:四位的意义如下: GATE:门控制位,=0定时器的启动停止仅受TCON寄存器控制,=1时受TCON控制器和外部中断引脚电平状态共同控制: C/T:定时器与计数器模式选择,=1为计数

单片机 定时器/计数器

一.什么是定时器/计数器 在51单片机中,定时器/计数器是用来实现定时功能,并且具有计数的功能,来实现对外部信号的计数. 二.定时器/计数器有什么类型 在51单片机中,分为软件定时器,不可编程硬件定时器,可编程定时器. 软件定时:CPU每执行一条指令时,是需要固定时间的,所以,通过执行空指令可以达到延时的效果,这样子做的代价是占用CPU时间,所以一般很少这么做. 不可编程硬件定时器:是由电路和硬件来完成定时功能的,一般采用基电路,外接定时部件(电阻和电容),通过改变电阻的阻值和电容的电容值来修改

定时器/计数器实验报告

/************************************************* 实验名称:定时器实验一 实验目的:利用定时器/计数器让发光二极管以1HZ闪烁 *************************************************/ #include<reg52.h> sbit P10 = P1^0; unsigned char flag; void main() { flag = 0; P10 = 0; TH0 = 0xfe; TH0 = 0x

定时器计数器工作方式

1.方式0          方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成.TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求. 方式1      方式1的计数位数是16位,由TL0作为低8位,TH0作为高8位,组成了16位加1计数器 . 计数个数与计数初值的关系为:X=216-N 方式2      方式2为自动重装初值的8位计数方式. 计数个数与计数初值的关系为:X=28-N工作方式2特别适合于用作较精确的脉冲信号发生器.

毕业回馈-89c51之定时器/计数器(Timer/Count)

今天分享的是89c51系列单片机的内部资源定时器/计数器,在所有的嵌入式系统中都包含这两个内部功能. 首先先了解几个定时器/计数器相关的概念: ?时钟周期:时钟周期 T 是时序中最小的时间单位,具体计算的方法就是1/时钟源频率,(一般单片机采用的是11.0592mHz) ?机器周期:我们的单片机完成一个操作的最短时间.标准51单片机,一个机器周期是 12 个时钟周期,也就是 12/11059200 秒. ?定时器:当T/C工作在定时器时,对振荡源12分频的脉冲计数,即每个机器周期计数值加1,计数

TCP的定时器系列 — 零窗口探测定时器

主要内容:零窗口探测定时器的实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 出现以下情况时,TCP接收方的接收缓冲区将被塞满数据: 发送方的发送速度大于接收方的接收速度. 接收方的应用程序未能及时从接收缓冲区中读取数据. 当接收方的接收缓冲区满了以后,会把响应报文中的通告窗口字段置为0,从而阻止发送方的继续发送, 这就是TCP的流控制.当接收方的应用程序读取了接收缓冲区中的数据以后,接收方会发送一个ACK,通过 通告窗口字段告诉发送方自己又可

TCP/IP之坚持定时器、报活定时器

TCP中的四个定时器: 1.超时定时器(最复杂的一个) 2.坚持定时器 3.保活定时器 4.2MSL定时器 坚持定时器用于防止通告窗口为0以后c/s双方相互等待死锁的情况:而保活定时器则用于处理半开发连接: 一. 坚持定时器 坚持定时器的原理是简单的,当TCP服务器收到了客户端的0滑动窗口报文的时候,就启动一个定时器来计时,并在定时器溢出的时候向向客户端查询窗口是否已经增大,如果得到非零的窗口就重新开始发送数据,如果得到0窗口就再开一个新的定时器准备下一次查询.通过观察可以得知,TCP的坚持定时