EDA出租车计费器设计

上传人:新** 文档编号:562463067 上传时间:2023-05-19 格式:DOCX 页数:30 大小:210.67KB
返回 下载 相关 举报
EDA出租车计费器设计_第1页
第1页 / 共30页
EDA出租车计费器设计_第2页
第2页 / 共30页
EDA出租车计费器设计_第3页
第3页 / 共30页
EDA出租车计费器设计_第4页
第4页 / 共30页
EDA出租车计费器设计_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《EDA出租车计费器设计》由会员分享,可在线阅读,更多相关《EDA出租车计费器设计(30页珍藏版)》请在金锄头文库上搜索。

1、1.出租车计费器的总体设计1.1 出租车计费设计该出租车计费器按下开关 S1 后开始计费和计里程数,分为白天和夜晚。当 拨动开关 K2 为 0 时,系统使用程序设置的起步价,白天起步价是 3 元,准行 2 公里,以后2 元/公里;夜晚起步价是9元,准行2公里,以后3元/公里。当拨 动开关K2为1时,可由矩阵键盘输入起步价09元。当路程大于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个输出脉冲;计程模块进程:记录已行里程;计费模块进程:计

3、算应付车费;4*4 矩阵键盘进程:设置起步价;数码管显示进程:将已行里程和应付车费显示在数码管上16*16 点阵显示进程:显示当前状态的每公里单价。总程序(系统时钟)4*4矩阵键盘16* 16点阵数码管图 2-1 系统框图2.2 程序流程图(1)分频模块:YCount=0Temp=0Rst=Omotorevent and motor=1Count499Count=count+1图2-2分频模块rst或motor信号发生变化Count=0Temp=not tempGlclk=temp2) 计程模块发生变化图 2-3 计程模块(3) 计费模块2.3 出租车计费器各功能的实现(1) 分频模块:直流电

4、机 motor 每输出 1000 个脉冲,分频器 glclk 输出一 个下降沿脉冲,表示电机已走1公里,meter1加1.if rst=0 thencount=0;temp499 thencount=0; temp=not temp;elsecount=count+1;end if;end if;glclk=temp;(2) 计程模块:glclk的下降沿来临时,路程的个位加1,满9往高位进一, 同时低位归 0。process(glclk)beginif(Rst=0) thenMeter1=0;Meter10=0;Meter100=0;Meter1K=0;elsif(glclkevent and

5、 glclk=0) then if(Meter1=9) thenMeter1=0; if(Meter10=9) thenMeter10=0;if(Meter100=9) thenMeter100=0;if(Meter1K=9) thenMeter1K=0;elseMeter1K=Meter1K+1;end if;elseMeter100=Meter100+1;end if;elseMeter10=Meter10+1;end if;elseMeter1=Meter1+1;end if;end if; lucheng=meter1k*1000+meter100*100+meter10*10+met

6、er1*1;end process;(3) 计费模块:路程小于等于2 公里时,费用为起步价;路程大于 2 公里, 小于200公里,费用为(起步价+(路程-2)*单价);路程大于 200 公里时费用 为(起步价+(路程-2)*单价+50)。process(clk,rst)beginif(Rst=0) or (lucheng3) thenMoney1=qibujia;Money10=0;Money100=0;Money1000200 thenjiage=(lucheng-2)*danjia+qibujia+50;money1000=(jiage-(jiage mod 1000)/1000;mone

7、y100=(jiage mod 1000)-(jiage mod 1000)mod 100)/100;money10=(jiage mod 100)-(jiagemod 10)/10;money1=jiage mod 10;elsejiage=(lucheng-2)*danjia+qibujia;money1000=(jiage-(jiage mod 1000)/1000;money100=(jiage mod 1000)-(jiage mod 1000)mod 100)/100;money10=(jiage mod 100)-(jiage mod 10)/10;money1=jiage mo

8、d 10;end if;end if;end process;(4) 4*4 矩阵键盘:有键按下时为低电平,脉冲扫描时先判断行,再判断列。process(clk)beginif(clkevent and clk=1) thenif(Krow=1111) thenkflag1=0;kcount=kcount+1;if(kcount=0) thenKcol=1110;elsif(kcount=1) thenKcol=1101;elsif(kcount=2) thenKcol=1011;第6页,共 28 页elseKcol=0111;end if;elsekflag1=1;keyrow=Krow;

9、keycolbuffbuffbuffbuffbuffbuffbuffbuffbuffbuffbuffbuffbuff=buff;end case;end if;end if;qibujia=buff;end if;elseqibujia_d=3; qibujia_n=9;if (k1=0) thenqibujia=qibujia_d;elseqibujia Disp_Temp Disp_Temp Disp_Temp Disp_Temp Disp_Temp Disp_Temp Disp_Temp Disp_Temp Disp_Decode Disp_Decode Disp_Decode Disp_Decode Disp_Decode Disp_Decode Disp_Decode Disp_Decode Disp_Decode Disp_Decode Disp_Decodeledcolledcolledcolledcolledcol=0

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号