出租车计价器设计方案和功能介绍verilogfpga

上传人:新** 文档编号:497689379 上传时间:2023-10-01 格式:DOCX 页数:22 大小:129.34KB
返回 下载 相关 举报
出租车计价器设计方案和功能介绍verilogfpga_第1页
第1页 / 共22页
出租车计价器设计方案和功能介绍verilogfpga_第2页
第2页 / 共22页
出租车计价器设计方案和功能介绍verilogfpga_第3页
第3页 / 共22页
出租车计价器设计方案和功能介绍verilogfpga_第4页
第4页 / 共22页
出租车计价器设计方案和功能介绍verilogfpga_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《出租车计价器设计方案和功能介绍verilogfpga》由会员分享,可在线阅读,更多相关《出租车计价器设计方案和功能介绍verilogfpga(22页珍藏版)》请在金锄头文库上搜索。

1、整个工程源代码下载地址新浪微盘http:/ 出租车计价器设计方案和功能介绍目录一、系统的总体设计方案31功能模块关系图32设计描述33 按键功能介绍64 开关功能介绍65 状态表示介绍表7二、主要模块的设计代码71控制模块72 里程计数模块103 时钟模块114 等待时间计数模块125 计价模块136 数码管驱动模块(有小数点)157 尾灯模块17三、总结感想(这是编程中遇到的一些问题的处理方法)181 复位键(reset)的使用心得182 关于,有用信号leap=1,是否需要让leap=0的问题。193 在一个Verilog文件中,不可以在两个always模块中同时操作一个变量。194 数码

2、管闪烁195 对于一些取值不能为0的变量,如year,month等,应该赋给初始值,以免显示出错。196 对于reset这样的点击键应该写成点击形式,加上消抖程序。不应该用连加,以避免出错。197 关于按键检测问题198 怎么获得一个变量,某时刻和该时刻之前的变量?209 每一个verilog模块不能包含太多阻塞赋值语句,否则编译器会报错。尽可能多用非阻塞语句赋值。20附录:总设计图21出租车计价器设计方案和功能介绍一、系统的总体设计方案1功能模块关系图控制模块等待时间计数时钟模块数码管驱动模块里程计算模块计价模块显示模块出租车计价器组成模块关系图分频器模块消抖模块2设计描述本数字钟有10个模

3、块组成,分频器模块、消抖模块、控制模块、等待时间计数模块、时钟模块、里程计算模块、计价模块、显示模块、数码管驱动模块、尾灯模块。1 分频器模块:将开发板提供的50MHz的时钟,分频成1Hz、4Hz、1KHz和6MHz的时钟信号,供各模块使用。2 消抖模块:处理按键毛刺,产生稳定信号3 控制模块:(1) 白天近程和远程单价,晚上近程和远程单价(2) 白天起步价,晚上起步价(3) 等待每分钟价格(4) 起步价可行公里数,远程和近程分界线(5) 白天晚上开始时间4 等待时间计数模块:在state=1(计价器已经打开)且run=0(出租车暂停)时,开始计时。产生数据单位为分钟,最小值位1分钟,没有小数

4、。5 时钟模块:对1Hz时钟信号进行处理,实现时分秒循环计数,构成时钟。6 里程计算模块:对1Hz时钟作为模拟信号源,模拟每秒走0.2Km。输出数据单位为千米,最小值为1千米,没有小数。7 计价模块:计价模块位本出租车计价器中最核心和重要的模块,如果该模块编好,计价器就完成了一半。对里程模块输出数据进行处理,统计出在白天近程(price_day_short)、白天远程(price_day_long)、晚上近程(price_night_short)、晚上远程(price_night_long)单价内,行驶的里程数cnt1、cnt2、cnt3、cnt4。对时钟模块时钟进行处理,判断出现在是白天还是

5、晚上,给里程单价和起步价提供判断依据。对等待时间计数模块输出数据处理,计算出等待时间所产生的金额。总的计价公式=起步价+price_day_short*cnt1+price_day_long*cnt2+price_night_short*cnt3+price_night_long*cnt4+等待金额8 显示模块:(1) 金额和里程显示(2) 等待时间显示(3) 时钟时分秒显示(4) 设置时单价显示(5) 设置时等待价格显示(6) 设置起步价显示(7) 设置里程分界显示(8) 设置白天和晚上开始时间显示9 数码管驱动模块:根据显示模块提供的段选、位选信号和小数点控制信号,控制8个数码管显示数据。

6、输入信号必须为,每4个二进制位为一组表示一位十进制数(十进制数09),小数点控制信号时8位的。10 尾灯模块:尾灯模块用8个LED灯显示车的转向状态,用两个开关模拟出租车左转和右转。左转时:8个LED灯从右向左依次循环点亮;右转时:8个LED灯从左向右依次循环点亮。在车处于计价等待时间时,8LED灯闪烁。3 按键功能介绍共有四个按键,reset(复位键)、set(设置键)、start(开始计价/加键)、run(运行状态控制/减键)。1 reset键:按一次state=0,复位,显示金额和里程数。2 set键:每按一次,state状态加一。state共有014的15个状态,set键只能在114之

7、间连续循环;reset键能够让state置0。3 start键:该键有两个功能第一功能:当state=0时,start有三个状态控制start_out=1、2、0(start_out初始值时0,表示按一次键后计价器开始计价)计价器开始计价、停止计价(计价结束,显示数据)、数据清零。设置好价格数据后,start键每按三次就是一次循环,也就是拉完一个客人。第二功能:当state!=0时,负责该状态设置数值加1。4 run键:第一功能:当start=0且start_out=1时,有两个状态run_out=1、0(run_out初始值为1,表示按一次后车状态为停止)车运行、车停止。run键每按一次在运

8、行和停止变换一次第二功能:state!=0,负责该状态设置数值减1。4 开关功能介绍LED_LEFT开关:当出租车要左转时,打开该开关。8个LED灯从右向左依次循环点亮。LED_RIGHT开关:当出租车要左转时,打开该开关。8个LED灯从左向右依次循环点亮。5 状态表示介绍表状态数码管备注876543210显示总价里程数显示总价和里程11时分秒时钟:时分秒22等待时间等待时间3里程单价:元/千米3白远白天近程单价44黑近白天远程单价55黑近晚天近程单价66黑远晚天远程单价7分/元7等待时间等待时间单价8起步价8白起步价白天起步价99晚起步价晚起步价10里程千米a白里程起步价可行公里时11b黑里

9、程远近分界线12时间小时c白时间白天开始时间13d晚时间晚上开始时间14显示每天总价每天总里程显示每天总数颜色说明调整状态:数值可以调整显示状态:数值不能变化熄灭状态:数码管熄灭二、主要模块的设计代码这里只列举控制模块、里程计数模块、时钟模块、等待时间计数模块、计价模块、数码管驱动模块、尾灯模块。分频模块、消抖模块和显示模块不在列举。1控制模块由于该模块重复代码太多了,直接去了一部分。但是,该模块还是完整地模块,所缺少只是其它状态下对其它数据的设置,和状态4b3和4b4很相似。该模块最经典的时,start和run键双功能设置。/控制模块/控制计价器开始/停止/控制出租车状态走/停module

10、control(clk, /50MHzreset, /复位set, /状态切换start, /计费启动开关run, /出租车运行状态开关price_day_short, /白天近程单价price_day_long, /白天远程单价price_night_short, /晚上近程单价price_night_long, /晚上远程单价price_wait_time, /等待时间每分钟价格one_price_day, /白天起步价one_price_night, /晚上起步价short_distance, /起步价可行最大里程数long_distance, /最大近程里程数day_time, /白天

11、开始时间night_time, /晚上开始时间start_out,run_out,state,password /更改信息的密码);input clk,reset,set,start,run;input 5:0 password;output 7:0 price_day_short,price_day_long,price_night_short,price_night_long,price_wait_time;output 11:0 one_price_day,one_price_night;output 7:0 short_distance,long_distance;output 7:0

12、 day_time,night_time;output 3:0 state,start_out;output run_out;reg 7:0 price_day_short,price_day_long,price_night_short,price_night_long,price_wait_time;reg 11:0 one_price_day,one_price_night;reg 7:0 short_distance,long_distance;reg 7:0 day_time,night_time;reg 3:0 state,start_out;reg run_out,add,sub

13、;initial /为了处理小数点,把实际价格扩大十倍beginday_time=5; /白天开始时间night_time=23; /晚上开始时间short_distance=3; /起步价可行最大里程数long_distance=10; /最大近程里程数price_day_short=24; /实际价格2.4元price_day_long=36; /实际价格3.6元price_night_short=31; /实际价格3.1元price_night_long=47; /实际价格4.7元one_price_day=140; /实际价格14元one_price_night=180; /实际价格18元price_wait_time=10; /实际价格1元endinitialbeginstate=4d0;endalways(posedge clk)

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

最新文档


当前位置:首页 > 行业资料 > 国内外标准规范

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