EDA出租车计费器设计.doc

EDA出租车计费器设计.doc

ID:57687521

大小:147.50 KB

页数:28页

时间:2020-09-01

EDA出租车计费器设计.doc_第1页
EDA出租车计费器设计.doc_第2页
EDA出租车计费器设计.doc_第3页
EDA出租车计费器设计.doc_第4页
EDA出租车计费器设计.doc_第5页
资源描述:

《EDA出租车计费器设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.出租车计费器的总体设计1.1出租车计费设计该出租车计费器按下开关S1后开始计费和计里程数,分为白天和夜晚。当拨动开关K2为0时,系统使用程序设置的起步价,白天起步价是3元,准行2公里,以后2元/公里;夜晚起步价是9元,准行2公里,以后3元/公里。当拨动开关K2为1时,可由矩阵键盘输入起步价0~9元。当路程大于200公里时,价格会在原来的基础上加50元。1.2基本设计思想时钟输入为一个1KHz的系统时钟,直流电机模块每转一圈输出一个脉冲信号给CPU,另外用按键模块的S1来作为整个系统的复位按钮,每复位一次,计费器从头开始计费。直流电机模块用来模拟出租车的车轮子,每转动一圈认为是行

2、走1米,所以每旋转1000圈,认为车子前进1公里。系统设计是需要检测电机的转动情况,每转1000圈,分频模块输出一个下降沿信号。车费和里程数在一个8位7段数码管上显示,前4位显示里程,后4位显示费用。路程的单价由16*16点阵显示,拨动开关K1为0时,2元/公里,点阵显示2;拨动开关K2为1时,3元/公里,点阵显示3。2.出租车计费器的总体实现2.1系统总体框图该出租车计费器由一个VHDL程序构成,不同功能的实现分别是多个进程控制,主要进程有:分频模块进程:将每1000个电机脉冲转化为1个输出脉冲;计程模块进程:记录已行里程;计费模块进程:计算应付车费;4*4矩阵键盘进程:设置起步

3、价;数码管显示进程:将已行里程和应付车费显示在数码管上;16*16点阵显示进程:显示当前状态的每公里单价。计程模块分频模块计费模块总程序(系统时钟)4*4矩阵键盘16*16点阵数码管图2-1系统框图2.2程序流程图(1)分频模块:Yrst或motor信号发生变化Rst=’0’Count<=0Temp<=0Nmotor'eventandmotor='1'YYCount=0Temp=nottempCount<499NCount<=count+1Glclk<=temp图2-2分频模块(2)计程模块Meter1<=0;Meter10<=0;Meter100<=0;Meter1K<=0;Yr

4、st或glclk信号发生变化Rst=’0’Nglclk'eventandglclk='0'YMeter1,meter10,meter100,meter1000代表的四位十进制数加1图2-3计程模块(3)计费模块Money1<=qibujia;Money10<=0;Money100<=0;Money1000<=0;Yrst或clk信号发生变化Rst=’0’Nclk'eventandclk='0'Y根据路程计算出总价,再把总价的千位、百位、十位、个位取出显示。图2-4计费模块2.3出租车计费器各功能的实现(1)分频模块:直流电机motor每输出1000个脉冲,分频器glclk输出一个下

5、降沿脉冲,表示电机已走1公里,meter1加1.ifrst='0'thencount<=0;temp<='0';elsif(motor'eventandmotor='1')thenifcount>499thencount<=0;temp<=nottemp;elsecount<=count+1;endif;endif;glclk<=temp;(2)计程模块:glclk的下降沿来临时,路程的个位加1,满9往高位进一,同时低位归0。process(glclk)beginif(Rst='0')thenMeter1<=0;Meter10<=0;Meter100<=0;Meter1K<=0;e

6、lsif(glclk'eventandglclk='0')thenif(Meter1=9)thenMeter1<=0;if(Meter10=9)thenMeter10<=0;if(Meter100=9)thenMeter100<=0;if(Meter1K=9)thenMeter1K<=0;elseMeter1K<=Meter1K+1;endif;elseMeter100<=Meter100+1;endif;elseMeter10<=Meter10+1;endif;elseMeter1<=Meter1+1;endif;endif;lucheng<=meter1k*1000+meter

7、100*100+meter10*10+meter1*1;endprocess;(3)计费模块:路程小于等于2公里时,费用为起步价;路程大于2公里,小于200公里,费用为(起步价+(路程-2)*单价);路程大于200公里时费用为(起步价+(路程-2)*单价+50)。process(clk,rst)beginif((Rst='0')or(lucheng<3))thenMoney1<=qibujia;Money10<=0;Money100<=0;Money1000<=0;e

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。