当前位置: 首页 > article >正文

【51 单片机入门到进阶】08 入门:51单片机定时器0/1使用详解

1定时器中断核心基础总览定时器中断定时器计数溢出时硬件自动触发中断CPU 暂停主程序执行中断服务函数是单片机定时控制、延时、周期任务的核心方式。中断名称中断号入口地址核心控制寄存器中断标志定时器 0 中断 (T0)1000BHTMOD、TCON、IE、IPTF0定时器 1 中断 (T1)3001BHTMOD、TCON、IE、IPTF1核心特性1 16 位自动计数支持定时模式内部时钟/计数模式外部脉冲2 4 种工作模式模式 116 位定时最常用3 溢出标志TF0/TF1硬件自动置 1响应中断后自动清 04 独立中断使能、两级优先级支持中断嵌套2核心控制寄存器表格逐位详解1TMOD 定时器模式寄存器地址89H不可位寻址作用配置定时器 0/1 的工作模式、定时 / 计数选择、门控位序号bit7bit6bit5bit4bit3bit2bit1bit0位符号GATEC/TM1M0GATEC/TM1M0归属定时器 1定时器 1定时器 1定时器 1定时器 0定时器 0定时器 0定时器 0功能含义门控位1 外部引脚控制1 计数模式0 定时模式模式选择位模式选择位门控位1 外部引脚控制1 计数模式0 定时模式模式选择位模式选择位模式选择M1M000模式 013 位极少用01模式 116 位定时 / 计数最常用10模式 28 位自动重装11模式 3仅 T0 可用拆分模式2TCON 定时器 / 中断控制寄存器地址88H可位寻址作用控制定时器启停、中断标志位TR0/TR1分别开始启动定时器0/1,TF0/1当计时溢出后会被硬件置1。位序号bit7bit6bit5bit4bit3bit2bit1bit0位符号TF1TR1TF0TR0IE1IT1IE0IT0功能含义T1 溢出标志硬件置 1T1 启动控制1 启动T0 溢出标志硬件置 1T0 启动控制1 启动外部中断 1 标志外部中断 1 触发外部中断 0 标志外部中断 0 触发3IE 中断允许寄存器地址A8H可位寻址作用总中断开关 定时器中断使能,ET01使能T0中断ET11使能T1中断EA1使能全局中断。位序号bit7bit6bit5bit4bit3bit2bit1bit0位符号EA---ET1-ET0-功能含义总中断使能1 开启保留保留保留T1 中断使能1 开启保留T0 中断使能1 开启保留4IP 中断优先级寄存器地址B8H可位寻址作用设置定时器中断优先级,bit1 PT01置T0为高优先级否则低优先级bit3 PT11置T1为高优先级否则低优先级。位序号bit7bit6bit5bit4bit3bit2bit1bit0位符号----PT1-PT0-功能含义保留保留保留保留T1 优先级1 高保留T0 优先级1 高保留5TH0/TL0、TH1/TL1 寄存器这 4 个都是定时器计数寄存器是定时器中断的核心硬件单元负责计数、定时、溢出触发中断。寄存器名称全称归属位数功能TH0Timer0 High 8-bit定时器 0高 8 位存储定时初值 / 自动重装值TL0Timer0 Low 8-bit定时器 0低 8 位实际计数单元TH1Timer1 High 8-bit定时器 1高 8 位存储 16 位定时初值TL1Timer1 Low 8-bit定时器 1低 8 位存储 16 位定时初值通用工作原理1 定时器启动后每 1 个机器周期 12 计数到最大值 →溢出→ 触发中断3 溢出标志位TF0/TF1硬件置 14 CPU 响应中断执行中断服务函数晶振11.0592MHz机器周期 12 个时钟周期 1.085μs3, 定时器中断标志查询方法通过TF0、TF1可在主程序中主动查询定时器是否溢出if(TF0 1) // 查询定时器0是否溢出 { TF0 0; // 软件清零 // 处理逻辑 } if(TF1 1) // 查询定时器1是否溢出 { TF1 0; // 软件清零 // 处理逻辑 }4、定时器中断服务函数// 定时器0中断函数中断号 1 void Timer0_ISR(void) interrupt 1 { // 定时溢出后执行的代码 } // 定时器1中断函数中断号 3 void Timer1_ISR(void) interrupt 3 { // 定时溢出后执行的代码 }5定时器中断 标准配置步骤1配置工作模式TMOD赋值如0x01T0 模式 12装载定时初值TH0/TL0、TH1/TL1决定定时时间3开启定时器中断ET01 / ET114开启总中断EA1必备5启动定时器TR01 / TR116编写中断服务函数6示例程序1示例 1定时器 0 → 8 位自动重装中断模式 2功能定时200μs 自动触发中断反转 LED无需手动重装初值#includereg52.hsbit LED0P2^4;unsignedshortintcount0;// 定时器0中断服务函数voidTimer0_ISR(void)interrupt1{// 核心无需重装初值硬件自动加载 TH0 count;if(count1000){count0;LED0~LED0;}}voidmain(void){// 1. 配置模式定时器0 模式28位自动重装TMOD0x02;// 2. 自动重装初值200μsTH0 重装值TL0自动加载TH0256-200;// 自动重装值存入TH0TL0256-200;// 初始值// 3. 开启中断ET01;// 使能定时器0中断EA1;// 开启总中断// 4. 启动定时器0TR01;while(1);}2示例 2定时器 1 → 16 位不可自动重装中断模式 1功能定时50ms 触发中断必须手动重装初值#includereg52.hsbit LED1P2^5;// 定时器1中断服务函数voidTimer1_ISR(void)interrupt3{// 核心必须手动重装16位初值 TH1(65536-50000)/256;TL1(65536-50000)%256;LED1~LED1;}voidmain(void){// 1. 配置模式定时器1 模式116位不可自动重装TMOD0x10;// 2. 装载50ms初始值TH1(65536-50000)/256;TL1(65536-50000)%256;// 3. 开启中断ET11;EA1;// 4. 启动定时器1TR11;while(1);}

相关文章:

【51 单片机入门到进阶】08 入门:51单片机定时器0/1使用详解

1,定时器中断核心基础总览 定时器中断:定时器计数溢出时,硬件自动触发中断,CPU 暂停主程序执行中断服务函数,是单片机定时控制、延时、周期任务的核心方式。中断名称中断号入口地址核心控制寄存器中断标志定时器 0 中断…...

stock-sdk-mcp 的实践整理绰

一、什么是urllib3? urllib3 是一个用于处理 HTTP 请求和连接池的强大、用户友好的 Python 库。 它可以帮助你: 发送各种 HTTP 请求(GET, POST, PUT, DELETE等)。 管理连接池,提高网络请求效率。 处理重试和重定向。 支…...

Programmable-Air开源气动控制库底层驱动解析

1. Programmable-Air 开源控制库深度解析:面向嵌入式工程师的底层驱动实践指南Programmable-Air 是一款基于 Crowdfunding 平台 CrowdSupply 成功孵化的开源气动控制硬件平台,其核心价值在于将传统工业级气动执行器(泵、阀、压力传感器&#…...

千问3.5-9B+OpenClaw成本对比:自建模型VS商业API

千问3.5-9BOpenClaw成本对比:自建模型VS商业API 1. 为什么需要关注OpenClaw的token消耗 去年冬天,当我第一次用OpenClaw自动整理全年会议纪要时,看着控制台不断刷新的token消耗记录,手指不自觉地敲起了桌子——这个看似简单的任…...

FreakStudio泄

环境安装 pip install keystone-engine capstone unicorn 这3个工具用法极其简单,下面通过示例来演示其用法。 Keystone 示例 from keystone import * CODE b"INC ECX; ADD EDX, ECX" try:ks Ks(KS_ARCH_X86, KS_MODE_64)encoding, count ks.asm(CODE)…...

JavaScript中BigInt与Number类型混用的报错机制

JavaScript中BigInt与Number不能直接混合运算&#xff0c;会立即抛出TypeError&#xff1b;所有涉及两者混合的算术和关系操作&#xff08;如1n1、10n<5&#xff09;均报错&#xff0c;仅和不报错但返回false。JavaScript中BigInt与Number不能直接混合运算&#xff0c;会立即…...

ESP居然能当 DNS 服务器用?内含NCSI欺骗和DNS劫持实现罢

前言 Kubernetes 本身并不复杂&#xff0c;是我们把它搞复杂的。无论是刻意为之还是那种虽然出于好意却将优雅的原语堆砌成 鲁布戈德堡机械 的狂热。平台最初提供的 ReplicaSets、Services、ConfigMaps&#xff0c;这些基础组件简单直接&#xff0c;甚至显得有些枯燥。但后来我…...

告别格式烦恼:如何用Chrome扩展一键转换网页图片格式?

告别格式烦恼&#xff1a;如何用Chrome扩展一键转换网页图片格式&#xff1f; 【免费下载链接】Save-Image-as-Type Save Image as Type is an chrome extension which add Save as PNG / JPG / WebP to the context menu of image. 项目地址: https://gitcode.com/gh_mirror…...

毕业设计实战:基于Java+MySQL的C2C商务网站设计与实现指南

毕业设计实战&#xff1a;基于JavaMySQL的C2C商务网站设计与实现指南 在开发“基于JavaMySQL的C2C商务网站”毕业设计时&#xff0c;我曾因商品订单表未通过用户ID、商品ID与收货地址ID三外键关联踩过关键坑——初期设计订单表时&#xff0c;仅记录了订单号、总价、下单时间等基…...

Python编程第09课:Python列表(List)操作完全手册

前言&#xff1a;Python最常用的数据结构 列表是Python中最常用、最灵活的数据结构。它就像一个容器&#xff0c;可以存储任意类型的元素&#xff0c;并且可以随时添加、删除或修改元素。无论是处理数据、实现算法还是构建应用程序&#xff0c;列表都是你离不开的工具。 本课程…...

OpenClaw模型量化指南:压缩Qwen2.5-VL-7B提升本地运行效率

OpenClaw模型量化指南&#xff1a;压缩Qwen2.5-VL-7B提升本地运行效率 1. 为什么需要量化多模态大模型 当我第一次在本地MacBook Pro上尝试运行Qwen2.5-VL-7B时&#xff0c;风扇立刻开始狂转&#xff0c;16GB内存几乎被吃满&#xff0c;模型加载就花了近3分钟。这种体验让我意…...

OpenClaw调试技巧大全:Qwen3-14b_int4_awq任务失败排查指南

OpenClaw调试技巧大全&#xff1a;Qwen3-14b_int4_awq任务失败排查指南 1. 为什么我们需要系统化的调试方法 上周我在尝试用OpenClaw自动整理项目文档时&#xff0c;遇到了一个诡异的问题&#xff1a;任务执行到一半突然卡住&#xff0c;既没有报错也没有继续执行。花了整整三…...

一款基于 .NET 开源、跨平台应用程序自动升级组件阅

基础示例&#xff1a;单工作表 Excel 转 TXT 以下是将一个 Excel 文件中的第一个工作表转换为 TXT 的完整步骤&#xff1a; 1. 加载并读取Excel文件 from spire.xls import * from spire.xls.common import * workbook Workbook() workbook.LoadFromFile("示例.xlsx"…...

Docker 容器中运行 AI CLI 工具:用户隔离与持久化卷实战指南撂

环境安装 pip install keystone-engine capstone unicorn 这3个工具用法极其简单&#xff0c;下面通过示例来演示其用法。 Keystone 示例 from keystone import * CODE b"INC ECX; ADD EDX, ECX" try:ks Ks(KS_ARCH_X86, KS_MODE_64)encoding, count ks.asm(CODE)…...

软件人员可以关注的 Skill,亲测确实不错,值得试一下

Agent Skill 是一套标准化的能力封装&#xff0c;它将复杂的、需要多步处理和工具调用的任务&#xff0c;打包成一个可以直接使用的“技能包”。推荐一些在实际工作中表现不错的 Skill&#xff1a; 1. frontend-design 介绍&#xff1a;打造具有高设计质量的独特生产级前端界面…...

和AI一起搞事情#:边剥龙虾边做个中医技能来起号冠

1. 核心概念 在 Antigravity 中&#xff0c;技能系统分为两层&#xff1a; Skills (全局库)&#xff1a;实际的代码、脚本和指南&#xff0c;存储在系统级目录&#xff08;如 ~/.gemini/antigravity/skills&#xff09;。它们是“能力”的本体。 Workflows (项目级)&#xff1a…...

Blazor组件化演进终极指南:2026年必须掌握的5大架构范式与3种反模式规避清单

第一章&#xff1a;Blazor组件化演进的底层动因与2026技术坐标系Blazor 的组件化并非单纯语法糖的迭代&#xff0c;而是对 Web 前端架构范式、.NET 生态边界以及现代云原生交付链路三重压力下的系统性响应。其底层动因根植于三个不可逆趋势&#xff1a;WebAssembly 运行时成熟度…...

2026年AI热点:阿里新模型领跑行业

今日AI热点汇总&#xff08;2026年4月9日&#xff09; 一、阿里发布新模型&#xff0c;性能大幅提升 今天&#xff0c;阿里巴巴重磅推出了全新的通义千问模型&#xff0c;这个新模型在语言理解、逻辑推理和代码生成等方面都有了显著提升。 更强的理解能力&#xff1a;能更准确地…...

普通人也能轻松掌握!5个技巧让你玩转AI大模型,从入门到精通的实用指南!

随着ChatGPT、文心一言、通义千问等AI大模型的普及&#xff0c;很多人都在使用AI大模型&#xff0c;普通人学习时往往陷入“指令说不清楚、输出不符合预期”的困境。其实&#xff0c;学会AI大模型的核心&#xff0c;不在于掌握技术原理&#xff0c;而在于掌握“与大模型高效沟通…...

数据团队该醒醒了:AI智能体不是你的下一个仪表盘闹

7.1 初识三维模型 7.1.1 三维模型的数据载体 随着计算机图形技术的发展&#xff0c;我们或多或少都会见过或者听说过三维模型。笔者始终记得小时候第一次在电视上看到三维动画《变形金刚&#xff1a;超能勇士》的震撼感受&#xff1b;而现在我们已经可以在手机上玩三维游戏《王…...

喔去,litellm 竟然被投毒了,赶紧检查你的机器中招了没有稳

一、什么是setuptools&#xff1f; setuptools 是一个用于创建、分发和安装 Python 包的核心库。 它可以帮助你&#xff1a; 定义 Python 包的元数据&#xff08;如名称、版本、作者等&#xff09;。 声明包的依赖项&#xff0c;确保你的包能够正确运行。 构建源代码分发包&…...

旧Mac设备重生指南:使用OpenCore Legacy Patcher升级系统全攻略

旧Mac设备重生指南&#xff1a;使用OpenCore Legacy Patcher升级系统全攻略 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 随着苹果系统的不断更新&#xff…...

RT-Thread实时操作系统入门与实践指南

1. RT-Thread 入门指南&#xff1a;从零开始掌握实时操作系统 RT-Thread 作为一款国产开源实时操作系统&#xff08;RTOS&#xff09;&#xff0c;近年来在物联网、智能硬件等领域获得了广泛应用。对于嵌入式开发者而言&#xff0c;掌握 RT-Thread 不仅能提升开发效率&#xff…...

OpenClaw小龙虾产品形态

OpenClaw小龙虾产品形态 全文链接&#xff1a;OpenClaw小龙虾产品形态 收录与 OpenClaw 小龙虾 相关的 衍生发行、厂商适配、多智能体栈、本地控制台、垂直场景桌面工作台、便携与移动端交付、具身智能场景原型 等 GitHub 仓库。 第三方与厂商衍生 仓库类别形态 / 场景简介Sta…...

好用有省钱的电脑多开神奇工具

今天&#xff0c;我们要介绍的是一款专为电脑用户设计的神奇软件——Safeboxie多开器。这款软件打破了传统限制&#xff0c;无论是游戏还是其他应用程序&#xff0c;都能轻松实现多开。你是否曾为在电脑上无法同时运行多个游戏或软件而烦恼&#xff1f;Safeboxie多开器将完美解…...

大模型时代,这5大热门职业让你月入50K!错过等一年!

在数字技术迭代速度不断加快的当下&#xff0c;人工智能领域的大模型&#xff08;Large Models&#xff09; 已从实验室走向产业落地&#xff0c;成为重构各行业生产模式、驱动创新升级的核心引擎。凭借在数据处理、模式识别、复杂任务决策等方面的超强能力&#xff0c;大模型不…...

值类型与引用类型:别再只背“栈和堆”了,看这 个实际影响骋

基础示例&#xff1a;单工作表 Excel 转 TXT 以下是将一个 Excel 文件中的第一个工作表转换为 TXT 的完整步骤&#xff1a; 1. 加载并读取Excel文件 from spire.xls import * from spire.xls.common import * workbook Workbook() workbook.LoadFromFile("示例.xlsx"…...

PHP 8.9 JIT性能调优黄金三角:opcache.jit、opcache.jit_buffer_size、opcache.jit_hot_func(附生产环境最优参数表)

第一章&#xff1a;PHP 8.9 JIT 编译器架构演进与性能边界认知 PHP 8.9 并非官方发布的正式版本&#xff08;截至 PHP 官方最新稳定版为 8.3&#xff09;&#xff0c;但本章基于社区前瞻研究与内核补丁集构建的“PHP 8.9 JIT”概念原型&#xff0c;探讨其在 LLVM 后端集成、分层…...

AI Agent 跑完任务怎么通知你?我写了个微信推送服务弦

1、普通的insert into 如果&#xff08;主键/唯一建&#xff09;存在&#xff0c;则会报错 新需求&#xff1a;就算冲突也不报错&#xff0c;用其他处理逻辑 回到顶部 2、基本语法&#xff08;INSERT INTO ... ON CONFLICT (...) DO (UPDATE SET ...)/(NOTHING)&#xff09; 语…...

JMS, ActiveMQ 学习一则偌

开发个什么Skill呢&#xff1f; 通过 Skill&#xff0c;我们可以将某些能力进行模块化封装&#xff0c;从而实现特定的工作流编排、专家领域知识沉淀以及各类工具的集成。 这里我打算来一次“套娃式”的实践&#xff1a;创建一个用于自动生成 Skill 的 Skill&#xff0c;一是用…...