C51单片机定时器应用:数码管显示浮点数温度
需积分: 0 89 浏览量
更新于2024-07-12
收藏 1.94MB PPT 举报
"在数码管中显示多个浮点数-C51单片机04(定时器)课件"
这篇课件主要讲述了如何利用C51单片机的定时器功能来实现在数码管上轮流显示多个浮点数温度值。在C51单片机中,有两个定时器/计数器(T0和T1),而在C52单片机中则有三个(T0、T1和T2)。这些定时器可以设置为定时模式或者计数模式,并且具有多种工作方式,以适应不同的应用需求。
在该任务中,目标是将温度传感器的编号显示在数码管的第0位,温度值(精确到两位小数,包含小数点)显示在第2到5位,最后第6到7位显示°C符号。温度数据以float类型的数组形式提供。要实现这个功能,我们需要按照以下步骤操作:
1. **方式选择**:首先,我们需要设置定时器的工作方式。根据描述,可能需要用到方式2(8位自动重置定时/计数器),因为这种方式可以实现定时器在达到预设值后自动重置,从而实现周期性的显示更新。
2. **初值设置**:在方式2下,我们需预先设定TH0的值,因为它将用于保存初值,而TL0则会进行计数。当TL0溢出时,系统会自动重置其值并从TH0中再次获取初始值。为了计算所需的时间间隔,我们需要根据晶振频率来确定合适的初值。
3. **中断允许**:为了实现定时更新,我们需要开启全局中断(EA)以及定时器0的中断(ET0)。这样,当定时器溢出时,可以触发中断服务程序,更新数码管的显示内容。
4. **启动操作**:最后,设置TR0为1,启动定时器0开始计数。每过2秒,中断服务程序会改变显示的温度值,直到所有温度都展示过一轮。
在实际代码编写中,可以使用查询方式或者中断方式来实现这个功能。如果采用中断方式,每当定时器溢出时,会执行中断服务子程序,更新数码管的显示内容。在示例代码片段中,可以看到一个简单的查询方式的框架,但完整的中断服务程序和数码管显示代码并未给出。
在C51系列单片机中,定时器/计数器的控制寄存器TCON用来控制定时器的启动和溢出标志。TF0和TF1是溢出标志,TR0和TR1则是启动位,分别对应定时器0和定时器1的启停控制。
通过合理配置定时器的工作方式、初值、中断允许及启动控制,可以实现C51单片机在数码管上循环显示多个浮点数温度值,满足特定的显示需求。
2023-07-19 上传
2019-10-10 上传
207 浏览量
点击了解资源详情
2021-10-02 上传
2022-07-09 上传
2022-10-30 上传
2020-10-04 上传
2009-11-26 上传
黄子衿
- 粉丝: 20
- 资源: 2万+
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析