2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  概述</b></p><p>  在當(dāng)今社會(huì)中,人們對(duì)于隱私的保護(hù)和對(duì)物品安全的重視程度與日俱增。因此,使用了現(xiàn)代電子技術(shù)的電子密碼鎖便有了廣泛的應(yīng)用前景。本次所設(shè)計(jì)的電子密碼鎖,能夠?qū)崿F(xiàn)該六位十進(jìn)制并行密碼保護(hù),當(dāng)輸入的密碼與鎖內(nèi)密碼一致時(shí),綠燈亮,開鎖;當(dāng)輸入的密碼與鎖內(nèi)的密碼不一致時(shí),紅燈亮,不能開鎖。密碼鎖的密碼可由用戶自行設(shè)置,并可在液晶顯示屏上顯示所

2、輸入的密碼。為人們的財(cái)產(chǎn)、信息安全提供了可靠地保障。</p><p>  本次設(shè)計(jì)基于VHDL語(yǔ)言,對(duì)并行六位電子密碼鎖進(jìn)行設(shè)計(jì),并對(duì)設(shè)計(jì)過(guò)程進(jìn)行了詳細(xì)描述。采用VHDL語(yǔ)言進(jìn)行電子密碼鎖的設(shè)計(jì)可使設(shè)計(jì)工作簡(jiǎn)潔直觀,快速實(shí)現(xiàn)既定功能。電子密碼鎖在對(duì)財(cái)產(chǎn)安全保護(hù)等方面都有著重要作用,應(yīng)用前景非常廣泛。開鎖代碼為六位十進(jìn)制數(shù),當(dāng)輸入代碼的位數(shù)和位值與鎖內(nèi)給定的密碼一致,且按規(guī)定程序開鎖時(shí),方可開鎖,并點(diǎn)亮開鎖指示燈。

3、否則,系統(tǒng)進(jìn)入“錯(cuò)誤”狀態(tài),并發(fā)出報(bào)警信號(hào)。開鎖程序由設(shè)計(jì)者確定,并要求鎖內(nèi)給定的密碼是可調(diào)的,且預(yù)置方便,保密性好。并行數(shù)字鎖的報(bào)警方式是點(diǎn)亮指示燈,并使喇叭鳴叫來(lái)報(bào)警,直到按下復(fù)位開關(guān),報(bào)警才停止。此時(shí),數(shù)字鎖又自動(dòng)進(jìn)入等待下一次開鎖的狀態(tài)。</p><p><b>  一、 設(shè)計(jì)主要內(nèi)容</b></p><p>  密碼鎖串行輸入幾位十進(jìn)制數(shù)字口令</p&

4、gt;<p>  輸入口令全部正確即開鎖并有綠燈顯示</p><p>  口令輸入最大次數(shù)3次,要求在完全輸入六位之后進(jìn)行判斷口令正確與否;輸入3次之后還不能開鎖,進(jìn)入死鎖狀態(tài)并報(bào)警</p><p><b>  有相應(yīng)的顯示功能</b></p><p><b>  開鎖后能再次上鎖</b></p>

5、<p><b>  二、系統(tǒng)設(shè)計(jì)方案 </b></p><p>  作為通用電子密碼鎖,主要由三個(gè)部分組成:數(shù)字密碼輸入電路、密碼鎖控制電路和密碼鎖顯示電路。</p><p> ?。?)密碼鎖輸入電路包括時(shí)序產(chǎn)生電路、鍵盤掃描電路、鍵盤譯碼電路等幾個(gè)小的功能電路。</p><p>  (2) 密碼鎖控制電路包括按鍵數(shù)據(jù)的緩沖存儲(chǔ)電

6、路,密碼的清除、存儲(chǔ)、激活電鎖電路(寄存器清除信號(hào)發(fā)生電路),密碼核對(duì)(數(shù)值比較電路),解鎖電路(開/關(guān)門鎖電路)等幾個(gè)小的功能電路。</p><p> ?。?)密碼顯示電路主要是在液晶顯示屏顯示輸入的數(shù)值。</p><p>  2.1密碼鎖輸入電路的設(shè)計(jì)</p><p>  是電子密碼鎖的輸入電路框圖,由鍵盤掃描電路、彈跳消除電路、鍵盤譯碼電路、按鍵數(shù)據(jù)緩存器,加

7、上外接的一個(gè)4×4矩陣式鍵盤組成。</p><p>  圖1-1 密碼鎖的輸入電路框圖 </p><p>  1.矩陣式鍵盤的工作原理</p><p>  矩陣式鍵盤是一種常見的輸入裝置,在日常的生活中,矩陣式鍵盤在計(jì)算機(jī)、電話、手機(jī)、微波爐等各式電子產(chǎn)品上已經(jīng)被廣泛應(yīng)用。圖1-2是一個(gè)3×4矩陣式鍵盤的面板配置圖,其中數(shù)字0~9作為密碼

8、數(shù)字輸入按鍵。 </p><p>  圖1-2 4 ×4矩陣式鍵盤的面板配置 </p><p>  2.2密碼鎖輸入電路各主要功能模塊的設(shè)計(jì)</p><p><b>  1) 時(shí)序產(chǎn)生電路</b></p><p>  本時(shí)序產(chǎn)生電路中使用了三種不同頻率的工作脈沖波形:系統(tǒng)時(shí)鐘脈沖(它是系統(tǒng)內(nèi)部所有時(shí)鐘脈

9、沖的源頭,且其頻率最高)、彈跳消除取樣信號(hào)、鍵盤掃描信號(hào)。</p><p><b>  2) 鍵盤掃描電路</b></p><p>  掃描電路的作用是用來(lái)提供鍵盤掃描信號(hào)的,掃描信號(hào)變化的順序依次為1110-1101-1011-0111-1110......依序地周而復(fù)始。</p><p><b>  3) 彈跳消除電路</b

10、></p><p>  由于本設(shè)計(jì)中采用的矩陣式鍵盤是機(jī)械開關(guān)結(jié)構(gòu),因此在開關(guān)切換的瞬間會(huì)在接觸點(diǎn)出現(xiàn)信號(hào)來(lái)回彈跳的現(xiàn)象,對(duì)于電子密碼鎖這種靈敏度較高的電路這種彈跳將很可能會(huì)造成誤動(dòng)作輸入,從而影響到密碼鎖操作的正確性。</p><p>  從圖1-3中可以觀察出彈跳現(xiàn)象產(chǎn)生的原因,雖然只是按下按鍵一次然后放掉,然而實(shí)際產(chǎn)生的按鍵信號(hào)卻不止跳動(dòng)一次,經(jīng)過(guò)取樣信號(hào)的檢查后,將會(huì)造成誤判

11、斷,以為鍵盤按了兩次。如果調(diào)整抽樣頻率(如圖4.5所示),可以發(fā)現(xiàn)彈跳現(xiàn)象獲得了改善。 </p><p>  圖1-3彈跳現(xiàn)象產(chǎn)生錯(cuò)誤的抽樣結(jié)果</p><p>  圖1-4 調(diào)整抽樣頻率后得到的抽樣結(jié)果</p><p><b>  4) 鍵盤譯碼電路</b></p><p>  上述鍵盤中的按鍵可分為數(shù)字按鍵和文字按

12、鍵,每一個(gè)按鍵可能負(fù)責(zé)不同的功能,例如清除數(shù)碼、退位、激活電鎖、開鎖等。</p><p><b>  5) 按鍵存儲(chǔ)電路</b></p><p>  因?yàn)槊看螔呙钑?huì)產(chǎn)生新的按鍵數(shù)據(jù),可能會(huì)覆蓋前面的數(shù)據(jù),所以需要一個(gè)按鍵存儲(chǔ)電路,將整個(gè)鍵盤掃描完畢后的結(jié)果記錄下來(lái)。按鍵存儲(chǔ)電路可以使用移位寄存器構(gòu)成。</p><p>  圖1-5 輸入電路仿真

13、波形圖</p><p>  2.3 密碼鎖控制電路的設(shè)計(jì)</p><p>  密碼鎖的控制電路是整個(gè)電路的控制中心,主要完成對(duì)數(shù)字按鍵輸入和功能按鍵輸入的響應(yīng)控制。</p><p>  1.?dāng)?shù)字按鍵輸入的響應(yīng)控制</p><p>  (1) 如果按下數(shù)字鍵,第一個(gè)數(shù)字會(huì)從顯示器的最右端開始顯示,此后每新按一個(gè)數(shù)字時(shí),顯示器上的數(shù)字必須左移一

14、格,以便將新的數(shù)字顯示出來(lái)。</p><p>  (2) 假如要更改輸入的數(shù)字,可以按倒退按鍵來(lái)清除前一個(gè)輸入的數(shù)字,或者按清除鍵清除所有輸入的數(shù)字,再重新輸入六位數(shù)。</p><p>  (3) 由于這里設(shè)計(jì)的是一個(gè)六位的電子密碼鎖,所以當(dāng)輸入的數(shù)字鍵超過(guò)四個(gè)時(shí),電路不予理會(huì),而且不再顯示第六個(gè)以后的數(shù)字。</p><p>  2.4功能按鍵輸入的響應(yīng)控制<

15、/p><p>  (1) 清除鍵:清除所有的輸入數(shù)字,即做歸零動(dòng)作。</p><p>  (2) 激活電鎖鍵:按下此鍵時(shí)可將密碼鎖的門上鎖。(上鎖前必須預(yù)先設(shè)定一個(gè)六位的數(shù)字密碼。)</p><p>  (3) 解除電鎖鍵:按下此鍵會(huì)檢查輸入的密碼是否正確,若密碼正確無(wú)誤則開門。</p><p>  圖1-5 電子密碼鎖的三種模式及關(guān)系</

16、p><p>  2.5 密碼鎖顯示電路的設(shè)計(jì)</p><p>  密碼鎖顯示電路的設(shè)計(jì)比較復(fù)雜,這里直接采用12864液晶屏進(jìn)行顯示。 </p><p>  2.6 密碼鎖的整體組裝設(shè)計(jì)</p><p>  將前面各個(gè)設(shè)計(jì)好的功能模塊進(jìn)行整合,可得到一個(gè)完整的電子密碼鎖系統(tǒng)的整體組裝設(shè)計(jì)原理圖,如圖1-6所示。</p><p

17、>  圖1-6 密碼鎖的整體組裝設(shè)計(jì)原理圖</p><p><b>  系統(tǒng)擴(kuò)展思路</b></p><p>  (1) 本系統(tǒng)基本達(dá)到作為數(shù)字密碼鎖的絕大部分功能,但還有許多不足或需完善的地方。比如說(shuō)采用4×4的通用機(jī)械鍵盤受到鍵盤數(shù)量的限制,在很大的程度上限制了其功能的擴(kuò)展。 </p><p>  設(shè)計(jì)外圍電路:系

18、統(tǒng)用方波信號(hào)源,直流工作電源。</p><p>  可要求設(shè)計(jì)制作整個(gè)系統(tǒng),包括PCB的制作。</p><p><b>  實(shí)驗(yàn)收獲</b></p><p>  課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程。隨著科學(xué)技術(shù)發(fā)展的日新月異,F(xiàn)PGA已經(jīng)成為當(dāng)今計(jì)

19、算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說(shuō)無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握eda的開發(fā)技術(shù)是十分必要的。</p><p>  回顧此次課程設(shè)計(jì),我感慨頗多,的確,從理論到實(shí)踐,在很長(zhǎng)的一段時(shí)間里,可以說(shuō)是苦多于甜,但確實(shí)學(xué)到了很多東西,不僅可以鞏固以前學(xué)到的知識(shí),還學(xué)到許多沒(méi)學(xué)過(guò)的知識(shí)。通過(guò)此次課程設(shè)計(jì),使我了解了理論與實(shí)際結(jié)合的重要性,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的。在設(shè)計(jì)的過(guò)程中,發(fā)現(xiàn)自己以前學(xué)習(xí)的知識(shí)理解

20、不夠深刻,掌握不夠牢固等等。通過(guò)這次課設(shè)之后,一定要把以前學(xué)習(xí)的知識(shí)溫故知新。</p><p>  這次的課設(shè)終于完成,通過(guò)老師的細(xì)心講解,我解決了很多問(wèn)題。在這里,感謝老師的細(xì)心指導(dǎo)。同時(shí)對(duì)于幫助我的同學(xué),也表示衷心感謝。</p><p><b>  附錄</b></p><p><b>  液晶顯示程序</b><

21、/p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  use IEEE.STD_LOGIC_ARITH.ALL;</p><p>  entity

22、clock_lcd_disp is</p><p>  generic(divide_to_100k:integer:=500);</p><p>  port(clk:in std_logic;</p><p>  DATAIN:in std_logic_vector(31 downto 0);</p><p>  din: in INT

23、EGER RANGE 15 DOWNTO 0;</p><p>  rw,rs,e,lcd_rst:out std_logic;</p><p>  lcd_data:out std_logic_vector(7 downto 0));</p><p>  end clock_lcd_disp;</p><p>  architecture

24、tcl of clock_lcd_disp is</p><p>  signal mima:std_logic_vector(31 downto 0):="00010010001101000101011001111000";</p><p>  signal clk_100k:std_logic;</p><p>  signal clkout

25、:std_logic;</p><p>  signal temp:std_logic_vector(7 downto 0);</p><p>  type state is(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,s20,s21,s22,s23,s24,s25,s26,s27,s28,s2

26、9,s30,s31);</p><p>  signal current_s:state;</p><p>  type data_buffer is array(0 to 15)of std_logic_vector(7 downto 0);</p><p>  type data_buffer1 is array(0 to 7)of std_lo

27、gic_vector(7 downto 0);</p><p>  signal time:std_logic_vector(23 downto 0);</p><p>  signal disp_time:data_buffer1:=(</p><p>  x"31",x"32",x"3a",x&

28、quot;33",</p><p>  x"34",x"3a",x"35",x"36");</p><p>  constant data_buf0:data_buffer:=(x"20",x"20",x"bb",x"aa"

29、;, --湘潭大學(xué) 80 </p><p>  x"bf",x"c6",x"ce",x"e4",</p><p>  x"b2",x"fd", x"b7",x"d6",</p><p>  x"d0

30、",x"a3",x"20",x"20"); </p><p>  constant data_buf1:data_buffer:=(x"20",x"20",x"b5",x"e7", --電子密碼鎖 90</p><p>  x"

31、;d7",x"d3",x"c3",x"dc",</p><p>  x"c2",x"eb",x"cb",x"f8",</p><p>  x"20",x"20",x"20",x&qu

32、ot;20"); </p><p>  constant data_buf2:data_buffer:=(x"20",x"20",x"c7",x"eb",</p><p>  x"ca",x"e4",x"c8",x&quo

33、t;eb", --請(qǐng)輸入密碼: 88</p><p>  x"c3",x"dc",x"c2",x"eb",</p><p>  x"3a",x"20",x"20",x"20"); </p><p>

34、;  constant data_buf3:data_buffer:=(x"20",x"20",x"d6",x"d8",</p><p>  x"d0",x"c2",x"ca",x"e4", --重新輸入</p><p>  x&q

35、uot;c8",x"eb",x"20",x"20",</p><p>  x"20",x"20",x"20",x"20");</p><p>  constant data_buf4:data_buffer:=(x"20"

36、,x"20",x"bd",x"e2", x"cb",x"f8",x"b3",x"c9", --解鎖成功</p><p>  x"b9",x"a6",x"20",x"20",</p>

37、<p>  x"20",x"20",x"20",x"20");</p><p>  constant data_buf5:data_buffer:=( x"20",x"20", --進(jìn)入死鎖狀態(tài)</p><p>  x"bd",

38、x"f8",x"c8",x"eb",</p><p>  x"cb",x"c0",x"cb",x"f8",</p><p>  x"d7",x"b4",x"cc",x"ac"

39、;,</p><p>  x"20",x"20"); </p><p>  constant data_buf6:data_buffer:=(x"20",x"20",x"bd",x"e2", --</p><p>  x"cb"

40、,x"f8",x"b3",x"c9",</p><p>  x"b9",x"a6", x"21",x"20",</p><p>  x"20",x"20",x"20",x"20&qu

41、ot;); </p><p><b>  begin</b></p><p>  --U1:divclk1 port map(clk,clk_100k);</p><p>  process(clk)</p><p>  variable c

42、nt:integer range 0 to divide_to_100k;</p><p><b>  begin</b></p><p>  if(clk'event and clk='1')then cnt:=cnt+1;</p><p>  if(cnt=divide_to_100k)then cnt:=0;<

43、;/p><p><b>  end if;</b></p><p>  if(cnt<divide_to_100k/2) then clk_100k<='0';</p><p>  else clk_100k<='1';</p><p><b>  end if;&

44、lt;/b></p><p><b>  end if;</b></p><p>  end process;</p><p><b>  div_1Hz:</b></p><p>  process(clk)</p><p>  variable cnttemp:in

45、teger range 0 to 49999999;</p><p><b>  begin </b></p><p>  if clk='1' and clk'event then</p><p>  if cnttemp=49999999 then cnttemp:=0;</p><p>&l

46、t;b>  else </b></p><p>  if cnttemp<25000000 then clkout<='1';</p><p>  else clkout<='0';</p><p><b>  end if;</b></p><p> 

47、 cnttemp:=cnttemp+1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process div_1Hz;</p><p>  disp_time(7)<=DATAIN(3 downto 0)+

48、x"30";</p><p>  disp_time(6)<=DATAIN(7 downto 4)+x"30";</p><p>  disp_time(5)<=DATAIN(11 downto 8)+x"30";</p><p>  disp_time(4)<=DATAIN(15 dow

49、nto 12)+x"30";</p><p>  disp_time(3)<=DATAIN(19 downto 16)+x"30"; </p><p>  disp_time(2)<=DATAIN(23 downto 20)+x"30"; </p><p>  disp_time(1)<

50、;=DATAIN(27 downto 24)+x"30";</p><p>  disp_time(0)<=DATAIN(31 downto 28)+x"30";</p><p>  read_time:</p><p>  process(time) </p><p><b>  be

51、gin </b></p><p>  end process;</p><p>  process(clk_100k)</p><p>  variable cnt1:integer range 0 to 10000;</p><p>  variable cnt_1:integer range 0 to 1000;</p

52、><p>  variable code_cnt:integer range 0 to 13;</p><p>  variable data_cnt:integer range 0 to 480;</p><p><b>  begin</b></p><p>  if(clk_100k'event and clk

53、_100k='1')then</p><p>  case current_s is </p><p>  when s0=>rw<='1';rs<='1';e<='1';cnt1:=cnt1+1;</p><p>  if cnt1<500 then lcd_rst<

54、;='0';</p><p>  elsif cnt1<1000 then lcd_rst<='1';</p><p>  elsif cnt1=1000 then</p><p>  lcd_rst<='1';cnt1:=0;current_s<=s1;</p><p>

55、;<b>  end if;</b></p><p>  when s1=>cnt_1:=cnt_1+1;</p><p>  if cnt_1<1*3 then e<='1';rs<='0';rw<='0';</p><p>  elsif cnt_1<2*3

56、 then lcd_data<=x"0c";</p><p>  elsif cnt_1<10*3 then e<='0';</p><p>  elsif cnt_1=10*3 then cnt_1:=0;current_s<=s2;</p><p><b>  end if;</b>

57、;</p><p>  when s2=>cnt_1:=cnt_1+1;</p><p>  if cnt_1<1*3 then e<='1';rs<='0';rw<='0';</p><p>  elsif cnt_1<2*3 then lcd_data<=x"90

58、";</p><p>  elsif cnt_1<10*3 then e<='0';</p><p>  elsif cnt_1=10*3 then cnt_1:=0;current_s<=s3;</p><p><b>  end if;</b></p><p><b&

59、gt;  when s3=></b></p><p>  if cnt_1<1*3 then e<='1';rs<='1';rw<='0';</p><p>  elsif cnt_1<2*3 then lcd_data<=data_buf1(data_cnt);

60、 </p><p>  elsif cnt_1=2*3 then data_cnt:=data_cnt+1;</p><p>  elsif cnt_1<100 then e<='0';</p><p><b>  end if;</b></p><p>  cnt_1:

61、=cnt_1+1;</p><p>  if cnt_1=100 then cnt_1:=0;</p><p>  if data_cnt=16 then current_s<=s4;</p><p>  data_cnt:=0;</p><p><b>  end if;</b></p><p

62、><b>  end if;</b></p><p>  when s4=>cnt_1:=cnt_1+1;</p><p>  if cnt_1<1*3 then e<='1';rs<='0';rw<='0';</p><p>  elsif cnt_1<

63、2*3 then lcd_data<=x"88";</p><p>  elsif cnt_1<10*3 then e<='0';</p><p>  elsif cnt_1=10*3 then cnt_1:=0;current_s<=s5;</p><p><b>  end if;</b

64、></p><p><b>  when s5=></b></p><p>  if cnt_1<1*3 then e<='1';rs<='1';rw<='0';</p><p>  elsif cnt_1<2*3 then lcd_data<=da

65、ta_buf2(data_cnt); </p><p>  elsif cnt_1=2*3 then data_cnt:=data_cnt+1;</p><p>  elsif cnt_1<100 then e<='0';</p><p><b>  end if;</b></p

66、><p>  cnt_1:=cnt_1+1;</p><p>  if cnt_1=100 then cnt_1:=0;</p><p>  if data_cnt=16 then current_s<=s6;</p><p>  data_cnt:=0;</p><p><b>  end if;<

67、/b></p><p><b>  end if;</b></p><p>  when s6=>cnt_1:=cnt_1+1;</p><p>  if cnt_1<1*3 then e<='1';rs<='0';rw<='0';</p><

68、;p>  elsif cnt_1<2*3 then lcd_data<=x"80";</p><p>  elsif cnt_1<10*3 then e<='0';</p><p>  elsif cnt_1=10*3 then cnt_1:=0;current_s<=s7;</p><p>&

69、lt;b>  end if;</b></p><p><b>  when s7=></b></p><p>  if cnt_1<1*3 then e<='1';rs<='1';rw<='0';</p><p>  elsif cnt_1<2

70、*3 then lcd_data<=data_buf0(data_cnt); </p><p>  elsif cnt_1=2*3 then data_cnt:=data_cnt+1;</p><p>  elsif cnt_1<100 then e<='0';</p><p>

71、<b>  end if;</b></p><p>  cnt_1:=cnt_1+1;</p><p>  if cnt_1=100 then cnt_1:=0;</p><p>  if data_cnt=16 then current_s<=s8;</p><p>  data_cnt:=0;</p>

72、;<p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  --動(dòng)態(tài)顯示</b></p><p>  when s8=>cnt_1:=cnt_1+1;</p><p>  if cnt_1&l

73、t;1*3 then e<='1';rs<='0';rw<='0';</p><p>  elsif cnt_1<2*3 then lcd_data<=x"9a";</p><p>  elsif cnt_1<10*3 then e<='0';</p>

74、<p>  elsif cnt_1=10*3 then cnt_1:=0;current_s<=s9;</p><p><b>  end if;</b></p><p><b>  when s9=></b></p><p>  if cnt_1<1*3 then e<='1&

75、#39;;rs<='1';rw<='0'; </p><p>  elsif cnt_1<2*3 then lcd_data<=disp_time(data_cnt);</p><p>  elsif cnt_1=2*3 then data_cnt:=data_cnt+1;</p>

76、<p>  elsif cnt_1<100 then e<='0';</p><p><b>  end if;</b></p><p>  cnt_1:=cnt_1+1;</p><p>  if cnt_1=100 then cnt_1:=0;</p><p>  if da

77、ta_cnt=8 then current_s<=s10;</p><p>  data_cnt:=0;</p><p><b>  end if;</b></p><p><b>  end if; </b></p><p>  -------------------------------

78、------------------------------- </p><p>  when s10=>cnt_1:=cnt_1+1;</p><p>  if din<=10 then </p><p>  if cnt_1<1*3 then e<='1';rs<='0';rw<=&#

79、39;0';</p><p>  elsif cnt_1<2*3 then lcd_data<=x"88";</p><p>  elsif cnt_1<10*3 then e<='0';</p><p>  elsif cnt_1=10*3 then cnt_1:=0;current_s<=

80、s11;</p><p><b>  end if;</b></p><p>  else current_s<=s12;</p><p><b>  end if;</b></p><p>  when s11=></p><p>  if cnt_1<1

81、*3 then e<='1';rs<='1';rw<='0'; </p><p>  elsif cnt_1<2*3 then lcd_data<=data_buf4(data_cnt);</p><p>  elsif cnt_1=2*3 then data_cnt:=

82、data_cnt+1;</p><p>  elsif cnt_1<100 then e<='0';</p><p><b>  end if;</b></p><p>  cnt_1:=cnt_1+1;</p><p>  if cnt_1=100 then cnt_1:=0;</p&

83、gt;<p>  if data_cnt=8 then current_s<=s0;</p><p>  data_cnt:=0;</p><p><b>  end if;</b></p><p><b>  end if; </b></p><p>  when s12=&g

84、t;cnt_1:=cnt_1+1;</p><p>  if cnt_1<1*3 then e<='1';rs<='0';rw<='0';</p><p>  elsif cnt_1<2*3 then lcd_data<=x"88";</p><p>  elsi

85、f cnt_1<10*3 then e<='0';</p><p>  elsif cnt_1=10*3 then cnt_1:=0;current_s<=s13;</p><p><b>  end if;</b></p><p>  when s13=></p><p>  i

86、f cnt_1<1*3 then e<='1';rs<='1';rw<='0'; </p><p>  elsif cnt_1<2*3 then lcd_data<=data_buf3(data_cnt);</p><p>  elsif cnt_1=2*3 the

87、n data_cnt:=data_cnt+1;</p><p>  elsif cnt_1<100 then e<='0';</p><p><b>  end if;</b></p><p>  cnt_1:=cnt_1+1;</p><p>  if cnt_1=100 then cnt_

88、1:=0;</p><p>  if data_cnt=8 then current_s<=s14;</p><p>  data_cnt:=0;</p><p><b>  end if;</b></p><p><b>  end if; </b></p><p>

89、;  when s14=>cnt_1:=cnt_1+1;</p><p>  if cnt_1<1*3 then e<='1';rs<='0';rw<='0';</p><p>  elsif cnt_1<2*3 then lcd_data<=x"98";</p>&

90、lt;p>  elsif cnt_1<10*3 then e<='0';</p><p>  elsif cnt_1=10*3 then cnt_1:=0;current_s<=s15;</p><p><b>  end if;</b></p><p>  when s15=></p>

91、<p>  if cnt_1<1*3 then e<='1';rs<='1';rw<='0'; </p><p>  elsif cnt_1<2*3 then lcd_data<=disp_time(data_cnt);</p><p>  elsif

92、 cnt_1=2*3 then data_cnt:=data_cnt+1;</p><p>  elsif cnt_1<100 then e<='0';</p><p><b>  end if;</b></p><p>  cnt_1:=cnt_1+1;</p><p>  if cnt_1

93、=100 then cnt_1:=0;</p><p>  if data_cnt=8 then current_s<=s16;</p><p>  data_cnt:=0;</p><p><b>  end if;</b></p><p><b>  end if; </b></p

94、><p>  ------------------------------------------------------------------------------------------------</p><p>  when s16=>cnt_1:=cnt_1+1;</p><p>  if din<=10 then </p>&l

95、t;p>  if cnt_1<1*3 then e<='1';rs<='0';rw<='0';</p><p>  elsif cnt_1<2*3 then lcd_data<=x"88";</p><p>  elsif cnt_1<10*3 then e<='

96、;0';</p><p>  elsif cnt_1=10*3 then cnt_1:=0;current_s<=s17;</p><p><b>  end if;</b></p><p>  else current_s<=s18;</p><p><b>  end if;</b

97、></p><p>  when s17=></p><p>  if cnt_1<1*3 then e<='1';rs<='1';rw<='0'; </p><p>  elsif cnt_1<2*3 then lcd_data<

98、;=data_buf4(data_cnt);</p><p>  elsif cnt_1=2*3 then data_cnt:=data_cnt+1;</p><p>  elsif cnt_1<100 then e<='0';</p><p><b>  end if;</b></p><p&g

99、t;  cnt_1:=cnt_1+1;</p><p>  if cnt_1=100 then cnt_1:=0;</p><p>  if data_cnt=8 then current_s<=s0;</p><p>  data_cnt:=0;</p><p><b>  end if;</b></p&g

100、t;<p><b>  end if; </b></p><p>  when s18=>cnt_1:=cnt_1+1;</p><p>  if cnt_1<1*3 then e<='1';rs<='0';rw<='0';</p><p>  elsi

101、f cnt_1<2*3 then lcd_data<=x"88";</p><p>  elsif cnt_1<10*3 then e<='0';</p><p>  elsif cnt_1=10*3 then cnt_1:=0;current_s<=s19;</p><p><b>  e

102、nd if;</b></p><p>  when s19=></p><p>  if cnt_1<1*3 then e<='1';rs<='1';rw<='0'; </p><p>  elsif cnt_1<2*3 then

103、 lcd_data<=data_buf3(data_cnt);</p><p>  elsif cnt_1=2*3 then data_cnt:=data_cnt+1;</p><p>  elsif cnt_1<100 then e<='0';</p><p><b>  end if;</b></p&

104、gt;<p>  cnt_1:=cnt_1+1;</p><p>  if cnt_1=100 then cnt_1:=0;</p><p>  if data_cnt=8 then current_s<=s20;</p><p>  data_cnt:=0;</p><p><b>  end if;</

105、b></p><p><b>  end if; </b></p><p>  when s20=>cnt_1:=cnt_1+1;</p><p>  if cnt_1<1*3 then e<='1';rs<='0';rw<='0';</p>&

106、lt;p>  elsif cnt_1<2*3 then lcd_data<=x"98";</p><p>  elsif cnt_1<10*3 then e<='0';</p><p>  elsif cnt_1=10*3 then cnt_1:=0;current_s<=s21;</p><p&g

107、t;<b>  end if;</b></p><p>  when s21=></p><p>  if cnt_1<1*3 then e<='1';rs<='1';rw<='0'; </p><p>  elsif cnt

108、_1<2*3 then lcd_data<=disp_time(data_cnt);</p><p>  elsif cnt_1=2*3 then data_cnt:=data_cnt+1;</p><p>  elsif cnt_1<100 then e<='0';</p><p><b>  end if;<

109、;/b></p><p>  cnt_1:=cnt_1+1;</p><p>  if cnt_1=100 then cnt_1:=0;</p><p>  if data_cnt=8 then current_s<=s22;</p><p>  data_cnt:=0;</p><p><b>

110、  end if;</b></p><p>  end if; </p><p>  ------------------------------------------------------------------------------</p><p>  when s22=>cnt_1:=cnt_1+1;</p><

111、;p>  if din<=10 then </p><p>  if cnt_1<1*3 then e<='1';rs<='0';rw<='0';</p><p>  elsif cnt_1<2*3 then lcd_data<=x"88";</p><p

112、>  elsif cnt_1<10*3 then e<='0';</p><p>  elsif cnt_1=10*3 then cnt_1:=0;current_s<=s23;</p><p><b>  end if;</b></p><p>  else current_s<=s24;<

113、/p><p><b>  end if;</b></p><p>  when s23=></p><p>  if cnt_1<1*3 then e<='1';rs<='1';rw<='0'; </p><p

114、>  elsif cnt_1<2*3 then lcd_data<=data_buf4(data_cnt);</p><p>  elsif cnt_1=2*3 then data_cnt:=data_cnt+1;</p><p>  elsif cnt_1<100 then e<='0';</p><p><b&

115、gt;  end if;</b></p><p>  cnt_1:=cnt_1+1;</p><p>  if cnt_1=100 then cnt_1:=0;</p><p>  if data_cnt=8 then current_s<=s0;</p><p>  data_cnt:=0;</p><

116、p><b>  end if;</b></p><p><b>  end if; </b></p><p>  when s24=>cnt_1:=cnt_1+1;</p><p>  if cnt_1<1*3 then e<='1';rs<='0';rw<

117、;='0';</p><p>  elsif cnt_1<2*3 then lcd_data<=x"88";</p><p>  elsif cnt_1<10*3 then e<='0';</p><p>  elsif cnt_1=10*3 then cnt_1:=0;current_s&

118、lt;=s25;</p><p><b>  end if;</b></p><p>  when s25=></p><p>  if cnt_1<1*3 then e<='1';rs<='1';rw<='0'; </

119、p><p>  elsif cnt_1<2*3 then lcd_data<=data_buf3(data_cnt);</p><p>  elsif cnt_1=2*3 then data_cnt:=data_cnt+1;</p><p>  elsif cnt_1<100 then e<='0';</p><

120、;p><b>  end if;</b></p><p>  cnt_1:=cnt_1+1;</p><p>  if cnt_1=100 then cnt_1:=0;</p><p>  if data_cnt=8 then current_s<=s26;</p><p>  data_cnt:=0;<

121、;/p><p><b>  end if;</b></p><p><b>  end if; </b></p><p>  when s26=>cnt_1:=cnt_1+1;</p><p>  if cnt_1<1*3 then e<='1';rs<=

122、9;0';rw<='0';</p><p>  elsif cnt_1<2*3 then lcd_data<=x"98";</p><p>  elsif cnt_1<10*3 then e<='0';</p><p>  elsif cnt_1=10*3 then cnt_1

123、:=0;current_s<=s27;</p><p><b>  end if;</b></p><p>  when s27=></p><p>  if cnt_1<1*3 then e<='1';rs<='1';rw<='0';

124、 </p><p>  elsif cnt_1<2*3 then lcd_data<=disp_time(data_cnt);</p><p>  elsif cnt_1=2*3 then data_cnt:=data_cnt+1;</p><p>  elsif cnt_1<100 then e<='0';&

125、lt;/p><p><b>  end if;</b></p><p>  cnt_1:=cnt_1+1;</p><p>  if cnt_1=100 then cnt_1:=0;</p><p>  if data_cnt=8 then current_s<=s28;</p><p>  d

126、ata_cnt:=0;</p><p><b>  end if;</b></p><p>  end if; </p><p>  -------------------------------------------------------------------------------------- </p>&l

127、t;p>  when s28=>cnt_1:=cnt_1+1;</p><p>  if din<=10 then </p><p>  if cnt_1<1*3 then e<='1';rs<='0';rw<='0';</p><p>  elsif cnt_1<2*3

128、 then lcd_data<=x"88";</p><p>  elsif cnt_1<10*3 then e<='0';</p><p>  elsif cnt_1=10*3 then cnt_1:=0;current_s<=s29;</p><p><b>  end if;</b&g

129、t;</p><p>  else current_s<=s30;</p><p><b>  end if;</b></p><p>  when s29=></p><p>  if cnt_1<1*3 then e<='1';rs<='1';rw<

130、='0'; </p><p>  elsif cnt_1<2*3 then lcd_data<=data_buf4(data_cnt);</p><p>  elsif cnt_1=2*3 then data_cnt:=data_cnt+1;</p><p>  elsif cnt_1<10

131、0 then e<='0';</p><p><b>  end if;</b></p><p>  cnt_1:=cnt_1+1;</p><p>  if cnt_1=100 then cnt_1:=0;</p><p>  if data_cnt=8 then current_s<=s0

132、;</p><p>  data_cnt:=0;</p><p><b>  end if;</b></p><p><b>  end if; </b></p><p>  when s30=>cnt_1:=cnt_1+1;</p><p>  if cnt_1<

133、;1*3 then e<='1';rs<='0';rw<='0';</p><p>  elsif cnt_1<2*3 then lcd_data<=x"88";</p><p>  elsif cnt_1<10*3 then e<='0';</p>

134、<p>  elsif cnt_1=10*3 then cnt_1:=0;current_s<=s31;</p><p><b>  end if;</b></p><p>  when s31=></p><p>  if cnt_1<1*3 then e<='1';rs<='1

135、';rw<='0'; </p><p>  elsif cnt_1<2*3 then lcd_data<=data_buf4(data_cnt);</p><p>  elsif cnt_1=2*3 then data_cnt:=data_cnt+1;</p><p>  elsif

136、 cnt_1<100 then e<='0';</p><p><b>  end if;</b></p><p>  cnt_1:=cnt_1+1;</p><p>  if cnt_1=100 then cnt_1:=0;</p><p>  if data_cnt=8 then curr

137、ent_s<=s30;</p><p>  data_cnt:=0;</p><p><b>  end if;</b></p><p>  end if; </p><p>  when others=>current_s<=s0;</p>

138、;<p><b>  end case;</b></p><p><b>  end if;</b></p><p>  end process;</p><p><b>  end tcl;</b></p><p><b>  鍵盤控制子程序 <

139、/b></p><p>  LIBRARY ieee;</p><p>  USE ieee.std_logic_1164.all;</p><p>  USE ieee.std_logic_unsigned.all;</p><p>  use ieee.std_logic_arith.all;</p><p>

140、;  ENTITY bian_ma0 IS ------編碼</p><p>  PORT(en,clk:IN std_logic;</p><p>  kr3,kr2,kr1,kr0:IN std_logic;</p><p>  kc3,kc2,kc1:IN std_logic;</p><p>  SDIN,lock,se

141、c,CR,set,crack:out std_logic;</p><p>  dout:OUT std_logic);</p><p>  END bian_ma0;</p><p>  ARCHITECTURE one OF bian_ma0 IS</p><p>  signal data:std_logic_vector(5 down

溫馨提示

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

評(píng)論

0/150

提交評(píng)論