51单片机实现出租车计费系统设计

5星 · 超过95%的资源 需积分: 9 17 下载量 34 浏览量 更新于2024-09-19 6 收藏 3KB TXT 举报
"这篇文章介绍了一个基于51单片机的出租车计费系统设计,系统通过独立按键控制汽车前进档位,模拟不同的行驶速度,并在数显管上实时显示里程数。系统还包括暂停和里程清零功能。代码示例中包含了关键的函数和变量定义,用于实现系统的各种操作。" 在这个基于51单片机的出租车计费系统中,主要涉及以下几个知识点: 1. **51单片机**:51系列单片机是广泛应用的一种微控制器,具备基本的计算和控制功能,适合于简单的嵌入式系统。在这个项目中,51单片机被用来处理按键输入、电机控制和显示数据。 2. **独立按键**:系统使用三个独立按键来控制汽车档位、暂停和清零功能。按键的读取通常通过中断或轮询方式实现,文中使用了延迟函数`delay()`来滤除抖动。 3. **电机控制**:直流电机的转速变化通过改变PWM(脉宽调制)信号的占空比来实现。PWM_ON变量用于设置不同的PWM占空比,从而控制电机的速度。不同档位对应不同的PWM值,以模拟不同的行驶速度。 4. **数显管显示**:里程数通过数显管进行实时显示。`table`数组存储了ASCII码对应的七段数码管显示值,`tab_P0`数组则用于设置数码管的段码,根据档位和里程数值更新显示。 5. **定时器**:系统使用两个定时器(TM0和TM1)来实现不同功能。TM0可能用于1ms的周期性中断,TM1可能用于更长周期的5000ms中断,用于控制PWM周期。 6. **中断系统**:中断系统在51单片机中起到关键作用,可以及时响应按键事件。文中提到的`IE`寄存器设置允许外部中断,而`TR0`和`TR1`分别启动定时器0和定时器1。 7. **软件设计**:主函数`main()`中的无限循环负责检测按键状态,更新显示和电机控制。使用`switch`语句根据按键输入切换不同的操作模式。 8. **程序优化**:为了防止按键抖动导致误操作,文中在检测到按键按下后添加了延时,确保按键确实被稳定按下后才执行相应的操作。 这个项目不仅展示了51单片机的基本应用,还涵盖了电机控制、中断处理、显示驱动等嵌入式系统开发的关键技术,是学习单片机控制和应用的一个典型实例。