随着改革开放日益深入,出租车行业的发展势头已十分突出,国内各机械厂家纷纷推出国产计价器。出租车计价器的功能从刚开始的只显示路程(需要司机自己定价,计算后四舍五入),到能够自主计费,以及现在的能够打一发票和语音提示、按时间自主变动单价等功能。
功能描述
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;elseDN=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);}
源文件获取
微信扫码关注公众号【电子开发圈】,首页发送 “出租车” 获取;