?? 自己用vhdl語(yǔ)言寫(xiě)的交通燈控制器,在實(shí)驗(yàn)板上能運(yùn)行,可以應(yīng)付老師的檢查了--原野.htm
字號(hào):
<html>
<head>
<meta http-equiv="Content-Language" content="zh-CN" />
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="generator" content="oblog" />
<meta name="author" content="dsm_tdcq,DSM" />
<meta name="keyword" content="自己用VHDL語(yǔ)言寫(xiě)的交通燈控制器,在實(shí)驗(yàn)板上能運(yùn)行,可以應(yīng)付老師的檢查了" />
<meta name="description" content="設(shè)計(jì)一個(gè)交通燈控制器 要求: A方向?yàn)橹鞲傻?B方向?yàn)橹Ц傻?分設(shè)紅(R),黃(Y),綠(G),和左拐(L)四盞燈,1表示燈亮,0表示滅,四燈的點(diǎn)亮順序?yàn)?綠-" />
<title>自己用VHDL語(yǔ)言寫(xiě)的交通燈控制器,在實(shí)驗(yàn)板上能運(yùn)行,可以應(yīng)付老師的檢查了--原野</title>
<link rel="alternate" href="/user1/2958/rss2.xml" type="application/rss+xml" title="RSS" />
<link href="/OblogStyle/OblogUserDefault4.css" rel="stylesheet" type="text/css" />
<script src="/inc/main.js" type="text/javascript"></script>
</head>
<body>
<script src="/ad/ad_usertopjs.htm"></script>
<STYLE type=text/css>
<!--
body {
margin-top: -5px;
}
.style1 {color: #FF00FF}
-->
</STYLE>
<STYLE type=text/css>
<!--
body {
margin-top: 0px;
}
-->
</STYLE>
<STYLE>
a {
color: #003366;
text-decoration: none;
}
a:visited {
color: #003366;
}
a:hover {
color: #CC0000;
text-decoration: underline;
}
Div,P,body,td{FONT-SIZE: 11px; font-family: Verdana,tahoma, Arial, Helvetica, sans-serif; color:#000000}
SELECT {BACKGROUND-COLOR: f3f3f3; height: 20px; COLOR: #000000; FONT-FAMILY: Verdana,Tahoma, sans-serif; FONT-SIZE: 11px ; border: 0px #CCCCCC double}
INPUT {color: #333333; height: 21px; FONT-FAMILY: Verdana,MS Shell Dlg,Tahoma, sans-serif; FONT-SIZE: 11px}
FONT.code{FONT-FAMILY: Monaco, Courier, Courier New;}
code {font-family: "Courier" ; font-size: 11px}
textarea {font:12px,Courier New;border: 1px double #999999;background:#FFFFFF}
body, textarea {
FONT-FAMILY: Verdana,Tahoma;margin:0px
}
.arrow { font-family:webdings}
</STYLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#ffffff border=0>
<TBODY>
<TR>
<TD align=middle background="/uploadfile-/200662120565985.jpg" height=206><A></A>
<OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0 height=206 width=1024 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000><PARAM NAME="_cx" VALUE="27093"><PARAM NAME="_cy" VALUE="5450"><PARAM NAME="FlashVars" VALUE=""><PARAM NAME="Movie" VALUE="http://www.jljiajiao.cn/yuanye/4.swf"><PARAM NAME="Src" VALUE="http://www.jljiajiao.cn/yuanye/4.swf"><PARAM NAME="WMode" VALUE="Transparent"><PARAM NAME="Play" VALUE="-1"><PARAM NAME="Loop" VALUE="-1"><PARAM NAME="Quality" VALUE="High"><PARAM NAME="SAlign" VALUE=""><PARAM NAME="Menu" VALUE="-1"><PARAM NAME="Base" VALUE=""><PARAM NAME="AllowScriptAccess" VALUE=""><PARAM NAME="Scale" VALUE="ShowAll"><PARAM NAME="DeviceFont" VALUE="0"><PARAM NAME="EmbedMovie" VALUE="0"><PARAM NAME="BGColor" VALUE=""><PARAM NAME="SWRemote" VALUE=""><PARAM NAME="MovieData" VALUE=""><PARAM NAME="SeamlessTabbing" VALUE="1"><PARAM NAME="Profile" VALUE="0"><PARAM NAME="ProfileAddress" VALUE=""><PARAM NAME="ProfilePort" VALUE="0"><PARAM NAME="AllowNetworking" VALUE="all">
<embed src="http://www.jljiajiao.cn/yuanye/4.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="1024" height="206"></embed>
</OBJECT></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=1 cellPadding=4 width="100%" bgColor=#ff99ff border=0>
<TBODY>
<TR bgColor=#ffffff>
<TD vAlign=top align=middle width=153>
<TABLE borderColor=#ff00ff cellSpacing=2 cellPadding=3 width="102%" bgColor=#0099ff border=2>
<TBODY>
<TR>
<TH scope=col height=22><div id="placard">21IC頁(yè)面載入....</div></TH></TR>
<TR>
<TH scope=col height=22><STRONG><div id="calendar">21IC頁(yè)面載入....</div></STRONG></TH></TR></TBODY></TABLE>
<P align=left><STRONG><SPAN class=style1>我的分類(lèi)(專(zhuān)題)</SPAN><BR></STRONG><div id="subject">21IC頁(yè)面載入....</div><BR><BR><STRONG><SPAN class=style1>日志更新</SPAN><BR></STRONG><div id="newblog">21IC頁(yè)面載入....</div><BR><BR><STRONG><SPAN class=style1>最新評(píng)論</SPAN><BR></STRONG><div id="comment">21IC頁(yè)面載入....</div><BR><BR><STRONG><SPAN class=style1>留言板</SPAN><BR></STRONG><div id="newmessage">21IC頁(yè)面載入....</div><BR><BR><SPAN class=style1><STRONG>鏈接</STRONG></SPAN><BR><div id="links">21IC頁(yè)面載入....</div><script src="/ad/ad_userlinksjs.htm"></script></P>
<P align=left><STRONG><SPAN style="COLOR: #ff0000"><div id="info">21IC頁(yè)面載入....</div><BR></SPAN></STRONG><BR><A class=style1 href="/User_index.asp" target=_blank><SPAN style="TEXT-DECORATION: underline">站長(zhǎng)個(gè)人入口</SPAN></A></P></TD>
<TD vAlign=top align=middle width=751><BR>
<TABLE style="WIDTH: 772px; HEIGHT: 128px" borderColor=#d52bd5 cellSpacing=1 cellPadding=1 width=772 bgColor=#ffffff border=1>
<TBODY>
<TR>
<TD>
<TABLE style="TABLE-LAYOUT: fixed; WIDTH: 767px; WORD-BREAK: break-all; HEIGHT: 98px" cellSpacing=1 cellPadding=3 width=767 bgColor=#cccccc border=0>
<TBODY>
<TR bgColor=#f8f8f8>
<TD><STRONG>自己用VHDL語(yǔ)言寫(xiě)的交通燈控制器,在實(shí)驗(yàn)板上能運(yùn)行,可以應(yīng)付老師的檢查了</STRONG><FONT size=4><BR></FONT><FONT color=#1111ee>DSM 發(fā)表于 2006-10-16 19:55:00</FONT> </TD></TR>
<TR bgColor=#ffffff>
<TD height=0>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 黑體; mso-bidi-font-size: 10.5pt">題目要求:</SPAN><SPAN lang=EN-US style="FONT-FAMILY: 宋體; mso-bidi-font-size: 10.5pt">1.</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-bidi-font-size: 10.5pt">主、支路無(wú)車(chē)時(shí)主干路“綠”;<SPAN lang=EN-US><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋體; mso-bidi-font-size: 10.5pt"> <SPAN lang=EN-US>2.</SPAN>若主、支路均有車(chē)時(shí),主干路綠<SPAN lang=EN-US>45S,</SPAN>支路綠<SPAN lang=EN-US>25S,</SPAN>綠燈結(jié)束時(shí)黃燈亮<SPAN lang=EN-US>5S</SPAN>;<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋體; mso-bidi-font-size: 10.5pt"> <SPAN lang=EN-US>3.</SPAN>主、支路傳感器信號(hào)用按鍵傳遞,高電平表示有車(chē)。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 黑體">設(shè)計(jì)程序清單如下:<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face="Times New Roman">LIBRARY IEEE;<BR>USE IEEE.STD_LOGIC_1164.ALL;<BR>USE IEEE.STD_LOGIC_UNSIGNED.ALL;<BR>ENTITY jtd IS<BR> PORT (clk,msensor,ssensor : IN STD_LOGIC;<BR> mr,mg,sr,sg : OUT STD_LOGIC ; --,showbt<BR> showbt : OUT STD_LOGIC_VECTOR (1 DOWNTO 0); --顯示位控制<BR> mmy,ssy : BUFFER STD_LOGIC;<BR> show : OUT STD_LOGIC_VECTOR (6 DOWNTO 0)<BR> ); --show : OUT STD_LOGIC_VECTOR (6 DOWNTO 0) <BR>END jtd ;<BR>ARCHITECTURE one OF jtd IS<BR> TYPE state_type IS (A,B,C,D);<BR> SIGNAL state : state_type;<BR> SIGNAL secclk,yellowsec,my,sy : STD_LOGIC;<BR> SIGNAL showclk : STD_LOGIC_VECTOR (1 DOWNTO 0); --后加,LED顯示時(shí)鐘<BR> SIGNAL showdata1,showdata0 : INTEGER RANGE 0 TO 45;<BR> SIGNAL datasignal : INTEGER RANGE 0 TO 9;<BR> BEGIN<BR>getclk: PROCESS ( clk )<BR> VARIABLE clkcount : INTEGER RANGE 0 TO 2; --LED位掃描信號(hào)<BR> VARIABLE sclk : INTEGER RANGE 0 TO 600; --秒信號(hào)<BR> VARIABLE yellowcou : INTEGER RANGE 0 TO 200; --黃燈閃爍信號(hào)<BR> BEGIN<BR> IF clk'EVENT AND clk = '1' THEN<BR> clkcount := clkcount + 1;<BR> sclk := sclk + 1;<BR> yellowcou := yellowcou + 1;<BR> IF clkcount = 2 THEN<BR> showclk <= showclk + '1';<BR> END IF;<BR> IF sclk = 600 THEN<BR> secclk <= '1';<BR> ELSE secclk <= '0';<BR> END IF;<BR> IF yellowcou = 200 THEN<BR> yellowsec <= '1';<BR> ELSE yellowsec <= '0';<BR> END IF;<BR> END IF;<BR> END PROCESS getclk;<BR>jtdp: PROCESS (secclk) <BR> VARIABLE cnt : INTEGER RANGE 0 TO 45;<BR> VARIABLE nclr : BIT; --nclr低電平計(jì)數(shù)器清零<BR> BEGIN<BR> IF ( secclk'EVENT AND secclk = '1' ) THEN<BR> IF nclr = '0' THEN cnt := 0; --同步清零<BR> ELSE cnt := cnt + 1; --如果nclr不等于零,則計(jì)數(shù)<BR> END IF;<BR> --END IF;記住<BR> CASE state IS<BR> WHEN A => mr <= '0'; my <= '0'; mg <= '1'; --A狀態(tài),主干道綠燈mg亮<BR> sr <= '1'; sy <= '0'; sg <= '0'; showdata1 <= 45 - cnt; showdata0 <= 50 -cnt;<BR> IF ( msensor AND ssensor ) = '1' THEN<BR> IF cnt = 45 THEN<BR> state <= B; nclr := '0';<BR> ELSE state <= A; nclr := '1'; --繼續(xù)狀態(tài)A<BR> END IF;<BR> ELSIF (ssensor AND (NOT msensor)) = '1' THEN --若只有之路有車(chē)<BR> state <= B; nclr := '0';<BR> ELSE state <= A; nclr := '1'; --繼續(xù)A狀態(tài)<BR> IF cnt = 45 THEN cnt := 0; nclr := '0'; --防止計(jì)數(shù)超過(guò)45<BR> END IF;<BR> END IF;<BR> WHEN B => mr <= '0'; my <= '1'; mg <= '0'; --B狀態(tài),主干道黃燈my亮<BR> sr <= '1'; sy <= '0'; sg <= '0'; showdata1 <= 5 - cnt; showdata0 <=5 - cnt;<BR> IF cnt = 5 THEN<BR> state <= C; nclr := '0';<BR> ELSE state <= B; nclr := '1';<BR> END IF;<BR> WHEN C => mr <= '1'; my <= '0'; mg <= '0'; --C狀態(tài),之路綠燈sg亮<BR> sr <= '0'; sy <= '0'; sg <= '1'; showdata1 <= 30 - cnt; showdata0 <= 25 - cnt;<BR> IF ( msensor AND ssensor ) = '1' THEN<BR> IF cnt = 25 THEN<BR> state <= D; nclr := '0';<BR> ELSE state <= C; nclr := '1';<BR> END IF;<BR> ELSIF ssensor = '0' THEN --若之路無(wú)車(chē)<BR> state <= D; nclr := '0'; --則為D狀態(tài)<BR> ELSE<BR> state <= C; nclr := '1';<BR> IF cnt = 25 THEN<BR> cnt := 0; nclr := '0';<BR> END IF;<BR> END IF;<BR> WHEN D => mr <= '1'; my <= '0'; mg <= '0'; --D狀態(tài),之路黃燈sy亮<BR> sr <= '0'; sy <= '1'; sg <= '0'; showdata1 <= 5 - cnt; showdata0 <= 5 - cnt;<BR> IF cnt = 5 THEN<BR> state <= A; nclr := '0';<BR> ELSE<BR> state <= D; nclr := '1';<BR> END IF;<BR> END CASE;<BR> END IF;<BR> END PROCESS jtdp;<BR> showp1: PROCESS ( showclk )<BR> VARIABLE data1,data0,data2,data3 : INTEGER RANGE 0 TO 9;<BR> BEGIN<BR> IF showdata1 >= 50 THEN --主路計(jì)數(shù)顯示<BR> data1 := 5; data0 := showdata1 - 50;<BR> ELSIF showdata1 >= 40 THEN<BR> data1 := 4; data0 := showdata1 - 40;<BR> ELSIF showdata1 >= 30 THEN<BR> data1 := 3; data0 := showdata1 - 30;<BR> ELSIF showdata1 >= 20 THEN<BR> data1 := 2; data0 := showdata1 - 20;<BR> ELSIF showdata1 >= 10 THEN<BR> data1 := 1; data0 := showdata1 - 10;<BR> ELSE data1 := 0; data0 := showdata1;<BR> END IF;<BR> IF showdata0 >= 50 THEN<BR> data3 := 5; data2 := showdata0 - 50;<BR> ELSIF showdata0 >= 40 THEN<BR> data3 := 4; data2 := showdata0 - 40;<BR> ELSIF showdata0 >= 30 THEN<BR> data3 := 3; data2 := showdata0 - 30;<BR> ELSIF showdata0 >= 20 THEN<BR> data3 := 2; data2 := showdata0 - 20;<BR> ELSIF showdata0 >= 10 THEN<BR> data3 := 1; data2 := showdata0 - 10;<BR> ELSE data3 := 0; data2 := showdata0;<BR> END IF;<BR> </FONT></SPAN></P><SPAN lang=EN-US><FONT face="Times New Roman">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><BR> CASE showclk IS<BR> WHEN "00" => showbt <= "00"; datasignal <= data2;<BR> WHEN "01" => showbt <= "01"; datasignal <= data3;<BR> WHEN "10" => showbt <= "10"; datasignal <= data0;<BR> WHEN "11" => showbt <= "11"; datasignal <= data1;<BR> WHEN OTHERS => NULL;<BR> END CASE;<BR> END PROCESS;<BR>showp2: PROCESS ( datasignal )<BR> BEGIN<BR> CASE datasignal IS<BR> WHEN 0 => show <= "0111111";<BR> WHEN 1 => show <= "0000110";<BR> WHEN 2 => show <= "1011011";<BR> WHEN 3 => show <= "1001111";<BR> WHEN 4 => show <= "1100110";<BR> WHEN 5 => show <= "1101101";<BR> WHEN 6 => show <= "1111101";<BR> WHEN 7 => show <= "0000111";<BR> WHEN 8 => show <= "1111111";<BR> WHEN 9 => show <= "1101111";<BR> WHEN OTHERS => NULL;<BR> END CASE;<BR> END PROCESS showp2;<BR>yellow: PROCESS (yellowsec)<BR> BEGIN<BR> IF yellowsec'EVENT AND yellowsec ='1' THEN<BR> IF my = '1' THEN<BR> mmy <= not mmy;<BR> END IF;<BR> IF sy = '1' THEN<BR> ssy <= not ssy;<BR> END IF;<BR> END IF;<BR> END PROCESS;<BR>END one;</FONT></SPAN></P></TD></TR></TBODY></TABLE><BR>
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -