C51单片机定时器应用:数码管显示浮点数温度

需积分: 0 2 下载量 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单片机在数码管上循环显示多个浮点数温度值,满足特定的显示需求。