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

学习STC51单片机10(芯片为STC89C52RC)

我们来做做案例将定时器的作用放到实际单片机上面看看

/*通过定时器0,控制LED亮一秒,灭一秒,晶振11059200Hz*/

大家有没有想过为什么会认识TF0等等呢

TF0 是定时器 0 的溢出标志位

TR0定时器 0 的运行控制位

定时器 0 是一个 16 位计数器,由 TH0(高 8 位)和 TL0(低 8 位)组成

TL0(Timer 0 Low Byte)是定时器 0 的低 8 位寄存器,用于存储定时器 0 的计数值的低 8 位。它与TH0(定时器 0 的高 8 位寄存器)共同组成一个 16 位的计数器。

在回顾一下reg52.h文件的作用

reg52.h 是用于 51 单片机(特别是 80C52 等型号 )开发的 C 语言头文件,主要作用如下:

1. 寄存器定义

51 单片机内部有许多特殊功能寄存器(SFR),用于控制单片机的各种功能,像定时器、串口、中断系统等。reg52.h 中用 sfr 关键字对这些特殊功能寄存器进行了定义,确定了它们在单片机内存中的地址,比如:

sfr P0 = 0x80;  // 定义P0口寄存器,地址为0x80

sfr TMOD = 0x89;  // 定义定时器模式控制寄存器,地址为0x89

这样在程序里就能直接通过名字(如 P0TMOD )来操作这些寄存器,方便对单片机硬件进行控制 。

2. 位定义

单片机中很多寄存器的位具有特定功能,reg52.h 利用 sbit 关键字把寄存器中的某些位定义成独立变量,便于单独操作。例如:

sbit TF0 = TCON^5;  // 定义定时器0溢出标志位,是TCON寄存器的第5位

sbit TR0 = TCON^4;  // 定义定时器0运行控制位,是TCON寄存器的第4位

通过这种定义,在程序中可以直接对 TF0TR0 等位进行读写操作,像检测定时器是否溢出(查看 TF0 状态 )、启动或停止定时器(设置 TR0 ) 。

3. 简化编程

有了 reg52.h 头文件,不用去记忆每个寄存器及其位的具体地址,直接使用定义好的名称编写代码,提高了编程效率,也增强了代码的可读性和可维护性 。比如要设置定时器 0 工作模式,直接写 TMOD = 0x01; ,而不用关心 TMOD 寄存器在内存中的具体地址是多少 。

4. 支持扩展功能

相较于 reg51.h (用于标准 8051 单片机 ),reg52.h 针对 8052 等扩展型单片机,额外定义了一些扩展功能相关的寄存器和位。比如 8052 单片机比 8051 多了定时器 T2,reg52.h 中就有对定时器 T2 相关寄存器(如 TH2TL2 等 )的定义,使程序能对这些扩展功能进行控制 。

http://www.xdnf.cn/news/574021.html

相关文章:

  • 近场探头阵列技术解析
  • (eNSP)主备接口备份配置
  • BitsAndBytesConfig参数描述
  • redisson-spring-boot-starter 版本选择
  • MySQL备份恢复:数据安全的终极指南
  • 基于Matlab建立不同信道模型
  • 苍穹外卖05 Redis常用命令在Java中操作Redis_Spring Data Redis使用方式店铺营业状态设置
  • 本特利内华达125768-01 RIM i/o模块规范
  • ESP.wdtFeed();的作用与功能,以及使用方法
  • 「AR智慧应急」新时代:当AR眼镜遇上智能监控,打造立体化应急指挥系统
  • AskTable 集成 Databend:结构化数据的 AI 查询新体验
  • 项目自启动文件配置
  • quickbi实现关联度分析(复刻PowerBI展示)
  • 【深度学习:理论篇】--Pytorch之nn.Module详解
  • 嵌入式开发学习日志(linux系统编程--文件读写函数(2))Day25
  • 算法——数组代码
  • RECCV检测人脸伪造项目尝试与扩展
  • 深度学习实战108-基于通义千问Qwen2.5-Omni的智能数字人实时对话系统实现
  • 免费使用GPU的探索笔记
  • 采用排除法进行EMC问题定位
  • 采用线性优化改进评估配电网的灵活性范围
  • Linux服务器SOS Report完全指南:收集方法、作用解析与最佳实践
  • git checkout HEAD
  • C++11语言级别的多线程
  • 5月21日
  • 云渲染技术解析与渲酷平台深度测评:如何实现高效3D创作?
  • 为什么可以不重写m1方法
  • Multi-Query Attention:传统自注意力( Self-Attention)优化显存和加速方案
  • IP核警告,Bus Interface ‘AD_clk‘: ASSOCIATED_BUSIF bus parameter is missing.
  • python生成requirements.txt文件