出租车自动计费器设计
4.2.2 显示控制模块的仿真及分析
图4-6 显示控制模块的功能仿真图
图4-6为显示控制模块功能仿真图,其中clk为时钟脉冲输入端,sel为计数控制信号输出端,daout为sel所控制状态下的输出到数码管的位选信号,dp为小数点控制输出信号。可以看出,当时钟沿上升时刻到来时,计数器的输出sel就自动加1,当计数器输出端加到“111”时,再来一个脉冲上升沿,则计数的输出端sel变为“000”,该显示控制模块的功能主要是利用其计数的八个状态,进而去轮流控制数码管的位选信号。由图4-6可知:当sel=“000”时,则daout=CH0;当sel=“001”时,daout=CH1;当sel=“010”时,daout=CH2;当sel=“011”时,daout=KM0;当sel=“100”时,daout=KM1;当sel=“101”时,daout=KM2;当sel=“110”时,daout=MIN0;当sel=“111”时,daout=MIN1。由于KM1、CH1表示里程的个位和费用的个位,其后都存在小数,故在设计中当显示KM1、CH1时须加入小数点,此时dp=‘1’,在其他没有小数点的情况时dp=‘0’。
12
出租车自动计费器设计
4.2.3 计量模块的仿真及分析
图4-7 计量模块的功能仿真图
图4-7为计量模块的功能仿真图,START信号为高电平时(即出租车启动)。当DRIVE为高电平且BREAK为低电平时,出租车为行驶状态,此时里程计数模块开始计数,每经过10个CLK1脉冲信号,里程加0.1公里,当里程计数大于3公里时,每计0.1公里产生1个B1脉冲信号。当DRIVE为高电平且BREAK为高电平时,出租车为暂停状态,此时等待时间计数模块开始计数,每经过60个CLK脉冲信号,时间加1分钟,每计1分钟产生一个B2脉冲信号。B1和B2分别为里程计费脉冲和等待时间计费脉冲。 4.2.4 计费模块的仿真及分析
图4-8 计费模块的功能仿真图
图4-8为计费模块的功能仿真图当START处于高电平且DRIVE处于高电平时,每送入一个计费脉冲且计费脉冲处于上升沿时,CH0自动加1(即每送入一
13
出租车自动计费器设计
个计费脉冲加0.1元)。CH0、CH1、CH2为十进制计数。CH2表示费用的十位,CH1表示费用的个位,CH0表示费用的十分位,计费的最大值为99.9元。
5 锁定管脚及硬件实现
5.1 锁定管脚图
在验证出租车计费器系统的功能之前,需要清楚实验箱与各个信号之间的对应关系,参照资料得出本设计中各引脚的对应情况如下:
图5-1 顶层原理图
5.2 硬件实现
通过硬件下载,该电路可以完成硬件实现,芯片管脚定义可以直接用编辑.pin文件。完成管脚定义后选择器件,编译后生成.sof文件。选择.sof文件进行下载。
下载完成后,将第一全局时钟CLK1的跳线器接1Hz(作为秒脉冲信号),将第二全局时钟CLK2的跳线器接1Hz(作为十米脉冲信号),将第三全局时钟CLK3的跳线器接32768Hz,用拨位开关模拟控制出租车的启动、行驶、暂停。观察数
14
出租车自动计费器设计
码管上数据的变化是否符合设计标准。在试验箱上八个数码管从左至右分别显示的是:等待时间的十位、等待时间的个位、里程的十位、里程的个位、里程的十分位、费用的十位、费用的个位、费用的十分位。 5.2.1 显示结果的几种情况
图5-2 验证结果1
图5-2表示出租车等待了1分钟,行驶了3.9公里,即时车费为6.0元。根据设计要求计算所得费用为:5元+(3.9-3)公里×1元/公里+1分钟×0.1元/分钟=6.0元,计算结果与试验箱上所得显示结果相同。
图5-3 验证结果2
15
相关推荐: