自動電子鐘課程設計_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p>  設計說明………………………………………………………..........................4</p><p>  程序設計………………………………………………………………………..4</p><p>  波形仿真………………………………………………………………………..

2、10</p><p>  管腳鎖定及硬件連線…………………………………………………………..15</p><p>  總結……………………………………………………………………………..16</p><p>  參考文獻………………………………………………………………………...17</p><p><b>  第一章 設計說明<

3、;/b></p><p><b>  1.設計思路</b></p><p>  自動電子鐘顯示小時、分、秒,秒滿60分進1,分鐘滿60小時進1,小時計滿24完成一個循環(huán)。其中秒、分、時低位滿大于9時向高位進1,秒、分高位大于5時向前變量的低位進1,小時高位大于3時變?yōu)?。因為顯示在數(shù)碼管上,所以6個變量的位數(shù)應該相同。最大計數(shù)值為9,所以選擇4位二進制數(shù)表示。計

4、時功能、校正功能的變量都有小時和分鐘,故用一個開關來選擇功能。校正功能的校時、較分也用開關選擇,清零功能,用開關實現(xiàn)。整點報時功能,使用蜂鳴器,輸出3秒高電平。</p><p>  用2MHZ的高頻率來進行動態(tài)數(shù)碼管掃描。由于數(shù)碼管具有余輝特性和人眼有視覺暫留現(xiàn)象,給人眼的視覺印象就會是連續(xù)穩(wěn)定地顯示。因此只要每位數(shù)碼管顯示間隔足夠短(即循環(huán)頻率足夠高),數(shù)碼管就會穩(wěn)定地顯示。本設計使用6個數(shù)碼管,高頻循環(huán)選中,

5、相當于顯示某一時刻的時間。</p><p><b>  2.模塊介紹</b></p><p>  本設計使用3個模塊,一個功能模塊,一個譯碼顯示模塊,一個頂層模塊。</p><p>  jshefm模塊為功能模塊。在給1hz的時鐘信號下,當tu</p><p>  rn為高電平時,實現(xiàn)清零功能。當turn為低電平時,開始

6、選擇計時或校正功能。其中,當xuanze為高電平時,實現(xiàn)計時功能,xuanze為低電平時,實現(xiàn)校正功能。當turn1為高電平時為分校正,當turn1為低電平時對小時校正。校正頻率均為1hz。當分為0時,秒小于3時,sound輸出高電平,實現(xiàn)整點報時功能。</p><p>  Shumaguan11為譯碼顯示模塊。在CLK1000高頻的時鐘信號下,六個數(shù)碼管依次選中且高頻循環(huán)。小時、分、秒的高位和低位分別被賦給6個

7、數(shù)碼管,然后分別顯示時間。</p><p>  頂層模塊將以上兩個模塊組合起來,功能模塊的輸出作為譯碼顯示模塊的輸入,以達到設計要求。</p><p><b>  3.真值表</b></p><p><b> ?。?)功能模塊</b></p><p><b>  十進制計數(shù)器</b&

8、gt;</p><p><b>  六進制計數(shù)器</b></p><p><b>  三進制計數(shù)器</b></p><p>  注:以上clk為不同的時鐘信號</p><p><b> ?。?)顯示譯碼模塊</b></p><p><b>  

9、第二章 程序設計</b></p><p>  1.頂層模塊程序設計:</p><p>  module clock(sound,Q,SS,turnfw,xuanze,turnm,clk1hz,CLK1000); </p><p>

10、;  input xuanze,turnfw,turnm,clk1hz,CLK1000;</p><p>  output [6:0]Q;</p><p>  output sound;</p><p>  output[2:0]SS;</p><p>  wire[7:0] x1;</p><p>  wire[7:

11、0] x2;</p><p>  wire[7:0] x3;</p><p>  jshefmu1(.hour1(x1),.min1(x2),.sec1(x3),.clk1hz(clk1hz),.turnfw(turnfw),.xuanze(xuanze),.turn1(turn1),.sound(sound)); </p><p>  shumaguan11

12、u2(.CLK1000(CLK1000),.Q(Q[6:0]),.SS(SS[2:0]),.sec(x3),.min(x2),.hour(x1)); </p><p>  endmodule </p><p>  2.功能模塊程序設計:</p><p>  module jshefm (clk1hz,turn,turn1,xuanze,sec1,min1,hou

13、r1,sound);</p><p>  input clk1hz,xuanze,turn,turn; </p><p>  output [7:0] sec1,min1,hour1; </p><p>  output sound;</p><p>  reg sound;</p><p>  reg[7:0] s

14、ec1,min1,hour1;</p><p>  always @(posedge clk1hz)</p><p><b>  begin</b></p><p>  if(turn) //turn為高電平,置零(功能1)</p><p><b>  begin</b></p&g

15、t;<p><b>  sec1<=0;</b></p><p><b>  min1<=0;</b></p><p><b>  hour1<=0;</b></p><p><b>  end</b></p><p>  

16、else //turn為低電平</p><p>  if(xuanze) //xuanze為高電平,開始計時(功能2)</p><p><b>  begin </b></p><p>  sec1[3:0]<=sec1[3:0]+1; //對秒計數(shù)</p>

17、<p>  if(sec1[3:0]>9) </p><p><b>  begin</b></p><p>  sec1[3:0]<=0;</p><p>  sec1[7:4]<=sec1[7:4]+1; </p><p>  if(sec1[7:4]>5)</p>

18、<p><b>  begin</b></p><p>  sec1[7:4]<=0; /</p><p>  min1[3:0]<=min1[3:0]+1; //對分計數(shù)</p><p>  if(min1[3:0]>9) </p><p><b>  begin

19、</b></p><p>  min1[3:0]<=0;</p><p>  min1[7:4]<=min1[7:4]+1;</p><p>  if(min1[7:4]>5)</p><p><b>  begin</b></p><p>  min1[7:4]&l

20、t;=0;</p><p>  hour1[3:0]<=hour1[3:0]+1; //對時計數(shù)</p><p>  if((hour1[7:4]<2)&&(hour1[3:0]>9))</p><p><b>  begin</b></p><p>  hour1[3:0]&l

21、t;=0;</p><p>  hour1[7:4]<=hour1[7:4]+1;</p><p><b>  end</b></p><p>  else if((hour1[7:4]==2)&&(hour1[3:0]>3))</p><p><b>  begin</b&

22、gt;</p><p><b>  hour1<=0;</b></p><p><b>  end</b></p><p><b>  end</b></p><p><b>  end</b></p><p><b&g

23、t;  end </b></p><p><b>  end</b></p><p><b>  end </b></p><p><b>  end</b></p><p>  else //xuanze為低電平,開始校正(

24、功能3)</p><p><b>  begin</b></p><p>  if(turn1) //turn1為高電平,校正分鐘</p><p><b>  begin</b></p><p>  min1[3:0]<=min1[3:0]+1;</p&g

25、t;<p>  if(min1[3:0]>9)</p><p><b>  begin</b></p><p>  min1[3:0]<=0;</p><p>  min1[7:4]<=min1[7:4]+1;</p><p>  if(min1[7:4]>5) </p>

26、;<p><b>  begin </b></p><p>  min1[7:4]=0;</p><p><b>  end</b></p><p><b>  end</b></p><p><b>  end</b></p>

27、<p>  else //turn1為低電平,校正小時</p><p><b>  begin</b></p><p>  hour1[3:0]=hour1[3:0]+1;</p><p>  if((hour1[7:4]<2)&&(hour1[3:0]>9))</p

28、><p><b>  begin</b></p><p>  hour1[7:4]=hour1[7:4]+1;</p><p>  hour1[3:0]=0;</p><p><b>  end</b></p><p>  else if((hour1[7:4]==2)&

29、&(hour1[3:0]>3)) </p><p>  begin hour1[3:0]=0;</p><p>  hour1[7:4]=0; </p><p><b>  end</b></p><p><b>  end</b></p><p><b&

30、gt;  end</b></p><p><b>  end </b></p><p>  always // 整點報時,輸出3秒高電平(功能4)</p><p><b>  begin</b></p><p>  if(min1==0&

31、amp;&sec1<3)</p><p><b>  sound=1;</b></p><p><b>  else</b></p><p><b>  sound=0;</b></p><p><b>  end</b></p>

32、<p><b>  endmodule</b></p><p>  3. 譯碼顯示模塊程序設計</p><p>  module shumaguan11(CLK1000,Q,SS,sec,min,hour);</p><p>  input CLK1000; //CLK1000代表高頻率</p><p>

33、;  input[7:0]sec,min,hour;</p><p>  output[6:0]Q;

34、 </p><p>  output[2:0]SS;</p><p>  reg[2:0]a;</p><p>  reg[6:0]Q;</p><p>  reg[2:0]SS;</p><p>  reg[3:0]e;</p><p>  always@(posedge CLK

35、1000) </p><p><b>  begin</b></p><p><b>  if(a==5)</b></p><p><b>  a<=0;</b></p><p><b>  else</b></p><p&

36、gt;<b>  a<=a+1;</b></p><p><b>  end</b></p><p>  always@(posedge CLK1000)</p><p><b>  begin</b></p><p><b>  case(a)</b&g

37、t;</p><p>  3'b000:begin SS<=3'b000;e<=hour[7:4];end</p><p>  3'b001:begin SS<=3'b001;e<=hour[3:0];end</p><p>  3'b010:begin SS<=3'b010;e<=

38、min[7:4];end</p><p>  3'b011:begin SS<=3'b011;e<=min[3:0];end</p><p>  3'b100:begin SS<=3'b100;e<=sec[7:4];end</p><p>  3'b101:begin SS<=3'b10

39、1;e<=sec[3:0];end</p><p><b>  endcase</b></p><p><b>  end</b></p><p>  always@(e)</p><p>  begin </p><p><

40、;b>  case(e)</b></p><p>  0:Q='b0111111; //數(shù)碼管顯示0</p><p>  1:Q='b0000110; //數(shù)碼管顯示1</p><p>  2:Q='b1011011; //數(shù)碼管顯示2</p><p>  3:Q='b

41、1001111; //數(shù)碼管顯示3</p><p>  4:Q='b1100110; //數(shù)碼管顯示4</p><p>  5:Q='b1101101; //數(shù)碼管顯示5</p><p>  6:Q='b1111101; //數(shù)碼管顯示6</p><p>  7:Q='b0000

42、111; //數(shù)碼管顯示7</p><p>  8:Q='b1111111; //數(shù)碼管顯示8</p><p>  9:Q='b1101111; //數(shù)碼管顯示9</p><p><b>  endcase</b></p><p><b>  end</b>&

43、lt;/p><p><b>  endmodule</b></p><p><b>  第三章 波形仿真</b></p><p><b>  頂層模塊波形仿真</b></p><p><b> ?。?)置零功能</b></p><p>

44、;<b> ?。?)計時功能</b></p><p><b> ?。?)校正功能</b></p><p><b>  校時</b></p><p><b>  較分</b></p><p><b> ?。?)整點報時</b></

45、p><p>  注:此項功能在計時、校正功能中得以驗證</p><p>  2.功能模塊波形仿真</p><p><b> ?。?)置零</b></p><p><b> ?。?)計時</b></p><p><b> ?。?)校正</b></p>

46、;<p><b>  校時</b></p><p><b>  校分</b></p><p><b> ?。?)整點報時</b></p><p>  注:此項功能可從計時、校正功能中得以驗證</p><p>  3、譯碼顯示模塊仿真</p><

47、p>  注:因輸入數(shù)據(jù)過多,所以僅選擇部分數(shù)據(jù)進行仿真</p><p>  第四章 管腳鎖定及硬件連線</p><p><b>  1、管腳鎖定如下:</b></p><p>  Clk1hz鎖定PIN75 CLK1000鎖定PIN83</p><p>  Q0鎖定PIN196

48、 Q1鎖定PIN193</p><p>  Q2 鎖定 PIN191 Q3 鎖定PIN195</p><p>  Q4 鎖定 PIN192 Q5鎖定PIN190</p><p>  Q6 鎖定 PIN187 SS0 鎖定PIN86

49、 </p><p>  SS1鎖定PIN87 SS2鎖定 PIN88 </p><p>  sound鎖定PIN38 turn鎖定PIN39</p><p>  turn1鎖定PIN41 xuanze鎖定PIN40</p>&l

50、t;p><b>  硬件連線如下</b></p><p>  頻率組21接PIN75 ,H3接PIN83</p><p><b>  動態(tài)數(shù)碼管顯示模塊</b></p><p>  S0接線PIN86 </p><p><b>  S1接線PIN87&

51、lt;/b></p><p><b>  S2接線PIN88</b></p><p>  A接線PIN196 </p><p><b>  B接線PIN193</b></p><p>  C接線PIN191 </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

提交評論