当前位置: 首页 > 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 等 )的定义,使程序能对这些扩展功能进行控制 。

相关文章:

  • 网络学习-利用reactor实现http请求(六)
  • esp32cmini SK6812 2个方式
  • JavaScript APIs学习day2--DOM!!
  • Open CASCADE学习|刚体沿曲线运动实现方法
  • 前端学习(5)—— JavaScript(WebAPI)
  • 文件上传功能uploadify.js报updateSettings is not a function
  • EasyRTC嵌入式音视频通信SDK一对一音视频通信,打造远程办公/医疗/教育等场景解决方案
  • 【RabbitMQ】记录 InvalidDefinitionException: Java 8 date/time type
  • 超低延迟音视频直播技术的未来发展与创新
  • 数据库健康监测器(BHM)实战:如何通过 HTML 报告识别潜在问题
  • 深入理解万维网:URL、HTTP与HTML
  • 第16天-使用Python Pillow库常见图像处理场景
  • 如何使用Antv X6使用拖拽布局?
  • anaconda创建环境出错HTTPS
  • 每日Prompt:实物与手绘涂鸦创意广告
  • 【HTML-4】HTML段落标签:构建内容结构的基础
  • MySQL备份恢复:数据安全的终极指南
  • RPC 协议详解、案例分析与应用场景
  • 将VMware上的虚拟机和当前电脑上的Wifi网卡处在同一个局域网下,实现同一个局域网下实现共享
  • Neo4j实现向量检索
  • 鞍山创网站怎么创/淘宝引流推广平台
  • 做房地产公司网站的费用/seo分析工具
  • 冷水滩做微信网站/seo平台是什么意思
  • 怎么用织梦做本地网站/推广论坛有哪些
  • 做网站基本费用大概需要多少/整站优化全网营销
  • 深圳品牌网站设计电话/竞价推广外包