eda課程設(shè)計--交通燈控制器_第1頁
已閱讀1頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  《EDA技術(shù)及應(yīng)用》課程設(shè)計報告</p><p>  級 專業(yè) 班級</p><p>  題 目 </p><p>  姓 名 學號 </p><p> 

2、 同組同學 </p><p>  指導教師 </p><p>  二О 年 月 日</p><p>  交通燈控制器的功能介紹</p><p><b>  設(shè)計要求</b></p&g

3、t;<p> ?。?)主干道通行(綠燈):支干道有車24秒;支路紅燈,數(shù)碼管實時顯示倒計時的秒,秒計時的頻率為1Hz 。</p><p>  (2)主干道緩沖(黃燈):6秒,(不顯示計數(shù)),秒計時的頻率為1Hz 。</p><p>  (3)支路通行(綠燈):20秒,主干道紅燈,數(shù)碼管實時顯示倒計時的秒,秒計時的頻率為1Hz 。</p><p> ?。?/p>

4、4)支路緩沖(黃燈):6秒,不顯示,秒計時的頻率為1Hz 。</p><p>  數(shù)碼管采用動態(tài)顯示。</p><p><b>  其他要求:</b></p><p>  (1)晶振為12 MHz</p><p> ?。?)采用CPLD 器件,為ALTERA 的EPM7064SL-44</p><p&

5、gt;  (3)采用數(shù)碼管顯示</p><p><b>  硬件設(shè)計</b></p><p><b>  電路圖</b></p><p><b>  芯片圖:</b></p><p>  CPLD的工作大部分是在電腦上完成的。打開集成開發(fā)軟件→畫原理圖、寫硬件描述語言(VHDL

6、,Verilog)→編譯→給出邏輯電路的輸入激勵信號,進行仿真,查看邏輯輸出結(jié)果是否正確→進行管腳輸入、輸出鎖定(7064的44個輸入、輸出管腳可根據(jù)需要設(shè)定)→生成代碼→通過下載電纜將代碼傳送并存儲在CPLD芯片中。7128這塊芯片各管腳已引出,將數(shù)碼管、搶答開關(guān)、指示燈、蜂鳴器通過導線分別接到芯片板上,通電測試,</p><p><b>  數(shù)碼管:</b></p><

7、;p>  R26-r33 r12-r19 是限流電阻,位碼由于電流過大,采用了三極管驅(qū)動,數(shù)碼管為共陰極,當有信號1時,對應(yīng)數(shù)碼管才能操作。Com0-com7接芯片</p><p><b>  按鍵和led燈:</b></p><p>  按鍵:當按鍵按下電路接通,輸入一個0信號,</p><p>  Led:電路中低電壓點亮led燈,一

8、般led的壓降1.7v,電路中r21-r25都是保護用的,防止led短路</p><p>  下載器接口、電源接口、蜂鳴器</p><p>  電源接口:Jp2口接入5v電源,</p><p>  下載器接口:接下載線,pc電腦usb口輸出數(shù)據(jù)寫入芯片</p><p>  蜂鳴器:當有一低電平時蜂鳴器鳴響</p><p&g

9、t;<b>  晶振和電容:</b></p><p>  晶振為電路提供4mhz的時鐘信號。</p><p><b>  原件清單:</b></p><p><b>  軟件設(shè)計</b></p><p><b>  流程圖</b></p>&

10、lt;p>  (1)顯示模塊由兩部分組成,一是由七段數(shù)碼管組成的倒計時顯示器,每個方向兩個七段數(shù)碼管;二是由發(fā)光二極管代替的交通燈,每個方向3個發(fā)光二極管。</p><p>  (2)每個方向有一組2位倒計時器模塊,用以顯示該方向交通燈剩余的點亮時間。</p><p> ?。?)控制模塊是交通燈的核心,主要控制交通燈按工作順序自動變換,同時控制倒計時模塊工作,每當?shù)褂嫊r回零時,控制模

11、塊接收到一個計時信號,從而控制交通燈進入下一個工作狀態(tài)。</p><p><b>  2、源程序</b></p><p><b>  頂層模塊:</b></p><p><b>  module</b></p><p>  traffic(clk_lk,rst,clk,lamp

12、a,lampb,acount,bcount);</p><p>  inputclk_lk,rst,clk;//產(chǎn)生系統(tǒng)時鐘,復位信號,1s時鐘信號</p><p>  output[2:0]lampa,lampb;//led燈(紅黃綠)</p><p>  output[7:0]acount,bcount;//數(shù)碼管倒計時顯示</p><

13、p>  reg[2:0]lampa,lampb;</p><p>  reg[7:0]numa,numb;</p><p>  regtempa,tempb;</p><p>  reg[2:0]statea,stateb;//led燈控制</p><p>  parameterared=8'h26,ayellow=8&#

14、39;h6,agreen=8'h24,</p><p>  bred=8'h30,byellow=8'h6,bgreen=8'h20;//初始值</p><p>  assignacount=numa;</p><p>  assignbcount=numb;</p><p>  always@(posed

15、geclk_lkornegedgerst)</p><p><b>  begin</b></p><p><b>  if(!rst)</b></p><p><b>  begin</b></p><p>  statea<=3'h0;</p&g

16、t;<p>  lampa<=3'b011;</p><p>  tempa<=1'b0;</p><p><b>  end</b></p><p>  elseif(clk)</p><p><b>  begin</b></p><

17、;p>  if(!tempa)//A方向燈控制</p><p><b>  begin</b></p><p>  tempa<=1'b1;</p><p>  case(statea)</p><p>  0:beginnuma<=agreen;lampa<=3'b011;st

18、atea<=1;end</p><p>  1:beginnuma<=ayellow;lampa<=3'b101;statea<=2;end</p><p>  2:beginnuma<=ared;lampa<=3'b110;statea<=0;end</p><p>  default:lampa<

19、;=3'b110;</p><p><b>  endcase</b></p><p><b>  end</b></p><p><b>  else</b></p><p><b>  begin</b></p><p>

20、;  if(numa>1)</p><p>  if(numa[3:0]==0)</p><p><b>  begin</b></p><p>  numa[3:0]<=4'h9;</p><p>  numa[7:4]<=numa[7:4]-4'h1;</p><

21、p><b>  end</b></p><p><b>  else</b></p><p>  numa[3:0]<=numa[3:0]-4'h1;</p><p>  if(numa==2)</p><p>  tempa<=1'b0;</p>&

22、lt;p><b>  end</b></p><p><b>  end</b></p><p><b>  end</b></p><p>  always@(posedgeclk_lkornegedgerst)</p><p><b>  begin

23、</b></p><p><b>  if(!rst)</b></p><p><b>  begin</b></p><p>  lampb<=3'b110;</p><p>  stateb<=3'h0;</p><p>  tem

24、pb<=1'b0;</p><p><b>  end</b></p><p>  elseif(clk)</p><p><b>  begin</b></p><p>  if(!tempb)//B方向燈控制</p><p><b>  begi

25、n</b></p><p>  tempb<=1'b1;</p><p>  case(stateb)</p><p>  0:beginnumb<=bred;lampb<=3'b110;stateb<=1;end</p><p>  1:beginnumb<=bgreen;lam

26、pb<=3'b011;stateb<=2;end</p><p>  2:beginnumb<=byellow;lampb<=3'b101;stateb<=0;end</p><p>  default:lampb<=3'b110;</p><p><b>  endcase</b>

27、</p><p><b>  end</b></p><p><b>  else</b></p><p>  begin//倒計時</p><p>  if(numb>1)</p><p>  if(numb[3:0]==0)</p><p>

28、<b>  begin</b></p><p>  numb[3:0]<=4'h9;</p><p>  numb[7:4]<=numb[7:4]-4'h1;</p><p><b>  end</b></p><p><b>  else</b>&

29、lt;/p><p>  numb[3:0]<=numb[3:0]-4'h1;</p><p>  if(numb==2)</p><p>  tempb<=1'b0;</p><p><b>  end</b></p><p><b>  end</b>

30、;</p><p><b>  end</b></p><p><b>  endmodule</b></p><p><b>  數(shù)碼管顯示模塊:</b></p><p>  //Traffic_test.v 程序:</p><p>  module

31、traffic_test(clk_lk,clk,rst,acount,bcount,seg,dig);</p><p>  inputclk_lk;</p><p>  inputrst;</p><p>  outputclk;</p><p>  input[7:0]acount;</p><p>  i

32、nput[7:0]bcount;</p><p>  output[7:0] seg;</p><p>  output[7:0]dig;</p><p>  reg[7:0]seg;</p><p>  reg[7:0]dig;</p><p>  reg[25:0]clk_cnt;</p><

33、;p>  reg[16:0]count;</p><p>  reg[1:0]cnt;</p><p>  reg[3:0]disp_dat;</p><p>  always@(posedgeclk_lk)</p><p><b>  begin</b></p><p><b>

34、;  if(clk)</b></p><p>  clk_cnt<=26'h1;</p><p><b>  else</b></p><p>  clk_cnt<=clk_cnt+26'h1;</p><p><b>  end</b></p>

35、<p>  assignclk=(clk_cnt>=26'd48000000);</p><p>  always@(posedgeclk_lk)</p><p><b>  begin</b></p><p>  count<=count+1'b1;</p><p><

36、b>  end</b></p><p>  assigndiv_clk=&count;</p><p>  always@(posedgeclk_lk)</p><p><b>  begin</b></p><p>  if(div_clk)</p><p>  c

37、nt<=cnt+1'b1;</p><p><b>  end</b></p><p>  always@(posedgeclk_lk)</p><p><b>  begin</b></p><p>  if(div_clk)</p><p><b&g

38、t;  begin</b></p><p><b>  case(cnt)</b></p><p>  2'd0:disp_dat<=acount[7:4];//選擇數(shù)碼管</p><p>  2'd1:disp_dat<=acount[3:0];</p><p>  2'

39、d2:disp_dat<=bcount[7:4];</p><p>  2'd3:disp_dat<=bcount[3:0];</p><p><b>  endcase</b></p><p><b>  case(cnt)</b></p><p>  2'd0:dig

40、<=8'b01111111;//掃描數(shù)碼管</p><p>  2'd1:dig<=8'b10111111;</p><p>  2'd2:dig<=8'b11111101;</p><p>  2'd3:dig<=8'b11111110;</p><p><

41、;b>  endcase</b></p><p><b>  end</b></p><p><b>  end</b></p><p>  always@(disp_dat)</p><p><b>  begin</b></p><p&

42、gt;  case(disp_dat)//顯示值</p><p>  4'h0:seg=8'hc0;//0</p><p>  4'h1:seg=8'hf9;//1</p><p>  4'h2:seg=8'ha4;//2</p><p>  4'h3:seg=8'hb0;//

43、3</p><p>  4'h4:seg=8'h99;//4</p><p>  4'h5:seg=8'h92;//5</p><p>  4'h6:seg=8'h82;//6</p><p>  4'h7:seg=8'hf8;//7</p><p>  

44、4'h8:seg=8'h80;//8</p><p>  4'h9:seg=8'h90;//9</p><p><b>  endcase</b></p><p><b>  end</b></p><p><b>  endmodule</b>

45、</p><p><b>  3、管腳分配</b></p><p><b>  實驗板:</b></p><p><b>  4、程序分析</b></p><p><b>  狀態(tài)機狀態(tài)列表</b></p><p>  工作狀態(tài):s

溫馨提示

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

評論

0/150

提交評論