找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2893|回复: 0
打印 上一主题 下一主题
收起左侧

基于51单片机的出租车计价器Proteus仿真程序

[复制链接]
跳转到指定楼层
楼主
设计功能:
(1): 显示器显示当前单价,当前里程,当前费用
(2): 分时计费( 白天,晚上标准不同,等待时间计费 )
(3): 定时器编程产生脉冲用于模拟车辆行走,一个脉冲代表两米
(4): 使用按键控制计费开始和计费结束( 计费结束保持显示车费等信息 )
小白不知道怎么发送图片,但本人亲测可用!

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


2个单片机实现 一个芯片发脉冲 一个芯片统计

单片机源程序如下:
  1. //---  头文件   ---//
  2. #include "LCD1602.H"
  3. #include "Single_Key.h"
  4. #include "INT.H"
  5. #include "T0.H"
  6. //---  引脚声明 ---//
  7. sbit Wait = P2^3;     //等待时间引脚
  8. //---  变量定义 ---//
  9. uchar Price = 0;                //汽车单公里价格
  10. //---   声明    ---//

  11. void main()
  12. {        
  13. /************************ 程序初始化 *****************************/
  14.         LcdInit();     //LCD显示屏初始化
  15.         Inint_T0;            //定时器初始化
  16.         INT0_Falling;
  17.         EX0 = 0;          //关闭外部计数中断
  18. /************************ 主程序循环 *****************************/
  19.         while(1)
  20.         {
  21.                 KeyTest_1();KeyTest_2();                        //检测是白天还是夜晚
  22.                 KeyTest_3();KeyTest_4();                        //是否开始计数

  23.                   FirstLine_ClearOFF_Char(Price:,0 );
  24.                 LcdIDisplay_Num ( First_Line , Clear_OFF,6,Price);          //单价

  25.                 if( Price == 5 )
  26.                         LcdIDisplay_Char ( First_Line , Clear_OFF, 7, " " );   //防止显示溢出

  27.                   FirstLine_ClearOFF_Char( km:,10 );                                              //公里
  28.                 LcdIDisplay_Num ( First_Line , Clear_OFF,13, KM );

  29.                   SecondLine_ClearOFF_Char(NOW Price:,0 );
  30.                 LcdIDisplay_Num ( Second_Line , Clear_OFF,10, Price * KM + Wait_Count );  //总价

  31.                 if( Single_KEY_Flag_1 == 1 )
  32.                 {
  33.                          Single_KEY_Flag_1 = 0;
  34.                         Price = 5;
  35.                 }

  36.                 if( Single_KEY_Flag_2 == 1 )
  37.                 {
  38.                          Single_KEY_Flag_2 = 0;
  39.                         Price = 10;
  40.                 }

  41.                 if( Single_KEY_Flag_3 == 1 )
  42.                 {
  43.                          Single_KEY_Flag_3 = 0;
  44.                         EX0 = 1;          //开启外部计数中断
  45.                         KM_COUNT = 0; KM = 0;
  46.                         Price = 5;
  47.                 }
  48.                 if( Single_KEY_Flag_4 == 1 )
  49.                 {
  50.                          Single_KEY_Flag_4 = 0;
  51.                         EX0 = 0;          //关闭外部计数中断
  52.                         Price = 5;
  53.                 }
  54.                 if( Wait == 0 )
  55.                 {
  56.                   Enable_T0;         //开启定时器
  57.                 }
  58.                 else
  59.                 {
  60.                   DisEnable_T0;        //关闭定时器
  61.                   Inint_T0;                //初始化定时器
  62.                 }
  63.         }
  64. }
复制代码

仿真代码51hei附件下载:
出租车计价器仿真.7z (95.35 KB, 下载次数: 77)

评分

参与人数 1黑币 +20 收起 理由
admin + 20 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表