第一篇:交通燈的設計心得體會總結
通過此次課程設計,使我更加扎實的掌握了有關電子線路方面的知識,在設計過程中雖然遇到了一些問題,但經過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識欠缺和經驗不足。過而能改,善莫大焉。在課程設計過程中,我們不斷發現錯誤,不斷改正,不斷領悟,不斷獲取。最終的檢測調試環節,本身就是在踐行“過而能改,善莫大焉”的知行觀。這次課程設計終于順利完成了,在設計中遇到了很多問題,最后在老師的指導下,終于游逆而解。在今后社會的發展和學習實踐過程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發現問題所在,然后一一進行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠不可能收獲成功,收獲喜悅,也永遠不可能得到社會極大人的認可。
課程設計誠然是一門專業課,給我很多專業知識以及專業技能上的提升,同時又是一門講道課,一門辯思課,給了我許多道,給了我很多思,給了我莫大的空間。同時,設計讓我感觸很深。使我對抽象的理論有了具體的認識。通過這次課程設計,我掌握了NI Multisim軟件的使用方法,了解了紅綠燈的實際控制過程,以及如何提高電路的性能等等。
我認為,在這學期的實驗中,不僅培養了獨立思考、動手操作的能力,在各種其它能力上也都有了提高。更重要的是,我們學會了很多學習的方法。而這是日后最實用的,真的是受益匪淺。要面對社會的挑戰,只有不斷的學習、實踐,再學習、再實踐。這對于我們的將來也有很大的幫助。以后,不管有多苦,我想我們都能變苦為樂,找尋有趣的事情,發現其中珍貴的事情。就像中國提倡的艱苦奮斗一樣,我們都可以在實驗結束之后變的更加成熟,會面對需要面對的事情。
回顧起此課程設計,至今我仍感慨頗多,從理論到實踐,在這段日子里,可以說得是苦多于甜,但是可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,但可喜的是最終都得到了解決。
第二篇:交通燈的設計心得體會總結
交通燈的設計心得體會總結
通過此次課程設計,使我更加扎實的掌握了有關電子線路方面的知識,在設計過程中雖然遇到了一些問題,但經過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識欠缺和經驗不足。實踐出真知,通過自己親手實踐,是我們掌握的知識不再是紙上談兵。
過而能改,善莫大焉。在課程設計過程中,我們不斷發現錯誤,不斷改正,不斷領悟,不斷獲取。最終的檢測調試環節,本身就是在踐行“過而能改,善莫大焉”的知行觀。這次課程設計終于順利完成了,在設計中遇到了很多問題,最后在老師的指導下,終于游逆而解。在今后社會的發展和學習實踐過程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發現問題所在,然后一一進行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠不可能收獲成功,收獲喜悅,也永遠不可能得到社會極大人的認可。
課程設計誠然是一門專業課,給我很多專業知識以及專業技能上的提升,同時又是一門講道課,一門辯思課,給了我許多道,給了我很多思,給了我莫大的空間。同時,設計讓我感觸很深。使我對抽象的理論有了具體的認識。通過這次課程設計,我掌握了NI Multisim軟件的使用方法,了解了紅綠燈的實際控制過程,以及如何提高電路的性能等等。
我認為,在這學期的實驗中,不僅培養了獨立思考、動手操作的能力,在各種其它能力上也都有了提高。更重要的是,我們學會了很多學習的方法。而這是日后最實用的,真的是受益匪淺。要面對社會的挑戰,只有不斷的學習、實踐,再學習、再實踐。這對于我們的將來也有很大的幫助。以后,不管有多苦,我想我們都能變苦為樂,找尋有趣的事情,發現其中珍貴的事情。就像中國提倡的艱苦奮斗一樣,我們都可以在實驗結束之后變的更加成熟,會面對需要面對的事情。
回顧起此課程設計,至今我仍感慨頗多,從理論到實踐,在這段日子里,可以說得是苦多于甜,但是可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,但可喜的是最終都得到了解決。
第三篇:交通燈設計心得體會
設計心得,一個簡單的交通燈控制系統終于做完,總的來說就只實現兩個功能,1 紅綠黃燈的交替點亮。2,顯示每種燈的倒計時,其實,就是一個的狀態機,四個狀態的變換,剛開始。我按照書上的程序將代碼輸進去,只輸的過程中發現不少錯誤。定義燈的顯示錯了。多個地方判斷語句IF的判斷部分都寫成賦值語句“《=”最嚴重的是最后的結果既然仿真不出來,我試圖將錯誤的揪出來,沒想到自己自己的思維也陷進去了。按著書上的注解一點都沒錯,就是仿真不出來。在這時候,我決定按照自己的思路來修改,書上的原程序有7個進程,我將,p5 p6,p7, 壓縮成一個程序p5 ,同樣也可以實現書要求的所有功能,書上的計數器是通過十六輸出端,分別接到兩個數碼管,考慮到我們的實驗板上帶有bcd/七段led譯碼器。故我直接將計數器的輸出,按照bcd碼接到譯碼器上,做了這些算是有點點成就感,我覺得這個課設,不僅需要很好的dea基本功,更需要周密的思維。耐心和細心的做事態度,當看到大篇幅的程序是,正是驗證理論知識的時刻,我是以為自己還有必要加強,平時判斷上升沿時一般習慣用clk’event and(cke=1), 一下子看到wait語句時,我頓時不知書上的語句是對是錯,只能查閱課本,做事態度面,我有時候特心急,一下子十幾行的錯誤提示,看著心都涼了,要不是為了一組的榮譽的我真的沒耐心看了,當把一條一條的錯誤改正后,才知道自己能行的。
我們設計的東西最終目標就是能真正應用到生活中去,因此,需要對平時的生活常識有一定了解,善于觀察生活,看需要什么,就設計什么出來。也不一定要做已經有了的東西,或者自己寫出更高效的程序。
總的來,我對這是很感興趣的。我能在做的過程中找到快樂,覺得學到的東西有用處,我以后更加深刻地學習課本知識,做事會更有耐心,平時多關注生活,多思考。既然選擇這個專業,就不僅學習專業知識,也要學習專業精神。
第四篇:交通燈控制器設計實驗報告
設計性實驗項目名稱
交通燈控制器設計
實驗項目學時:3學時
實驗要求:■ 必修
□ 選修
一、實驗目的
1、學習與日常生活相關且較復雜數字系統設計;
2、進一步熟悉EDA實驗裝置和QuartusⅡ軟件的使用方法;
3、學習二進制碼到BCD碼的轉換;
4、學習有限狀態機的設計應用。
二、實驗原理
交通燈的顯示有很多方式,如十字路口、丁字路口等,而對于同一個路口又 有很多不同的顯示要求,比如十字路口,車輛如果只要東西和南北方向通行就很 簡單,而如果車子可以左右轉彎的通行就比較復雜,本實驗僅針對最簡單的南北 和東西直行的情況。
要完成本實驗,首先必須了解交通路燈的燃滅規律。本實驗需要用到實驗箱上交通燈模塊中的發光二極管,即紅、黃、綠各三個。依人們的交通常規,“紅燈停,綠燈行,黃燈提醒”。其交通燈的燃滅規律為:初始態是兩個路口的紅燈全亮之后,主干道的綠燈亮,鄉間道路的紅燈亮,主干道方向通車,延時一段時間后,鄉間公路來車,主干道綠燈滅,黃燈開始閃爍。閃爍若干次后,主干道紅燈亮,而同時鄉間公路的綠燈亮,延時一段時間后,鄉間公路的綠燈滅,黃燈開始閃爍。閃爍若干次后,再切換到主干道方向,重復上述過程。
三、設計要求
完成設計、仿真、調試、下載、硬件測試等環節,在型EDA實驗裝置上實現一個由一條主干道和一條鄉間公路的匯合點形成的十字交叉路口的交通燈控制器功能,具體要求如下:
1、有MR(主紅)、MY(主黃)、MG(主綠)、CR(鄉紅)、CY(鄉黃)、CG(鄉綠)六盞交通燈需要控制;
2、交通燈由綠轉紅前有4秒亮黃燈的間隔時間,由紅轉綠沒有間隔時間;
3、鄉間公路右側各埋有一個串連傳感器,當有車輛準備通過鄉間公路時,發出請求信號S=1,其余時間S=0;
4、平時系統停留在主干道通行(MGCR)狀態,一旦S信號有效,經主道黃燈4秒(MYCR)狀態后轉入鄉間公路通行(MRCG)狀態,但要保證主干道通行大于一分鐘后才能轉換;
5、一旦S信號消失,系統脫離MRCG狀態,即經鄉道黃燈4秒(MRCY)狀態進入MGCR狀態,即使S信號一直有效,MRCG狀態也不得長于20秒鐘;
6、控制對象除紅綠燈之外,還包括分別在主干道和鄉間公路各有一個兩位十進制倒計時數碼管顯示。
四、主要儀器設備
1、微機
1臺
1套 1套
2、QuartusII集成開發軟件
3、EDA實驗裝置
五、實驗步驟
源程序:
0module traffic1(clk,s,rst,light,sel,SG);input clk,s,rst;output[5:0] light;
output [2:0]sel;output [7:0]SG;reg [5:0] light;reg clk1;reg [3:0] sc;
reg [7:0] count;reg [7:0] cnt,SG;reg [2:0] sel;reg [3:0]a;parameter s0=0,s1=1,s2=2,s3=3,s4=4;initial
begin
count<=8'b01100000;
light<=6'b001100;
sc=s0;
end
always @(posedge clk)begin
begin cnt=cnt+1;
if(cnt==100)begin clk1=1'b1;cnt=0;end
else clk1=1'b0;//100分頻,CLK為數碼管掃描頻率,CLK1為計數頻率
if(sel<7)sel=sel+1;else sel=6;
end //sel為數碼管選擇
begin
case(sel)
7: a=count[3:0];//0數碼管為個位
6: a=count[7:4];//1數碼管為十位
default: a=0;
endcase
case(a)
0:SG<=8'b00111111;1:SG<=8'b00000110;
2:SG<=8'b01011011;3:SG<=8'b01001111;
4:SG<=8'b01100110;5:SG<=8'b01101101;
6:SG<=8'b01111101;7:SG<=8'b00000111;
8:SG<=8'b01111111;9:SG<=8'b01101111;//8段譯碼值
default: SG=8'b11111111;
endcase
end end
always @(posedge clk1 or negedge rst)
begin
if(!rst)begin count = 0;sc=s3;end // count set nothing but else 0
else if(count == 0)
begin
case(sc)
s0: begin if(s)begin sc=s1;count = 8'b00000100;light=6'b010100;end else begin sc=s4;count = 8'b01100000;end end
s1: begin count = 8'b00100000;sc=s2;light=6'b100001;end
s2: begin count = 8'b00000100;sc=s3;light=6'b100010;end
s3: begin count = 8'b01100000;sc=s0;light=6'b001100;end
s4: begin if(s)begin sc=s1;count = 8'b00000100;light=6'b010100;end else begin sc = s4;count = 8'b01100000;light<=6'b001100;end end
default begin sc=s0;count =8'h60;end
endcase
end
else
if((sc==s2)&(s==0))begin sc=s3;count = 8'b00000100;light=6'b100010;end
else
if((sc==s4)&(s==1))begin sc=s1;count = 8'b00000100;light=6'b010100;end
else if(count[3:0] == 4'b0000)
begin count = count-7;end
else
begin count = count-1;end
end endmodule
管腳鎖定
六、波形仿真
主干道60s倒計時
s信號為1時
七、實驗心得
通過本次實驗,讓我進一步掌握了軟件quartus的使用流程,一開始實驗時波形仿真是正確的,但在電路上實現時主干道亮黃燈時,鄉間道路亮的是綠燈,這顯然是不對的,后面發現是管腳鎖定時出現了問題,改回來之后就沒問題了。管腳鎖定時不能粗心,不然很容易出現問題。
曹軍
生醫121班
第五篇:基于單片機的交通燈設計
基于單片機的交通燈設計
設計程序:
#include
//共陽極
uchar
code table1[5]={0xf3,0xf5,0xde,0xee,0xf6};/*各種狀態下紅綠燈段選碼, 狀態1:A綠燈,B紅燈;狀態2:A黃燈亮,B紅燈;狀態3:A紅燈,B綠燈;狀態4:A紅燈,B黃燈亮;狀態5:A紅燈,B紅燈;*/ uchar
code tab[4]={0x1E,0x2D,0x4E,0x8D};//數碼管顯示位選碼 sbit key1=P1^0;//放行A sbit key2=P1^1;//放行B sbit key3=P1^2;//禁止通行
uchar EW=40,SN=30,K1_T=15,K2_T=15,K3_T=20;//初始化交通燈時間 uchar count;//計時中斷次數 uchar i,j;//循環控制變量 char Timer;//子程序說明語句 void Process();void Display(uchar j);void Delay(uchar a);/**************************主程序**************************/ main(){ IP=0X02;//設置定時器中斷為高優先級//成為中斷嵌套
TMOD=0x01;//定時器工作方式
TH0=0x3C;//定時器初始化
TL0=0xB0;IT0=1;//中斷觸發方式為下降沿觸發
EA=1;//CPU開中斷
ET0=1;//開定時中斷
TR0=1;//啟動定時
EX0=1;//啟動外部中斷0 while(1)
{
Process();
} } /*************************交通燈顯示子程序*************************/ void Display(uchar j)//j控制顯示table中連續位的起始點 {
char h,l;
h=Timer/10;//EW通行時間十位
l=Timer%10;//EW通行時間個位
for(i=0;i<4;)//按位顯示通行狀況及時間 {
P0=table1[j];//通行狀況顯示
P3=tab[i];//位選顯示
i++;
//j++;
if(i%2)//兩位計時顯示
{
P2=table[l];
Delay(400);
}
else
{
P2=table[h];
Delay(400);
} } Delay(5);
//設置掃描時間
} /*********鍵控*******/ void Keyboard()interrupt 0 using 0 {
if(key1==0)
{ Timer=K1_T;
while(Timer>0)
{
j=0;
Display(0);
//顯示一次
}
if(key2==0)
{
Timer=K2_T;
while(Timer>0)
{
j=2;
Display(j);
}
if(key3==0)
{
Timer=K3_T;
while(Timer>0)
{
j=4;
Display(j);
}
} } /**************************延時子程序**************************/ void Delay(uchar a)//循環a次 { uchar x;x=a;while(x--){;} }
/************************TO計時中斷服務程序************************/ void timer0(void)interrupt 1 using 1//T0中斷 { TH0=0x3C;TL0=0xB0;//定時計數初值
count++;//中斷溢出一次count+1 if(count==20){
Timer--;
count=0;//中斷次計數,count回,倒計時時間
} } /**************************亮燈控制**************************/ void Process(){ Timer=EW;//初始化方向通行時間
while(Timer>3)//狀態:A綠燈,B紅燈;{
j=0;
Display(j);//調用顯示函數
} while(Timer>0)//狀態:A黃燈亮,B紅燈;{
j=1;
Display(j);
} Timer=SN;while(Timer>3)//狀態:A紅燈,B綠燈;{
j=2;
Display(j);} while(Timer>0)//狀態:A紅燈,B黃燈亮;{
j=3;
Display(j);
}
}
電路圖如下: