版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2013-2014學(xué)年度第二學(xué)期電子技術(shù)基礎(chǔ)課程設(shè)計(jì)-交通燈控制器設(shè)計(jì)全套設(shè)計(jì)加扣 3346389411或3012250582院 系: 自動(dòng)化學(xué)院 專 業(yè): 自動(dòng)化 班 級: 1104 姓 名: 學(xué) 號: 指導(dǎo)教師: 1. 課程設(shè)計(jì)名稱:32. 設(shè)計(jì)內(nèi)容與要求:33. 系統(tǒng)設(shè)計(jì)4系統(tǒng)框圖與說明4狀態(tài)轉(zhuǎn)換圖94. 實(shí)驗(yàn)總結(jié)14心得體會(huì):14功能擴(kuò)展:165. 附錄:源代碼161. 課程設(shè)計(jì)名稱:交通燈控制器的設(shè)計(jì)2. 設(shè)計(jì)內(nèi)容與要求: 設(shè)計(jì)一個(gè)十字路口交通信號燈的控制電路。要求紅、綠燈按一定的規(guī)律亮和滅,并在亮燈期間進(jìn)行倒計(jì)時(shí),且將運(yùn)行時(shí)間用數(shù)碼管顯示出來。 綠燈亮?xí)r,為該車道允許通行信號,紅燈
2、亮?xí)r,為該車道禁止通行信號。要求主干道每次通行時(shí)間為Tx秒,支干道每次通行時(shí)間為Ty秒。每次變換運(yùn)行車道前綠燈閃爍,持續(xù)時(shí)間為5秒。即車道要由X轉(zhuǎn)換為Y時(shí),X在通行時(shí)間只剩下5秒鐘時(shí),綠燈閃爍顯示,Y仍為紅燈。 可以對X,Y車道上交通燈運(yùn)行的時(shí)間進(jìn)行重新設(shè)置, 20Tx99 ,10Ty39 對器件進(jìn)行在系統(tǒng)編程和實(shí)驗(yàn)驗(yàn)證。 寫出設(shè)計(jì)性實(shí)驗(yàn)報(bào)告,并打印各層次的源文件和仿真波形,然后作簡要說明。 3. 系統(tǒng)設(shè)計(jì)系統(tǒng)框圖與說明3.1.1分頻模塊模塊原型module demultiply(clock,rst,clock_out);此模塊的作用是將輸出的50Mhz的頻率分成1hz的頻率。3.1.2 7段
3、顯示碼譯碼模塊模塊原型module decoder(car_num,high_num,low_num);此模塊可以把輸入的car_num4:0表示成的數(shù)按照十進(jìn)制分別譯碼到7段顯示管的高位和低位3.1.3 初始化車輛模塊module init_car(clock,rst,ctl,car_add,car_east,car_south,car_west,car_north,east_flag,south_flag,west_flag,north_flag);此模塊的作用是初始化東南西北四個(gè)方向的車的數(shù)量,通過ctl來選擇路口,通過car_add按鈕來增加車的數(shù)量3.1.4 VGA顯示模塊模塊原型:
4、module DE0_VGA(CLOCK_50,CLOCK_50_2,BUTTON,VGA_HS,VGA_VS,VGA_R,VGA_G,VGA_B,s,east_flag,south_flag,west_flag,north_flag,HEX3,HEX2,HEX1,HEX0,start,clock_1hz,);此模塊的作用是把燈的狀態(tài)和車輛的狀態(tài)顯示到VGA顯示屏上面3.1.5 交通燈切換控制模塊模塊原型module Light_ctrl(start,clock,rst,led,cnt_ew,cnt_sn,s);此模塊是控制東西路口和南北路口紅綠黃燈的狀態(tài)3.1.6 譯碼選擇模塊模塊原型mod
5、ule select(Out1,In1,In2 , In3 , In4,In5,Switch);此模塊是通過開關(guān)控制7段數(shù)碼管顯示的意義3.1.7 總模塊狀態(tài)轉(zhuǎn)換圖本系統(tǒng)采用四個(gè)狀態(tài),即S0:東西方向紅燈亮,南北方向綠燈亮;S1:東西方向紅燈亮,南北方向黃燈亮;S2:東西方向綠燈亮,南北方向紅燈亮;S3:東西方向黃燈亮,南北方向紅燈亮;再執(zhí)行S0,依次循環(huán),實(shí)現(xiàn)系統(tǒng)的設(shè)計(jì)目標(biāo)。狀態(tài)機(jī)的切換如下圖所示:S3S2S1S0系統(tǒng)仿真1. 交通燈控制功能仿真圖上圖為交通燈控制的功能仿真圖,S的六位代表東西方向的紅綠黃和南北方向的紅綠黃,由上圖可知S的開始狀態(tài)為S01 0 0 0 1 0(東西紅燈,南北綠
6、燈)當(dāng)cnt_sn計(jì)數(shù)到1時(shí)切換到S01 0 0 0 0 1(東西紅燈,南北黃燈)下一個(gè)觸發(fā)脈沖cnt_sn置數(shù)為5,當(dāng)cnt_ew計(jì)數(shù)到1時(shí),切換到S20 1 0 1 0 0(東西綠燈,南北紅燈)下一個(gè)觸發(fā)脈沖cnt_ew置數(shù)為30,同時(shí)cnt_sn也置數(shù)為30,到計(jì)數(shù)到1時(shí)S切換為S30 0 1 1 0 0(東西黃燈,南北紅燈),之后的狀態(tài)就S0-S1-S2-S3-S0 循環(huán)切換2. 上仿真情況注釋:初始狀態(tài)東西方向紅燈,南北方向綠燈。注釋:東西方向紅燈倒計(jì)時(shí)到十秒,南北方向倒計(jì)時(shí)到秒。注釋:東西方向綠燈秒,南北方向紅燈秒。注釋:東西方向黃燈秒,南北方向綠燈秒。4. 實(shí)驗(yàn)總結(jié)心得體會(huì):完全
7、不同于C 語言編程,開始在對許多變量進(jìn)行了初值設(shè)置,此后編譯每每都不通過,在認(rèn)真思考后,查閱了課本,發(fā)現(xiàn)在HDL 編程中,不能對變量初值。我們恍然大悟,在以后的編程中我們牢記住了這一點(diǎn),之后模塊的寄存器類型的變量全部都會(huì)在復(fù)位信號到來時(shí)全部賦值。體驗(yàn)到了細(xì)心對一個(gè)編程者的重要性,和程序的規(guī)范性對于程序的重要性,這些平時(shí)我們忽略的問題,其實(shí)有時(shí)候關(guān)乎著我們編程的成功率;再者,在verilog語言中,我們必須注意其與C語言的異同,比如格式和變量定義,還有模塊的調(diào)用,和時(shí)鐘信號的應(yīng)用。還有,verilog HDL設(shè)計(jì)語言是一門很好的硬件描述語言,可以直白的描述實(shí)際的電路,實(shí)際的系統(tǒng)模型,易懂而且易于
8、實(shí)現(xiàn),我覺得在以后多加練習(xí),可以對以后的學(xué)習(xí)和工作帶來莫大的幫助。這次的課程設(shè)計(jì)就是對我們的一次考核,也可以說是一次考驗(yàn),在平時(shí)做題目比較簡單,而這次課程設(shè)計(jì)綜合考核了我們的學(xué)習(xí)結(jié)果。課程設(shè)計(jì)培養(yǎng)了學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。然而從理論到實(shí)踐,我在做課程設(shè)計(jì)的幾天里,使我對有了更進(jìn)一步的認(rèn)識和了解,要想學(xué)好它要重在實(shí)踐,要通過不斷的實(shí)際操作才能更好地學(xué)習(xí)它,但是學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是
9、很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,遇到了各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知解得不夠深刻,掌握得不夠牢固,在邊編學(xué)程序的過程中我?guī)缀跏侵匦聫?fù)習(xí)課本上的知識,但這還是沒能讓我完成這次課程設(shè)計(jì),通過詢問同學(xué)、到網(wǎng)上查詢資料慢慢的完善這次做業(yè)才勉強(qiáng)完成。功能擴(kuò)展:本課設(shè)可擴(kuò)展的功能有應(yīng)對突發(fā)情況的交通燈全黃和全紅的狀態(tài),通過交通燈的狀態(tài)進(jìn)行車輛調(diào)度的功能等等。5. 附錄:源代碼module demultiply(cloc
10、k,rst,clock_out);input clock,rst;output clock_out;reg 24:0count;reg clock_out;always (posedge clock or negedge rst)beginif(!rst)begincount<=0;clock_out<=0;endelsebeginif(count=25'd25000000-1)begincount<=0;clock_out=clock_out;endelsecount<=count+1;endendendmodulemodule decoder(car_num
11、,high_num,low_num);input4:0 car_num;output6:0 high_num,low_num;reg6:0 high_num,low_num;wire3:0 High_num,Low_num;assign High_num=car_num/10;assign Low_num=car_num%10;always (High_num)case(High_num)4'b0000:high_num=7'b100_0000;4'b0001:high_num=7'b111_1001;4'b0010:high_num=7'b01
12、0_0100;4'b0011:high_num=7'b011_0000;4'b0100:high_num=7'b001_1001;4'b0101:high_num=7'b001_0010;4'b0110:high_num=7'b000_0010;4'b0111:high_num=7'b111_1000;4'b1000:high_num=7'b000_0000;4'b1001:high_num=7'b001_0000;default:high_num=7'b010_0011;e
13、ndcasealways (Low_num)case(Low_num)4'b0000:low_num=7'b100_0000;4'b0001:low_num=7'b111_1001;4'b0010:low_num=7'b010_0100;4'b0011:low_num=7'b011_0000;4'b0100:low_num=7'b001_1001;4'b0101:low_num=7'b001_0010;4'b0110:low_num=7'b000_0010;4'b0111:l
14、ow_num=7'b111_1000;4'b1000:low_num=7'b000_0000;4'b1001:low_num=7'b001_0000;default:low_num=7'b010_0011;endcaseendmodulemodule init_car(clock,rst,ctl,car_add,car_east,car_south,car_west,car_north,east_flag,south_flag,west_flag,north_flag);input3:0 ctl;input clock,rst,car_add;o
15、utput reg4:0 car_east,car_south,car_west,car_north;output reg3:1 east_flag,south_flag,west_flag,north_flag; always (negedge rst or negedge car_add)beginif(!rst)begincar_east<=5'b00000;car_south<=5'b00000;car_west<=5'b00000;car_north<=5'b00000;east_flag<=3'b000;sout
16、h_flag<=3'b000;west_flag<=3'b000;north_flag<=3'b000;endelsecase(ctl)4'b0001:if(car_east=3) begincar_east<=0;east_flag<=3'b000; end else begincar_east=car_east+1;east_flagcar_east=1; end4'b0010:if(car_south=3) begincar_south<=0;south_flag<=3'b000; end
17、else begincar_south=car_south+1;south_flagcar_south=1; end4'b0100:if(car_west=3) begincar_west<=0;west_flag<=3'b000; end else begincar_west=car_west+1;west_flagcar_west=1; end4'b1000:if(car_north=3) begincar_north<=0;north_flag<=3'b000; end else begincar_north=car_north+1
18、;north_flagcar_north=1; endendcaseendendmodulemodule DE0_VGA(/Clock Input / CLOCK_50,/50 MHzCLOCK_50_2,/50 MHzBUTTON,/VGA/VGA_HS,/VGA H_SYNCVGA_VS,/VGA V_SYNCVGA_R, /VGA Red3:0VGA_G, /VGA Green3:0VGA_B, /VGA Blue3:0s,east_flag,south_flag,west_flag,north_flag,HEX3,HEX2,HEX1,HEX0,start,clock_1hz,);/Cl
19、ock Input /inputCLOCK_50;/50 MHzinputCLOCK_50_2;/50 MHzinput BUTTON;input5:0 s;input 3:1east_flag;input 3:1south_flag;input 3:1west_flag;input 3:1north_flag;input 6:0 HEX3,HEX2,HEX1,HEX0;input start;input clock_1hz;/VGA/outputVGA_HS;/VGA H_SYNCoutputVGA_VS;/VGA V_SYNCoutput3:0VGA_R; /VGA Red3:0outpu
20、t3:0VGA_G; /VGA Green3:0output3:0VGA_B; /VGA Blue3:0/VGA/wireVGA_CTRL_CLK;wire9:0mVGA_X;wire9:0mVGA_Y;wire9:0mVGA_R;wire9:0mVGA_G;wire9:0mVGA_B;/wire19:0mVGA_ADDR;wire9:0sVGA_R;wire9:0sVGA_G;wire9:0sVGA_B;assignVGA_R=sVGA_R3:0;assignVGA_G=sVGA_G3:0;assignVGA_B=sVGA_B3:0;/=/ Structural coding/=/VGA/V
21、GA_CLKu1(.inclk0(CLOCK_50),.c0(VGA_CTRL_CLK);VGA_Ctrlu2(/Host Side.oCurrent_X(mVGA_X),.oCurrent_Y(mVGA_Y),.iRed(mVGA_R),.iGreen(mVGA_G),.iBlue(mVGA_B),/VGA Side.oVGA_R(sVGA_R),.oVGA_G(sVGA_G),.oVGA_B(sVGA_B),.oVGA_HS(VGA_HS),.oVGA_VS(VGA_VS),.oVGA_SYNC(),.oVGA_BLANK(),.oVGA_CLOCK(),/Control Signal.i
22、CLK(VGA_CTRL_CLK),.iRST_N(BUTTON);VGA_Patternu3(/Read Out Side.oRed(mVGA_R),.oGreen(mVGA_G),.oBlue(mVGA_B),.iVGA_X(mVGA_X),.iVGA_Y(mVGA_Y),.iVGA_CLK(VGA_CTRL_CLK),/Control Signals.iRST_n(BUTTON),.s(s),.east_flag(east_flag),.south_flag(south_flag),.west_flag(west_flag),.north_flag(north_flag),.HEX3(H
23、EX3),.HEX2(HEX2),.HEX1(HEX1),.HEX0(HEX0),.start(start),.clock_1hz(clock_1hz),);endmodule/control the light and 7seg module Light_ctrl(start,clock,rst,led,cnt_ew,cnt_sn,s);/clock :input 1hz;start:input the switch;input clock,rst,start;output 5:0 led;wire5:0 led;parameter s0=6'b100010;parameter s1
24、=6'b100001;/red yellowparameter s2=6'b010100;parameter s3=6'b001100;output reg5:0 s;reg5:0 cnt;reg flag1,flag2,flag3,flag4;output reg4:0cnt_ew,cnt_sn;/cnt_ew cntrol the east and west light;cnt_sn control the south and north lightreg clock_start;always (posedge clock or negedge rst) begin
25、if(!rst)begincnt<=1;s<=s0;cnt_ew<=25;cnt_sn<=20;flag1<=0;flag2<=0;flag3<=0;flag4<=0;endelseif(start)begin if(cnt=60)cnt<=1;else cnt<=cnt+1;if(cnt<20&&cnt>=1)s<=s0;else if(cnt>=20&&cnt<25)s<=s1;else if(cnt>=25&&cnt<55)s<=s2;else if(cnt>=55&&cnt<60) s<=s3;elses<=s0;begincnt_ew<=cnt_ew-1;if(cnt_ew=1&&(flag1=0)&&(flag2=0)begincnt_ew<=30;flag1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年租賃服務(wù)招標(biāo)合同條款3篇
- 2025年度海鹽二手房交易誠信體系建設(shè)合同2篇
- 2024年虛擬現(xiàn)實(shí)內(nèi)容制作與版權(quán)交易合同
- 二零二五年度上市公司投資連帶責(zé)任保證合同3篇
- 2025年電子產(chǎn)品OEM貼牌生產(chǎn)售后服務(wù)協(xié)議2篇
- 2024年中國衡器專用鉆鉸復(fù)合刀具市場調(diào)查研究報(bào)告
- 2024年中國螺孔軸市場調(diào)查研究報(bào)告
- 2024年中國蓄電池充電器市場調(diào)查研究報(bào)告
- 2024年限量版別墅群合作開發(fā)協(xié)議版B版
- 2024年中國胡椒牛扒味市場調(diào)查研究報(bào)告
- 2024年地理知識競賽試題200題及答案
- 肝衰竭診治指南(2024年版)解讀
- 化學(xué)反應(yīng)工程智慧樹知到期末考試答案章節(jié)答案2024年浙江工業(yè)大學(xué)
- 人生悟理-透過物理看人生智慧樹知到期末考試答案2024年
- 兒童劇劇本三只小豬
- 贏在執(zhí)行力:團(tuán)隊(duì)執(zhí)行力-下
- 鉆孔灌注樁后注漿施工方案(最全版)
- 政工干部年度述職報(bào)告
- 1000MW電廠水處理DCS控制系統(tǒng)設(shè)計(jì)
- 硬件設(shè)計(jì)checklist
- 《職業(yè)健康培訓(xùn)》
評論
0/150
提交評論