⑴ 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。实验结果与理论结果完全一致,实验设计成功。