国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

  • 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

通用出租車計費器Basys2開發(fā)板verilog/出租車計價器/出租車打表器

8小時前
156
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

1-231106213930B3.doc

共1個文件

名稱:出租車計費器Basys2開發(fā)板verilog出租車計價器出租車打表器(代碼在文末下載)

軟件:ISE

語言:Verilog

代碼功能:

設(shè)計一個出租車計費器,能在 Basys2開發(fā)板上實際運行。

1、用開發(fā)板上的2個按鍵輸入路程和計時信號,其中一個按鍵,每按一下,代表輸入一個0.5公里的脈沖,另外一個按鍵,每按一次,代表超時后的1分鐘。

2、計費規(guī)則為起步價8元,2.5公里內(nèi)免費,每公里1.6元,每分鐘等待0.4元。(計費方式可以自行修改)

3、路程、等待時間和費用都要用開發(fā)板上的數(shù)碼管顯示,數(shù)碼管數(shù)目肯定不足,可以用開發(fā)板上的開關(guān)來切換顯示,這一部分也需要自己編寫代碼實現(xiàn)。

本代碼的計費方式可以自行修改。修改以下代碼即可:

//定義計費方式,可修改
parameter?start_price=15'd80;//起步價8.0元
parameter?start_kilometres=8'd25;//2.5公里內(nèi)起步價
parameter?kilometres_price=15'd8;//0.8元每0.5公里
parameter?time_price=15'd4;//0.4元每分鐘

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

本代碼已在Basys2開發(fā)板驗證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:

basys2.png

演示視頻:

設(shè)計文檔:

1. 工程文件

2. 程序文件

3. 管腳分配

4. 程序編譯

5. RTL圖

6. Testbench

7. 仿真圖

整體仿真圖

按鍵模塊

控制模塊

顯示模塊

部分代碼展示:

//控制模塊
module?taxi_state(
input?clk,//標準時鐘
input?reset,//復位信號,高有效?

input?stop,//本次行程結(jié)束,停止計費,低有效?
input?start,//啟動信號,行程開始,低有效?

input?one_kilometre,//0.5公里產(chǎn)生一次
input?minute_en,//1分鐘產(chǎn)生一次

output?[7:0]?minute_out,//分鐘
output?[7:0]?mileage_out,//里程
output?reg?[15:0]?totel_money_out//合計費用
);

parameter?s_idle=3'd0;
parameter?s_starting_price=3'd1;//起步價
parameter?s_mileage_price=3'd2;//按里程計費
parameter?s_stop=3'd3;
parameter?s_begin=3'd4;

reg?[2:0]?state=3'd0;

reg?[15:0]?totel_money=16'd0;

reg?[7:0]?mileage=8'd0;//里程
assign?mileage_out=mileage;

//里程控制
always@(posedge?clk)
if(reset==1)
	mileage<=8'd0;
else
if(state==s_starting_price?||?state==s_mileage_price?)	
	if(one_kilometre==1)
		mileage<=mileage+8'd5;//0.5公里里程加0.5
	else
		mileage<=mileage;
else?if(stop==1)?
		mileage<=8'd0;
	else
		mileage<=mileage;

//定義計費方式,可修改
parameter?start_price=15'd80;//起步價8.0元
parameter?start_kilometres=8'd25;//2.5公里內(nèi)起步價
parameter?kilometres_price=15'd8;//0.8元每0.5公里
parameter?time_price=15'd4;//0.4元每分鐘
		
always@(posedge?clk)
if(reset==1)begin
	state<=s_idle;//reset
	totel_money<=16'd0;
	totel_money_out<=16'd0;
	end
else
	if(stop==1)?begin//停止
		state<=s_stop;
		totel_money<=16'd0;
		totel_money_out<=totel_money;//輸出合計費用
		end
	else?begin
		totel_money_out<=totel_money;//輸出合計費用
		case(state)
			s_idle:begin//空閑狀態(tài)
			????totel_money<=totel_money;
				if(start==1)//啟動
					state<=s_begin;
				else
					state<=s_idle;
				end
			s_begin:begin
				state<=s_starting_price;
				totel_money<=start_price;//起步價
				end
			s_starting_price:begin//起步價狀態(tài)
				if(minute_en==1)//1分鐘
					totel_money<=totel_money+time_price;//0.4元每分鐘
				else
					;

				if(mileage>=start_kilometres)//大于start_kilometres公里
					state<=s_mileage_price;
				else
					state<=s_starting_price;
				end
			s_mileage_price:begin//車行駛起步公里后按每公里1.6元計費
				if(one_kilometre==1)
					totel_money<=totel_money+kilometres_price;//每公里?1.6元計費
				else?if(minute_en==1)//1分鐘
					totel_money<=totel_money+time_price;//0.4元每分鐘
				else
					;
				end
			s_stop://停止
				state<=s_idle;
			default:state<=s_idle;
		endcase
		end
		
reg?[7:0]?minute_cnt=8'd0;
//總等待時間計數(shù)
always@(posedge?clk)
if(reset==1)
	minute_cnt<=8'd0;
else?if(state==s_mileage_price?||?state==s_starting_price)
	if(minute_en==1)//1分鐘
		minute_cnt<=minute_cnt+8'd1;//加分鐘
	else

點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=265

  • 1-231106213930B3.doc
    下載

相關(guān)推薦

繁昌县| 固始县| 宁陵县| 五常市| 和静县| 黄梅县| 安岳县| 淅川县| 乌兰县| 聊城市| 康乐县| 扶绥县| 蒙阴县| 宁蒗| 陆丰市| 桃源县| 安宁市| 卫辉市| 成武县| 本溪市| 化德县| 凭祥市| 德兴市| 思南县| 榕江县| 桃源县| 安宁市| 邯郸市| 左贡县| 新闻| 左云县| 芜湖县| 出国| 二连浩特市| 精河县| 鄂伦春自治旗| 措勤县| 阿拉善左旗| 漠河县| 通山县| 永丰县|