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

c51 --定时器

定时器说明

定时器是c51单片机内部的资源,没有引脚图,我们可以通过单片机的手册来看看怎么用的
如图直接通过目录找到定时器的说明,他有这么多寄存器巴拉巴拉
首先设置模式:
我们是要使用定时器0,定时器1不管只设置定时器0,

3位GATE置0,由TR0单独控制定时器

因为我们使用内部系统时钟,2位C/T置0.

我们使用16位定时器的模式,所以M1.M0,取0,1。综上TMOD寄存器需要第四位设置为0001
这个不能位寻,我们只能先把低四位置0,在把最低为置1.

TMOD&=0xF0;//低四位置0,高四位不变TMOD|=0x01;//最低为置1

再设置控制寄存器

注意上面写的可以位寻址,所以我们可以直接TF1=巴拉巴拉。

TR0控制位解释如下:
所以

TMOD&=0xF0;//低四位置0,高四位不变TMOD|=0x01;//最低为置1TR0=1


所以

TMOD&=0xF0;//低四位置0,高四位不变TMOD|=0x01;//最低为置1TR0=1: TF0=0;//清零

之后我们设置一下定时器初值:
每12个时钟+1,系统是12或者11.0592MHZ,我们用12MHZ估算一下,1/12MHz=1/12000 000秒
乘1000 000结果是1/12us,每12个时钟+1的话就是1/12*12为1us+1。16位最大值是65535,我们让他1ms+1就需要把初值设置为65535-1000=64535。所以高位为64535/255,低位为64535%255;
所以

TMOD&=0xF0;//低四位置0,高四位不变TMOD|=0x01;//最低为置1TR0=1: TF0=0;//清零TL0=0x66;TH0=0xFC;


然后开启中断,EA,ET0全部置1,PT0置0开启中断最高优先级。

中断号如图:

#include<REGX52.H>voidTimer0_Init()//1毫秒@11.0592MHz{TMOD&=0xF0;//设置定时器模式TMOD|=0x01;//设置定时器模式TL0=0x66;//设置定时初始值TH0=0xFC;//设置定时初始值TF0=0;//清除TF0标志TR0=1;//定时器0开始计时EA=1;ET0=1;PT0=0;}voidmain(){while(1){}}voidTimer0_Routine()interrupt1//中断函数{staticunsignedintT0Count;//静态变量在函数结束后不清除值,跟全局变量区别只在于这个仅限此函数使用TL0=0x66;//重置置定时初始值TH0=0xFC;T0Count++;if(T0Count>=100)//100ms执行一次{T0Count=0;if(LedMode==0){P2=_crol_(P2,1);}if(LedMode==1){P2=_cror_(P2,1);}}}
http://www.jsqmd.com/news/497494/

相关文章:

  • vue3学习笔记 - P3
  • 20252905 2025-2026-2 《网络攻防实践》第一周作业
  • Day15 | 平衡二叉树、二叉树的所有路径、左叶子之和、完全二叉树的节点个数
  • Linux内存管理(78):kcompactd详解
  • Py-Apple Quadruped Robot:低成本开源四足机器人的完整构建指南
  • Python问题总结:关于matplotlib中文字体无法正常显示问题的总结
  • 3.18组会
  • AWS RDS开启审计日志
  • 探索BurpSuite:网络安全测试的瑞士军刀
  • 2026年博士论文10万字怎么降AI?长文降AI的正确打开方式
  • 人工改AI vs 工具降AI:花了8小时和8块钱分别试了一遍
  • Varnish Dashboard: 实时监控和管理Varnish缓存服务器的新利器
  • 微信公众平台测试号的申请与使用
  • 【亲测免费】 TransCoder 项目使用教程
  • 集成开发工具IDEA | Community(社区版,免费)| 试用旗舰版 IntelliJ IDEA 2021.2.2 |历史版本下载 | IDEA全局搜索和替换指定内容,非常方便。
  • 嘎嘎降AI vs 率零 vs 率降:4元价位降AI工具三选一怎么挑
  • REST Client 开源项目教程
  • linuxlinux命令集合
  • 2026年公众号文章被标AI生成怎么办?3款去AI味工具实测推荐
  • YOLOV8训练好的torch模型转换成ONNX、OM格式
  • SuperEasy Local RAG高级配置:自定义Ollama模型与查询优化技巧
  • 探索前沿开发利器:CodeGPT.nvim
  • Jetpack - Room
  • 如何快速部署awesome-DeepLearning:从模型训练到生产环境的完整指南
  • 深度解析SpoofCheck:网络身份验证的新防线
  • 汽车报文中:数据存储的大端序
  • vue截取字符串(商城系统非常常用的小知识)
  • 如何从零开始DIY菠萝狗:Py-Apple Quadruped Robot硬件组装教程
  • 基于JS实现的鸿蒙游戏——二十四点纸牌
  • Alchemy 微服务框架:构建高可用、智能负载均衡的系统