eda 課程設計--出租車計費器設計_第1頁
已閱讀1頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  EDA基礎課程設計</b></p><p>  題目: 出租車計費器設計</p><p>  學生姓名: ******</p><p>  學 號: 2009*********</p><p>  班 級: 電子信息工程09-02班&l

2、t;/p><p>  專 業(yè): 電子信息工程</p><p>  所在院系: 電氣與信息工程學院 </p><p><b>  出租車計費器設計</b></p><p><b>  摘要</b></p><p>  隨著我國社會經(jīng)濟的全面發(fā)展,各大

3、中小城市的出租車營運事業(yè)發(fā)展迅速,出租車已經(jīng)成為人們?nèi)粘3鲂羞x擇較為普遍的交通工具。出租車計費器是出租車營運收費的專用智能化儀表,是出租車市場規(guī)范化 、標準化以及減少司機與乘客之間發(fā)生糾紛的重要設備。一種功能完備、簡單易用、計量準確的出租車計費器是加強出租車行業(yè)管理、提高服務質(zhì)量的必備品。</p><p>  本文介紹了出租車計費器系統(tǒng)在實際生產(chǎn)生活中的重要性,根據(jù)預定的設計要求和設計思路,采用VHDL硬件描述語

4、言作為設計手段,采用自頂向下的設計思路設計了一個實際的基于EP3C80F780C8N芯片的出租車計費系統(tǒng),通過在QuartusⅡ8.1軟件下進行模擬仿真,并進行相應的硬件下載調(diào)試,證明該出租車計費系統(tǒng)具有實用出租車計費器的基本功能,各技術指標符合預定標準,如能進一步完善,將可以實用化和市場化,具有一定實用性。</p><p>  關鍵詞:出租車計費器;現(xiàn)場可編程門陣列;仿真 </p><p&g

5、t;<b>  目 錄</b></p><p><b>  1 設計目的1</b></p><p><b>  2 設計指標2</b></p><p><b>  2.1 課題2</b></p><p><b>  2.2技術指標2&l

6、t;/b></p><p>  3 VHDL簡介2</p><p>  4 出租車計費器功能設計4</p><p>  4.1出租車計費器功能設計4</p><p>  4.2出租車計費器原理5</p><p><b>  4.3模塊設計5</b></p><p

7、>  4.3.1點陣動態(tài)顯示模塊5</p><p>  4.3.2里程動態(tài)顯示模塊6</p><p>  4.3.3計費動態(tài)顯示模塊6</p><p>  5 出租車計費器的實現(xiàn)6</p><p>  5.1出租車計費器功能設計6</p><p>  5.2出租車計費器原理7</p>&

8、lt;p>  5.3模塊設計10</p><p>  6 出租車計費器的仿真結果18</p><p>  6.1管腳分配18</p><p>  6.2顯示模塊仿真結果19</p><p><b>  7 設計總結21</b></p><p><b>  參考文獻22&

9、lt;/b></p><p>  附錄 出租車計費器VHDL源程序23</p><p><b>  1 設計目的</b></p><p>  隨著我國社會經(jīng)濟的全面發(fā)展,各大中小城市的出租車營運事業(yè)發(fā)展迅速,出租車已經(jīng)成為人們?nèi)粘3鲂羞x擇較為普遍的交通工具。出租車計費器是出租車營運收費的專用智能化儀表,是出租車市場規(guī)范化 、標準化以及減

10、少司機與乘客之間發(fā)生糾紛的重要設備。一種功能完備、簡單易用、計量準確的出租車計費器是加強出租車行業(yè)管理、提高服務質(zhì)量的必備品。本文介紹了出租車計費器系統(tǒng)在實際生產(chǎn)生活中的重要性,根據(jù)預定的設計要求和設計思路,采用VHDL硬件描述語言作為設計手段,采用自頂向下的設計思路設計了一個實際的基于AheraFPGA芯片的出租車計費系統(tǒng),通過在QuartusⅡ8.1軟件下進行模擬仿真,并進行相應的硬件下載調(diào)試,證明該出租車計費系統(tǒng)具有實用出租車計費

11、器的基本功能,各技術指標符合預定標準,如能進一步完善,將可以實用化和市場化,具有一定實用性。</p><p>  傳統(tǒng)出租車計費器多數(shù)由單片機實現(xiàn),可擴展的資源有限,硬件電路復雜,不利于系統(tǒng)功能升級,容易在運營過程中產(chǎn)生干擾,影響系統(tǒng)的使用。并且由于分立器件多,造成電源功耗大,影響芯片的使用壽命。而基于FPGA的出租車計費器可以解決電子系統(tǒng)小型化、低功耗、高可靠性等問題,具有非常重要的實際意義。</p>

12、;<p><b>  2 設計指標</b></p><p><b>  2.1 課題</b></p><p><b>  出租車計費器設計</b></p><p><b>  2.2技術指標</b></p><p>  1.用直流電動機模擬出

13、租車輪子,通過8個七段碼管的前四個顯示里程,后四個顯示費用。</p><p>  2.利用16*16點陣顯示每公里費用。</p><p>  3.白天黑夜出租車不同費用價格。</p><p>  4.計算超出一定里程的返程費用。</p><p><b>  3 VHDL簡介</b></p><p>

14、;  VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,翻譯成中文就是超高速集成電路硬件描述語言,因此它的應用主要是應用在數(shù)字電路的設計中。1987年底,VHDL被IEEE和美國國防部確認為標準硬件描述語言。自IEEE公布了VHDL的標準版本,IEEE-1076(簡稱87版)之后,各EDA公司相繼推出了自己的VHDL設計環(huán)境,或宣布自己的

15、設計工具可以和VHDL接口。</p><p>  此后VHDL在電子設計領域得到了廣泛的認可,并逐步取代了原有的非標準的硬件描述語言。1993年,IEEE對VHDL進行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標準的1076-1993版本,(簡稱93版)?,F(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標準硬件描述語言,又得到眾多EDA公司的支持,在電子工程領域

16、,已成為事實上的通用硬件描述語言。有專家認為,在新的世紀中,VHDL與Verilog語言將承擔起大部分的數(shù)字系統(tǒng)設計任務。VHDL語言是一種用于電路設計的高級語言。它在80年代的后期出現(xiàn)。最初是由美國國防部開發(fā)出來供美軍用來提高設計的可靠性和縮減開發(fā)周期的一種使用范圍較小的設計語言 。  </p><p>  VHDL主要用于描述數(shù)字系統(tǒng)的結構,行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形

17、式、描述風格以及語法是十分類似于一般的計算機高級語言。VHDL的程序結構特點是將一項工程設計,或稱設計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實體的內(nèi)部功能和算法完成部分。在對一個設計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設計就可以直接調(diào)用這個實體。這種將設計實體分成內(nèi)外部分的概念是VHDL系統(tǒng)設計的基本點。</p><p>  由

18、于VHDL已經(jīng)成為IEEE標準所規(guī)范的硬件描述語言,目前大多數(shù)EDA工具幾乎都支持VHDL,這為VHDL的進一步推廣和廣泛應用奠定了基礎。在硬件電路設計過程中,主要的設計文件是用VHDL編寫的源代碼,因為VHDL易讀和結構化,所以易于修改設計。</p><p>  VHDL具有多層次的設計描述功能,既可以描述系統(tǒng)級電路,又可以描述門級電路。而描述既可以采用行為描述、寄存器傳輸描述或結構描述,也可以采用三者混合的混

19、合級描述。另外,VHDL支持慣性延遲和傳輸延遲,還可以準確地建立硬件電路模型。VHDL支持預定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來較大的自由度,使設計人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。</p><p><b>  4 設計過程</b></p><p>  4.1 出租車計費器功能設計</p><p>  該系統(tǒng)的設計可以采用分立元件來搭建,

20、也可以通過單片機來設計,而使用可編程FPGA來設計,具有設計周期短、易于修改等明顯特點,而且隨著可編程邏輯器件和EDA軟件的飛速發(fā)展,越來越多的電子系統(tǒng)采用FPGA來設計,一旦該系統(tǒng)達到一定的量產(chǎn)規(guī)模,也比較容易轉(zhuǎn)化為ASIC芯片設計。因此,基于FPGA來設計一個出租車的計費器。本系統(tǒng)在EDA工具軟件QuartusⅡ8.1中,采用硬件描述語言和原理圖設計相結合的方法,進行各個模塊的設計,最終將各個模塊組成整個系統(tǒng)。</p>

21、<p>  FPGA設計劃分為以下幾個功能模塊,它們分別是:點陣顯示模塊、計程模塊、輸出數(shù)據(jù)顯示模塊,將每個模塊的功能實現(xiàn)后,通過合理連接和協(xié)調(diào)各相關端口,得到整個電路系統(tǒng)。下面分別是各主要模塊的簡單描述。</p><p>  ①點陣顯示模塊:采用一種16路動態(tài)分時掃描技術來實現(xiàn)16*16點陣動態(tài)顯示白天和夜間不同的每公里費用。具體方法是,將16×16數(shù)組的顯示模塊的行輸入端與FPGA內(nèi)的只

22、讀存儲器ROM的16位數(shù)據(jù)輸出端口相連,16個列控制端與一個4-16譯碼器的輸出相連,而譯碼器的輸入端和片選信號又與FPGA內(nèi)的列掃描控制模塊的輸出端口相連。</p><p> ?、谟嫵棠K:出租車能夠顯示行駛的里程,可以通過直流電動機的轉(zhuǎn)動產(chǎn)生脈沖,然后通過計數(shù)器對脈沖進行計數(shù)來實現(xiàn)。本次設計中里程數(shù)精確到O.1 km,也就是100m,由電動機給出的脈沖信號作為里程計數(shù)器的時鐘信號,里程計數(shù)器每計數(shù)1 km還會

23、周期性地輸出一個脈沖信號,稱為1 km脈沖信號,可以通過一定的組合電路來實現(xiàn)。里程計數(shù)器可以用一個四位BCD碼計數(shù)器來實現(xiàn),最大能顯示到9999,根據(jù)設計的要求和條件限制,這里前三位為整數(shù)部分,最后一位為小數(shù)部分,即最大能顯示里程999.9 km。</p><p> ?、蹟?shù)據(jù)顯示模塊:系統(tǒng)最核心的部分就是計費如何實現(xiàn)。這里就需要設計一個BCD碼的加法器,在起步價的基礎上,根據(jù)行駛里程的不同,依據(jù)計費標準,每增加1

24、 km加上一個單價。系統(tǒng)中用到了四位BCD碼加法器,可以實現(xiàn)四位十進制數(shù)的加法運算。加法器輸出的結果就是乘客應付的費用,這里以元為單位,最大能顯示9999元。四位BCD碼加法器由四個一位BCD碼加法器級聯(lián)而成。四位BCD碼加法器輸出的結果通過緩沖器以后,反饋到輸入端重新作為一個加數(shù),在脈沖信號的作用下,每來一個脈沖就和單價相加,形成連續(xù)累加的功能。</p><p>  4.2 出租車計費器原理</p>

25、<p>  圖1 出租車計費器原理框圖</p><p><b>  4.3 模塊設計</b></p><p>  4.3.1 點陣動態(tài)顯示模塊</p><p>  當白天、夜間轉(zhuǎn)換開關K1置于關狀態(tài)(低電平)時,16*16點陣顯示文字“白天每公里2元”,文字逐個顯示,不斷循環(huán)以告知乘客出租價格;當K1置于開狀態(tài)(高電平)時,顯

26、示“夜間每公里3元”。其原理結構圖如下:</p><p>  圖2 點陣顯示原理結構圖</p><p>  4.3.2 里程動態(tài)顯示模塊</p><p>  其包括直流電動機發(fā)出的脈沖以及將計數(shù)顯示動態(tài)顯示在前四個七段數(shù)碼管,每來一個脈沖里程值加0.1(控制器每發(fā)一個脈沖代表運行了0.1公里)。當S1按鍵按下進行復位后數(shù)值歸零,重新開始計數(shù)。</p>

27、<p>  4.3.3 計費動態(tài)顯示模塊</p><p>  其初值為6元,當里程超過2公里后才接受直流電動機發(fā)出的脈沖的驅(qū)動,并且計數(shù)顯示動態(tài)顯示出來,白天期間每來10個脈沖(代表運行了1公里)其數(shù)值加2元,當里程超過20km時加收50%的返程費,即數(shù)值加3元;夜間20km以內(nèi)單價3元,當超過20km時加收返程費。當S1按鍵按下進行復位后數(shù)值歸零,重新開始計費。</p><p>

28、;  5 出租車計費器的實現(xiàn)</p><p>  5.1 計程模塊程序設計</p><p>  計程模塊的VHDL源程序如下:</p><p>  process(Motor,Rst) --計里程</p><p><b>  begin</b></p><p>  if(Rst='0&

29、#39;) then</p><p>  Meter1<=0;</p><p>  Meter10<=0;</p><p>  Meter100<=0;</p><p>  Meter1K<=0;</p><p>  elsif(Motor'event and Motor='1&

30、#39;) then</p><p>  if(Meter1=9) then Meter1<=0;</p><p>  if(Meter10=9) then Meter10<=0;</p><p>  if(Meter100=9) then Meter100<=0;</p><p>  if(Mete

31、r1K=9) then Meter1K<=0;</p><p><b>  else </b></p><p>  Meter1K<=Meter1K+1;</p><p><b>  end if;</b></p><p><b>  else</b>&l

32、t;/p><p>  Meter100<=Meter100+1;</p><p><b>  end if;</b></p><p><b>  else</b></p><p>  Meter10<=Meter10+1;</p><p><b>  end

33、 if;</b></p><p><b>  else </b></p><p>  Meter1<=Meter1+1;</p><p><b>  end if;</b></p><p><b>  end if; </b></p><p

34、>  end process;</p><p>  出租車能夠顯示行駛的里程,可以通過直流電動機的轉(zhuǎn)動產(chǎn)生脈沖,然后通過計數(shù)器對脈沖進行計數(shù)來實現(xiàn)。本次設計中里程數(shù)精確到O.1 km,也就是100m,由電動機給出的脈沖信號作為里程計數(shù)器的時鐘信號,里程計數(shù)器每計數(shù)1 km還會周期性地輸出一個脈沖信號,稱為1 km脈沖信號,可以通過一定的組合電路來實現(xiàn)。里程計數(shù)器可以用一個四位BCD碼計數(shù)器來實現(xiàn),最大能顯示

35、到9999,根據(jù)設計的要求和條件限制,這里前三位為整數(shù)部分,最后一位為小數(shù)部分,即最大能顯示里程999.9 km。</p><p>  5.1 計費模塊程序設計</p><p>  計費模塊的VHDL源程序如下:</p><p>  process(Clk,Rst,dn) --計費模塊</p><p><b>  begin&

36、lt;/b></p><p>  if(Rst='0') then</p><p>  Money1<=0;</p><p>  Money10<=0;</p><p>  Money100<=0;</p><p>  elsif(Motor'event and Moto

37、r='1') then</p><p>  if( Meter10<2 and Meter100<1 and Meter1k<1) then --里程小于2Km時顯示起步價</p><p>  Money100<=0;</p><p>  Money10<=0; </p><p>  

38、Money1<=6; --起步價6元</p><p>  Old_Money1<=0;</p><p><b>  else</b></p><p>  if (dn='0' and Meter100<2 and Meter1k<0) then</p><p>  i

39、f (Old_Money1=9) then Old_Money1<=0; ---白天</p><p>  if (Money1=9) then Money1<=0;</p><p>  if(Money10=9) then Money10<=0;</p><p>  if(Money100=9) t

40、hen Money100<=0;</p><p>  else Money100<=Money100+1;</p><p><b>  end if;</b></p><p>  else Money10<=Money10 +1;</p><p><b>  end if;</b&

41、gt;</p><p>  else Money1<=Money1 +1;</p><p>  end if; </p><p><b>  else </b></p><p>  Old_Money1<= Old_Money1 +2; --- 續(xù)程單價每公里2元</p><p

42、><b>  end if;</b></p><p><b>  end if;</b></p><p>  if (dn=’0’ and (Meter100>1 or Meter1k>0)) then ---白天超過20km加收返程費</p><p>  if (Old_Money1=9) then

43、 Old_Money1<=0; </p><p>  if (Money1=9) then Money1<=0;</p><p>  if(Money10=9) then Money10<=0;</p><p>  if(Money100=9) then Money100<=0;</p>&l

44、t;p>  else Money100<=Money100+1;</p><p><b>  end if;</b></p><p>  else Money10<=Money10 +1;</p><p><b>  end if;</b></p><p>  else Mon

45、ey1<=Money1 +1;</p><p>  end if; </p><p><b>  else </b></p><p>  Old_Money1<= Old_Money1 +3; ---加收返程費</p><p><b>  end if;</b><

46、/p><p><b>  end if;</b></p><p>  if (dn='1' and Meter100<2 and Meter1k<0) then</p><p>  if (Old_Money1=9) then Old_Money1<=0; ---夜間</p>

47、<p>  if (Money1=9) then Money1<=0;</p><p>  if(Money10=9) then Money10<=0;</p><p>  if(Money100=9) then Money100<=0;</p><p>  else Money100<=Money

48、100+1;</p><p><b>  end if;</b></p><p>  else Money10<=Money10 +1;</p><p><b>  end if;</b></p><p>  else Money1<=Money1 +1;</p><

49、;p>  end if; </p><p><b>  else </b></p><p>  Old_Money1<= Old_Money1 +3; --- 續(xù)程單價每公里3元</p><p><b>  end if;</b></p><p><b>  end

50、 if;</b></p><p>  if (dn='1' and (Meter100>1 or Meter1k>0)) then ---夜間超過20km加收返程費</p><p>  if (Old_Money1=9) then Old_Money1<=0; </p><p>  if (Money1=

51、9) then Money1<=0;</p><p>  if(Money10=9) then Money10<=0;</p><p>  if(Money100=9) then Money100<=0;</p><p>  else Money100<=Money100+1;</p><p&

52、gt;<b>  end if;</b></p><p>  else Money10<=Money10 +1;</p><p><b>  end if;</b></p><p>  else Money1<=Money1 +1;</p><p>  end if; <

53、/p><p><b>  else </b></p><p>  Old_Money1<= Old_Money1 +4; ---加收的返程費</p><p><b>  end if;</b></p><p><b>  end if;</b></p>

54、<p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  process(SEG_SEL) --- 顯示 </p><p><b>  begin</b>

55、</p><p>  case (SEG_SEL+1) is</p><p>  when "000"=>Disp_Temp<=Meter1K;</p><p>  when "001"=>Disp_Temp<=Meter100;</p><p>  when "010

56、"=>Disp_Temp<=Meter10;</p><p>  when "011"=>Disp_Temp<=Meter1;</p><p>  when "100"=>Disp_Temp<=10;</p><p>  when "101"=>Disp_

57、Temp<=Money100;</p><p>  when "110"=>Disp_Temp<=Money10;</p><p>  when "111"=>Disp_Temp<=Money1;</p><p>  end case; </p><p>  end pr

58、ocess;</p><p>  process(Clk)</p><p><b>  begin</b></p><p>  if(Clk'event and Clk='1') then --掃描累加 </p><p>  SEG_SEL<=SEG_SEL+1;</p>

59、<p>  if(SEG_SEL=3) then</p><p>  Display<=Disp_Decode or "1000000";</p><p><b>  else </b></p><p>  Display<=Disp_Decode;</p><p><b

60、>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  process(Disp_Temp) --顯示轉(zhuǎn)換</p><p><b>  begin</b></p>&

61、lt;p>  case Disp_Temp is</p><p>  when 0=>Disp_Decode<="00111111"; --0</p><p>  when 1=>Disp_Decode<="00000110"; --1</p><p>  when 2=>Disp_

62、Decode<="01011011"; --2</p><p>  when 3=>Disp_Decode<="01001111"; --3</p><p>  when 4=>Disp_Decode<="01100110"; --4</p><p>  when

63、5=>Disp_Decode<="01101101"; --5</p><p>  when 6=>Disp_Decode<="01111101"; --6</p><p>  when 7=>Disp_Decode<="00000111"; --7</p><p

64、>  when 8=>Disp_Decode<="01111111"; --8</p><p>  when 9=>Disp_Decode<="01101111"; --9</p><p>  when 10=>Disp_Decode<="01000000"; </p&g

65、t;<p>  when others=>Disp_Decode<="00000000"; --全滅</p><p><b>  end case;</b></p><p>  end process; </p><p>  在起步價的基礎上,根據(jù)行駛里程的不同,依據(jù)計費標準,每增加1 km

66、加上一個單價。系統(tǒng)中用到了四位BCD碼加法器,可以實現(xiàn)四位十進制數(shù)的加法運算。加法器輸出的結果就是乘客應付的費用,這里以元為單位,最大能顯示9999元。四位BCD碼加法器由四個一位BCD碼加法器級聯(lián)而成。四位BCD碼加法器輸出的結果通過緩沖器以后,反饋到輸入端重新作為一個加數(shù),在脈沖信號的作用下,每來一個脈沖就和單價相加,形成連續(xù)累加的功能。此設計中2km以內(nèi)起步價為6元,白天續(xù)程單價2元,超過20km為3元;夜間續(xù)程單價3元,超過20

67、km為4元。</p><p>  5.3 點陣顯示模塊程序</p><p>  點陣顯示模塊的VHDL源程序如下:</p><p>  process(clk) ---顯示時序控制 </p><p><b>  begin</b></p><p>  if clk&

68、#39;event and clk='1' then</p><p>  dount<=dount+1;</p><p>  if dount=255 then</p><p>  if S=15 then</p><p>  S<="0000";</p><

69、;p><b>  else</b></p><p><b>  s<=S+1;</b></p><p><b>  end if;</b></p><p><b>  s<=s+1;</b></p><p><b>  els

70、e</b></p><p><b>  s<=S;</b></p><p><b>  end if;</b></p><p>  if cdount<15 then</p><p>  cdount<=cdount+1;</p><p>

71、;<b>  else</b></p><p>  cdount<="0000";</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  keyc<=cdount;<

72、/p><p>  end process;</p><p>  process(cdount,s,dn)</p><p><b>  begin</b></p><p>  if(dn='0') then</p><p>  if s="0000" then&

73、lt;/p><p>  case cdount is</p><p>  when "0000"=>keyr<="1111111111111111"; --點陣顯示 白 </p><p>  when "0001"=>keyr<="1111111111111111"

74、;;</p><p>  when "0010"=>keyr<="1100000000000111";</p><p>  when "0011"=>keyr<="1101111011110111";</p><p>  when "0100"

75、=>keyr<="1101111011110011";</p><p>  when "0101"=>keyr<="1101111011110101";</p><p>  when "0110"=>keyr<="1101111011110110";<

76、;/p><p>  when "0111"=>keyr<="1101111011110111";</p><p>  when "1000"=>keyr<="1101111011110111";</p><p>  when "1001"=>

77、keyr<="1101111011110111";</p><p>  when "1010"=>keyr<="1101111011110111";</p><p>  when "1011"=>keyr<="1101111011110111";</p&g

78、t;<p>  when "1100"=>keyr<="1110111011101001";</p><p>  when "1101"=>keyr<="1100000000000111";</p><p>  when "1110"=>keyr&

79、lt;="1111111111111111";</p><p>  when "1111"=>keyr<="1111111111111111";</p><p>  when others=>keyr<="1111111111111111";</p><p>  

80、end case; </p><p>  elsif s="0001" then </p><p>  case cdount is</p><p>  when "0000"=>keyr<="0111111110111111"; --點陣顯示 天</p><p>

81、  when "0001"=>keyr<="0111111110111101";</p><p>  when "0010"=>keyr<="1011111110111101";</p><p>  when "0011"=>keyr<="110

82、1111110111101";</p><p>  when "0100"=>keyr<="1110111110111101";</p><p>  when "0101"=>keyr<="1111001110111101";</p><p>  whe

83、n "0110"=>keyr<="1111110010111101";</p><p>  when "0111"=>keyr<="1111111100000001";</p><p>  when "1000"=>keyr<="11111100

84、10111101";</p><p>  when "1001"=>keyr<="1111001110111101";</p><p>  when "1010"=>keyr<="1110111110111101";</p><p>  when &qu

85、ot;1011"=>keyr<="1101111110111101";</p><p>  when "1100"=>keyr<="1011111110111100";</p><p>  when "1101"=>keyr<="0011111110011

86、101";</p><p>  when "1110"=>keyr<="1011111110111111";</p><p>  when "1111"=>keyr<="1111111111111111";</p><p>  when others=&

87、gt;keyr<="1111111111111111";</p><p><b>  end case;</b></p><p>  elsif s="0010" then </p><p>  case cdount is</p><p>  when "0

88、000"=>keyr<="1111111011111111"; --點陣顯示 每</p><p>  when "0001"=>keyr<="1111111011101111";</p><p>  when "0010"=>keyr<="11100010

89、11110111";</p><p>  when "0011"=>keyr<="1110110000001000";</p><p>  when "0100"=>keyr<="1110111011101011";</p><p>  when &qu

90、ot;0101"=>keyr<="1110111011101011";</p><p>  when "0110"=>keyr<="1110110011001011";</p><p>  when "0111"=>keyr<="1110101010101

91、011";</p><p>  when "1000"=>keyr<="1010111011101011";</p><p>  when "1001"=>keyr<="0110111011101011";</p><p>  when "10

92、10"=>keyr<="1000111011101011";</p><p>  when "1011"=>keyr<="1110000000000011";</p><p>  when "1100"=>keyr<="1110111011101001&q

93、uot;;</p><p>  when "1101"=>keyr<="1111111001111011";</p><p>  when "1110"=>keyr<="1111111011111111";</p><p>  when "1111&qu

94、ot;=>keyr<="1111111111111111";</p><p>  when others=>keyr<="1111111111111111";</p><p>  end case; </p><p>  elsif s="0011" then </p&g

95、t;<p>  case cdount is</p><p>  when "0000"=>keyr<="1111111011111111"; --點陣顯示 公</p><p>  when "0001"=>keyr<="1111111011111111";</p&g

96、t;<p>  when "0010"=>keyr<="1111111101111111";</p><p>  when "0011"=>keyr<="1100111110111111";</p><p>  when "0100"=>keyr&

97、lt;="1101011111001111";</p><p>  when "0101"=>keyr<="1101101111110011";</p><p>  when "0110"=>keyr<="1101110011111111";</p>&

98、lt;p>  when "0111"=>keyr<="1101111100111111";</p><p>  when "1000"=>keyr<="1101111111111001";</p><p>  when "1001"=>keyr<=&

99、quot;1101111111111001";</p><p>  when "1010"=>keyr<="1100011111100111";</p><p>  when "1011"=>keyr<="1100111111011111";</p><p&

100、gt;  when "1100"=>keyr<="1001111110111111";</p><p>  when "1101"=>keyr<="1111111101111111";</p><p>  when "1110"=>keyr<="

101、1111111001111111";</p><p>  when "1111"=>keyr<="1111111101111111";</p><p>  when others=>keyr<="1111111111111111";</p><p><b>  e

102、nd case;</b></p><p>  elsif s="0100" then</p><p>  case cdount is</p><p>  when "0000"=>keyr<="1011111111111111"; --點陣顯示 里</p><

103、;p>  when "0001"=>keyr<="1011111111111111";</p><p>  when "0010"=>keyr<="1011011000000001";</p><p>  when "0011"=>keyr<=&qu

104、ot;1011011011101101";</p><p>  when "0100"=>keyr<="1011011011101101";</p><p>  when "0101"=>keyr<="1011011011101101";</p><p>

105、;  when "0110"=>keyr<="1011011011101101";</p><p>  when "0111"=>keyr<="1000000000000001";</p><p>  when "1000"=>keyr<="10

106、11011011101101";</p><p>  when "1001"=>keyr<="1011011011101101";</p><p>  when "1010"=>keyr<="1011011011101101";</p><p>  wh

107、en "1011"=>keyr<="1011011011101101";</p><p>  when "1100"=>keyr<="1011011000000001";</p><p>  when "1101"=>keyr<="1011111

108、111111111";</p><p>  when "1110"=>keyr<="1011111111111111";</p><p>  when "1111"=>keyr<="1111111111111111";</p><p>  when ot

109、hers=>keyr<="1111111111111111";</p><p><b>  end case;</b></p><p>  elsif s="0101" then</p><p>  case cdount is</p><p>  when &q

110、uot;0000"=>eyr<="1111111111111111"; --點陣顯示 2</p><p>  when "0001"=>keyr<="1111111111111111";</p><p>  when "0010"=>keyr<="1100

111、111110011111";</p><p>  when "0011"=>keyr<="1100111110001111";</p><p>  when "0100"=>keyr<="1100011110000111";</p><p>  when

112、 "0101"=>keyr<="1100001111110011";</p><p>  when "0110"=>keyr<="1100101111110011";</p><p>  when "0111"=>keyr<="110010011

113、1110011";</p><p>  when "1000"=>keyr<="1100110111110011";</p><p>  when "1001"=>keyr<="1100110011110011";</p><p>  when &quo

114、t;1010"=>keyr<="1100111001110011";</p><p>  when "1011"=>keyr<="1100111000000111";</p><p>  when "1100"=>keyr<="11001111000011

115、11";</p><p>  when "1101"=>keyr<="1100011110011111";</p><p>  when "1110"=>keyr<="1111111111111111";</p><p>  when "111

116、1"=>keyr<="1111111111111111";</p><p>  when others=>keyr<="1111111111111111";</p><p><b>  end case;</b></p><p>  elsif s>5 the

117、n</p><p>  case cdount is</p><p>  when "0000"=>keyr<="0111111111011111"; --點陣顯示 元</p><p>  when "0001"=>keyr<="0111111111011111"

118、;</p><p>  when "0010"=>keyr<="1011111111011101";</p><p>  when "0011"=>keyr<="1101111111011101";</p><p>  when "0100"=

119、>keyr<="1110011111011101";</p><p>  when "0101"=>keyr<="1111100000011101";</p><p>  when "0110"=>keyr<="1111111111011101";<

120、/p><p>  when "0111"=>keyr<="1111111111011101";</p><p>  when "1000"=>keyr<="1111111111011101";</p><p>  when "1001"=>k

121、eyr<="1100000000011101";</p><p>  when "1010"=>keyr<="1011111111011101";</p><p>  when "1011"=>keyr<="1011111111011101";</p>

122、;<p>  when "1100"=>keyr<="1011111111011101";</p><p>  when "1101"=>keyr<="1011111111011101";</p><p>  when "1110"=>keyr&l

123、t;="1011111111011111";</p><p>  when "1111"=>keyr<="1000111111111111";</p><p>  when others=>keyr<="1111111111111111";</p><p><

124、;b>  end case;</b></p><p><b>  end if;</b></p><p><b>  elsif</b></p><p>  s="0000" then</p><p>  case cdount is</p>&

125、lt;p>  when "0000"=>keyr<="1111110111111011"; --點陣顯示 夜</p><p>  when "0001"=>keyr<="1111111011111011";</p><p>  when "0010"=>k

126、eyr<="1111111101111011";</p><p>  when "0011"=>keyr<="0000000000011011";</p><p>  when "0100"=>keyr<="0111110111100011";</p>

127、;<p>  when "0101"=>keyr<="0111111011111011";</p><p>  when "0110"=>keyr<="1011111001111010";</p><p>  when "0111"=>keyr&l

128、t;="1101110110111001";</p><p>  when "1000"=>keyr<="1110101101000011";</p><p>  when "1001"=>keyr<="1111011011011011";</p>&l

129、t;p>  when "1010"=>keyr<="1110101111011011";</p><p>  when "1011"=>keyr<="1101110011011011";</p><p>  when "1100"=>keyr<=&q

130、uot;1011111100011011";</p><p>  when "1101"=>keyr<="0011111111111001";</p><p>  when "1110"=>keyr<="1011111111111011";</p><p&g

131、t;  when "1111"=>keyr<="1111111111111111";</p><p>  when others=>keyr<="1111111111111111";</p><p>  end case; </p><p>  elsif s="0001

132、" then </p><p>  case cdount is</p><p>  when "0000"=>keyr<="1111111111111111"; --點陣顯示 間</p><p>  when "0001"=>keyr<="000000000

133、0000111";</p><p>  when "0010"=>keyr<="1111111111111110";</p><p>  when "0011"=>keyr<="1111111111111101";</p><p>  when &quo

134、t;0100"=>keyr<="1100000000001001";</p><p>  when "0101"=>keyr<="1110111011101111";</p><p>  when "0110"=>keyr<="11101110111011

135、01";</p><p>  when "0111"=>keyr<="1110111011101101";</p><p>  when "1000"=>keyr<="1110111011101101";</p><p>  when "100

136、1"=>keyr<="1110111011101101";</p><p>  when "1010"=>keyr<="1100000000000101";</p><p>  when "1011"=>keyr<="1011111111101101&qu

137、ot;;</p><p>  when "1100"=>keyr<="0111111111111101";</p><p>  when "1101"=>keyr<="1000000000000000";</p><p>  when "1110&quo

138、t;=>keyr<="1111111111111101";</p><p>  when "1111"=>keyr<="1111111111111111";</p><p>  when others=>keyr<="1111111111111111";</p>

139、<p><b>  end case;</b></p><p>  elsif s="0010" then </p><p>  case cdount is</p><p>  when "0000"=>keyr<="1111111011111111";

140、 --點陣顯示 每</p><p>  when "0001"=>keyr<="1111111011101111";</p><p>  when "0010"=>keyr<="1110001011110111";</p><p>  when "001

141、1"=>keyr<="1110110000001000";</p><p>  when "0100"=>keyr<="1110111011101011";</p><p>  when "0101"=>keyr<="1110111011101011&qu

142、ot;;</p><p>  when "0110"=>keyr<="1110110011001011";</p><p>  when "0111"=>keyr<="1110101010101011";</p><p>  when "1000&quo

143、t;=>keyr<="1010111011101011";</p><p>  when "1001"=>keyr<="0110111011101011";</p><p>  when "1010"=>keyr<="1000111011101011";&

144、lt;/p><p>  when "1011"=>keyr<="1110000000000011";</p><p>  when "1100"=>keyr<="1110111011101001";</p><p>  when "1101"=&g

145、t;keyr<="1111111001111011";</p><p>  when "1110"=>keyr<="1111111011111111";</p><p>  when "1111"=>keyr<="1111111111111111";</p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論