出租车计价器模拟:Keil51与Proteus实战

需积分: 9 8 下载量 180 浏览量 更新于2024-08-02 2 收藏 251KB DOC 举报
"keil51 结合protues的出租车仿真实例,通过硬件电路和程序设计,模拟出租车计价器的功能,适用于初学者学习。使用MCS51系列单片机At89S51,配合外围器件实现计价器的硬件电路,通过C语言编程实现软件功能。" 在这个出租车计价器的实例中,我们主要涉及以下几个关键知识点: 1. **keil51 IDE**:这是一个流行的基于8051系列单片机的开发环境,支持C语言编程,提供集成的编译、调试工具,使得开发过程更为便捷。 2. **protues仿真软件**:protues是一款虚拟原型设计软件,允许开发者在软件中构建电路模型并进行仿真测试,无需实际硬件即可验证设计的正确性。 3. **C语言编程**:C语言是嵌入式系统中常用的编程语言,简洁高效,适合编写单片机控制程序。 4. **MCS51单片机**:At89S51是MCS51系列的一种,拥有4KB的可编程闪存,4个8位I/O端口,内置定时器和中断系统,广泛应用于各种嵌入式系统设计。 5. **硬件电路设计**: - **数码管驱动**:采用2个四联共阴极数码管,通过74HC244驱动芯片实现,每个数码管需要7条控制线,每条线上接100欧姆电阻限流。 - **独立式键盘**:使用上拉电路,按键未按下时输出高电平,通过单片机的输入端口检测低电平变化。 - **复位电路**:确保单片机在上电或手动复位时能正常初始化。 6. **软件设计**: - **定时器计时模块**:利用单片机的内部定时器实现30秒计时,当启动键按下后开始计时,若无脉冲到来,超过30秒则增加计费。 - **脉冲计数模块**:通过查询方式检测脉冲,每次脉冲代表10米,累计100次表示1千米,根据时间段调整计费标准。 - **按键处理**:包括启动计价、数据复位和模式切换,通过轮询检测按键状态来执行相应操作。 - **中断管理**:定时器使用中断,脉冲计数则采用查询方式,避免中断资源冲突。 7. **程序流程图**:程序流程图用于描述程序运行的逻辑顺序,包括启动、计时、计数、按键扫描和处理、显示更新等步骤,有助于理解程序的执行流程。 通过这个实例,初学者可以学习到单片机硬件电路设计、软件编程以及仿真验证的基本方法,了解如何将理论知识应用到实际项目中,同时提升解决问题的能力。