⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taxijifeiqi.txt

📁 《出租车计费器》绝对好用的EDA程序!已经通过测试!VHDL语言编写
💻 TXT
字号:
--实验十四 出租车计费器
--里程计算模块
-- LCJS.VHD
library IEEE;
use IEEE.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;

entity LCJS is

GENERIC(--0:INTEGER:=160 ;   -- 06:00-22:00单价
       --1:INTEGER:=180;    -- 其它时间
        qibu:INTEGER:=60 -- 起步公里数,6公里内为固定价格
        --jg:INTEGER:=1000  --起步价格,6公里内为10元
          
);

          port (    START,DDBZ,WCLK: in std_logic; 
                    XSLC           : out std_logic_vector(15 downto 0);         
                    LCBZ,jfbz      : out std_logic
                   
          );
end entity;



architecture arch of LCJS  is    
  
signal bms : std_logic_vector(15 downto 0);    --百米数
signal bms1:integer range 0 to 99999;
signal jfbz1:std_logic;           
begin  
                                           
PROCESS(start,wclk)
variable sms :std_logic_vector(7 downto 0);   -- 十米数
    BEGIN
if start='1' then                      --new cycle,not wait,running
     sms:="00000000";
     bms<="0000000000000000";               -- 百米数
   lcbz<='0';
elsif wclk'event and wclk='1' then   
        if ddbz='0' then   -- 行驶中
          if sms="00001010" then --10次计数,100m
              sms:="00000000";
           bms<=bms+1;--- new 100m 
             if bms>=qibu then    --->6km大于起步里程, 60 00m
                lcbz<='1';
             end if ;
         else
           sms:=sms+1;
         end if;
      end if;
 end if;

end process;

---里程计算结果输出         
 xslc<=bms;
---  里程计算结果转换
BMS1<=CONV_INTEGER(BMS);

---generate 计费信号
process(bms1)
 begin
  case bms1 is 
        when 10|20|30|40|50|60|70|80|90|100=>jfbz1<='1';
        when 110|120|130|140|150|160|170|180|190|200=>jfbz1<='1';
        when 210|220|230|240|250|260|270|280|290|300=>jfbz1<='1';
        when 310|320|330|340|350|360|370|380|390|400=>jfbz1<='1';
        when 410|420|430|440|450|460|470|480|490|500=>jfbz1<='1';
        when 510|520|530|540|550|560|570|580|590|600=>jfbz1<='1';
        when 610|620|630|640|650|660|670|680|690|700=>jfbz1<='1';
        when 710|720|730|740|750|760|770|780|790|800=>jfbz1<='1';

       when 810|820|830|840|850|860|870|880|890|900=>jfbz1<='1';

        when 910|920|930|940|950|960|970|980|990|1000=>jfbz1<='1';
       
        when 1010|1020|1030|1040|1050|1060|1070|1080|1090|1100=>jfbz1<='1';
        when 1110|1120|1130|1140|1150|1160|1170|1180|1190|1200=>jfbz1<='1';
        when 1210|1220|1230|1240|1250|1260|1270|1280|1290|1300=>jfbz1<='1';
        when 1310|13130|1330|1340|1350|1360|1370|1380|1390|1400=>jfbz1<='1';
        when 1410|1420|1430|14140|1450|1460|1470|1480|1490|1500=>jfbz1<='1';
        when 1510|1520|1530|1540|15150|1560|1570|1580|1590|1600=>jfbz1<='1';
        when 1610|1620|1630|1640|1650|16160|1670|1680|1690|1700=>jfbz1<='1';
        when 1710|1720|1730|1740|1750|1760|1770|1780|1790|1800=>jfbz1<='1';

       when 1810|1820|1830|1840|1850|1860|1870|18180|1890|1900=>jfbz1<='1';

        when 1910|1920|1930|1940|1950|1960|1970|1980|1990|2000=>jfbz1<='1';

        when 2010|2020|2030|2040|2050|2060|2070|2080|2090|2100=>jfbz1<='1';
 when 2110|2120|2130|2140|2150|2160|2170|2180|2190|2200=>jfbz1<='1';
        when 2210|22220|2230|2240|2250|2260|2270|2280|2290|2300=>jfbz1<='1';
        when 2310|2320|2330|2340|2350|2360|2370|2380|2390|2400=>jfbz1<='1';
        when 2410|2420|2430|24240|2450|2460|2470|2480|2490|2500=>jfbz1<='1';
        when 2510|2520|2530|2540|25250|2560|2570|2580|2590|2600=>jfbz1<='1';
        when 2610|2620|2630|2640|2650|26260|2670|2680|2690|2700=>jfbz1<='1';
        when 2710|2720|2730|2740|2750|2760|2770|2780|2790|2800=>jfbz1<='1';

       when 2810|2820|2830|2840|2850|2860|2870|28280|2890|2900=>jfbz1<='1';

        when 2910|2920|2930|2940|2950|2960|2970|2980|2990|3000=>jfbz1<='1';
       

when others =>jfbz1<='0';

end case;

end process;

--计费标志去毛刺
 process(wclk,jfbz1)
begin
  if wclk'event and wclk='1' then 
     jfbz<=jfbz1;
end if ;
end process;


end arch;




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -