⑴ 400分求汽車4s店信息管理系統畢業設計(開題報告,源代碼等)
相關資料:
我國汽車4S營銷模式現狀、問題及對策分析
[摘要] 本文對我國汽車4S營銷模式的現狀進行掃描,指出存在的五大問題,對存在的問題進行分析,並對解決存在問題提出了建議和對策。
[關鍵詞] 汽車產業 營銷模式 汽車4S店
一、前言
汽車4S店是指將整車銷售(sale)、零配件供應(spare part)、售後服務(service)、信息反饋(survey)四項功能集於一體的汽車服務企業。汽車4S營銷模式上個世紀90年代中期從歐洲傳入中國,中國汽車廠商1999年以後開始大量建立自己的汽車銷售4S店。雖然4S營銷模式在中國的歷史不到十年,但是在4S店的建設上已經暴露出投資過熱後的各種問題。中國出現了世界最豪華、最龐大的4S專賣店群,但是大部分經銷店卻出現了「一流設施、二流銷售、三流服務」的尷尬現狀。
二、我國汽車銷售4S店現狀
1.我國轎車銷售4S店現狀
自從上海通用和廣州本田率先引進4S模式之後,我國各種品牌汽車廠商紛紛仿效,在近五六年時間里,我國的4S店的數量已躍居全球前列,每個品牌的4S店基本上超過100家,像一汽豐田2001年才在中國設立合資企業,但到2004年它在中國的4S店已達到190家,僅在北京就有30多家。
我國轎車銷售4S店除少數幾個中高檔品牌外,其餘品牌的4S店現狀已不容樂觀:深圳部分經營日產、一汽大眾和菲亞特品牌的經銷商慘淡經營,有的已經開始轉手賣店;2004年以後,北京基本上每月都有一到兩家4S店關閉……實際上,早在2004年,很多轎車4S店已經瀕於破產。2005年以來,汽車整車銷售利潤年均下降5%,4S營銷模式已經暴露出許多問題,2006年汽車銷售繼續低迷,4S營銷模式的弊端就顯得更為突出。車市繁榮時,4S店的一切問題都被掩蓋了,一旦車市不景氣,4S店的很多問題就會暴露出來。山西新寶鼎公司解除與長安福特馬自達合約關系的「新寶鼎事件」,讓一直潛藏在汽車經銷商和廠家之間的矛盾第一次在廣大消費者面前曝光,說明昔日風光無限的4S店遭遇到窘境; 2006年12月31日正式實施的《汽車品牌銷售管理實施辦法》,也必然影響全國數萬家汽車經銷商和4S店的生存。市場跡象表明,一場汽車銷售業的大洗牌正在來臨,首當其沖的是各種壓力和矛盾集中的4S店經銷商。
2.我國卡車銷售4S店現狀
卡車銷售4S店的情況與轎車的截然不同。卡車4S店的起步晚,可以說是方興未艾。這幾年,幾大輕卡廠商銷售業績呈穩步上升的發展態勢,卡車廠家有了信心和資本來興建4S專營店以深化輕卡的營銷模式,卡車4S店呈現出雨後春筍般的生長勢頭。
三、我國汽車4S營銷模式的主要問題
4S店之所以造成今天這樣的困境,除了國家關稅下調、國家宏觀調控、轎車市場回歸理性發展等大環境的原因外,我國汽車4S營銷模式本身的缺陷是主要原因。這主要表現在:
1.進入壁壘中存在尋租現象
廠家掌握汽車銷售領域的主導權,尤其是在汽車暢銷前幾年,申請一家4S店需要上百萬元甚至幾百萬的公關費,這是業內心照不宣的潛規則。
2.過度投資造成的過度競爭
幾乎每個新品牌進入中國,都要大張旗鼓地投資建網,每個品牌的4S店少則100多家,多則超過300家,更有老牌企業在全國已有600多家特約銷售商。如在北京東南一片半徑5公里的范圍內,居然有7家豐田4S店,又如上海大眾僅在北京就有39家專賣店,若再加上新建的4家斯柯達店,僅在北京就有43家4S店。銷售網點過於密集,利潤空間逐年減少,隨著競爭加劇和投資逐步增大,某一品牌汽車的市場銷量被攤薄,其4S店難以支撐其運作成本,至於能否盡快收回投資成本,對4S經銷商來說是一個很大的風險。
3.4S經銷商與汽車生產廠家地位不對等
汽車廠家從自身的利益最大化出發,對4S經銷商進行強行搭售、強制性接車現象並不少見。比如,2004年乘用車市場不好,有些汽車企業便強迫4S店不顧市場實際變化而吃貨,而4S店因為擔心汽車廠家將其4S資格收回,不得不大量積壓庫存。廠家的庫存壓力通過4S店推向了社會。
4.4S店初期投資過高
據調查,一個4S店的固定資產投資在1000萬至1500萬元,流動資金要求在1000萬元,總投資少則三五千萬元,多的上億元。在汽車企業的嚴格規定下,一個集展示、銷售、維修保養為一體的4S店要佔地5至10畝,有工位20至30個。
5.經營成本高
汽車專賣店追求數量增長之時,提升檔次之風也越演越烈。巨大的投入使賣車成本居高不下,我國目前80%以上的4S店在慘淡經營。一家4S店即使一台車不賣,一天維持運轉的水、電等的運營費用在一萬元以上。
四、問題分析及主要對策
1.降低成本是大勢所迫
建設一個4S店不僅需要支付灰色公關成本,而且需要支付巨大的初始成本,還需要高額的運營成本。在汽車銷售的暴利時代,成本問題被虛假繁榮掩蓋了。隨著汽車市場新品種不斷推出,各種車型價格紛紛跳水,4S店的市場利潤在縮水,汽車銷售進入微利時代後,經銷商自然無法承擔4S店高昂的投資費用和運營費用,前期投入可能成為沉沒成本,因此難怪高投入高成本的4S模式進入了消退期。如果4S店減少一些投資,降低建設成本,把富麗堂皇的商場建成大型倉儲式賣場,把這部分節約下來的確投資在車價中相應地減除或用於對用戶的服務,也許消費者更樂於接受。現代物流理論強調物資流通的高效率,不遺餘力地減少流通環節的成本,中國4S店的奢華之風,顯然是與之背道而馳的。
2.收縮營銷網路是大勢所趨
在全球普遍整合經銷網路的今天,國內汽車企業卻在大搞分網經營,我國有很多4S店只銷售單一品牌的車型,比如:僅豐田在中國就有雷克薩斯、一汽豐田、廣州豐田3個網路;上海通用有卡迪拉克、別克、雪佛蘭等3個品牌網路;同是大眾品牌的一汽大眾和上汽大眾、同是馬自達的M6和323,都是分開銷售的。這種分網經營必然是重復布點、資源不能共享,是規模不經濟的。筆者認為,廠家應根據車型、品牌對旗下的4S店進行整合,根據市場供求情況來調整產量,這樣不但可以節約開支,也可以使4S店的產品更加多樣化。值得一提的是,與國內大舉興建4S店的現象正好相反,美國、歐洲的汽車專營店網路正因為各種原因不斷收縮,因為4S這種專營方式正受到當地消費者的質疑:龐大的經銷網路和過於密集的銷售網點消耗了巨額運營成本,最終卻轉嫁到消費者身上。美國汽車經銷商協會的統計結果表明,美國本土經銷商的利潤連續五年走低,2006年更是下滑到銷售額的1.45%,為此,美國汽車經銷商不得不採取多種措施(例如通用汽車將SAAB、卡迪拉克等高端品牌在歐洲並網銷售),努力降低4S店的運營成本,而歐盟為了降低銷售成本,打破汽車銷售過程中的壟斷,更是取消了汽車專營政策。目前,在我國轎車4S店面臨困境、卡車4S店方興未艾的時候,國外4S店的發展歷程有前車之鑒的作用,防止我國卡車營銷重蹈轎車4S店之覆轍,更是各卡車廠商、政策制定部門必須清醒思考的問題。
3.不是什麼品牌都能採用4S營銷模式
4S是賣方市場時的經營理念,它不是惟一的營銷模式,不適合所有的車型和地區。4S店就其高額成本、高效服務的角度來講,適合高檔轎車的營銷,因為高端客戶為了得到更優質更省心的服務,錢並不是他們首先考慮的。對中檔車來說,採用4S形式則要有良好的品牌和服務,成本核算和控制相對高檔車而言顯得更為重要和迫切。對於低端車來說,雖然採取4S店的模式可以提升品牌形象,但是恐怕要為此付出比廣告費高得多的代價。因為這里有個成本分攤的問題,汽車市場中銷售一輛40萬元的車和銷售一輛20萬元的車相比,利潤差距很大,如果4S店賣的是高檔車,一年銷售300輛可能有1200萬元的毛利,但如果銷售低端車,一年銷售300輛毛利可能不到120萬,這120萬元毛利可能連固定資產的每年分攤都支付不起,更不要說盈利了。此外,一些銷量很低、市場佔有率很小的品牌,也不宜採用4S營銷模式,2006年連續幾個月汽車銷量下滑,對這類弱勢品牌的4S經銷商已是致命的打擊,它們有的已成為第一批被洗牌出局的犧牲品。
4.不必拘泥於4S
這里有兩重含義:一是4S店的部分功能,如售後服務、零配件供應可以合並,以取得規模經濟。在這方面,歐美已有可供汲取的經驗。美國的汽車銷售已經實行銷售和售後服務的分離。美國的汽車銷售是特許經營的,而售後服務則逐漸趨向專業化經營,具有相對的獨立性。美國有2.2萬個汽車專賣店,大多數專賣店只做銷售,少數具有一定規模的才會建設售後服務體系,像通用公司賣出的汽車中,74%不是由特約經銷商提供維修服務的,因為3S、4S經銷模式提供維修服務費用很高,而且每個經銷商都購置一套維修設備也是一種資源浪費。歐洲作為4S店的起源地,這幾年也決定「開放汽車銷售形式」,重新設計適應新環境的營銷形式,將銷售和維修完全分開,並且對汽車零售業進行改革,允許多品牌經營,減少中間環節,以達到降低成本,促進消費之目的。
二是從宏觀的角度看,汽車銷售除了4S模式,還有汽車有形市場(汽車大市場)、汽車經銷集團等業態。4S店模式的出現是社會進步的表現,但是需求的多樣化決定供給的多樣化,無論什麼銷售方式,只要能夠滿足消費者的需求,就能在激烈的競爭中求得生存和發展。就目前而言,汽車大市場和汽車銷售集團作為汽車營銷模式依然充滿著生命力。這是因為:①汽車大市場有產品集中、品種品牌多、方便購車者貨比三家的優點,專賣店銷售規模再大,也不能與大的汽車大市場相比,因此,越來越多的4S店開進了大市場也就不足為奇了,像北京的亞運村汽車市場交易量佔北京汽車銷售總量的20%左右,廣州的廣東汽車市場2005年銷售額達到了63億元,這都說明汽車大市場優勢依舊;②汽車經銷集團經過多年的沉寂之後,因為具有規模經濟的優點,近兩年又顯露出它的生命力。車市洗牌使那些零散的、粗放式的經銷商被淘汰,取而代之的是一些有實力、懂管理、有戰略眼光的大型汽車經銷集團,像中汽南方、兆方機電都是多品牌、集約化經營的成功代表。其實,縱觀發達國家或地區,一個區域的汽車經銷多為幾大集團所壟斷:像香港,所有汽車品牌均被英之傑、大昌行、森那美三大集團瓜分;像廣東順德的汽車市場,經過市場的一番大浪淘沙之後,最終幾乎所有的汽車品牌商都歸屬於新協力集團和合成汽貿兩個汽車營銷集團旗下。這種適度的集中,體現了規模經濟和協同效應,是對過度競爭和亂鋪攤子的糾正。
五、結束語
當我們把眼光投向西方,發現幾年前國內汽車經銷商追隨歐美大力發展的4S營銷模式,原來卻是人家快要淘汰的東西。當我們把眼光投向我們的鄰居日本,會發現,日本不同品牌汽車的銷售模式不盡相同,日本汽車品牌經銷模式並不存在4S之說。
顯然,國內汽車4S營銷模式超越了中國汽車工業的步伐,脫離了中國汽車工業的實際,有盲目跟風之嫌。合資企業要求國內經銷商興建4S店,自有其自私自利的一面,亦不排除廠家有關人員設租的可能。作為一種市場行為,經銷商開不開4S店,屬於一個願打一個願挨的自由交易,不必旁人說三道四,但是,當這種交易給第三方造成損害,降低了社會總福利時,政府不能坐視不理,我們的產業政策制定者和有關部門不能無所作為,而作為投資方,更是要有清醒、冷靜的頭腦。
僅供參考,請自借鑒
希望對您有幫助
⑵ 求一個購物車項目設計源代碼
using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Collections;public partial class AddCar : System.Web.UI.Page{ DataAccess db = new DataAccess(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string id = Request.QueryString["id"].ToString(); if (Session["car"] != null) { Hashtable hash = Session["car"] as Hashtable; if (!hash.ContainsKey(id)) { hash.Add(id, 1); } else { hash[id] = int.Parse(hash[id].ToString()) + 1; } Session["car"] = hash; } else { Hashtable hash = new Hashtable(); hash.Add(id, 1); Session["car"] = hash; } Hashtable k = Session["car"] as Hashtable; DataColumn dc0 = new DataColumn("id", typeof(string)); DataColumn dc1 = new DataColumn("商品名", typeof(string)); DataColumn dc2 = new DataColumn("價格", typeof(float)); DataColumn dc3 = new DataColumn("數量", typeof(int)); DataColumn dc4 = new DataColumn("總價格", typeof(float)); DataTable dt = new DataTable(); dt.Columns.Add(dc0); dt.Columns.Add(dc1); dt.Columns.Add(dc2); dt.Columns.Add(dc3); dt.Columns.Add(dc4); foreach (DictionaryEntry i in k) { //Response.Write(i.Key+" "+i.Value+"<br>"); DataRow dr = dt.NewRow(); DataSet ds = db.QueryDataSet("select * from proct where p_id=" + i.Key); dr["id"] = ds.Tables[0].Rows[0]["p_id"].ToString(); dr["商品名"] = ds.Tables[0].Rows[0]["p_name"].ToString(); dr["價格"] = ds.Tables[0].Rows[0]["p_price"].ToString(); dr["數量"] = int.Parse(k[i.Key].ToString()); dr["總價格"] = int.Parse(k[i.Key].ToString()) * double.Parse(ds.Tables[0].Rows[0]["p_price"].ToString()); dt.Rows.Add(dr); } GridView1.DataSource = dt; GridView1.DataBind(); } } protected void Button1_Click(object sender, EventArgs e) { Response.Redirect("default2.aspx"); } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { string id = GridView1.DataKeys[e.RowIndex].Value.ToString(); Hashtable k = Session["car"] as Hashtable; Session["car"] = k; k.Remove(id); DataColumn dc0 = new DataColumn("id", typeof(string)); DataColumn dc1 = new DataColumn("商品名", typeof(string)); DataColumn dc2 = new DataColumn("價格", typeof(float)); DataColumn dc3 = new DataColumn("數量", typeof(int)); DataColumn dc4 = new DataColumn("總價格", typeof(float)); DataTable dt = new DataTable(); dt.Columns.Add(dc0); dt.Columns.Add(dc1); dt.Columns.Add(dc2); dt.Columns.Add(dc3); dt.Columns.Add(dc4); foreach (DictionaryEntry i in k) { //Response.Write(i.Key+" "+i.Value+"<br>"); DataRow dr = dt.NewRow(); DataSet ds = db.QueryDataSet("select * from proct where p_id=" + i.Key); dr["id"] = ds.Tables[0].Rows[0]["p_id"].ToString(); dr["商品名"] = ds.Tables[0].Rows[0]["p_name"].ToString(); dr["價格"] = ds.Tables[0].Rows[0]["p_price"].ToString(); dr["數量"] = int.Parse(k[i.Key].ToString()); dr["總價格"] = int.Parse(k[i.Key].ToString()) * double.Parse(ds.Tables[0].Rows[0]["p_price"].ToString()); dt.Rows.Add(dr); } GridView1.DataSource = dt; GridView1.DataBind(); } protected void Button2_Click(object sender, EventArgs e) { Hashtable k = Session["car"] as Hashtable; string code = DateTime.Now.Ticks.ToString() + new Random().Next(); db.ExecuteNonQuery("insert into OrderList values('"+code+"')"); foreach(DictionaryEntry i in k) { db.ExecuteNonQuery("insert into DetailsList values('"+code+"',"+Session["u_id"].ToString()+","+i.Key+","+i.Value+")"); } }}自己慢慢領悟把%D%A
⑶ EDA課程設計,用VHDL編程做計程車計費器
課程設計內容與要求
1,用開關按鍵表示脈沖,每個脈沖代表100米,10個脈沖1公里,每公里1.4元,能同步顯示里程和費用;
2,低於2公里5元計費,高於2公里總費用=起步費用+(里程-2公里)*里程單價+
等候時間*等後單價;
3,等候時間大於2分鍾,按每分鍾1.3元計費;
4,可以設定起步價和里程單價。
一、設計原理與技術方法:
包括:電路工作原理分析與原理圖、元器件選擇與參數計算、電路調試方法與結果說明;
軟體設計說明書與流程圖、軟體源程序代碼、軟體調試方法與運行結果說明。
根據設計要求,系統的輸入信號clk,計價開始信號start,等待信號stop,里程脈沖信號fin。系統的輸出信號有:總費用數C0—c3,行駛距離k0—k1,等待時間m0—m1等。系統有兩個脈沖輸入信號clk_750k,fin,其中clk_750k將根據設計要求分頻成14hz,15hz和1hz分別作為公里計費和超時計費的脈沖。兩個控制輸入開關start,stop;控制過程為:start作為計費開始的開關,當start為高電平時,系統開始根據輸入的情況計費。當有乘客上車並開始行駛時,fin脈沖到來,進行行駛計費,此時的stop需要置為0;如需停車等待,就把stop變為高電平,
並去除fin輸入脈沖,進行等待計費;當乘客下車且不等待時,直接將start置為0,系統停止工作;價格開始歸為起步價5.0元。
整個設計由分頻模塊,計量模塊,計費模塊,控制模塊和顯示模塊五個部分組成。
其中計量模塊是整個系統實現里程計數和時間計數的重要部分;控制模塊是實現不同計費方式的選擇部分,根據所設計的使能端選擇是根據里程計費還是根據等待時間計費,同時設計通過分頻模塊產生不同頻率的脈沖信號來實現系統的計費。計量模塊採用1hz的驅動信號,計費模塊採用14hz,13hz的驅動信號;計量模塊每計數一次,計量模塊就實現14次或者13次計數,即為實現計時的1.3元/min,計程時的1.4元/km的收費。組成框圖如下所示:
1.百進制模塊:
實現百米脈沖的驅動信號,元件框圖如圖3所示:
圖3 百進制模塊框圖
源程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity jin is
port(start,clk2: in std_logic; --秒脈沖
a: out std_logic_vector(3 downto 0));
end jin;
architecture rt1 of jin is
signal count_1:std_logic_vector(3 downto 0);
begin
a<=count_1;
process(start,clk2)
begin
if(start='0')then
count_1<="0000";
elsif(clk2'event and clk2='1')then
if(count_1="0111")then
count_1<="0000";
else
count_1<=count_1+'1';
end if;
end if;
end process;
end rt1
2.計費模塊
; 實現里程和等候時間的計費並輸出到顯示,元件框圖4如下:
圖4 計費模塊框圖
源程序如下:
Library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
entity jifei is
port(clk2:in std_logic; --計費驅動信號
start:in std_logic; --計費開始信號
c0,c1,c2,c3:buffer std_logic_vector(3 downto 0));
end jifei;
architecture rt1 of jifei is
begin
process(clk2,start)
begin
if start='0'then c3<="0000";c2<="0000";c1<="0101";c0<="0000"; --起步價5元
elsif clk2'event and clk2='1'then
if c0="1001" then c0<="0000";
if c1="1001" then c1<="0000";
if c2="1001" then c2<="0000";
if c3="1001" then c3<="0000";
else c3<=c3+1;
end if;
else c2<=c2+1;
end if;
else c1<=c1+1;
end if;
else c0<=c0+1;
end if;
end if;
end process;
end rt1;
3.公里模塊
實現歷程的計數和輸出計費脈沖,元件框圖5如下:
圖5 公里模塊框圖
源程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity gongli is
port(clk1,start: in std_logic; --百米脈沖
k1,k2,k3,k4: out std_logic_vector(3 downto 0); --里程顯示
temp2 : out std_logic);
end gongli;
architecture rt1 of gongli is
signal count_1: std_logic_vector(3 downto 0);
signal count_2: std_logic_vector(3 downto 0);
signal count_3: std_logic_vector(3 downto 0);
signal count_4: std_logic_vector(3 downto 0);
begin
k1<=count_1;
k2<=count_2;
k3<=count_3;
k4<=count_4;
process(start,clk1)
begin
if(start='0')then
count_1<="0000";
count_2<="0000";
count_3<="0000";
count_4<="0000"; ---公里清零
elsif(clk1'event and clk1='1')then
if(count_1="1001")then --公里計數器
count_1<="0000";count_2<=count_2+1;temp2<='1';
if(count_2="1001")then
count_2<="0000";count_3<=count_3+'1';
if(count_3="1001")then
count_3<="0000";count_4<=count_4+'1';
end if;
end if;
else
count_1<=count_1+'1';temp2<='0';
end if;
end if;
end process;
end rt1;
4.輸出模塊
實現所有數據的輸出,元件框圖6如下:
圖6 輸出模塊框圖
源程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity shuchu is
port(y: in std_logic_vector(3 downto 0);
e: out std_logic_vector(6 downto 0));
end shuchu;
architecture rt1of shuchu is
begin
process
begin
case y is
when"0000"=>e<="0111111";
when"0001"=>e<="0000110";
when"0010"=>e<="1011011";
when"0011"=>e<="1001111";
when"0100"=>e<="1100110";
when"0101"=>e<="1101101";
when"0110"=>e<="1111101";
when"0111"=>e<="0000111";
when"1000"=>e<="1111111";
when"1001"=>e<="1100111";
when others=>e<="0000000";
end case;
end process;
end rt1;
5.顯示模塊
實現所有數據的顯示,元件框圖7如下:
圖7 顯示模塊框圖
源程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity xianshi is
port(start: in std_logic;
a:in std_logic_vector(3 downto 0); --選擇信號
c1,c2,c3,c4,out1,out2,out3,out4:in std_logic_vector(3 downto 0); --里程顯示,時間顯示輸入
y:out std_logic_vector(3 downto 0)); --里程顯示,時間顯示輸出
end xianshi;
architecture rt1 of xianshi is
begin
process
begin
if(start='0')then
y<="0000";
else case a is
when "0000"=> y<=c1 ;
when "0001"=> y<=c2 ;
when "0010"=> y<=c3 ;
when "0011"=> y<=c4 ;
when "0100"=> y<=out1 ;
when "0101"=> y<=out2;
when "0110"=> y<=out3 ;
when "0111"=> y<=out4;
when others =>y<= "0000";
end case;
end if;
end process;
end rt1;
6.dian模塊
圖8 dian模塊框圖
源程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity dian is
port(a: in std_logic_vector(3 downto 0);
e: out std_logic);
end dian;
architecture rt1 of dian is
begin
process
begin
case a is
when "0001"=>e<='1';
when "0101"=>e<='1';
when others=>e<='0';
end case;
end process;
end rt1;
三、中各個模塊設計分析
系統總體頂層框圖如下:
系統總體頂層框圖
程序最終功能實現波形模擬
1. 分頻模塊
由於實驗箱上沒有14hz和13hz的整數倍時鍾信號,因此採用頻率較大的750khz進行分頻,以近似得到14hz,13hz和1hz的時鍾頻率。通過以上三種不同頻率的脈沖信號實行計程車行駛,等待兩種情況下的不同計費。模塊元件如下:
分頻模塊框圖
源程序如下:
Library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
entity fenpin is
port(clk_750k:in std_logic; --系統時鍾
clk_14:buffer std_logic; --14分頻
clk_13:buffer std_logic; --13分頻
clk_1 : buffer std_logic); --1分頻
end fenpin ;
architecture rt1 of fenpin is
signal q_14:integer range 0 to 53570; --定義中間信號量
signal q_13:integer range 0 to 57691;
signal q_1:integer range 0 to 749999;
begin
process(clk_750k)
begin
If(clk_750k' event and clk_750k='1')then
If q_14=53570 then q_14<=0;clk_14<=not clk_14;
else q_14<=q_14+1;
end if; --得14hz頻率信號
If q_13=57691 then q_13<=0;clk_13<=not clk_13;
else q_13<=q_13+1;
end if; --得13hz頻率信號
If q_1=749999 then q_1<=0;clk_1<=not clk_1;
else q_1<=q_1+1;
end if; --得1hz頻率信號
end if;
end process;
end rt1;
2. 計量模塊
計量模塊主要完成計時和計程功能。
計時部分:計算乘客的等待累積時間,當等待時間大於2min時,本模塊中en1使能信號變為1;當clk1每來一個上升沿,計時器就自增1,計時器的量程為59min,滿量程後自動歸零。
計程部分:計算乘客所行駛的公里數,當行駛里程大於2km時,本模塊中en0使能信號變為1;當clk每來一個上升沿,計程器就自增1,計程器的量程為99km,滿量程後自動歸零。
元件框圖為:
計量模塊框圖
計量模塊模擬波形為:
源程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity jiliang is
port(start:in std_logic; --計費開始信號
fin:in std_logic; --里程脈沖信號
stop:in std_logic; --行駛中途等待信號
clk1:in std_logic; --驅動脈沖
en1,en0:buffer std_logic; --計費單價使能信號
k1,k0:buffer std_logic_vector(3 downto 0); --行駛公里計數
m1,m0:buffer std_logic_vector(3 downto 0)); --等待時間計數
end jiliang;
architecture rt2 of jiliang is
signal w:integer range 0 to 59; --計時范圍0~59
begin
process(clk1)
begin
if(clk1'event and clk1='1')then
if start='0' then
w<=0;en1<='0';en0<='0';m1<="0000";
m0<="0000";k1<="0000";k0<="0000";
elsif stop='1' then --計時開始信號
if w=59 then
w<=0;
else w<=w+1;
end if;
if m0="1001" then
m0<="0000";
if m1="0101" then
m1<="0000";
else m1<=m1+1;
end if;
else m0<=m0+1;
end if;
if stop='1' then en0<='0';
if m1&m0>"00000001" then en1<='1'; --若等待時間大於2min則en1置1
else en1<='0';
end if;
end if;
elsif fin='1' then --里程計數開始
if k0="1001" then k0<="0000";
if k1="1001" then k1<="0000"; --計程范圍0~99
else k1<=k1+1;
end if;
else k0<=k0+1;
end if;
if stop='0' then
en1<='0';
if k1&k0>"00000001" then
en0<='1'; --若行使里程大於2km,則en0置1
else en0<='0';
end if;
end if;
end if;
end if;
end process;
end rt2;
3. 控制模塊
本模塊主要是通過計量模塊產生的兩個不同的輸入使能信號en0,en1,對每個分頻模塊輸出的14hz,13hz的脈沖進行選擇輸出的過程;本模塊實現了雙脈沖的二選一;最終目的為了計費模塊中對行駛過程中不同的時段進行計價。
模塊元件如下:
控制模塊框圖
控制模塊模擬波形為:
源程序如下:
Library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
entity kong is
port(en0,en1:in std_logic; --使能選擇信號
clk_in1:in std_logic; --14分頻輸入信號
clk_in2:in std_logic; --13分頻輸入信號
clk_out:out std_logic); --輸出信號
end kong;
architecture rt3 of kong is
begin
process(en0,en1)
begin
if en0='1' then --實現二選一功能
clk_out<=clk_in1;
elsif en1='1' then
clk_out<=clk_in2;
end if;
end process;
end rt3;
4.計費模塊
當計費信號start一直處於高電平即計費狀態時,本模塊根據控制模塊選擇出的信號從而對不同的單價時段進行計費。即行程在2km內,而且等待累計時間小於2min則為起步價5元;2km外以每公里1.4.元計費,等待累積時間超過2min則按每分鍾1.3元計費。c0,c1,c2,c3分別表示費用的顯示。
模塊元件為:
計費模塊框圖
計費模塊模擬波形為:
源程序如下:
Library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
entity jifei is
port(clk2:in std_logic; --計費驅動信號
start:in std_logic; --計費開始信號
c0,c1,c2,c3:buffer std_logic_vector(3 downto 0));
end jifei;
architecture rt4 of jifei is
begin
process(clk2,start)
begin
if start='0'then c3<="0000";c2<="0000";c1<="0101";c0<="0000"; --起步價5元
elsif clk2'event and clk2='1'then
if c0="1001" then c0<="0000";
if c1="1001" then c1<="0000";
if c2="1001" then c2<="0000";
if c3="1001" then c3<="0000"; --計價范圍0~999.9
else c3<=c3+1;
end if;
else c2<=c2+1;
end if;
else c1<=c1+1;
end if;
else c0<=c0+1;
end if;
end if;
end process;
end rt4;
5.顯示模塊
顯示模塊完成計價,計時和計程數據顯示。計費數據送入顯示模塊進行解碼,最後送至以百元,十元,元,角為單位對應的數碼管上顯示。計時數據送入顯示模塊進行解碼,最後送至以分為單位對應的數碼管上顯示。計程數據送入顯示模塊進行解碼,最後送至以km為單位的數碼管上顯示。
模塊元件為:
顯示模塊框圖
源程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all; --定義庫包
entity xianshi is --定義實體
port(
clk_scan:in std_logic; --掃描時鍾信號埠設置
c3,c2,c1,c0:in std_logic_vector(3 downto 0); --總費用輸入埠
k0,k1:in std_logic_vector(3 downto 0); --里程輸入埠
m0,m1:in std_logic_vector(3 downto 0); --等待時間輸入埠
sel:out std_logic_vector(2 downto 0); --控制數碼管位選信號的掃描信號輸出埠
led:out std_logic_vector(6 downto 0); --數碼管的控制埠
led_dp:out std_logic --數碼管的小數點輸出埠
);
end xianshi;
architecture rt5 of xianshi is
signal an:std_logic_vector(6 downto 0); --數碼顯示管中間變數
signal shuju:std_logic_vector(3 downto 0); --選擇輸入端的中間變數
signal cnt:std_logic_vector(2 downto 0); --控制數碼管的中間變數
signal xiaodian:std_logic; --小數點的中間變數
begin
process(clk_scan) --開始進程
begin
if clk_scan'event and clk_scan='1' then
cnt<=cnt+1; --每有一個掃描信號上升沿實現加1掃描
end if;
end process; --結束進程
process(cnt) --開始進程(選擇掃描顯示數碼管)
begin
case cnt is --掃描時給每個數碼管賦值
when "000"=>shuju<=c0;
when "001"=>shuju<=c1;
when "010"=>shuju<=c2;
when "011"=>shuju<=c3;
when "100"=>shuju<=k0;
when "101"=>shuju<=k1;
when "110"=>shuju<=m0;
when "111"=>shuju<=m1;
when others=> null;
end case;
if (cnt="001" or cnt="110")
then xiaodian<='1'; --在里程和總費用的個位處顯示小數點
else xiaodian<='0';
end if;
end process; --結束進程
process(shuju) --開始進程(解碼顯示)
begin
case shuju is
when "0000"=>an<="0111111"; --0
when "0001"=>an<="0000110"; --1
when "0010"=>an<="1011011"; --2
when "0011"=>an<="1001111"; --3
when "0100"=>an<="1100110"; --4
when "0101"=>an<="1101101"; --5
when "0110"=>an<="1111101"; --6
when "0111"=>an<="0000111"; --7
when "1000"=>an<="1111111"; --8
when "1001"=>an<="1101111"; --9
when others=>null;
end case;
end process;
sel<=cnt;
led<=an;
led_dp<=xiaodian;
end rt5;
二、課程設計工作記錄:
包括:設計步驟與時間安排、調試步驟與時間安排、課題完成結果說明
2.課題完成結果說明:
此計費器能實現起步價是5元;實現實驗要求的1公里計費一次單價,行駛公里大於2km時每公里按1.4元計費並能顯示里程和總共的費用。當行駛了6公里,等待了4分鍾時,費用顯示為15.8元。與計算公式總費用=起步費用+(里程-2公里)*里程單價+等候時間*等後單價;即15.8=5+(6-2)*1.4+4*1.3。實驗結果與理論結果完全一致,實驗設計成功。