赞
踩
随着改革开放日益深入,出租车行业的发展势头已十分突出,国内各机械厂家纷纷推出国产计价器。出租车计价器的功能从刚开始的只显示路程(需要司机自己定价,计算后四舍五入),到能够自主计费,以及现在的能够打一发票和语音提示、按时间自主变动单价等功能。
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设计,真正实现了从概念到产品的完整设计。
- void main()
- {
- //初始化
- Ds1302_Init();
- Init_LCD();
- initeeprom();
- //SETS();
- //读取初始参数
- READS();
- //定时器初始化
- InitTimer0();
- //循环
- while(1)
- {
- //时钟模式
- if(Mode==0)
- {
- //读时间
- if(Wei==0)
- {
- Ds1302_Read_Time();
- //显示时间
- display_NYR(time_buf1,Wei,0);
- }
- }
- else if(Mode==1)
- {
- if(time_buf1[4]>=23||time_buf1[4]<7)
- DN=1;
- else
- DN=0;
- //显示计价器信息
-
- display_S(Day,Night,DanJia,ZJ,GL/10,Time,GT,DN);
- }
-
-
- if(K4==0)
- {
- delay(100);
- //调时
- if(Mode==0)
- {
- Wei++;
- if(Wei==1)
- {
- SS=1;
- }
- //闪烁
- display_NYR(time_buf1,Wei,SS);
- if(Wei==7)
- {
- Wei=0;
- //保存时间
- Ds1302_Write_Time();
- Init_LCD();
- }
- }
- else if(Mode==1)
- {
- JGWei++;
- if(JGWei==1)
- {
- Mode=2;
- //显示计价器价格
- Init_LCD_JGTZ();
- display_D(Day,Night,DanJia,JGWei,DJ_min);
- }
- }
- else if(Mode==2)
- {
- JGWei++;
- display_D(Day,Night,DanJia,JGWei,DJ_min);
- if(JGWei==5)
- {
- Mode=1;
- JGWei=0;
- //参数初始化
- //保存
- SETS();
- //读初值
- READS();
-
- ZJ=0;
- GL=0;
- Time=0;
- //开启定时器
- TR0=1;
- //显示计价器
- Init_LCD_JJQ();
- }
- }
- while(K4==0);
- }
关注公众号【电子开发圈】,首页发送 “出租车” 获取;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。