论文:出租车计费器


    XX学物联网工程学院

    Verilog HDL项目设计报告





    题 目 出租车计费器_________
    专 业 电子科学技术__________
    学 号 15629102271562910209
    授课班号 6292758—01_________
    学生姓名 XXXXXX______
    指导教师 XX齐XX_______







    次课设采编程逻辑器件(FPGAVerilog)进行出租车计费器设计设计实现出租车计费器需基功计费金额包括起步价里程计费等该设计采模块化设计VIVADO20154软件台采Verilog HDL 硬件描述语言描述模拟仿真分频模块计程模块计费模块译码显示模块完成出租车计费器仿真设计实现

    关键词:出租车计价器Verilog HDL步脉数码显示



    Abstract
    This class set we use programmable logic device (FPGAVerilog) to design a taxi meter The design and implementation of some of the basic functions required for taxi billing billing amount including starting price mileage and so on The design uses the modular design in ISE software platform using Verilog HDL hardware description language description and Simulation of frequency module meter module billing module decoding module realizes the design of Taximeter simulation
    Key words taximeter Verilog HDLSync pulse digital display


    目录

    方案设计
    二模块设计
    三仿真调试
    四总结
    五参考文献
    六附录
























    方案设计
    1设计目标
    完成简易出租车计价器设计选做停车等计价功
    (1)起步8元3公里1元550米
    (2)里程指示信号前进50米高电脉升效
    (3)前进里程开始前显示价钱精确01元
    2设计原理
    出租车般计费程:出租车载客启动计费器整系统开始运行里程计数器0开始计数费计数器8开始计算根行驶里程标准计费行驶状态计程器开始加计数
    路程超三公里计费器50米01元累加出租车达目停止停止计费器显示总费根课程设计求计价器根车轮转数计算路程脉代表50米脉里程计算模块计价器增加01元十脉550米历11状态价格增加10元

    二模块设计
    1分频模块
    时钟信号进行分频分出频率供面计程模块计价模块面数码显示扫描模块会模块功总时钟进行分频分出频率计数器总时钟50K设计该模块时候16位计数器计数器计500时候产生时钟
    always@(posedge clk or posedge rst)frequency division
    if(rst)
    begin clk0<0count<0end
    else if(count500)
    begin clk0<~clk0count<0end
    else count2步脉信号处理模块
    步脉信号处理模块完成脉start步处理部分采三D触发器门完成start信号步处理处理clk升检测start信号高低电
    always@(posedge clk or posedge rst)signal porcessing
    if(rst)
    {pulse1pulse2pulse3}<0
    else
    begin
    pulse1 pulse2 pulse3 end

    always@(*)
    begin
    pulseend
    3计程模块
    模块功计算出租车行驶路程出租车启动行驶程中(复位启动信号rst1)时钟clk升时候输入正脉时系统路程计数器里程计数器进行加计数
    always@(posedge clk or posedge rst)distance
    if(rst)
    meter<0
    else if(pulse)
    begin
    if(meter5)
    meter<0
    else
    meter end

    always@(posedge clk or posedge rstn)
    if(rst)
    {kmeter_4kmeter_3kmeter_2kmeter_1}<0
    else if(pulse)
    begin
    if(meter5)
    if(kmeter_l9)
    if(kmeter_29)
    if(kmeter_39)
    if(kmeter_49)
    begin kmeter_l<0kmeter_2<0kmeter_3<0kmeter_4<0end
    else begin kmeter_l<0kmeter_2<0kmeter_3<0kmeter_4 else begin kmeter_l<0kmeter_2<0kmeter_3 else begin kmeter_l<0kmeter_2 else begin kmeter_l end
    4计费模块
    费计数器模块出租车启动根行驶路程计算费出租车停车时时钟rst费计数器复位起步价80元车处行驶状态时满3公里路程满50米费计数器加01元
    always@(posedge clk or posedge rst)money
    if(rst)
    begin {money_4money_3money_l}<0 money_2<8money<1end
    else if(pulse)
    begin
    if({kmeter_2kmeter_lmeter}>11'b00101001101) >2950m
    if(money_l9)
    if(money_29)
    if(money_39)
    if(money_49)
    begin
    money_l<0money_2<0money_3<0money_4<0money<1
    end
    else
    begin money_l<0money_2<0money_3<0money_4end
    else begin money_l<0money_2<0money_3 else begin money_l<0money<1money_2 else
    begin
    case(money)
    1money_l<1
    2money_l<2
    3money_l<3
    4money_l<4
    5money_l<5
    6money_l<5
    7money_l<6
    8money_l<7
    9money_l<8
    10money_l<9
    11money_l<0
    endcase
    money end
    end
    5数码显示模块
    数码显示模块四位数码设置开关低电中四位显示公里数高电时四位显示价钱数精度分 01km 01 元模块需计数值通译码电路数译码数码显示数
    always@(posedge clk or posedge rst)display
    if(rst)
    state<0
    else if(state23)
    state<0
    else
    state
    always@(posedge clk or posedge rst)
    if(rst)
    begin display<8'b11000000en<4'b0000variable<0end
    else
    begin
    case(variable)
    0begin display[60]<7'b1000000end
    1begin display[60]<7'b1111001end
    2begin display[60]<7'b0100100end
    3begin display[60]<7'b0110000end
    4begin display[60]<7'b0011001end
    5begin display[60]<7'b0010010end
    6begin display[60]<7'b0000010end
    7begin display[60]<7'b1111000end
    8begin display[60]<7'b0000000end
    9begin display[60]<7'b0010000end
    defaultbegin display<8'b11111111en<4'b1111end
    endcase
    begin
    case(turn)
    0
    begin
    if(state>0&&state<1)begin display[7]<1variable else
    if(state>3&&state<4)begin display[7]<0variable else
    if(state>6&&state<7)begin display[7]<1variable else
    if(state>9&&state<10)begin display[7]<1variable else begin en<4'b1111variable<10end
    end
    1
    begin
    if(state>0&&state<1)begin display[7]<1variable else
    if(state>3&&state<4)begin display[7]<0variable else
    if(state>6&&state<7)begin display[7]<1variable else
    if(state>9&&state<10)begin display[7]<1variable else begin en<4'b1111variable<10end
    end
    defaultbegin display<8'b11111111 en<4'b1111end
    endcase
    end
    end

    三设计仿真调试
    1仿真
    计价电路计价求精确 01元 550m计价元 50m脉脉约九分钱次计价四舍五入法计价时满足出租车计价现实性需次计价终结果实际值 01元出租车计价应该三公里始终显示八元刚三公里时应显示 81 元 295km时开始计价脉采四舍五入法计价 11 脉计价 1元样满足出租车计价现实性

    2调试
    电路数码显示行走里程数价钱数没行走 50m脉信号采键模拟出租车行走 50m脉信号数码显示里程数价钱
    (1) 三公里
    价格8元
    里程数
    (2) 三公里外
    41公里
    价格101元
    3验收结果
    验收时老师求起步价改7元复位信号端口改成意指定端口改变起步价需计费模块中
    begin {money_4money_3money_l}<0 money_2<8money<1end
    条语句中money_2<8改成money_2<7改变端口需改变约束文件端口定义改指定端口端口号

    四总结
    次课程设计历两周时间中学仅巩固学知识学书没学知识历仿真开发板验证开发板初步达设计务求
    次设计进步加深verilog 解中途遇问题例仿真时遇困难想结果波形正确显示屡次调试发现写代码前信号考虑足次课设中懂理实际相结合重仅理知识远远够学理知识实践想结合起理中出结提高实际动手力独立思考力设计程中发现足处需加改进
    总说次设计算成功设计中遇问题十分努力化解问题仅学知识锻炼力路更加清楚认识

    五参考文献
    夏宇闻verilog数字系统设计教程北京航天航空学出版社

    六附录
    1程序
    module taxi(clkpulse0rstturndisplayen)
    input clkrstpulse0turn clk0100MHZ ASYNC pulse0
    output[70]display
    output[30]en
    wire clkrstnpulse0
    reg[70]display
    reg[30]en
    reg clk0pulse1pulse2pulse3pulse
    reg[20]meter
    reg[50]state
    reg[150]count
    reg[30]
    variablemoneykmeter_1kmeter_2kmeter_3kmeter_4money_1money_2money_3money_4

    always@(posedge clk or posedge rst)frequency division
    if(rst)
    begin clk0<0count<0end
    else if(count500)
    begin clk0<~clk0count<0end
    else count
    always@(posedge clk or posedge rst)signal porcessing
    if(rst)
    {pulse1pulse2pulse3}<0
    else
    begin
    pulse1 pulse2 pulse3 end

    always@(*)
    begin
    pulseend

    always@(posedge clk or posedge rst)distance
    if(rst)
    meter<0
    else if(pulse)
    begin
    if(meter5)
    meter<0
    else
    meter end

    always@(posedge clk or posedge rstn)
    if(rst)
    {kmeter_4kmeter_3kmeter_2kmeter_1}<0
    else if(pulse)
    begin
    if(meter5)
    if(kmeter_l9)
    if(kmeter_29)
    if(kmeter_39)
    if(kmeter_49)
    begin kmeter_l<0kmeter_2<0kmeter_3<0kmeter_4<0end
    else
    begin kmeter_l<0kmeter_2<0kmeter_3<0kmeter_4 else begin kmeter_l<0kmeter_2<0kmeter_3 else begin kmeter_l<0kmeter_2 else begin kmeter_l end

    always@(posedge clk or posedge rst)money
    if(rst)
    begin {money_4money_3money_l}<0 money_2<8money<1end
    else if(pulse)
    begin
    if({kmeter_2kmeter_lmeter}>11'b00101001101) >2950m
    if(money_l9)
    if(money_29)
    if(money_39)
    if(money_49)
    begin
    money_l<0money_2<0money_3<0money_4<0money<1
    end
    else
    begin
    money_l<0money_2<0money_3<0money_4end
    else begin money_l<0money_2<0money_3 else begin money_l<0money<1money_2 else
    begin
    case(money)
    1money_l<1
    2money_l<2
    3money_l<3
    4money_l<4
    5money_l<5
    6money_l<5
    7money_l<6
    8money_l<7
    9money_l<8
    10money_l<9
    11money_l<0
    endcase
    money end
    end

    always@(posedge clk or posedge rst)display
    if(rst)
    state<0
    else if(state23)
    state<0
    else
    state
    always@(posedge clk or posedge rst)
    if(rst)
    begin display<8'b11000000en<4'b0000variable<0end
    else
    begin
    case(variable)
    0begin display[60]<7'b1000000end
    1begin display[60]<7'b1111001end
    2begin display[60]<7'b0100100end
    3begin display[60]<7'b0110000end
    4begin display[60]<7'b0011001end
    5begin display[60]<7'b0010010end
    6begin display[60]<7'b0000010end
    7begin display[60]<7'b1111000end
    8begin display[60]<7'b0000000end
    9begin display[60]<7'b0010000end
    defaultbegin display<8'b11111111en<4'b1111end
    endcase
    begin
    case(turn)
    0
    begin
    if(state>0&&state<1)begin display[7]<1variable else
    if(state>3&&state<4)begin display[7]<0variable else
    if(state>6&&state<7)begin display[7]<1variable else
    if(state>9&&state<10)begin display[7]<1variable else begin en<4'b1111variable<10end
    end
    1
    begin
    if(state>0&&state<1)begin display[7]<1variable else
    if(state>3&&state<4)begin display[7]<0variable else
    if(state>6&&state<7)begin display[7]<1variable else
    if(state>9&&state<10)begin display[7]<1variable else begin en<4'b1111variable<10end
    end
    defaultbegin display<8'b11111111 en<4'b1111end
    endcase
    end
    end
    endmodule

    2测试文件程序
    module taxi_test
    reg clk0rstnpulse0turn
    wire [70]display
    wire [30]en
    wire [30] variable
    wire [30] kmeter_l
    wire pulse
    taxi taxi(clk0(clk0)rstn(rstn)pulse0(pulse0)turn(turn)display(display)en(en)variable(variable)kmeter_l(kmeter_l)pulse(pulse))
    initial
    turn1
    always #10 turn~turn
    initial
    clk00
    always #0001 clk0~clk0
    initial
    begin
    rstn0
    #1 rstn1
    #1 rstn0
    end
    initial
    begin
    pulse00
    while(1)
    begin
    #1 pulse01
    #15pulse00
    end
    #005 finish
    end
    endmodule

    3约束文件程序
    set_property IOSTANDARD LVCMOS33 [get_ports {display[7]}]
    set_property IOSTANDARD LVCMOS33 [get_ports {display[6]}]
    set_property IOSTANDARD LVCMOS33 [get_ports {display[5]}]
    set_property IOSTANDARD LVCMOS33 [get_ports {display[4]}]
    set_property IOSTANDARD LVCMOS33 [get_ports {display[3]}]
    set_property IOSTANDARD LVCMOS33 [get_ports {display[2]}]
    set_property IOSTANDARD LVCMOS33 [get_ports {display[1]}]
    set_property IOSTANDARD LVCMOS33 [get_ports {display[0]}]
    set_property IOSTANDARD LVCMOS33 [get_ports {en[3]}]
    set_property IOSTANDARD LVCMOS33 [get_ports {en[2]}]
    set_property IOSTANDARD LVCMOS33 [get_ports {en[1]}]
    set_property IOSTANDARD LVCMOS33 [get_ports {en[0]}]
    set_property IOSTANDARD LVCMOS33 [get_ports turn]
    set_property IOSTANDARD LVCMOS33 [get_ports clk0]
    set_property IOSTANDARD LVCMOS33 [get_ports pulse0]
    set_property IOSTANDARD LVCMOS33 [get_ports rstn]

    set_property PACKAGE_PIN W5 [get_ports clk0]
    set_property PACKAGE_PIN T17 [get_ports pulse0]
    set_property PACKAGE_PIN U18 [get_ports rstn]
    set_property PACKAGE_PIN T1 [get_ports turn]
    set_property PACKAGE_PIN V7 [get_ports {display[7]}]
    set_property PACKAGE_PIN U7 [get_ports {display[6]}]
    set_property PACKAGE_PIN V5 [get_ports {display[5]}]
    set_property PACKAGE_PIN U5 [get_ports {display[4]}]
    set_property PACKAGE_PIN V8 [get_ports {display[3]}]
    set_property PACKAGE_PIN U8 [get_ports {display[2]}]
    set_property PACKAGE_PIN W6 [get_ports {display[1]}]
    set_property PACKAGE_PIN W7 [get_ports {display[0]}]
    set_property PACKAGE_PIN W4 [get_ports {en[3]}]
    set_property PACKAGE_PIN V4 [get_ports {en[2]}]
    set_property PACKAGE_PIN U4 [get_ports {en[1]}]
    set_property PACKAGE_PIN U2 [get_ports {en[0]}]

    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 4 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    eda课程设计vhdl语言的简易出租车计费器设计

    XX 学 院《EDA技术》课 程 设 计 题 目 简易出租车计费器设计 系 (部) 信息工程系 班 级 电本班 ...

    3年前   
    529    0

    出租车计价器毕业设计论文

     编号 XX职业技术学院 毕业论文 题 目 多功能出租车计价器 学生姓名 学...

    5年前   
    1054    0

    基于STM32F103ZE的出租车计价器毕业论文

    基于STM32F103ZE的出租车计价器毕业论文 摘 要 本设计以STM32F103ZE为控制核心处理器,实现了矩阵键盘输入、五方向控制手柄信息输入、中文LCD显示、8位数码管显示屏显...

    5年前   
    1380    0

    出租车位的合同

    出租车位的合同  出租方(以下简称甲方):  承租方(以下简称乙方):  甲、乙双方经友好协商,本着互惠互利的原则,特制定以下租赁事项:  一、甲方车位:地下停车场内车位;  二、乙方车辆型号...

    12年前   
    637    0

    出租车公司2017春运方案

    根据乌海市交通运输局和乌海市运输管理局对2017年道路春运工作的统一部署和安排,为确保2017年春运期间我市出租车行业运输安全、优质、及时、畅通、有序地进行,满足广大市民的出行需求,结合乌海金冠...

    6年前   
    4566    0

    优秀出租车转让合同

    优秀出租车转让合同  出租车转让合同  出让人:(简称甲方)  受让人:(简称乙方)  甲方和乙方在充分协商的情况下达成以下协议:甲方将本人拥有产权的一辆发动机号为:xxxx 的全新xxxx版...

    12年前   
    545    0

    出租车公司工作总结

    出租车公司工作总结第一篇:出租车公司年终工作总结在上级县运管站以及各级组织的关怀和指导下,在公司全体员工的共同努力下,主要做了如下几方面工作;抓内强素 质外树形象工作。公司按照县运管站的要求,...

    9年前   
    500    0

    出租车库协议

    出租车库协议   出租人:      联系电话: 承租人:       联系电话:                       身份证地址:   身份证号码:          ...

    9年前   
    7281    0

    城市出租车管理规定全文

    城市出租车管理规定全文第一章 总 则第一条 为加强对城市出租汽车行业的管理,维护社会治安,保护合法经营,维护乘客与经营者的合法权益,促进城市客运交通事业的发展,特制定本办法。第二条 凡在城市(...

    2年前   
    432    0

    基于QuartusII的出租车计费系统

    基于QuartusII的出租车计费系统目 录目 录 I1引言 12 Quartus II介绍 13出租车计价器设计 2出租车计价器的设计原理 3各模块功能模块设计 33.2.1分频模块 3...

    3年前   
    642    0

    新能源出租车运营方案

    按照**省委、省人民政府关于加快推进贵安新区规划建设的总体部署及《贵安新区总体规划(2013—2030)》总体要求,结合贵安新区 “三横两纵”(黔中路、贵安路、贵黄路、金马路、百马路) 道路的建...

    5年前   
    6648    0

    出租车公司运营方案

    出租车公司运营方案一、我市出租车行业的服务现状目前我市出租车行业的整体服务水平不高,具体让乘客不满意的地方体现在以下几个方面:第一、文明礼貌方面。出租车司机在迎送乘客过程中,态度比较冷漠,缺少...

    4年前   
    1698    0

    出租车广告合同

    出租车广告合同   甲方:  乙方:  出租车广告发布合同甲乙双方根据《中华人民共和国合同法》、《中华人民共和国广告法》及相关法律法规,本着平等、互利的原则就发布迁安市出租车 广告事宜签订如下...

    5个月前   
    153    0

    出租车管理规定3篇

    出租车管理规定3篇一、为强化出租汽车在惠州机场营运的管理,规范营运秩序,创建公平、放心、文明的乘车环境,维护机场窗口形象,切实提高出租汽车服务质量,提升市民出行的服务体验,根据相关法律法规,结...

    2年前   
    473    0

    关于出租车管理规定

    关于出租车管理规定第一章总则第一条为加强城市客运出租汽车管理,提高客运出租汽车服务质量,保障乘客、用户和客运出租汽车经营企业、个体业户(以下简称经营者)及其从业人员的合法权益,根据有关法律、法...

    2年前   
    390    0

    出租车租赁合同

    车辆租赁合同   出租方:                  (以下简称甲方) 承租方:                  (以下简称乙方)     一、经甲乙双方充分协商,甲方将车号...

    10年前   
    8493    0

    出租车租赁合同

    甲乙双方依据《中华人民共和国合同法》以及其他相关法律,本着平等互利、诚实守信的原则签订此合同,以兹共同遵守,履行合同约定责任。

    5年前   
    1053    0

    1514+ 2020年理论文章意见建议规范出租车管理全面提升城市整体文明形象

    1514+ 2020年理论文章意见建议规范出租车管理全面提升城市整体文明形象 出租车是城市的名片,是城市文明建设的重要载体,更是城市一道流动的风景线,直接体现了城市有序的管理水平、精神风貌和市...

    4年前   
    679    0

    2018年出租车改革最新消息

    出租车改革最新消息  交通部长:出租车改革方案最快或上半年出台  昨日上午9时许,交通运输部部长杨传堂就出租车行业改革问题接受记 者采访。杨传堂透露,出租车改革指导意见今年将出台,最快可能是上...

    5年前   
    535    0

    转让合同:出租车转让协议

    转让合同:出租车转让协议  出让人:(简称甲方)  受让人:(简称乙方)  甲方和乙方在充分协商的情况下达成以下协议:甲方将本人拥有产权的一辆发动机号为:xxxx 的全新xxxx版出租车一辆转...

    10年前   
    598    0