本设计是城市出租车运营的计价器。设计基于AT89C52单片机主要控制芯片,通过霍尔传感器产生脉冲,累计车轮旋转圈,使用算法计算行驶距离,并根据相应的收费标准计算应收费用LCD1602液晶显示屏显示距离、单价、消费金额、等待时间等信息。本设计还可根据自身需要调整收费标准。包括系统硬件CPU四个部分:控制模块、按键模块、显示模块、电源模块等。软件设计包括系统总流程图和每个模块的流程图,最后将软件与硬件联合调整,以满足所需的功能要求。 设计要求: (1)不同的情况有不同的收费标准。 白天,晚上,在路上等待(>=10min 开始收费) (2)单价可以手动修改 (3)数据复位功能 (4)具有启动计时开关、白天/晚上收费标准的转换开关、数据清除开关、单价调整(最好使用+和-按钮) (5) 数据输出:单价输出 2 位置(输入小数) 2 输出总金额 3 位(有 1 位小数)。 1.1设计背景 随着国民经济的快速发展,城市交通安全逐渐变得整洁有序,出租车计价器在城市交通中发挥着重要作用。虽然随着经济的发展,私家车的数量正在缓慢增长,但出租车仍然是城市交通乘客不可或缺的东西。出租车计价器是一种仪器,用于记录里程和时间,并通过收费标准计算消费金额。它是出租车的重要组成部分。它是一种负责计算出租车运营费用的仪器。乘客和司机都要求计价器性能稳定,计价准确,功能越来越高。 1.设计的目的和意义 大力提高城市安全文明的建设是当前城市建设的主要内容之一,随着人们生活水平的不断提高,人们对生活中周边的各种常见的工具的功能要求也越来越高。就出租车收费器而言,人们对其功能的要求也在逐渐增加,虽然其功能趋于完善,但仍有许多地方可以改进。本设计的主要部件是单片机,不仅是为了满足设计要求和各种功能的实现,也是为了测试我们应用知识和解决问题的能力。 1.3设计要求 (1)不同的情况有不同的收费标准。 白天,晚上,在路上等待(>10min 开始收费) (2)单价可以手动修改 (3)数据复位功能 (4)具有启动计时开关、白天/晚上收费标准的转换开关、数据清除开关、单价调整(最好使用+和-按钮) (5) 数据输出:单价输出 2 位置(输入小数) 2 输出总金额 3 位(有 1 位小数)。 1.4课程设计方案 以单片机为主控制器,以1602字符液晶为显示电路,采用内部时钟脉冲,按键调节方便,控制简单,成本低,设计电路简单,操作方便。以下是系统流程图。如图1所示.1所示。
图1.1 总体设计方案流程图 1.5课程设计的主要内容: 当我们乘坐出租车时,出租车司机通过电源启动计价器,只要汽车启动,当小于一定值时,里程就会增加<如3km>当你开车到一定值时,你会看到出租车计价器里程数显示的读数是起价,当你开车到一定值时<如3km)计费数字显示从起价开始<如7.7元)增加。当出租车需要在那里等待时,司机只需按下等待按钮,等待一定的时间<例如,10分钟),计费显示将增加应收取的等待费<如每10 分钟收取3.3元)。当出租车继续行驶时,停止计算等待费,并继续增加里程费。到达目的地后,按显示的数字收费。然后关闭计费器,清除计数器,等待下一次计费开始。 由stc15f2k60s2作为主控芯片,连接按键系统和lcd1602显示系统使用电机模拟车轮的旋转,通过霍尔传感器向单片机输入脉冲,如果旋转距离为0.01km,从而判断出租车的行驶距离,从而计算出乘客应付的价格。 当司机在等待时按下等待按钮时,计时器开始工作,等待10分钟开始提高价格。当停止等待时,页面将自动返回到初始计价页面,等待价格和时间不会清除,等待价格将与显示价格一起计算。 本课程采用单片机技术设计,具有性能可靠、电路简单、成本低等特点。本课程设计的出租车计价器的主要功能包括:数据复位、白天/晚上转换、数据输出、计时计价、单价输出及调整、距离输出等。输出采用LCD1602液晶。本电路设计的计价器不仅可以实现基本计价,还可以根据白天、黑夜、中途等待调整单价, 第二章 硬件电路设计 2.1按键电路 使用独立键盘,每个按钮占用一个I/O每个按个按键相对独立,I/O口通过按钮与地面连接。无键按下时,引脚端为高电平,有键按下时,引脚端为低电平。因此,通过判断每个引脚端是否为低电平,您可以知道是否有按钮。.一是按键电路。
图2.1 按键电路 S1:接P1.0口,开始计费和结束计费按钮,单次计费,双次计费。 S2:接P1.一口,是暂停按钮,按下后,打开定时器0,LCD1602将开始显示等待时间,并在等待开始十分钟后开始增加等待价格。在按下结束键之前,等待时间和金钱不会被清除。 S3:接P1.2口是设置按钮。计价结束时,可以按一次调整起价;按两次调整等待10分钟的等待价按三次调整夜间单价;按四次调整白天单价;第五次,返回初始界面,然后循环。 S4:接P1.三口是调整单价增加的键。 S5:接P1.四口是调整单价降低的键。 S6:接P1.5口,复位键,按下后所有数据恢复到初始状态。 2.2直流电机电路 直流电机主要通过驱动芯片L这个芯片可以同时驱动两个直流电机PWM脉冲波驱动第5、7脚控制电机正反转,一个负电压,一个正电压,第6脚ENA通过控制电机的转速,控制电机的转速PWM控制转速,.这里我们给它一个高电平。直流电机电路如图2所示.2所示。 图2.2 直流电机电路 2.3显示电路 2.3.1 LCD1602的基本参数和引脚功能 引脚功能说明: 1602LCD标准14脚(无背光)或16脚(带背光)接口,每个引脚接口说明如表1所示。 表1 LCD1602引脚接口说明表 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 数据 2 VDD 电源正极 10 D3 数据 3 VL 液晶显示偏压 11 D4 数据 4 RS 数据/命令选择 12 D5 数据 5 R/W 读/写选择 13 D6 数据 6 E 使能信号 14 D7 数据 7 D0 数据 15 BLA 背光源正极 8 D1 数据 16 BLK 背光源负极 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。 第3脚:VL对于液晶显示器对比度调整端,连接正电源时对比度最弱,接地时对比度最高, 对比度过高会产生鬼影,使用时可通过10K调整电位器的对比度。 第4脚:RS选择寄存器,高电平时选择数据寄存器,低电平时选择指令寄存器。 第5脚:R/W 为了读写信号线,高电平时读写操作,低电平时写当RS和R/W在低电平时,可以写下指令或显示地址RS为低电平R/W平时为高电读忙信号, 当RS为高电平R/W通常可以为低电写入数据。 第6脚:E端为使能端,当B端由高电平跳变成低电平时,液晶模块执行命令。 第7-14脚:D0-D7是8位双向数据线。 15脚:背光源正极。 16脚:背光源负极。 2.3.2显示电路连接 如图2.三是显示电路连接。
图2.3 显示电路 2.脉冲输入电路 利用霍尔传感器向单片机输入脉冲,计算出租车行驶距离,将霍尔传感器连接到单片机外部中断0,触发中断,计算里程。 由于A44E属于开关型的霍尔器件,其工作电压范围比较宽<4.5~18V),符合其输出信号TTL电平标准可直接连接到单片机I0端口,最高检测频率可达1MHz。 A44E由稳压器组成的霍耳开关A、霍耳电势发生器(即硅霍耳片)>B、差分放大器C、D和0,施密特触发器CI门输出E由五个基本部分组成。 如图2.四是霍尔传感器连接电路。 图 2.1 出租车计价器proteus图 程序 #include<reg51.h> #include<LCD1602.h>
#define uchar unsigned char #define uint unsigned int
sbit key_start =P1^0; //开始/结束定价 sbit key_wait =P1^1; //等待 sbit key_set =P1^2; //设置 sbit key_jia =P1^3; //加值 sbit key_jian =P1^4; //减值 sbit key_dn =P1^5; 控制白天和晚上 sbit key_fuwei =P1^6; //复位 sbit mod=P1^7; ///电机控制
/*/ uint start_price=77; //起步价 uint white_price=66; ///白天单价 每公里6元超过3公里 uint black_price=88; ///夜间单价 超过3公里每公里8元 uint Wait_price=100; //等价格 bit dnc=0; ////白天晚上转换标志 bit qiting; /起 停标志位 uint price1,price2; //总价钱、等待价钱 uint mil; //里程数
uint mil2;
uchar shi,fen,miao; uchar moshi,moshi2,ms,set_f; //模式mos=0初始界面,=1改价页面,=2等待页面 //set_f设置标志=1设置初始价格,=2设置等待价格,=3设置晚上单价,=4设置白天单价
void delay(uchar ms) //延时函数 { uchar j; while(ms–) { for(j=0;j<130;j++); } }
如需要整个代码+Proteus 仿真及课程实验报告 扣 3137089544