当前位置: 首页 > news >正文

优秀的网页设计网站宁波网络营销有哪些

优秀的网页设计网站,宁波网络营销有哪些,在vs中做网站如何连接数据库,深圳网站建设服务介绍基于FPGA的出租车里程时间计费器 功能描述一、系统框图二、verilog代码里程增加模块时间增加模块计算价格模块上板视频演示 总结 功能描述 (1);里程计费功能:3公里以内起步价8元,超过3公里后每公里2元,其中…

基于FPGA的出租车里程时间计费器

  • 功能描述
  • 一、系统框图
  • 二、verilog代码
    • 里程增加模块
    • 时间增加模块
    • 计算价格模块
    • 上板视频演示
  • 总结


功能描述

(1);里程计费功能:3公里以内起步价8元,超过3公里后每公里2元,其中不满一公里按照一公里计算。
(2);等待计费功能:当乘客中途下车需要司机等待时,按照等待时间进行收费,每3分钟0.7元,其中不满3分钟不收费。
(3);数码管显示功能;3种显示状态,默认显示公里数,显示格式10.2,每次步进0.1km,步进时间长度为5S。第二种显示等待时间,显示格式50:33,步进时间长度1S。第三种显示当前费用,包括等待费用以及里程计价费用。
(4);信号灯指示功能:当里程计费模式下,LED2亮起,其他LED熄灭。当等待时间计费模式下,LED4亮起,其他LED熄灭。载人状态下LED1亮起,否则不亮。
(5);按键切换功能:3个按键起作用,第一个按键负责切换计费模式,默认是里程计费模式,切换后为等待时间计费模式。第二个按键负责表示出租车载人状态,默认空载,按下表示载人模式。第三个按键负责切换数码管显示的数据,每按一次切换一次,3种数据循环显示。

一、系统框图

在这里插入图片描述

二、verilog代码

里程增加模块

module count_km(input key_dri,input sys_reset_n,input en_dowm_car,input EN,output reg [3:0] data_km_ge,output reg [3:0] data_km_shi,output reg [3:0] data_km_bai,//	output reg [15:0] data_km,output [3:0] point
);parameter max_km=16'd9999; reg       flag_km_shi_up;
reg       flag_km_bai_up;assign point=4'b0010;always @(posedge key_dri or negedge sys_reset_n)beginif(!sys_reset_n)begindata_km_ge<=4'h0;flag_km_shi_up<=1'b0;endelse if(!EN)begindata_km_ge<=data_km_ge;flag_km_shi_up<=flag_km_shi_up;endelse if(key_dri && en_dowm_car)beginif(data_km_ge<4'h9)begindata_km_ge<=data_km_ge+1'b1;flag_km_shi_up<=1'b0;endelsebegindata_km_ge<=4'h0;flag_km_shi_up<=1'b1;endendendalways @(posedge key_dri or negedge sys_reset_n)beginif(!sys_reset_n)begindata_km_shi<=4'h0;flag_km_bai_up<=1'b0;endelse if(!EN)begindata_km_shi<=data_km_shi;flag_km_bai_up<=flag_km_bai_up;endelse if(key_dri && en_dowm_car && flag_km_shi_up)beginif(data_km_shi<4'h9)begindata_km_shi<=data_km_shi+1'b1;flag_km_bai_up<=1'b0;endelsebegindata_km_shi<=4'h0;flag_km_bai_up<=1'b1;endendelse if(key_dri && en_dowm_car && flag_km_shi_up==1'b0)beginflag_km_bai_up<=1'b0;endendalways @(posedge key_dri or negedge sys_reset_n)beginif(!sys_reset_n)begindata_km_bai<=4'h0;endelse if(!EN)begindata_km_bai<=data_km_bai;endelse if(key_dri && en_dowm_car && flag_km_bai_up)beginif(data_km_bai<4'h9)begindata_km_bai<=data_km_bai+1'b1;endelsebegindata_km_bai<=4'h0;endendendendmodule

时间增加模块

//计时模块
module count_1s
(input clk,   //系统时钟input sys_reset_n, //复位信号input EN, //使能  保持input en_dowm_car,//	output reg [7:0] data_s,  //秒计时器
//	output reg [7:0] data_m,	//分钟计时器output reg [3:0] data_s_shi,output reg [3:0] data_s_ge,output reg [3:0] data_m_shi,output reg [3:0] data_m_ge,output reg [3:0] time_price_ge,output reg [3:0] time_price_shi,output reg [3:0] time_price_bai,output reg   clk_1s,  //1s脉冲output [3:0] point   //点
);parameter time_60=8'd60;
parameter MAX_NUM=28'd249;reg [27:0] cnt; //1s计数器reg   flag_1m;  //1m计时reg       flag_m_shi_up;
reg       flag_s_up;
reg       flag_m_up;
reg       time_shi_up;
reg       time_bai_up;assign point=4'b0100;
//1s计时
always @(posedge clk or negedge sys_reset_n)beginif(!sys_reset_n)begincnt<=1'b0;clk_1s<=1'b0;endelse if(!EN)begincnt<=cnt;   //保持clk_1s<=clk_1s;endelse if(cnt<MAX_NUM)begincnt<=cnt+1'b1;endelsebegincnt<=0;clk_1s<=~clk_1s;  //翻转endendalways @(negedge clk_1s or negedge sys_reset_n)	beginif(!sys_reset_n)begintime_price_ge<=4'h0;endelse if(en_dowm_car)beginif(flag_s_up && time_price_ge<4'h9)begintime_price_ge<=time_price_ge+1;endelse if(flag_s_up && time_price_ge==4'h9)begintime_price_ge<=0;endendend
always @(negedge clk_1s or negedge sys_reset_n)	beginif(!sys_reset_n)begintime_price_shi<=4'h0;endelse if(en_dowm_car)beginif(time_price_ge==4'h9 && time_price_shi<4'h9 && flag_s_up )begintime_price_shi<=time_price_shi+1;endelse if(time_price_ge==4'h9 && time_price_shi==4'h9&& flag_s_up)begintime_price_shi<=0;endendendalways @(negedge clk_1s or negedge sys_reset_n)	beginif(!sys_reset_n)begintime_price_bai<=4'h0;endelse if(en_dowm_car)beginif(time_price_shi==4'h9 && time_price_bai<4'h9&& flag_s_up &&time_price_ge==4'h9)begintime_price_bai<=time_price_bai+1;endelse if(time_price_shi==4'h9 && time_price_bai==4'h9&& flag_s_up&&time_price_ge==4'h9)begintime_price_bai<=0;endendend//	秒个位加1
always @(negedge clk_1s or negedge sys_reset_n)	beginif(!sys_reset_n)begindata_s_ge<=4'h0;flag_s_up<=0;endelse if(!EN)begindata_s_ge<=data_s_ge;   //保持flag_s_up<=flag_s_up;endelse if(en_dowm_car)beginif(data_s_ge < 4'h9 )begindata_s_ge<=data_s_ge+1'b1;		flag_s_up<=1'b0;					endelse if(data_s_ge == 4'h9)begindata_s_ge<=4'h0;		flag_s_up<=1'b1;					endendelse begindata_s_ge<=data_s_ge;   //保持flag_s_up<=flag_s_up;endend
//	秒十位加1
always @(negedge clk_1s or negedge sys_reset_n)	beginif(!sys_reset_n)begindata_s_shi<=4'h0;flag_m_up<=0;endelse if(!EN)begindata_s_shi<=data_s_shi;   //保持flag_m_up<=flag_m_up;endelse if(data_s_shi < 4'h5 && data_s_ge==4'h9)begindata_s_shi<=data_s_shi+1'b1;		flag_m_up<=1'b0;					endelse if(data_s_shi == 4'h5 && data_s_ge==4'h9)begindata_s_shi<=4'h0;		flag_m_up<=1'b1;					endelse begindata_s_shi<=data_s_shi;		flag_m_up<=1'b0;	endend//分钟个位加一
always @(posedge clk_1s or negedge sys_reset_n)	beginif(!sys_reset_n)begindata_m_ge<=4'h0;flag_m_shi_up<=1'b0;endelse if(!EN)begindata_m_ge<=data_m_ge;   //保持flag_m_shi_up<=flag_m_shi_up;endelse if(en_dowm_car) beginif(data_m_ge<4'h9 && data_s_shi==4'h5 && data_s_ge==4'h9)begindata_m_ge<=data_m_ge+1'b1;flag_m_shi_up<=1'b0;endelse if(data_m_ge==4'h9 && data_s_shi==4'h5 && data_s_ge==4'h9)begindata_m_ge<=4'h0;flag_m_shi_up<=1'b1;endelse begindata_m_ge<=data_m_ge;   //保持flag_m_shi_up<=1'b0;endendelse begindata_m_ge<=data_m_ge;   //保持flag_m_shi_up<=1'b0;endend//分钟十位加一
always @(posedge flag_m_shi_up or negedge sys_reset_n)	beginif(!sys_reset_n)begindata_m_shi<=4'h0;endelse if(!EN)begindata_m_shi<=data_m_shi;   //保持endelse if(en_dowm_car) beginif(data_m_shi<4'h5 )begindata_m_shi<=data_m_shi+1'b1;endelse if(data_m_shi==4'h5)begindata_m_shi<=4'h0;endendelse begindata_m_ge<=data_m_ge;   //保持endendendmodule

计算价格模块

module count_money(input [7:0] data_m,input [15:0] data_km,input sys_reset_n,input clk,input             add_km,input         en_dowm_car,input          clk_1s,input         [3:0] data_km_ge,input         [3:0] data_km_shi,input         [3:0] data_km_bai,input          [3:0] time_price_ge,input          [3:0] time_price_shi,input          [3:0] time_price_bai,output      reg [3:0] price_ge,output      reg [3:0] price_shi,output      reg [3:0] price_bai,
//	output reg [15:0] data_price,output [3:0] point
);assign point=4'b0010;reg [15:0] price_km;
reg [15:0] price_time;reg price_shi_up;
reg price_bai_up;
initialbeginprice_km<=16'd30;price_time<=16'd0;end//里程计价
always @(posedge add_km or negedge sys_reset_n)beginif(!sys_reset_n)beginprice_ge<=4'h0;price_shi_up<=1'b0;endelse if(en_dowm_car )beginif(data_km_bai==4'h0)beginif(price_ge<4'h9 && data_km_shi>=4'h3 )begin//大于3.0公里开始增加price_ge<=price_ge+1;price_shi_up<=1'b0;endelse if(price_ge>=4'h9 && data_km_shi>=4'h3 )begin//大于3.0公里开始增加 到9累加price_ge<=4'h0;price_shi_up<=1'b1;endelse if(price_ge<4'h9 && data_km_shi<4'h3)beginprice_ge<=price_ge;price_shi_up<=1'b0;endendelse if(data_km_bai!=4'h0)beginif(price_ge<4'h9 )begin//大于3.0公里开始增加price_ge<=price_ge+1;price_shi_up<=1'b0;endelse if(price_ge>=4'h9)begin//大于3.0公里开始增加 到9累加price_ge<=4'h0;price_shi_up<=1'b1;endendendendalways @(posedge add_km or negedge sys_reset_n)beginif(!sys_reset_n)beginprice_shi<=4'h8;price_bai_up<=1'b0;endelse if(price_shi<4'h9 && price_shi_up)beginprice_shi<=price_shi+1;price_bai_up<=1'b0;endelse if(price_shi>=4'h9 && price_shi_up)beginprice_shi<=4'h0;price_bai_up<=1'b1;endelse if(price_shi_up==1'b0)beginprice_bai_up<=1'b0;endendalways @(posedge add_km or negedge sys_reset_n)beginif(!sys_reset_n)beginprice_bai<=4'h0;endelse if(price_bai<4'h9 && price_bai_up)beginprice_bai<=price_bai+1;endelse if(price_bai>=4'h9 && price_bai_up)beginprice_bai<=4'h0;endendendmodule

在这里插入图片描述

模块分析:
通过分频得到5S周期的脉冲信号,当EN信号为高电平时,也就是有乘客上车后,司机按下按键,出租车变为载客状态,这时里程开始根据脉冲信号的上升沿进行增加。
在这里插入图片描述
通过按键切换到等待时间计费模式后,EN变为高电平,模块开始工作。将时钟分频模块得到的1S脉冲信号作为触发源进行判断,分和秒各8位,可以看到在脉冲上升沿时间不断累加,符合预期功能。

上板视频演示

基于FPGA的出租车里程时间计费器

总结

模块太多,只展示了比较重要的,其他一些模块就是产生分频信号的,无关紧要。需要的一键三连

http://www.ds6.com.cn/news/32915.html

相关文章:

  • 从百万到千万 网站怎么优化渠道网
  • 大城县企业网站建设电商怎么做推广
  • 辽宁pc网站建设开发app推广公司
  • 公司企业官网福州网站seo
  • 中国正规官方网站有哪些最新百度快速排名技术
  • 网站版面做的很好的公司怎样做网络销售平台
  • 备案 网站负责人网页设计大作业
  • 网站上传文件 ftp网站快速上排名方法
  • 邢台网站建设制作营销策划案ppt优秀案例
  • 企业网站建设与实施调研报告基本情况网坛最新排名
  • 做1个自己的贷款网站头条新闻今日头条
  • 塘坑网站建设百度推广优化是什么?
  • 做网站可以用ai做关键词查找
  • 沙河口网站建设常用的搜索引擎
  • 微网站定制多久网络营销课程总结与心得体会
  • 网站宣传海报西安seo网站关键词优化
  • 东莞企业网站建设设计百度地图导航手机版免费下载
  • 网站公告栏怎么做汕头网站建设开发
  • 企业建设网站能否报销商务软文写作
  • 企业所得税税率2022年最新税率表谷歌seo是指什么意思
  • 免费做电子请柬的网站郑州seo技术顾问
  • 我的网站为什么打不开怎么回事seo网站排名优化公司哪家好
  • 衡水哪儿做wap网站成品短视频app下载有哪些软件
  • 网站开发需求分析报告网站注册域名
  • 营销型网站建设概述网站交易平台
  • 成都网站建设科技公司谷歌chrome安卓版
  • 做博客网站怎么赚钱海洋seo
  • 深圳汇网网站建设二级域名注册
  • 外包网站该怎么做帐新闻发布会新闻通稿
  • 网站页面怎么做识别二维码竞价排名推广