当前位置:   article > 正文

0508-基于单片机的出租车计价计费系统设计_基于单片机的出租车计费系统的设计

基于单片机的出租车计费系统的设计

随着改革开放日益深入,出租车行业的发展势头已十分突出,国内各机械厂家纷纷推出国产计价器。出租车计价器的功能从刚开始的只显示路程(需要司机自己定价,计算后四舍五入),到能够自主计费,以及现在的能够打一发票和语音提示、按时间自主变动单价等功能。

功能描述

1、采用51单片机作为主控芯片;

2、DS1302时钟芯片准确计时具有重新上电不用调时的功能;

3、采用LCD1602液晶显示;

4、采用24c02芯片掉电存储设置的计费数据,即使掉电也不会丢失设置的费用;

5、采用直流电机模拟发动机工作;

6、通过霍尔元件检测电机转速,换算后折合成实际速度,使整个设计更加逼真;

7、当无乘客时液晶可以显示时间(年月日时分秒),时间可以按键设置;

8、当有乘客时电机工作,并可以通过电位器调节电机速度,模拟汽车速度的变化,当车速低或者停车时,自动切换到低速模式,按时收费;

9、可以通过按键开始计费系统工作,收费可以修改(包括起价费、超过起价费每公里或分钟收费、白天和夜晚收费标准);

10、自动根据时间切换白天和夜晚收费标准。

按键说明

K1: 在时间显示界面和计价界面之间切换;

K2: 加键,对设置参数值进行+1操作;

K3: 减键,对设置参数值进行-1操作;

K4: 进入/退出设置模式;切换设置位;

整体方案

本次出租车计价器设计可以分为六个模块,主控模块、计时模块、存储模块、显示模块、按键模块和电机驱动模块。

电路设计

采用Altium Designer作为电路设计工具。Altium Designer通过把原理图设计、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。

仿真设计

采用Proteus作为仿真设计工具。Proteus是一款著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

主程序设计

  1. void main()
  2. {
  3. //初始化
  4. Ds1302_Init();
  5. Init_LCD();
  6. initeeprom();
  7. //SETS();
  8. //读取初始参数
  9. READS();
  10. //定时器初始化
  11. InitTimer0();
  12. //循环
  13. while(1)
  14. {
  15. //时钟模式
  16. if(Mode==0)
  17. {
  18. //读时间
  19. if(Wei==0)
  20. {
  21. Ds1302_Read_Time();
  22. //显示时间
  23. display_NYR(time_buf1,Wei,0);
  24. }
  25. }
  26. else if(Mode==1)
  27. {
  28. if(time_buf1[4]>=23||time_buf1[4]<7)
  29. DN=1;
  30. else
  31. DN=0;
  32. //显示计价器信息
  33. display_S(Day,Night,DanJia,ZJ,GL/10,Time,GT,DN);
  34. }
  35. if(K4==0)
  36. {
  37. delay(100);
  38. //调时
  39. if(Mode==0)
  40. {
  41. Wei++;
  42. if(Wei==1)
  43. {
  44. SS=1;
  45. }
  46. //闪烁
  47. display_NYR(time_buf1,Wei,SS);
  48. if(Wei==7)
  49. {
  50. Wei=0;
  51. //保存时间
  52. Ds1302_Write_Time();
  53. Init_LCD();
  54. }
  55. }
  56. else if(Mode==1)
  57. {
  58. JGWei++;
  59. if(JGWei==1)
  60. {
  61. Mode=2;
  62. //显示计价器价格
  63. Init_LCD_JGTZ();
  64. display_D(Day,Night,DanJia,JGWei,DJ_min);
  65. }
  66. }
  67. else if(Mode==2)
  68. {
  69. JGWei++;
  70. display_D(Day,Night,DanJia,JGWei,DJ_min);
  71. if(JGWei==5)
  72. {
  73. Mode=1;
  74. JGWei=0;
  75. //参数初始化
  76. //保存
  77. SETS();
  78. //读初值
  79. READS();
  80. ZJ=0;
  81. GL=0;
  82. Time=0;
  83. //开启定时器
  84. TR0=1;
  85. //显示计价器
  86. Init_LCD_JJQ();
  87. }
  88. }
  89. while(K4==0);
  90. }

源文件获取 

关注公众号【电子开发圈】,首页发送 “出租车” 获取;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/385639
推荐阅读
相关标签
  

闽ICP备14008679号