51单片机定时器的查询和进入中断处理

2023-05-16

51单片机定时器可用两种方式处理:查询和进入中断处理。

1.查询方式

void Init_T0 (void) 定时器初始化

{

    TMOD = 0x01;//计时器模式

    TH0 = (65535-65000) /256;//初装值为65536-65000,逐步+1,最后加到65535,溢出TF0=1

    TL0 = (65535-65000) %256;

    EA = 0;//关闭全局中断

    ET0 = 0;//关闭定时器中断

    TR0 = 1;//启动定时器

}

 

void Main() 主函数

{

    Init_T0 ();

    Speak1 =1;

    while(1)

    {

        if(TF0==1) 查询中断标志

        {

            Speak1=~Speak1;

            //TH0 = (65535-65000) /256;

            //TL0 = (65535-65000) %256;

 

            TF0=0;//对于查询方式,一定要手动清除中断溢出标志。

        }

    }

}

2.进入中断处理

void Init_T0 (void) 定时器初始化

{

TMOD = 0x01;

TH0 = (65535-65000) /256;

TL0 = (65535-65000) %6;

EA = 1;

ET0 = 1;

TR0 = 1;

}

 

void Time0_Int() interrupt 1 中断处理函数

{

    Speak1=~Speak1;

    //TH0 = (65535-65000) /256;

    //TL0 = (65535-65000) %256;

    //TF0=0;//中断处理方式,硬件会自动清除中断溢出标志。

 

}

 

void Main() 主函数

{

    Init_T0 ();

    Speak1 =1;

    while(1); 等待中断

}

 

对于查询方式,一定要手动清楚中断标志。

上面2段程序,我屏蔽了,中断时重新装计数初值的语句,程序都可正常运行,所以我认为无论对于那种处理方式,重装初值都不必要。

初始化时,可定义输出口的初始状态。而在处理中断时,一定要用取反语句。手动置0或1,程序将不能正常运行。

 

对于方式2,开始main中没写最后的while(1),程序不正常运行。

 

上述定时位宽为16位,最大计数为65535,由于频率为1MHz,约1us,最大计时约65ms。如果计时大于此,可在中断中处理。

程序如下:

int a;

void Time0_Int() interrupt 1

{

if(a++==20)

{ a=0;

Speak1=~Speak1;

}

}

最后说明:51单片机只有溢出中断,将导致标志位TFX置1;而STM32就比较复杂,有许多种定时器中断类型,如更新、触发、匹配捕获。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

51单片机定时器的查询和进入中断处理 的相关文章

  • POCO C++库学习和分析 -- 线程 (一)

    POCO C 43 43 库学习和分析 线程 xff08 一 xff09 线程是程序设计中用的非常多的技术 xff0c 在UI设计 xff0c 网络通讯设计中广泛使用 在POCO库中 xff0c 线程模块可以分成6个部分去理解 锁 xff0
  • 100条经典C语言笔试题目

    100 条经典C语言笔试题目 题目来源 xff1a 1 中兴 华为 慧通 英华达 微软亚洲技术中心等中 外企业面试题目 xff1b 2 C 语言面试宝典 林锐 高质量编程第三版 说明 xff1a 1 部分C 语言面试题中可能会参杂部分和C
  • hadoop2.7完全分布式集群搭建以及任务测试

    要想深入的学习hadoop数据分析技术 xff0c 首要的任务是必须要将hadoop集群环境搭建起来 xff0c 本文主要讲述如何搭建一套hadoop完全分布式集群环境 环境配置 xff1a 2台64位的redhat6 5 43 1台64位
  • /etc/passwd, /etc/shadow

    使用者帐号 xff1a etc passwd etc shadow 由上面的说明您大概已经知道 xff0c 嘿嘿 xff01 帐号管理最重要的两个档案就是 etc passwd 与 etc shadow 了 xff01 这两个档案可以说是
  • 密集负载下的网卡中断负载均衡smp affinity及单队列RPS

    简单的说就是 xff0c 每个硬件设备 xff08 如 xff1a 硬盘 网卡等 xff09 都需要和 CPU 有某种形式的通信以便 CPU 及时知道发生了什么事情 xff0c 这样 CPU 可能就会放下手中的事情去处理应急事件 xff0c
  • 基于stm32f103zet6之最小系统的制作

    因为嵌入式老师一直鼓励我们去学习stm32 xff0c 他说这是一款很不错的片子 xff0c 所以就萌生了学习stm32的念头 xff0c 之前一直在学习基于arm11的OK6410 xff0c 裸机跑到触摸屏就没有再继续了 xff0c 感
  • 基于stm32f103zet6的DS1302学习

    由于硬件出了问题 xff0c 也就是外部低速晶振没用 xff0c 震不起来 xff0c 然后查看了网上的帖子 xff0c STM32的RTC果然口碑不怎么样 xff0c 所以果断换DS1302 xff0c 在移植的过程中还算顺利 xff0c
  • 基于stm32f103zet6之使用FSMC驱动TFT的学习

    在完成IO驱动彩屏的试验后 xff0c 就准备着手使用FSMC来驱动彩屏 xff0c 先了解一下预备知识 一 所谓的FSMC机制 简单介绍FSMC在这篇博文里面很清楚 xff0c 推荐一下 http blog csdn net king b
  • (转)ds18b20时序说明

    ds18b20时序说明 新手在DS18B20读写过程中要犯很多错误 老衲普度众生 xff0c 简要说明它怎么用 1 过程1 2是初始化过程 xff0c 每次读取都要初始化 xff0c 否则18b20处于待机状态 xff0c 无法成功读取 过
  • H桥驱动芯片IR2110功能简介

    1 1 驱动芯片IR2110功能简介 在功率变换装置中 xff0c 根据主电路的结构 xff0c 起功率开关器件一般采用直接驱动和隔离驱动两种方式 美国IR公司生产的IR2110驱动器 xff0c 兼有光耦隔离和电磁隔离的优点 xff0c
  • 关于示波器是否必须要接地线的疑问

    这是一个非常隐蔽的问题 xff0c 稍不注意 xff0c 在接入示波器时 xff0c 就会导致线路板上的某些芯片突然爆炸 xff0c 不仅会对项目产生非常大的影响 xff0c 也足以让我们着实郁闷上几天 所以 xff0c 应该足够引起电路设
  • POCO C++库学习和分析 -- 进程

    POCO C 43 43 库学习和分析 进程 Poco Foundation库中涉及进程的内容主要包括了4个主题 xff0c 分别是进程 Process 进程间同步 xff08 inter process synchronization x
  • Mysql安装后在服务里找不到和服务启动不起来的解决方法

    一 安装完MySQL后找不到服务 在那完MySQL数据库后 xff0c 在计算机管理 61 61 服务和应用程序 61 61 服务中找不到MySQL的服务 解决方法 xff1a 1 以管理员的身份运行cmd或者Windows powersh
  • C++中虚继承

    一 虚继承和虚基类 1 多继承产生的冲突 在C 43 43 中多继承时很容易产生命名冲突 xff0c 即使我们很小心地将所有类中的成员变量和成员函数都命名为不同的名字 xff0c 命名冲突依然有可能发生 xff0c 比如典型的是菱形继承 x
  • 跨平台C++单元测试框架——GTest

    1 简介 GTest是google公司发布的一个跨平台的 Liunx Mac OS X Windows Cygwin Windows CE and Symbian C 43 43 单元测试框架 它提供了丰富的断言 致命和非致命判断 参数化
  • 音频格式之AAC(高级音频编码技术)

    1 简介 ACC xff08 Advanced Audio Coding xff0c 高级音频编码 xff09 是杜比实验室为音乐社区提供的技术 xff0c 出现于1997年 xff0c 基于MPEG 2的音频编码技术 2000年 xff0
  • C++11之lambda回调设置与应用

    在程序中有时候我们需要实现回调效果 xff0c 比如先设置监听 xff0c 然后在后面具体执行完某个操作后再将该操作的结果通知给前面监听中 这种机制实际很常用 xff0c 比如window底下的消息机制 xff0c Qt中的信号槽的机制都有
  • 高速的C/C++编译工具——ccache

    1 简介 ccache xff08 compiler cache 的缩写 xff09 是一个编译器缓存 xff0c 该工具会高速缓存编译生成的信息 xff0c 并在编译的特定部分使用高速缓存的信息 xff0c 比如头文件 xff0c 这样就
  • Django17:内建用户系统

    1 定义 Django带有一个用户认证系统 它处理用户账号 组 权限以及基于cookie的用户会话 用户可以直接是使用Django自带的用户表 2 基本字段 模型类位置from django contrib contrib auth mod
  • Django18:文件上传

    1 上传规范 xff08 1 xff09 前端HTML 文件上传必须为POST提交方式 表达 lt form gt 中文件上传时必须带有enctype 61 multipart formdata 时才会包含文件内容数据 表单中用 lt in

随机推荐

  • Django19:发送邮件

    1 邮件相关协议 xff08 1 xff09 SMTP SMTP xff08 Simple Mail Transfer Protocol xff09 xff0c 简单邮件传输协议 xff08 25号端口 xff09 它是一组用于从原地址到目
  • JsonCpp的基本用法

    1 JsonCpp C 43 43 库 xff0c 允许操作JSON值 xff0c 包括与字符串串行化和序列化 它可在反序列化 序列化步骤中保留现有注释 xff0c 使其成为存储用户输入文件的便捷方式 是一个第三方JSON解析库 xff0c
  • POCO C++库学习和分析 -- 文件系统

    POCO C 43 43 库学习和分析 文件系统 既然作为一个框架性的库 xff0c 自然会提供对于文件系统的操作 在Poco库中 xff0c 封装了一些类去完成上述操作 这些类包括了 xff1a 1 Poco Path 2 Poco Fi
  • C++中的HTTP协议

    1 HTTP Hyper Text Transfer Protocol xff08 超文本传输协议 xff09 是一种通信协议 xff0c 它允许将超文本标记语言 HTML 文档从Web服务器传送到客户端的浏览器 在Internet中所有的
  • C++中析构函数为虚函数

    1 析构函数是否定义为虚函数的区别 xff08 1 xff09 析构函数定义为虚函数时 xff1a 基类指针可以指向派生类的对象 xff08 多态性 xff09 xff0c 如果删除该指针delete p xff1b 就会调用该指针指向的派
  • [Linux C]TCP通讯例程

    这个是最最最基本的例程 xff0c 先开一个坑 xff0c 稍后再慢慢完善 服务端程序 include lt stdio h gt include lt stdlib h gt include lt string h gt include
  • STM32串口环形缓冲区实现

    stm32串口环形缓冲区 一 ringbuff h span class token macro property span class token directive hash span span class token directiv
  • C++系列8:常用库

    1 cmath 数学计算 include lt iostream gt include lt cmath gt using namespace std int main 数字定义 short s 61 10 int i 61 1000 lo
  • C语言 字符串函数

    C语言 字符串函数 一 字符串长度函数 strlen二 不受限制的字符串函数2 1 复制字符串函数 strcpy2 2 字符串连接函数 strcat2 3 字符串比较函数strcmp 三 长度受限制的字符串函数3 1 复制字符串函数 str
  • HTTP基本认证(Basic Authentication)的JAVA示例

    大家在登录网站的时候 xff0c 大部分时候是通过一个表单提交登录信息 但是有时候浏览器会弹出一个登录验证的对话框 xff0c 如下图 xff0c 这就是使用HTTP基本认证 下面来看看一看这个认证的工作过程 第一步 客户端发送http r
  • c++各种常用库

    cmath xff1a 开根号 xff1a include lt iostream gt include lt cmath gt using namespace std int main double x 61 8 cout lt lt p
  • 安装cv2遇到的小问题解决

    前面文章中也用到了cv2这个包 安装cv2只需要输入下面指令 xff0c pip install opencv python 我在给我的树莓派安装时 xff0c 后面还遇到了一些问题 先是出现 ImportError libcblas so
  • C语言<string.h>常用函数整理

    整理了string h中常用的几个函数 xff0c 仅供参考 xff01 1 strcpy 2 memcpy 3 strcat 4 strchr 5 strstr 6 strcmp 7 memcmp 8 strset 9 memset 声明
  • POCO C++库学习和分析 -- 日志 (一)

    POCO C 43 43 库学习和分析 日志 一 日志对于程序来说是非常重要的 xff0c 特别是对一些大型程序而言 一旦程序被发布 xff0c 在现场日志几乎是程序员唯一可以获取程序信息的手段 Poco作为一个框架类库 xff0c 提供了
  • 字节存储排序:大端和小端

    当前的存储器 xff0c 多以byte为访问的最小单元 xff0c 当一个逻辑上的地址必须分割为物理上的若干单元时就存在了先放谁后放谁的问题 于是端 endian 的问题应运而生了 对于不同的存储方法 就有大端 big endian 和小端
  • CRC算法原理及C语言实现

    CRC算法原理及C语言实现 摘 要 本文从理论上推导出CRC算法实现原理 xff0c 给出三种分别适应不同计算机或微控制器硬件环境的C语言程序 读者更能根据本算法原理 xff0c 用不同的语言编写出独特风格更加实用的CRC计算程序 关键词
  • 动态分配的内存释放之后指针要置空

    define CRT SECURE NO WARNINGS include lt stdio h gt include lt stdlib h gt void main2 int num scanf 34 d 34 amp num prin
  • yolomark的相关操作

    1 文件组成 主要组成部分如图上 改yolo mark脚本中指令 主要是改左边的图片路径 2 使用步骤 进入cmd 输入yolo mark exe的文件路径 开始标注 image num 是对应图像的数 xff0c object id是对应
  • c++:3.7迭代器(1)

    迭代器 迭代器的基本概念 xff1a 1 迭代器是一种遍历容器元素的数据类型 C 43 43 迭代器Interator就是一个指向某种STL对象的泛型指针 通过该指针可以简单方便地遍历所有元素 2 迭代器 xff08 iterator xf
  • 51单片机定时器的查询和进入中断处理

    51单片机定时器可用两种方式处理 xff1a 查询和进入中断处理 1 查询方式 void Init T0 void 定时器初始化 TMOD 61 0x01 计时器模式 TH0 61 65535 65000 256 初装值为65536 650