基于51单片机的出租车计价器源程序与Proteus仿真设计
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
本设计是针对城市出租车运营的一个计价器。设计基于STC15F2K60S2单片机为主控制芯片,通过霍尔传感器来给单片机产生脉冲,从而累计车轮旋转的圈数,利用算法来计算出行驶的路程,并根据相应的收费标准计算出应当收取的费用,通过LCD1602液晶显示屏来显示路程,单价,消费金额,路程中等待的时间等信息。本设计还可以根据自身的需要对收费的标准进行调整。系统硬件包括CPU控制模块、按键模块、显示模块、电源模块等四部分。软件设计包括系统总流程图与每个模块的流程图,最后将软件与硬件联调,达到所需功能要求。 (1)不同情况具有不同的收费标准。 一个基于单片机STC15F2K60S2的出租车自动计价器,附带有键盘电路,显示模块等。在上电时LCD1602显示最初的起步价,里程单价,等待时间收费三种收费,通过按键可以调整起步价、里程单价和等待时间收费。通过电机来模拟出租车轮胎的转动和停止。在LCD1602液晶上可以显示运行的路程,运行时暂停的时间,通过软件计算可以得出乘客所需要支付的费用。在这里主要是以STC15F2K60S2单片机为核心控制器,P0口接1602液晶显示模块,P1口接按键原理电路,霍尔传感器连接在外部中断0口向单片机输入脉冲,一个脉冲代表车轮转动一周,从而计算出运行的路程和费用。 通过单片机作为主控器,利用1602字符液晶作为显示电路,采用内部时钟脉冲,通过按键可以方便调节,而且控制简单,成本低廉,设计电路简单,易操作,以下是系统流程图。如图1.1所示。 当我们乘坐出租车时,出租车司机通过电源启动计价器后,只要汽车一启动,随着行驶里程的增加,当小于某一个值的时候<如3km>时,就会看到出租车里面的计价器里程数字显示的读数为起步价,而当行驶到某一值<如3km)计费数字显示开始从起步价<如7.7元)增加。当出租车到达某地需要在那里等候时,司机只要按一下“等待”键,每等候一定的时间<如10分钟),计费显示就增加一个该收的等候费用<如每10 分钟收取3.3元)。出租车继续行驶时,停止计算等候费用,继续增加里程计费。到达目的地,便可按显示的数字收费。然后关闭计费器,对计数器清零,等待下次计费开始。 由stc15f2k60s2作为主控制芯片,并连接按键系统和lcd1602显示系统,用电机来模拟车轮的转动,通过霍尔传感器对单片机输入一个脉冲,一个脉冲待变车轮转动一周,假设转动一周的距离为0.01km,由此来判断出租车行驶的距离,从而计算出乘客应付的价钱。 在司机等待时按下等待按键,则计时器开始工作,等待10分钟则开始加价,停止等待时,页面会自动返回到初始计价页面,等待价钱和时间不清零,结束计价时则把等待价钱和显示价钱一起算。 本次设计利用单片机技术来实现一台出租车计价器,具有性能可靠、电路简单、成本低等特点。本次设计所设计的出租车计价器的主要功能有:数据的复位、白天/晚上转换、数据输出、计时计价、单价输出及调整、路程输出、等功能。输出采用LCD1602液晶。本电路设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价,
第二章 硬件电路设计 2.1按键电路 采用独立式键盘,每个按键占用一个I/O口,每个按键相对独立,I/O口通过按键与地相连,无键按下时,引脚端为高电平,有键按下时,引脚端为低电平。所以可以通过判断每个引脚端是否为低电平,就可以知道是否有键按下。图2.1为按键电路。
图2.1 按键电路 S1:接P1.0口,开始计费和结束计费按键,按单次为开始计费,按双次为结束计费。 S2:接P1.1口,是暂停按键,按下后,开启定时器0,LCD1602会开始显示等待时间并且在等待开始十分钟后开始增加等待价钱,在按下结束键之前,等待时间和金钱不会清零。 S3:接P1.2口,是设置按键,在结束计价的时候,按一次,对起步价可以进行调整;按两次,对等待10分钟的等待价钱可以进行调整;按三次,对晚上可以单价进行调整;按四次,可以对白天单价进行调整;按第五次时,回到初始界面,然后循环。 S4:接P1.3口,是用来调整单价增加的键。 S5:接P1.4口,是用来调整单价减少的键。 S6:接P1.5口,复位键,按下之后所有的数据恢复到刚开始的状态。
2.2直流电机电路 该直流电机主要是通过驱动芯片L298来驱动,这款芯片可以同时驱动2个直流电机,可以用直流电或PWM脉冲波驱动第5,7脚为控制电机的正反转,一个接负电压,一个接正电压,第6脚ENA控制电机的转速,通过PWM可以控制转速,.这里我们给它-一个高电平就可以了。直流电机电路如图2.2所示。
图2.2 直流电机电路 2.3显示电路 2.3.1 LCD1602的基本参数及引脚功能 引脚功能说明: 1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表1所示。
2.4脉冲输入电路 利用霍尔传感器来对单片机输入一个脉冲,从而计算出租车行驶的路程,将霍尔传感器接到单片机外部中断0上,触发中断,计算公里数。 由于A44E属于开关型的霍尔器件,其工作电压范围比较宽<4.5~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的I0端口上,而且其最高检测频率可达到1MHz。 A44E集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片>B、差分放大器C、施密特触发器D和0CI门输出E五个基本部分组成。 如图2.4所示为霍尔传感器连接电路。
图2.4 霍尔传感器连接电路 2.5 STC15F2K60S2的引脚连接和说明 2.5.1 STC15F2K60S2的引脚连接 P2口连接LCD1602D0-D7口; P0.0连接LCD1602RS口,P0.1连接LCD1602的R/W口,P0.2连接LCD1602的EN口; P1.0-P1.5为按键连接口; P3.2为外部中断0连接口,连接霍尔传感器输入端,向单片机输入脉冲来计算行车途中的行驶里程; P3.0和P3.1口连接驱动芯片L298N的输入端IN1和IN2,用来控制电机转动和停止,用来模仿出租车的行驶和停止。 如图2.5为STC15F2K60S2的引脚连接图:
图2.5 STC15F2K60S2的引脚连接图 第三章 软件设计 3.1 单片机资源利用 在本次设计中电路键盘用到了P1口,其中P1.0口到P1.5口作为键盘的输入,显示电路用到了P0口和P2口,P2口为液晶的数据口,P3.2口作为脉冲的输入端。 3.2单片机软件模块设计 如图3.1所示为总体软件设计流程图。 如图3.2所示为外部中断0计算路程流程图。 如图3.3所示为按键子函数流程图。 如图3.4 定时器T0计时收费流程图。
图3.3 按键子函数流程图 在软件设计中,用T0来计时,当汽车停下来等待时,出租车司机则按下等待键,开启定时器T0,定时器每次定50ms,定20次就是1s,此时miao就加一,当miao=59时,执行miao=0,fen++;当fen=59时,执行fen=0,shi++;接下来判断fen是否>=10?若>=10,计价器就按收费标准开始计算价钱。如图3.3为定时器T0计时收费流程图。
图3.4 定时器T0计时收费流程图 第四章 总结 本款出租车计价器有不少功能,其中包括单价输出、单价调整、路程输出、显示途中等待时间和相应的价钱、显示总价等功能。另外,这个出租车计价器还具有性能可靠、电路简单、成本低、实用性强等特点。
单片机源程序如下:
复制代码 所有资料51hei提供下载(仿真+代码): |